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

Unified GilesPlugin's Unnoficial Updates File

Status
Not open for further replies.
Can we implement something like 'Extend kill radius on teleport' so we can get rid of the surrounding mobs?
 
Can we implement something like 'Extend kill radius on teleport' so we can get rid of the surrounding mobs?

This already exists in trinity:

Code:
// Safety for Giles own portal-back-to-town for full-backpack
                        else if (bGilesForcedVendoring)
                        {
                            if (dUseKillRadius <= 60) dUseKillRadius = 60; //intell
                        }

                        // Now ignore any unit not within our kill or extended kill radius
                        if (tmp_fCentreDistance > dUseKillRadius)
                        {
                            continue;
                        }

The problem is if you extend it more, you may end up clearing the entire map before you can actually tp. Trying to find the right "radius" varies from map to map. The default 60 is a fairly large radius and works MOST of the time. Not all of the time mind you...Fester Woods can cause long stucks with those bat spewing blob things.

This particular code is specific for town runs, but I imagine there is something similar for normal teleports. Might test it out.
 
Last edited:
This already exists in trinity:

Code:
// Safety for Giles own portal-back-to-town for full-backpack
                        else if (bGilesForcedVendoring)
                        {
                            if (dUseKillRadius <= 60) dUseKillRadius = 60; //intell
                        }

                        // Now ignore any unit not within our kill or extended kill radius
                        if (tmp_fCentreDistance > dUseKillRadius)
                        {
                            continue;
                        }

The problem is if you extend it more, you may end up clearing the entire map before you can actually tp. Trying to find the right "radius" varies from map to map. The default 60 is a fairly large radius and works MOST of the time. Not all of the time mind you...Fester Woods can cause long stucks with those bat spewing blob things.

Maybe implement a check if you receive damage while each tp casting, increase radius by 10 dynamically each time? Or is that too complex?
 
could probably implement something like that. I'm actually curious now if normal tp (like at the end of a profile) are treated the same as a town run.
 
Fix for wave of light not being used if monk doesn't have mantra of conviction, this currently affects any monks levelling when conviction isn't available, or playing without mantra of conviction:

Code:
                    // Wave of light
                    if (!bOOCBuff && !bCurrentlyAvoiding && !playerStatus.bIsIncapacitated &&
                        (iElitesWithinRange[RANGE_25] > 0 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 14f) || iAnythingWithinRange[RANGE_15] > 2) &&
                        hashPowerHotbarAbilities.Contains(SNOPower.Monk_WaveOfLight) &&
                        GilesUseTimer(SNOPower.Monk_WaveOfLight) &&
                        (playerStatus.dCurrentEnergy >= 90 || playerStatus.dCurrentEnergyPct >= 0.85) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))
                    {
                        return new GilesPower(SNOPower.Monk_WaveOfLight, 16f, vNullLocation, -1, targetCurrent.iThisACDGUID, 1, 1, USE_SLOWLY);
                    }


Code:
                    // Wave of light
                    if (!bOOCBuff && !bCurrentlyAvoiding && !playerStatus.bIsIncapacitated &&
                        (iElitesWithinRange[RANGE_25] > 0 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 14f) || iAnythingWithinRange[RANGE_15] > 2) &&
                        hashPowerHotbarAbilities.Contains(SNOPower.Monk_WaveOfLight) &&
                        GilesUseTimer(SNOPower.Monk_WaveOfLight) &&
                        (playerStatus.dCurrentEnergy >= 90 || playerStatus.dCurrentEnergyPct >= 0.85) && (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))))
                    {
                        return new GilesPower(SNOPower.Monk_WaveOfLight, 16f, vNullLocation, -1, targetCurrent.iThisACDGUID, 1, 1, USE_SLOWLY);
                    }

This did used to work in Giles original, so whoever added this check broke it, I think a bit more code auditing is required before additions are made to this.
If someone else can confirm this is a good thing to do, I'll do it

Ive had this issue aswell when monitoring my bot, sometimes he doesnt pickup rares or legendaries that he should pickup. So I have to pause him and run back and pick it up. I had a hunch that it could have something to do with backtracking. But yea its not often he miss items he should pick up ,but it still happens!
Do you guys have backtracking enabled? I hear it can cause this kind of problem

ksmaze and Magi: the changes you guys suggested are going to be in v0.43
 
Monk Fix Blinding Flash & Sweeping Winds:

- Only cast Blinding Flash if Sweeping Wind is on and lattest cast 1.5 secs ago (to ensure 1 or more stacks are on) and elite or boss or 6+ mobs in range
- Removed blinding flash check of sweeping wind call (unnecessary), we want sweeping wind to be cast before blinding flash for max dps!!!

EDIT (not included in v 0.43):

- changed trigger range to RANGE_6 for blinding flash, to maximize the dps on the enemy ;-)


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)) || 
						// OR, if we have Inna's and Wind is up, we just spam it to keep it up
						(settings.bMonkInnaSet && GilesHasBuff(SNOPower.Monk_SweepingWind) && GilesUseTimer(SNOPower.Monk_SweepingWind) && playerStatus.dCurrentEnergy >= 6))
                    {
                        return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
                    }

Code:
                    if (!bOOCBuff && playerStatus.dCurrentEnergy >= 15 && hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) &&
                            (iElitesWithinRange[RANGE_6] > 0 || iAnythingWithinRange[RANGE_6] >= 6 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 15f)) &&
                        // Check if sweeping wind is on and at least 1.5 sec active
							(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && GilesHasBuff(SNOPower.Monk_SweepingWind) &&  DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_SweepingWind]).TotalMilliseconds >= 1500)) &&
                            GilesUseTimer(SNOPower.Monk_BlindingFlash) && PowerManager.CanCast(SNOPower.Monk_BlindingFlash))
                    {
                        return new GilesPower(SNOPower.Monk_BlindingFlash, 11f, vNullLocation, iCurrentWorldID, -1, 1, 2, USE_SLOWLY);
                    }
 
