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:
replace with
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
Change it to
Frenzy
to
MONKS
Fist of Thunder - Thunder has posted it works
to
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)
*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);
}
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: