Find "// Tempest rush at elites or groups of mobs" in the GilesTrinity.csso any news on the tempest rush for only used while running between packs??
Find "// Tempest rush at elites or groups of mobs" in the GilesTrinity.cs
Delete everything below it until "// Dashing Strike" line. Just did it, seems to work for me.
Make sure you backup the original, if something goes wrong.
I use Unified version of Giles Trinity, don't know if there are these lines in the original.
if anybody wants to try exploding palm (particularly flesh is weak) you can try this code,
i tried to change it to be used as often as possible while considering the situation e.g enemies within range and targeting enemies with less 40% hp - i didnt add a boss ignore atm
if you understand the code let me know if i made it wrong - id appreciate it.
same with people who would like to test, let me know any issues
i just wanted to try exploding palm since it scales with enemy life and the greater mp you play means the more damage it will deal and make the bots life easier
changes the conditions below // Exploding Palm
if (!bOOCBuff && !bCurrentlyAvoiding && !playerStatus.bIsIncapacitated &&
iAnythingWithinRange[RANGE_15] >= 2 &&
targetCurrent.iThisHitPoints <= 0.35 &&
hashPowerHotbarAbilities.Contains(SNOPower.Monk_ExplodingPalm) &&
playerStatus.dCurrentEnergy >= 45 &&
PowerManager.CanCast(SNOPower.Monk_ExplodingPalm))
{
return new GilesPower(SNOPower.Monk_ExplodingPalm, 14f, vNullLocation, -1, targetCurrent.iThisACDGUID, 1, 1, USE_SLOWLY);
}
btw i only play at mp 3-4 mostly 3 and having good results, not great because of mobs can sometimes just move out of the way when it explodes and its useless for single mob/elite
// Sweeping wind
if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && !GilesHasBuff(SNOPower.Monk_SweepingWind) &&
(iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_20] >= 2 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 25f)) &&
// Check if either we don't have blinding flash, or we do and it's been cast in the last 6000ms
(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_BlindingFlash]).TotalMilliseconds <= 6000)) &&
// Check our mantras, if we have them, are up first
(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) && GilesHasBuff(SNOPower.Monk_MantraOfEvasion))) &&
(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))) &&
(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) && GilesHasBuff(SNOPower.Monk_MantraOfRetribution))) &&
// Check the re-use timer and energy costs
(playerStatus.dCurrentEnergy >= 75 || (settings.bMonkInnaSet && playerStatus.dCurrentEnergy >= 5)) && GilesUseTimer(SNOPower.Monk_SweepingWind))
{
if (ZetaDia.Me.DamagePercentAllFromSkills >= 0.49)
return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
}
double total = ZetaDia.Me.DamagePercentAllFromSkills;
if (ZetaDia.Me.HasBuff(SNOPower.Monk_BreathOfHeaven))
{
total -= 0.15;
}
// Deadly reach
if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Monk_DeadlyReach))
{
if (total < 0.26 || (powerLastSnoPowerUsed == SNOPower.Monk_FistsofThunder && total < 0.27))
{
return new GilesPower(SNOPower.Monk_DeadlyReach, 16f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 1, USE_SLOWLY);
}
}
// Fists of thunder as the primary, repeatable attack
if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Monk_FistsofThunder))
{
return new GilesPower(SNOPower.Monk_FistsofThunder, 30f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, SIGNATURE_SPAM);
}
I have been using tempest rush (regular giles one) and wave of light.But tr is not working soo well =( does anyone have a tr code to share? thx in advance
I've made some changes to utilize FoT and Deadly Reach using as a 3rd passive "Combination Strike, for a total of 34% extra damage.
I'm also using Breath of Heaven for the 15% damage buff.
At the monk section, where it gets to select what SNOPower to use (around line 6844), at sweeping wind
I've used the above if statement, to make sure we have all the damage buffs active (15%, 8% x 2, 18%) before casting Sweeping Wind.Code:// Sweeping wind if (!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && !GilesHasBuff(SNOPower.Monk_SweepingWind) && (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_20] >= 2 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 25f)) && // Check if either we don't have blinding flash, or we do and it's been cast in the last 6000ms (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_BlindingFlash]).TotalMilliseconds <= 6000)) && // Check our mantras, if we have them, are up first (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) && GilesHasBuff(SNOPower.Monk_MantraOfEvasion))) && (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))) && (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) && GilesHasBuff(SNOPower.Monk_MantraOfRetribution))) && // Check the re-use timer and energy costs (playerStatus.dCurrentEnergy >= 75 || (settings.bMonkInnaSet && playerStatus.dCurrentEnergy >= 5)) && GilesUseTimer(SNOPower.Monk_SweepingWind)) { if (ZetaDia.Me.DamagePercentAllFromSkills >= 0.49) return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY); }
Below, where it picks Fists of thunder or Deadly reach (around line 6965), I've switched Deadly reach to get checked first. Removing the damage buff from BoH (if active) and then checking if we have the DR buffs (Combination Strike + rune buff).
Code:double total = ZetaDia.Me.DamagePercentAllFromSkills; if (ZetaDia.Me.HasBuff(SNOPower.Monk_BreathOfHeaven)) { total -= 0.15; } // Deadly reach if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Monk_DeadlyReach)) { if (total < 0.26 || (powerLastSnoPowerUsed == SNOPower.Monk_FistsofThunder && total < 0.27)) { return new GilesPower(SNOPower.Monk_DeadlyReach, 16f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 1, USE_SLOWLY); } } // Fists of thunder as the primary, repeatable attack if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Monk_FistsofThunder)) { return new GilesPower(SNOPower.Monk_FistsofThunder, 30f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, SIGNATURE_SPAM); }
Hopefully some of you will find a good use for it too.
I removed all Tempest Rush delays and all loot delays. That pretty much solved everything.
ZetaDia.Me.CurrentPrimaryResource >= 20
Yeah for tempest rush to work, it looks like it would need to be able to tempest rush to items/gold piles instead of walking to them
I'm still trying to figure out which variables to change for it to not stutter step tempest rush
Looks to be in the GilesPlayerMover.cs
It will start rushing when above that, stop instantly when its below (causing stutter step and losing functionality)Code:ZetaDia.Me.CurrentPrimaryResource >= 20
Other 'slight' issue is it re-using Sweeping Winds all the time (I grabbed the 2 passives so I am at about 14 spirit per second so its whatever)
Not sure if theres a function set to check buff timers
It seems if these 3 things get addressed, TR would be viable for trinity =P