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

Fixes for GilesCombatReplacer [Temporary till hes back]

Bazingaw

New Member
Joined
Jun 17, 2012
Messages
386
Reaction score
4
GILES IS BACK - He is working on a NEW plugin that Compiles all of his previous ones together! Use these fixes till he releases it later this week
*Firstly sorry for the repost, but the thread title seemed rather irrelevant and changing it doesnt actually update the name outside on threaddisplay.*
This thread is to help fix some issues with GilesCombatReplacer temporarily till hes back from vacation.

*For any monks reading this, I suggest you do the Fist of Thunder change suggested in the bottom section "Melee not attacking Large...", it makes your FoT more realiable and always TP to the target its hitting (Also seems to allow you to kill Goblins again), the change despite Giles mentioning he targets the location of where the mob was rather than the mob due to crashes seems to not be happening anymore. Ive run my monks for the past 2hrs with the change and there have been 0 crashes.

*BACKUP ALL FILES EDITED BEFORE ATTEMPTING*
Open GilesComatReplacer

Monk not casting Serenity off CD on fights
*This is modified so it just chain casts serenity on elite pack
Look for:
Code:
                    // Serenity if health is low
                    if ((iMyCachedHealth <= 0.50 || (bMeIncapacitated && iMyCachedHealth <= 0.60)) && powerHotbarAbilities.Contains(SNOPower.Monk_Serenity) && 
                        DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_Serenity]).TotalMilliseconds >= dictAbilityRepeatDelay[SNOPower.Monk_Serenity] &&
                        iMyCachedPrimaryResource >= 10)
                    {
                        return new GilesPower(SNOPower.Monk_Serenity, 0f, vNullLocation, iCurrentWorldID, -1, USE_ANY_TIME, FOR_INSTANT_USE);
                    }

replace with
Code:
                    // Serenity if health is low
                    if (powerHotbarAbilities.Contains(SNOPower.Monk_Serenity) && PowerManager.CanCast(SNOPower.Monk_Serenity) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_Serenity]).TotalMilliseconds >= dictAbilityRepeatDelay[SNOPower.Monk_Serenity] && (iElitesWithinRange > 0 || unitCurrentTarget.bThisElite || unitCurrentTarget.bThisUnique || unitCurrentTarget.bThisRare))
                    {
                        return new GilesPower(SNOPower.Monk_Serenity, 0f, vNullLocation, iCurrentWorldID, -1, USE_ANY_TIME, FOR_INSTANT_USE);
                    }

Melee not attacking LARGE mobs (Siege/Azmodan)

Temporary Fix till Giles is Back
- I noticed all spells besides my bash wasn't working sooo the following fix attempts to change that

BARBS
Bash - Soju has posted it works
Look for
Code:
                    // Bash fast-attacks
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Bash))
                    {
                        iThisHeight += 2f;
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Barbarian_Bash, 10f, new Vector3(vCurrentTargetPosition.X, vCurrentTargetPosition.Y, vCurrentTargetPosition.Z + iThisHeight), iCurrentWorldID, -1, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }

Change it to

Code:
                    // Bash fast-attacks
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Bash))
                    {
                        iThisHeight += 2f;
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Barbarian_Bash, 10f, vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }

Frenzy
Code:
                    // Frenzy rapid-attacks
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Frenzy))
                    {
                        iThisHeight += 2f;
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Barbarian_Frenzy, 10f, new Vector3(vCurrentTargetPosition.X, vCurrentTargetPosition.Y, vCurrentTargetPosition.Z + iThisHeight), iCurrentWorldID, -1, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }

to

Code:
                    // Frenzy rapid-attacks
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Barbarian_Frenzy))
                    {
                        iThisHeight += 2f;
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Barbarian_Frenzy, 10f,  vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }

MONKS
Fist of Thunder - Thunder has posted it works
Code:
                    // Fists of thunder as the primary, repeatable attack
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Monk_FistsofThunder) && PowerManager.CanCast(SNOPower.Monk_FistsofThunder))
                    {
                        // Unsafe mode
                        if (fDistanceFromTarget > 11f && unitCurrentTarget.iThisHitPoints >= 0.6)
                        {
                            return new GilesPower(SNOPower.Monk_FistsofThunder, 30f, vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                        }
                        // Safe mode
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Monk_FistsofThunder, 11f, new Vector3(vCurrentTargetPosition.X, vCurrentTargetPosition.Y, vCurrentTargetPosition.Z + iThisHeight), iCurrentWorldID, -1, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }
to
Code:
                    // Fists of thunder as the primary, repeatable attack
                    if (!bBuffsOnly && !bAvoidanceEmergency && !bMeIncapacitated && powerHotbarAbilities.Contains(SNOPower.Monk_FistsofThunder) && PowerManager.CanCast(SNOPower.Monk_FistsofThunder))
                    {
                        // Unsafe mode
                        if (fDistanceFromTarget > 11f && unitCurrentTarget.iThisHitPoints >= 0.6)
                        {
                            return new GilesPower(SNOPower.Monk_FistsofThunder, 30f, vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                        }
                        // Safe mode
                        if (unitCurrentTarget.diaThisUnit != null && unitCurrentTarget.diaThisUnit.BaseAddress != IntPtr.Zero)
                            vCurrentTargetPosition = unitCurrentTarget.diaThisUnit.Position;
                        return new GilesPower(SNOPower.Monk_FistsofThunder, 11f, vNullLocation, -1, unitCurrentTarget.iThisActorACDGUID, USE_COMBAT_ONLY, FOR_INSTANT_USE);
                    }

General jist is you're changing the location Bash attacks from the coordinates the unit would be to the actual unit, same applies for other primaries if you want to fix it yourself.

Removing Forced-Avoidance post-combat (Reported fix for missing some loot post combat)
Look for the follow and remove it (appears twice)
Code:
                // Force avoidance for 5 seconds if out of combat
                if (bOutOfCombatAvoidance && DateTime.Now.Subtract(lastTimeInCombat).TotalSeconds < 5)
                {
                    FindSafeZone(true);
                    iEmergencyLoops = 0;
                    return RunStatus.Running;
                }
 
Last edited:
Hold on.. Posting a load of fixes is nice and all that, but not testing them yourself first seems like asking for a 20page WTF HALP thread :p
 
No no I've tested em and you even see where it says confirmed? I guess I should have edited it properly instead of copy pasting. But yeah
 
Alright, sorry, I just read 'I haven't tested this myself' about 3 times and started wondering ::D
 
only thing I have noticed is that it does not follow trolls well =\
 
tested this last night and it works well throughout all of Act 3 farming, works on Azmo to but the only issue is i cant kill him haha. no pool avoidance rocked me.
 
im editing the code ill check it out now, just too bad looting doesnt work :/
 
@Satan: The looting could be being broke cause of the post-5 second combat avoidance looking for the // Post-5 SEcond tag in CombatRepalcer and delete the If statement and coide block there
 
@Satan: The looting could be being broke cause of the post-5 second combat avoidance looking for the // Post-5 SEcond tag in CombatRepalcer and delete the If statement and coide block there

i think its the line below this line "// Force avoidance for 5 seconds if out of combat"
 
Have you gotten it to not keep soft crashing DB randomly after elite fights? With the latest DB build and the latest guilescr I get those DB issues on random intervals (read errors in the DB log). I've switched back to Belphegor and get 0 crashes but it is really bad compared to Guiles. I die like once an hour or so (I never die with Guiles), but at least I don't have to keep relaunching DB.
 
I haven't had a single crash since 221 was out and I fully updated all plugins :S Are you sure all your plugins are updated etc and did you doa fresh install too
 
Yeah totally fresh install, redownloaded all plugins. I tested it on 2 different machines. I keep getting these:
[02:49:09.234 D] System.AccessViolationException: Could not read bytes from 00000000 [299]!

It seems to happen just after fights with Elites (not all the time, Like if it's avoiding arcane sentries after the Elites are dead it seems to happen a lot).

With Belphagor I haven't gotten these errors at all.
 
Hmm is this after you performed the fixes on the front page, or was this occuring prior to even attempting the fixes? If it has been happening prior to the fixes am not really sure as to what could be causing it :S
 
I haven't applied any fixes to guiles yet. I just figured everyone else was having these crashes too. I'm pretty sure it's an issue of sorts with guilescombat replacer since I don't get them at all with Belphagor.
 
Hmmmm I know for a fact they're working at the moment without any crashes reported by a lot of people. Hmmmmmm its either something possibly with your skill setup trying to uise something unavail at the end of combat or theres something wrong in the install we're both not noticing. Maybe try my extract and play method and see if it gets it running that way (its a post somewhere 2nd page of the general)
 
I had 4 crashes in 5 hours yesterday, now he's been running 10hours straight without a single crash.. Random is random :p
 
I just did yet another fresh install, redownloaded everything from scratch including all plugins and still get these crashes. It only happens with GilesCombatReplacer (GilesCombatReplacer 0.5.3.2)
I have radonics profile plugin and GilesWorldObjectHandler 1.7. At this point I have to assume it's some sort of bug with Giles as I ran for about 5 hours with Belph (+WorldObjectHandler and Radonics profile manager) and didn't get any crashes.

Once I get one of these crashes, I have to close out DB and relaunch or else it just sits there. Reloading a profile does not get it going.


[22:46:47.156 D] System.AccessViolationException: Could not read bytes from 00000000 [299]!
at Zeta.MemoryManagement.ExternalProcessReader.ReadBytes(IntPtr address, Int32 count, Boolean isRelative)
at Zeta.MemoryManagement.ExternalProcessReader.Read[T](IntPtr address, Boolean isRelative)
at Zeta.Internals.Actors.DiaObject.()
at Zeta.Internals.Actors.DiaObject.get_Distance()
at Zeta.CommonBot.Logic.BrainBehavior.(DiaObject )
at System.Linq.Enumerable.Count[TSource](IEnumerable`1 source, Func`2 predicate)
at Zeta.CommonBot.Logic.BrainBehavior.?(Object )
at Zeta.TreeSharp.Decorator.CanRun(Object context)
at Zeta.TreeSharp.Decorator..()
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..()
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.Common.HookExecutor.Run(Object context)
at Zeta.TreeSharp.Action.RunAction(Object context)
at Zeta.TreeSharp.Action..()
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.TreeSharp.PrioritySelector..()
at Zeta.TreeSharp.Composite.Tick(Object context)
at Zeta.CommonBot.BotMain.()
 
tested it with azmodan with my monk, it attacks them, but very slowly.. hits, then waits, then hits..
 
Back
Top