What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Exploding Palm Monk

epistane8

New Member
Joined
Jun 27, 2012
Messages
97
Reaction score
0
Hello.

Is there any way to improve Trinitys Exploding Palm spamming?

I find having 150/150 spirit really often, I would like to see spirit 0 all the time and all possible enemies Palmed. Any tips?

If I spam Palm by hand while botting it makes EPIC difference, just BOOM everywhere. Please make it spam faster to different targets.

I tried to add range, reduce cast time, changing cast reqs to 1 monster in any range etc. Still 150/150, it DOES cast it but bit slowly
 
your on the newest trinity version? 1.8.5/1.8.6? ,

- Monk Exploding Palm is now used every 7 seconds (from 15)
 
oh I just noticed Im on 1.8.4, I will try new version right away. Thanks! I would like to get Palm every 1 second but I gotta check monk.cs

edit: Where can I find this cast delay number 7? Im trying to find and edit monk.cs but no idea what to edit.

Thx again

---------------------------------------
// Exploding Palm
if (!UseOOCBuff && !IsCurrentlyAvoiding && !Player.IsIncapacitated &&
//(TargetUtil.AnyElitesInRange(25, 0+1) || TargetUtil.AnyMobsInRange(15, 1) || (CurrentTarget.IsBossOrEliteRareUnique && CurrentTarget.RadiusDistance <= 14f)) &&
CombatBase.CanCast(SNOPower.Monk_ExplodingPalm, CombatBase.CanCastFlags.NoTimer) &&
!SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
((Player.PrimaryResource >= 40 && !Player.WaitingForReserveEnergy) || Player.PrimaryResource >= MinEnergyReserve))
{
return new TrinityPower(SNOPower.Monk_ExplodingPalm, 14f, Vector3.Zero, -1, CurrentTarget.ACDGuid, 1, 1, WAIT_FOR_ANIM);
}
------------------------------------
 
Last edited:
Code:
// Exploding Palm
			if
			(
				!UseOOCBuff &&
				!IsCurrentlyAvoiding &&
				!Player.IsIncapacitated &&
				CombatBase.CanCast(SNOPower.Monk_ExplodingPalm, CombatBase.CanCastFlags.NoTimer) &&
				!SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
				CurrentTarget.RadiusDistance <= 14f &&
				(
					(Player.PrimaryResource >= 40 && TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount)) ||
					(Player.PrimaryResource >= 100 && TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount / 2))
				)
			)
			{
				return new TrinityPower(SNOPower.Monk_ExplodingPalm, 14f, Vector3.Zero, -1, CurrentTarget.ACDGuid, 1, 1, WAIT_FOR_ANIM);
			}

			// Cyclone Strike
			bool hasCycloneStikeEyeOfTheStorm = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.Monk_CycloneStrike && s.RuneIndex == 3);
			bool hasCycloneStikeImposion = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.Monk_CycloneStrike && s.RuneIndex == 1);
			var cycloneStrikeSpirit = hasCycloneStikeEyeOfTheStorm ? 30 : 50;
			var cycloneStrikeRange = hasCycloneStikeImposion ? 34f : 24f;

			if
			(
				!UseOOCBuff &&
				!IsCurrentlyAvoiding &&
				!Player.IsIncapacitated &&
				CombatBase.CanCast(SNOPower.Monk_CycloneStrike) &&
				Player.PrimaryResource >= cycloneStrikeSpirit &&
				(
					Player.CurrentHealthPct <= 0.33 ||
					(
						SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
						TargetUtil.AnyMobsInRange(cycloneStrikeRange, Settings.Combat.Monk.MinCycloneTrashCount)
					)
				)
			)
			{
				Monk_TickSweepingWindSpam();
				return new TrinityPower(SNOPower.Monk_CycloneStrike, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 2, 2, WAIT_FOR_ANIM);
			}

This what I'm using. Note that I use Cyclone to heal.
 
Last edited:
I have no idea what this does TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount))
but it works much better now thank you :)
 
I tried that but I kinda dont see the difference, I reloaded the plugin etc. Damn I just wish I could keep my spirit at 0 and spam palm to EVERY mob around me
 