Last edited:
Monk Fix Blinding Flash & Sweeping Winds:

- Only cast Blinding Flash if Sweeping Wind is on and lattest cast 1.5 secs ago (to ensure 1 or more stacks are on) and elite or boss or 7+ mobs in range
- Removed blinding flash check of sweeping wind call (unnecessary), we want sweeping wind to be cast before blinding flash for max dps!!!



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)) || 
						// OR, if we have Inna's and Wind is up, we just spam it to keep it up
						(settings.bMonkInnaSet && GilesHasBuff(SNOPower.Monk_SweepingWind) && GilesUseTimer(SNOPower.Monk_SweepingWind) && playerStatus.dCurrentEnergy >= 6))
                    {
                        return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
                    }

Code:
                    // Blinding Flash
                    if (!bOOCBuff && playerStatus.dCurrentEnergy >= 15 && hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) &&
                            (iElitesWithinRange[RANGE_15] > 0 || iAnythingWithinRange[RANGE_15] >= 6 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 15f)) &&
                        // Check if sweeping wind is on and at least 1.5 sec active
							(!hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && GilesHasBuff(SNOPower.Monk_SweepingWind) &&  DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_SweepingWind]).TotalMilliseconds >= 1500)) &&
                            GilesUseTimer(SNOPower.Monk_BlindingFlash) && PowerManager.CanCast(SNOPower.Monk_BlindingFlash))
                    {
                        return new GilesPower(SNOPower.Monk_BlindingFlash, 11f, vNullLocation, iCurrentWorldID, -1, 1, 2, USE_SLOWLY);
                    }
Have you tested this? Is it working? Because if this works you, sir, deserve a sincere wave of thankfulness
 
Have you tested this? Is it working? Because if this works you, sir, deserve a sincere wave of thankfulness

I am using it =)

I didn't include an additional dps boost with a mantra of conviction check, because lot of builds are using the other armor mantra...

Also it would be cool to have a buff count check, to check if 3xsweeping wind is on for max dps in blinding flash. Well with 34% crit chance and 2.15 attacks per second and 1.5sec wait time I have in 99% of the cases 3x the buff
 
Last edited:
I am using mantra of conviction so I cant test this sorry. But it looks fine the code and would make sense in a first quick look...
 
v0.43 is up!

Need feedback from monks to make sure everything is working like it's supposed to
 
Maybe implement a check if you receive damage while each tp casting, increase radius by 10 dynamically each time? Or is that too complex?

It will be awesome something like that, I always have some trouble when TPing out.
 
Jubis: thanks a ton man. You're a rockstar.

BTW I did some more testing on the azmo fireball thing, and I think the sweet spot is 18-20 yards... more if you have less run speed and/or will die if you cant take a single hit.

Not sure if anybody else has toyed with fireball avoidance.

Alternately, while we are adding sliders (ghom) maybe we could add a fireball avoidance slider? Or is that a slippery slope to sliderbar madness?
 
Jubisman,

Can we get this added to the files



GizmoType: DestructibleLootContainer Name: Pinata-5020 ActorSNO: 211861

Its needed so pinatas get hit on whimsyshire profile now that I have published a working one.
 
I think you guys understood it all wrong..
Monks are supposed to cast blinding flash BEFORE sweeping wind, because it's been said a lot of times that when you activate sweeping wind, it takes a "snapshot" of your current damage, so the higher when you cast it the better.
You can look for it, there are many sources saying it..
 
Shouldn't be an issue, just a pain in the arse modifying all of Giles loop statements. Just a mess and so easy to miss one (there are more than a dozen areas to tweak).
 
I think you guys understood it all wrong..
Monks are supposed to cast blinding flash BEFORE sweeping wind, because it's been said a lot of times that when you activate sweeping wind, it takes a "snapshot" of your current damage, so the higher when you cast it the better.
You can look for it, there are many sources saying it..

Yeah I was just going to post a response to that update that was provided. I'm in full understanding now and as it was in v.42, it was working well. My tweak to inna users for blinding flash made sure that blinding flash is always fired FIRST, then sweeping wind if we have 15 or more spirit (85 for non-inna's).

And the spammed sweeping wind maintains the dps from the original blinding flash. It works beautifully. I wouldn't suggest we change it at this point until we start swapping eq right before the cast :)

Non Inna's, feel free to comment. For me (Inna set), it is working as it should now that I understand the calculations.
 
Shouldn't be an issue, just a pain in the arse modifying all of Giles loop statements. Just a mess and so easy to miss one (there are more than a dozen areas to tweak).

too bad giles didn't branch out each class/function to each .cs file, would of been a lot easier to do stuff/fix, not sure why he wanted to make 1 jumbo file.
 
Jubisman,

Can we get this added to the files



GizmoType: DestructibleLootContainer Name: Pinata-5020 ActorSNO: 211861

Its needed so pinatas get hit on whimsyshire profile now that I have published a working one.
Sure. Will be on v0.44
edit: uh, where exactly does this go again?

Wait, are monk routines screwed up again? What did I do wrong? What should I change?
 
Last edited:
Also, on an unrelated note: does anyone have any idea why commands -bnetaccount and -bnetpassword don't seem to work for me?
 
Status
Not open for further replies.
Back
Top