• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Bug - Casters Spam Casting When OOM (1 Viewer)

bb4

Well-known member
Joined
Feb 19, 2016
RedCents
1,652¢
Casters will spam nukes or buffs or heals even when OOM. Most commonly happens after a rez.
 
Can you post a debug log? There is a check in the castwhat/castspell that checks if your character has enough mana or not. Not sure why your characters are trying to cast with out enough mana. You should be getting a message that they don't have the mana to cast the spell.

What message are you getting?
 
actually there is not a check in the castwhat for mana.

Rich (BB code):
| -------------------------------------------------------------------------------------
| SUB: CastWhat
|*****************************************************************************************************************************************|
    Sub CastWhat(string castWhat,int WhatID,string sentFrom)
        /if (${Debug}) /echo CastWhat Enter Line#: ${castWhat} ${WhatID} ${sentFrom} ${Macro.CurLine}
        /declare ReadyToCast int local 0
        /varset CastResult CAST_NO_RESULT
        /if (${Me.AltAbility[${castWhat}]} || ${Me.CombatAbility[${castWhat}]} || ${FindItem[=${castWhat}].ID} || ${Me.Ability[${castWhat}]} || ${Me.Book[${castWhat}]}) { 
            /varset ReadyToCast ${Select[TRUE,${Me.AltAbilityReady[${castWhat}]},${Me.ItemReady[=${castWhat}]},${Me.CombatAbilityReady[${castWhat}]},${Me.AbilityReady[${castWhat}]},${Me.SpellReady[${castWhat}]}]} 
            /if (${ReadyToCast}) {
                /if (${ReadyToCast}==1 && ${Me.AltAbilityReady[${castWhat}]}) /call CastAA "${castWhat}" ${WhatID}
                /if (${ReadyToCast}==2 && ${Me.ItemReady[=${castWhat}]}) /call CastItem "${castWhat}" ${WhatID}
                /if (${ReadyToCast}==3 && ${Me.CombatAbilityReady[${castWhat}]}) /call CastDisc "${castWhat}" ${WhatID}
                /if (${ReadyToCast}==4 && ${Me.AbilityReady[${castWhat}]}) /call CastSkill "${castWhat}" ${WhatID}
                /if (${ReadyToCast}==5 && ${Me.SpellReady[${castWhat}]} && ${Me.Book[${castWhat}]}) /call CastSpell "${castWhat}" ${WhatID} ${sentFrom}
            } else {
                /if (${Me.Book[${castWhat}]} && !${Me.Gem[${castWhat}]} && ${ReadyToCast}==0) {
                    /call CastMem "${castWhat}" ${sentFrom}
                    /varset ReadyToCast 6
                    /call CastSpell "${castWhat}" ${WhatID} ${sentFrom}
                }
            }
        }    
        /if (${Macro.Return.Equal[CAST_SUCCESS]}) /doevents
        |Remem spell originally in Miscgem slot except if combat or just rezd
        /if (${MiscGemRemem} && ${ReadyToCast}==6) /call CastReMem
        /if (${Debug}) /echo CastWhat Leave Line#: ${Macro.CurLine}
    /return ${CastResult}

but there is one in castspell but it has been commented out
Rich (BB code):
    Sub CastSpell(string WhatSpell,int WhatID,string sentFrom)
        /if (${Debug}) /echo CastSpell Enter Line#: ${WhatSpell} ${WhatID} ${sentFrom} ${Me.GemTimer[${WhatSpell}]} ${Macro.CurLine}
        /declare MaxTryNum int local 2
        /if (${sentFrom.Equal[Pull]}) /varset MaxTryNum 1
        /if (${IAmABard}) {
            /call CastBard "${WhatSpell}" ${WhatID} CastSpell
            /return  ${CastResult}  
        }
        | /if (!${IAmABard} && ${Spell[${WhatSpell}].Mana}<=${Me.CurrentMana}) /return 
        /if (!${Target.CanSplashLand} && ${Spell[${WhatSpell}].TargetType.Equal[Free Target]}) {
           /echo Splash Spell will not cast at targets location. Skipping ${WhatSpell}
           /return
        }
        /if (${Target.ID}!=${WhatID} && ${Spell[${WhatSpell}].TargetType.NotEqual[Self]} && ${Spawn[id ${WhatID}].ID}) /call CastTarget ${WhatID}
        /if (${Me.Gem[${WhatSpell}]}) {
        /if (${Me.GemTimer[${WhatSpell}]}==0) {
            /casting "${WhatSpell}" -maxtries|${MaxTryNum}
            /while (${Cast.Status.Equal[C]} && ${CastResult.NotEqual[CAST_CANCELLED]}) {
                /if (${CastingInterruptOn}) {
                    /if (${sentFrom.Equal[SingleHeal]}) {
                       /call CastInteruptHeals "${WhatSpell}"
                    } else /if (${Select[${sentFrom},dps,gom,burn]}>0) {
                       /call CastInteruptDPS "${WhatSpell}"
                    } else /if (${Select[${sentFrom},buffs,buffs-nomem]}>0) {
                       /call CastInteruptBuffs "${WhatSpell}"
                    }
                }
                /delay 5
            }
            /call CastWait "${WhatSpell}"
            /if (${sentFrom.Equal[Pull]} && ${PullAggroTargetID}) /varset CastResult CAST_SUCCESS
            | READ THIS. For some reason Cast.Result is still equal to CAST_SUCCESS after /interrupt, maybe macro to fast for plugin to update.
            | So checking for CastResult NotEqual CAST_CANCELLED fixes the issue, and fixes the casting on corpse messages even though the spell was canceled. 
            /if (${CastResult.NotEqual[CAST_CANCELLED]}) /varset CastResult ${Cast.Result}
        }
        } else {
            /echo Skip Casting ${WhatSpell}. Sell Not Memed.
            /varset CastResult CAST_CANCELLED
        }
        /if (${Debug}) /echo CastSpell Leave ${Me.GemTimer[${WhatSpell}]} ${CastResult} ${Cast.Result} Line#: ${Macro.CurLine}
    /return  ${CastResult}

i edited my own to test in the castwhat i felt htat was more appropiate there since all the castspell do is return it to there if you dont have mana.
Rich (BB code):
                /if (${ReadyToCast}==5 && ${Me.SpellReady[${castWhat}]} && ${Me.Book[${castWhat}]} && ${Me.CurrentMana} > ${Spell[${castWhat}].Mana}) /call CastSpell "${castWhat}" ${WhatID} ${sentFrom}
 
Testing this now. Will edit with feedback.

Edit: Seems to be working. I'll follow up if it starts doing this again, but at least on the buffing front, it no longer tries to cast a buff he clearly has no mana for and triggers his med cycle.
 
Bug - Casters Spam Casting When OOM

Users who are viewing this thread

Back
Top
Cart