Code:
// Exploding Palm
            if
            (
                !UseOOCBuff &&
                !IsCurrentlyAvoiding &&
                !Player.IsIncapacitated &&
                CombatBase.CanCast(SNOPower.Monk_ExplodingPalm, CombatBase.CanCastFlags.NoTimer) &&
                !SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
                CurrentTarget.RadiusDistance <= 14f &&
                (
                    (Player.PrimaryResource >= 40 && TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount)) ||
                    (Player.PrimaryResource >= 100 && TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount / 2))
                )
            )
            {
                return new TrinityPower(SNOPower.Monk_ExplodingPalm, 14f, Vector3.Zero, -1, CurrentTarget.ACDGuid, 1, 1, WAIT_FOR_ANIM);
            }

            // Cyclone Strike
            bool hasCycloneStikeEyeOfTheStorm = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.Monk_CycloneStrike && s.RuneIndex == 3);
            bool hasCycloneStikeImposion = HotbarSkills.AssignedSkills.Any(s => s.Power == SNOPower.Monk_CycloneStrike && s.RuneIndex == 1);
            var cycloneStrikeSpirit = hasCycloneStikeEyeOfTheStorm ? 30 : 50;
            var cycloneStrikeRange = hasCycloneStikeImposion ? 34f : 24f;

            if
            (
                !UseOOCBuff &&
                !IsCurrentlyAvoiding &&
                !Player.IsIncapacitated &&
                CombatBase.CanCast(SNOPower.Monk_CycloneStrike) &&
                Player.PrimaryResource >= cycloneStrikeSpirit &&
                (
                    Player.CurrentHealthPct <= 0.33 ||
                    (
                        SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
                        TargetUtil.AnyMobsInRange(cycloneStrikeRange, Settings.Combat.Monk.MinCycloneTrashCount)
                    )
                )
            )
            {
                Monk_TickSweepingWindSpam();
                return new TrinityPower(SNOPower.Monk_CycloneStrike, 0f, Vector3.Zero, CurrentWorldDynamicId, -1, 2, 2, WAIT_FOR_ANIM);
            }

This what I'm using. Note that I use Cyclone to heal.

Not sure why you're using this? It's even more restrictive than the default:

Code:
            // Exploding Palm
            if (!UseOOCBuff && !IsCurrentlyAvoiding && !Player.IsIncapacitated &&
                CombatBase.CanCast(SNOPower.Monk_ExplodingPalm, CombatBase.CanCastFlags.NoTimer) &&
                !SpellTracker.IsUnitTracked(CurrentTarget, SNOPower.Monk_ExplodingPalm) &&
                (Player.PrimaryResource >= (40 + MinEnergyReserve)))
            {
                return new TrinityPower(SNOPower.Monk_ExplodingPalm, 14f, Vector3.Zero, -1, CurrentTarget.ACDGuid, 1, 1, WAIT_FOR_ANIM);
            }
 
rrrix I noticed that when there's just 1 or 2 mobs nearby the bot usually won't use Exploding Palm, even when it's an Elite. Is there any way to change it so that it will always use Exploding Palm if it can and the mob doesn't already have the DOT?

BTW, I changed (Player.PrimaryResource >= (40 + MinEnergyReserve))) to (Player.PrimaryResource >= (40))) which seems to allow a lot more uses of the skill, the bot still doesn't change targets to put the DOT on everything around it though, not even sure if that's possible.
 
Well I don't know why but the default setting doesn't really cast exploding palm.
SunnyTiTi changes worked for me
 
I think it's the spirit requirement of 80 + 40 (120), so it will only use it when it's at max spirit. I'll change this to just 40.
 
I have no idea what this does TargetUtil.AnyMobsInRange(20, Settings.Combat.Monk.MinCycloneTrashCount))
but it works much better now thank you :)

I edited for my special build, I want when a monster killed by EP, it will explode and kill at least MinCycloneTrashCount monsters near by. This code means only use EP when there are more than MinCycloneTrashCount monsters (the value you can set in Trinity Setting) in the radius 20. You can delete it if you want to use EP anytime.

Btw, if a monster is bleeding by EP and there more than MinCycloneTrashCount monsters (the value you can set in Trinity Setting) in the cycloneStrikeRange. I will use Cyclone to pull all monsters to ensure that all will get damage when Exploding.
 
Back
Top