Odd Issues

1stcall

New member
Joined
Jun 22, 2007
Messages
47
Reaction score
0
Points
0
Guys I typically use the assist.mac on my bard, and then /twist my songs, lately, the bard and my shaman <super low levels on FD server> don't move t othe mob. they are also played on my same computer as my paladin and my ranger who both move to the mob and adjust their positioning / follow it to kill.

I checked for a .ini to see if something was turned off, not being an expert i googled / searched various forums and I guess I can't get the correct question to find the problem.

So the question is, Why on the same computer would some of my characters move to melee engage while assisting and others would not?

Also, Anyone familar with the bard script? I've been unable to find out where / how to input my combat songs / melee songs.

Thanks for taking a look and educating this poor fool!
 
We really need more info to help you with this. Would you be able to post the macro you are using?
 
need more info as they said.

could be stickrange=

that varies by character

and "the bard script" is pretty undescriptive
 
Current macro being used in regards to movement.

Code:
|Simple Assist Macro v2.0
|Ripped from Various Macro's
|By HardOne 
|Edited by Liaohowie 2009.07.28

#event ImDead          "#*#You have been slain by#*#"
#event ImDead          "Returning to home point, please wait..."
#event ImDead          "#*#Returning to Bind Location#*#"

Sub Main
    |SYSTEM VARS - DO NOT MODIFY.
    /declare maintank          string outer    ${Param0}
    /declare attackat             int outer     ${Param1}
    /declare attackid             int outer
    /declare RT_MyXLOC          int outer    ${Me.X} 
    /declare RT_MyyLOC          int outer    ${Me.Y}
    /declare MyHeading             int outer     ${Me.Heading.DegreesCCW}
    /declare Camp_Zone             int outer    ${Zone.ID}
        
    /if (!${Param0.Length} && !${Param1.Length}) {
        /echo You must start the macro including the main assist's name and the percent to attack after.
        /echo i.e.:
        /echo /mac assist Ubertank 90
        /end
    }
    
    /echo AFK AssistTank Running. Assisting ${Param0} at ${Param1}%
    /echo Camp Set to: ${Me.X} ${Me.Y}, Facing: ${Me.Heading.DegreesCCW} in ${Zone}
    /echo Ensuring MQ2Melee is loaded
    /plugin mq2melee
    /delay 2s
    /squelch /target clear
    /squelch /assist off


    :mainloop
        /if (!${SpawnCount[${maintank}]}) {
            /echo Maintank Dead/Missing. Delaying 30 seconds and restarting.
            /delay 30s
            /goto :mainloop
        }
        /assist ${maintank}
        /delay 5
                /if (!${Target.ID} || !${Target.Type.Equal[NPC]}) /goto :mainloop
        /if (${Target.ID} && ${Target.Type.Equal[NPC]} && ${Target.PctHPs}<${attackat}) /call Attacking
        /doevents
    /goto :mainloop
    /end

Sub Attacking
    /echo Attacking ${Target.CleanName}!
    /varset attackid ${Target.ID}

    :attackloop
        /if (!${Target.ID}) /goto :endcombat
        /if (${Target.ID}!=${attackid}) /goto :newtarget
        /if (!${Me.Combat}) /attack on
        /doevents
    /goto :attackloop


    :newtarget
    /echo Somehow got new target. Re-assisting maintank.
    /squelch /target clear
    :endcombat
    /varset attackid 0
    /delay 2s
    /if (${Camp_Zone} == ${Zone.ID} && !${Me.CombatState.Equal[COMBAT]}) /call MoveToLoc ${RT_MyyLOC} ${RT_MyXLOC}
    /face fast heading ${MyHeading}
/return

Sub MoveToLoc(MoveToY, MoveToX) 
   /declare running int local 
   /declare distanceNow float local 
   /declare distanceBefore float local 
   /declare distanceModifier int local 
   /declare distanceTimer timer 15 
   /varset running 0 
   /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
   /varset distanceModifier 1 
   /echo Moving to Location: ${MoveToY}, ${MoveToX}. 
   /echo Distance: ${distanceBefore} 
   :moveToLocation  
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<10) { 
         /keypress forward 
         /return 
      } 
      /if (${distanceTimer}==0) { 
         /if (${Me.Sneaking}) { 
            /varset distanceModifier 2 
         } else { 
            /varset distanceModifier 1 
         } 
         /varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         /if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) { 
         /call HitObstacle 
         } 
         /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         /varset distanceTimer 15 
      } 
      /if (${running}==0) { 
         /keypress forward 
            /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>10) { 
               /varset running 1 
               /keypress forward hold 
            } 
      } else { 
         /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<11) { 
            /varset running 0 
            /keypress forward 
         } 
      } 
      /goto :moveToLocation 
/return

Sub HitObstacle 
   /echo Obstacle hit, moving around it... 
   /keypress forward 
   /keypress back hold 
   /delay 3 
   /keypress back 
   /if (${Math.Rand[2]}) { 
      /keypress strafe_right hold 
   } else { 
      /keypress strafe_left hold 
   } 
   /delay 5 
   /keypress strafe_right 
   /keypress strafe_left 
   /keypress forward hold 
/return

Sub Event_ImDead
    /doevents
    /if (${Stick.Status.Equal[ON]}) /squelch /stick off
    /keypress forward
    /keypress back
    /keypress Left
    /keypress Right
    /delay 2s
    /echo I've been Killed! Going into Sleep Mode...
    /beep
    /beep
    :DeathSleep
            /doevents
            /delay 5s
            /if (${Me.State.Equal[HOVER]} || ${Zone.ID} != ${Camp_Zone}) /goto :DeathSleep
/return
 
Last edited by a moderator:
Its odd, most of my characters move around and engage, there are 2 that just stand there and turn on auto attack.

Posting the bard script as well.
 
This script I'm unable to figure out how to get the bard to play a list of combat songs, and a list of Resting songs.

The character (the bard) also does not move to engage the mob at all = (.


Code:
#turbo 40

| #include spell_routines.inc

#define MyIni ${Me.CleanName}_${Me.Class.ShortName}.ini

#event Anchor            "#*#AnchorMe#*#"
#event IgnoreMob                   "#*# ignoremob #1#"
#event StunImmuneMob        "#*# stunimmunemob #1#"
#event SnareImmuneMob           "#*# snareimmunemob #1#"
#event SlowImmuneMob            "#*# slowimmunemob #1#"
#event CharmImmuneMob        "#*# charmimmunemob #1#"
#event MezImmuneMob        "#*# mezimmunemob #1#"
#event FireImmuneMob            "#*# fireimmunemob #1#"
#event ColdImmuneMob            "#*# coldimmunemob #1#"
#event MagicImmuneMob           "#*# magicimmunemob #1#"
#event PoisonImmuneMob          "#*# poisonimmunemob #1#"
#event DiseaseImmuneMob         "#*# diseaseimmunemob #1#"
#event SlowImmune        "Your target is immune to changes in its attack speed#*#"
#event SnareImmune        "Your target is immune to changes in its run speed#*#" 

#event MezImmune        "Your target cannot be mesmerized#*#"
#event MezOn            "#*#falls unconscious#*#"
#event MezOff            "Your |${MezSong}| spell has worn off#*#"
#event MezResist         "Your target resisted the |${MezSong|#*#" 

#event Gate                       "|${Target.DisplayName}| begins to cast the gate spell#*#"
#event Gate                       "|${Target.DisplayName}| begins to cast a spell. <complete heal="">#*#"

#event EQBC                    "<#1#> #2#"
#event EQBC                    "[#1#(msg)] #2#"

#event Hit                  "#*# YOU for #*#"
#event Hit                  "#*# YOU, but #*#"
#event InDoors                 "#*#You can only cast this spell in the outdoors#*#"
#event InDoors                 "#*#This spell does not work here#*#"
#event InDoors            "#*#You are already on a mount#*#"
#event InDoors                 "#*#You can not summon a mount here#*#"
    
#event SongCheck        "#*#${SongCheck}#*#"
#event SongChange        "#*#${SongChange}#1# #2#"

#event RageOff              "#*#is no longer enraged#*#"
#event RageOn               "#*#has become ENRAGED#*#"
#event Zoned                   "You have entered#*#"
#event Zoned                   "LOADING, PLEASE WAIT..."

#event BurnOnTrigger        "#*# |${BurnOnTrigger}|#*#"
#event BurnOffTrigger        "#*# |${BurnOffTrigger}|#*#"



Sub Main
/squelch /alert add 6 Arcane Distillect
/squelch /alert add 6 SKUPortalGunInvisMan
/squelch /alert add 6 Echo of 
/squelch /alert add 6 Guild Banner

/squelch /twist off
/call Initialize
/call PluginCheck
/call Gem

/if (${UseMez}) /echo Mez Spell: ${MezSong}
/if (${UseAEMez}) /echo AE Mez Spell: ${AEMezSong}
/echo Rest Songs: ${PlayList${RestSongList}}
/echo Combat Songs: ${PlayList${CombatSongList}}



:MainLoop
/doevents
/if (${Me.Hovering}||${Window[tradewnd].Open}||${Window[lootwnd].Open}||${Me.State.Equal[BIND]}||${Me.Invis}||${Me.Feigning}) /goto :MainLoop
/if (${UseSelos} && !${Me.Buff[Selo's Sonata].ID} && !${Me.Invis}) /aa act "Selo's Sonata"
/if (!${Me.Invis} && ${Me.PctHPs}<${FadeAt}) /call Fade
/if (${Me.XTarget[3].ID} && ${UseAEMez}) /call AEMez
/if (${Me.XTarget[2].ID} && ${UseMez}) /call Mez
| /if (${Me.XTarget[1].ID} && ${UseCharm}) /call Charm
/if (!${Me.XTarget}) /call Rest
/if (${Spawn[${Me.XTarget[1].ID}].Type.Equal[npc]} && ${Spawn[${Me.XTarget[1].ID}].PctHPs}<100 && ${Me.XTarget[1].ID} && (${Me.XTarget}==1||!${UseMez})) /call Combat
/doevents
/goto :MainLoop

/return

Sub Combat
/if (!${Me.XTarget[1].ID} ) /return
/call AAs
/call ClickyNuke
/call Aura
/if (${UseSlow}) /call Slow
| /call DPS
/if (${Attacking} && ${Target.ID}==${Me.XTarget[1].ID}) /return 
/if (!${Me.XTarget[1].ID}||!${Target.ID}) /call ClearTarget
/if ((${Twist.List.NotEqual[${PlayList${CombatSongList}} ]}||!${Twist}) && !${Burning})  /call CombatSongs
/if (${Spawn[${Me.XTarget[1].ID}].ID}) /tar ${Spawn[${Me.XTarget[1].ID}]} npc noalert 6
/if (!${Me.CombatState.Equal[COMBAT]} && ${Spawn[${Me.XTarget[1].ID}].PctHPs}<${MeleeAt} && ${Target.ID}==${Me.XTarget[1].ID}) /attack on
/if (${Spawn[${Me.XTarget[1].ID}].Distance}<100 && ${Spawn[${Me.XTarget[1].ID}].PctHPs}<${MeleeAt} && ${Spawn[${Me.XTarget[1].ID}].Type.Equal[npc]} && ${UseMelee}) {
    /varset AttackCheck 1s
    /face fast nolook
    /attack on
    /pet Attack
    /varset PetAttacking TRUE
    /varset Attacking TRUE
    }
    
/if (!${FindItem[Orb of Tishan].Timer} && ${FindItem[Orb of Tishan].InvSlot} && ${UseTashOrb} && ${Debuffed}==FALSE && ${Target.Buff[Howl of Tashan].ID}==NULL && ${Attacking} && !${Spawn[group enc].ID}) {
        /squelch /twist 0
        /casting "Orb of Tishan" item
        /delay 35
        /echo Tash: ${Target.Name}
        /if (${Macro.Return.Equal[CAST_SUCCESS||CAST_NOTHOLD]}) {
            /varset Debuffed TRUE
            }
        
        /delay 5
        /squelch /twist ${PlayList${CombatSongList}}
        }

/return


Sub Rest
/if (${Twist.List.NotEqual[${PlayList${RestSongList}} ]} || !${Twist}) /call RestSongs
/call ClearTarget
/call Aura
/call CheckBuffs

/return



Sub AAs
|       /attack on
    /if (${Target.ID}!=${Me.XTarget[1].ID}||${IgnoreList.Find[${Spawn[${Me.XTarget[1]}]}]}||${IgnoreList.Find[${Target.CleanName}]}||!${Target.ID})     /return    
    /declare a int local
        /for a 1 to ${AATotal} {
            /if (${Target.PctHPs}<${StopAA${a}At}) /return
            /if ((${Me.AltAbility[${AA${a}}].ID} && ${Me.AltAbilityReady[${AA${a}}]}||${Cast.Ready[${AA${a}}]}) && ${UseAA${a}} && ${Target.ID}==${Me.XTarget[1].ID} && ${Target.PctHPs}<${UseAA${a}At} && (${Target.Named}||${Target.Name.Find[#]}||!${NamedOnlyUseAA${a}}) && ${SpawnCount[${UseAA${a}IfNearby} radius 70 zradius 15]}>=${UseAA${a}IfNearbyAmt} && ${Me.PctHPs}<=${UseAA${a}AtMyHPs}) {
            /casting "${AA${a}}" ${AAGem${a}}
            /if (${Me.AltAbilityReady[${AA${a}}]}) /aa act "${AA${a}}"
            /delay 3
            /if (!${Me.AltAbilityReady[${AA${a}}]}) {
                /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \apAA: ${AA${a}}
                /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo AA: ${AA${a}}
                }
            }
        }
        /next a
/return


Sub Aura
      /if (${Me.Invis} ||${Me.Feigning}||${Me.CombatState.Equal[COMBAT]}) /return
    /if (!${Me.Aura[${AuraName1}].ID} && !${Me.Song[${AuraName1}].ID} && ${UseAura1}) {
        /squelch /twist 0
        /delay 5s ${Me.SpellReady[${AuraSong1}]}
        /squelch /twist once ${AuraGem1}
        /echo Aura: ${AuraSong1}
        /delay 35
        /if (${Twist.Current}==${AuraGem1}) /squelch /twist
        
    }
    /if (!${Me.Aura[${AuraName2}].ID} && !${Me.Song[${AuraName2}].ID} && ${UseAura2}) {
        /squelch /twist 0
        /delay 5s ${Me.SpellReady[${AuraSong1}]}
        /squelch /twist once ${AuraGem2}
        /echo Aura: ${AuraSong2}
        /delay 35
        /if (${Twist.Current}==${AuraGem2}) /squelch /twist
    }
/return

Sub CheckBuffs
  /if (${Me.Invis} ||${Me.Feigning}|| ${Me.CombatState.Equal[COMBAT]}||${BuffWait}) /return
  
   /if (${SelfBuffTotal}) {
    /declare sb int local
        /for sb 1 to ${SelfBuffTotal} {
            /if (${Spell[${SelfBuff${sb}}].Stacks} && !${Me.Buff[${SelfBuff${sb}}].ID}) {
                /stopcast
                /if (${Twist}) /squelch /twist off
                /casting "${SelfBuffSpell${sb}}" ${SelfBuffGem${sb}}
                /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \awBuff: ${SelfBuff${sb}}
                /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo Buff: ${SelfBuff${sb}}
                /delay 33
                }
        }
        /next sb
    }
/return



Sub ClearTarget
   /varset Slowed FALSE
   /varset Debuffed FALSE
   /varset Attacking FALSE
   /varset PetAttacking FALSE
   /varset Raged FALSE
   /varset FightStartTime 0
/return


Sub ClickyNuke
  /if (${IgnoreList.Find[${Spawn[${Target.CleanName}]}]}) /return
  /declare i int local
  /for i 1 to ${ClickyNukeTotal} {
  /if (${Target.PctHPs}<=${UseClickyNuke${i}At} && ${Target.PctHPs}>=${StopClickyNuke${i}At} && ${Target.ID} && ${Target.Type.Equal[NPC]}) {
       /if ((!${NamedOnlyClickyNuke${i}}||${Target.Named}||${Target.Name.Find[#]}) && !${FindItem[${ClickyNuke${i}}].Timer} && !${ClickyNukeTimer${i}}) {
          /if (${FindItem[${ClickyNuke${i}}].InvSlot}) {
              /squelch /twist 0
            /casting "${ClickyNuke${i}}" item
                /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \atClicky: ${ClickyNuke${i}}
            /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo Clicky: ${ClickyNuke${i}}
            /delay 3s !${Me.Casting.ID}
            /varset ClickyNukeTimer${i} ${ClickyNukeTimer${i}.OriginalValue}
            /squelch /twist ${PlayList${CombatSongList}}
            }
            }
        }
   }
    /next i
/return

Sub CombatSongs
   /if (${UseMez} && ${Me.XTarget}>1||!${Me.XTarget} ) /return
    /if (${Twist.List.NotEqual[${PlayList${CombatSongList}}]} && ${Me.XTarget}==1) {
        /squelch /twist ${PlayList${CombatSongList}}
        /echo Combat Songs: ${PlayList${CombatSongList}}
        /delay 1s
        }
/return

Sub DPS
  /if (${Me.XTarget[1].ID}!=${Target.ID}||!${UseSmartDPS}||${Target.PctHPs}>99) /return
  /if (!${FightStartTime}) /varset FightStartTime ${MacroQuest.Running}
  /varcalc FightTotalTime (${MacroQuest.Running}-${FightStartTime})/1000
  /varcalc FightRemainingTime (100/((100-${Target.PctHPs})/(${FightTotalTime}+.0001))-${FightTotalTime})
  /if (${AnnounceTimeRemaining} && !${AnnouncedTimer} && ${FightRemainingTime}>1) {
    /echo ~ ${Math.Calc(${FightTotalTime}/1000)} Seconds so far
    /echo ~ ${FightRemainingTime} Seconds remaining
    /varset AnnouncedTimer ${AnnouncedTimer.OriginalValue}
    }

/return

Sub Fade
    /if (${Me.PctHPs}<${FadeAt} && !${Me.Invis} && ${Me.CurrentMana}>900) {
        /squelch /attack off
        /squelch /twist off
        /alt activate 212
        /echo Faded!
        /varset FadedTimer ${FadedTimer.OriginalValue}
        }
/return

Sub Grubers
 /if (!${UseGrubers} ||${Me.Invis}||${Me.Buff[${GrubersRecourseName}].ID}||${Me.PctMana}<${GrubersMyMana}) /return
 /declare i int local
    /for i 0 to ${Group} {
        /if (${Group.Member[${i}].PctHPs}<${GrubersHPAt} && ${Group.Member[${i}].ID}||${Group.Member[${i}].PctMana}<${GrubersManaAt} && ${Group.Member[${i}].Class.ShortName.NotEqual[MNK||ROG||WAR||BER||BRD]}&& ${Group.Member[${i}].Type.Equal[PC]} && ${Group.Member[${i}].ID}) {
            /if (!${Me.Buff[${GrubersRecourseName}].ID} && ${Me.SpellReady[${GrubersName}]}) {
                    /stopcast
                    /squelch /twist once ${GrubersGem}
                    /echo Crescendo: ${GrubersName}
                    }
                }
            
        }
     
     /next i
/return

Sub HitObstacle 
/echo Obstacle hit, moving around it... 
/keypress forward 
/keypress back hold 
/delay 3 
/keypress back 
/if (${Math.Rand[2]}) { 
/keypress strafe_right hold 
} else { 
/keypress strafe_left hold 
} 
/delay 5 
/keypress strafe_right 
/keypress strafe_left 
/keypress forward hold 
/return


Sub MoveToLoc(MoveToY, MoveToX) 
   /declare running int local 
   /declare distanceNow float local 
   /declare distanceBefore float local 
   /declare distanceModifier int local 
   /declare distanceTimer timer 15 
   /varset running 0 
   /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
    /if (${distanceBefore}<30||${distanceBefore}>150) /return
   /varset distanceModifier 1 
   /echo Moving to Location: ${MoveToY}, ${MoveToX}. 
   /echo Distance: ${distanceBefore} 
   :moveToLocation  
      /face fast nolook loc ${MoveToY},${MoveToX} 
      /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<10) { 
         /keypress forward 
    /face fast heading ${MyHeading}
         /return 
      } 
      /if (${distanceTimer}==0) { 
         /if (${Me.Sneaking}) { 
            /varset distanceModifier 2 
         } else { 
            /varset distanceModifier 1 
         } 
         /varset distanceNow ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         /if (${Math.Calc[${distanceBefore}-${distanceNow}]}<${Math.Calc[10/${distanceModifier}]}) { 
         /call HitObstacle 
         } 
         /varset distanceBefore ${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]} 
         /varset distanceTimer 15 
      } 
      /if (${running}==0) { 
         /keypress forward 
            /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}>10) { 
               /varset running 1 
               /keypress forward hold 
            } 
      } else { 
         /if (${Math.Distance[${Me.Y},${Me.X}:${MoveToY},${MoveToX}]}<11) { 
            /varset running 0 
            /keypress forward 
         } 
      } 
      /goto :moveToLocation 
    
/return




Sub RestSongs
   /if (${Me.Invis}||${Me.PctHPs}<${FadeAt}||${Me.XTarget[2].ID} || ${Spawn[${Me.XTarget[1].ID}].Type.Equal[npc]} || ${Twist.List.Equal[${PlayList${RestSongList}} ]} && ${Twist}) /return
    /if (${Twist.List.NotEqual[${PlayList${RestSongList}} ]} && !${Me.XTarget}||${Twist.List.Equal[${PlayList${RestSongList}} ]} && !${Twist}) {
        /squelch /twist 0
        /delay 1s
        /squelch /twist ${PlayList${RestSongList}}
        /echo Rest Songs: ${PlayList${RestSongList}}
        /delay 1s
        /call MoveToLoc ${YLOC} ${XLOC}
        }
/return


Sub Slow
/if (!${UseSlow}||${SlowTimer}||${SlowImmuneList.Find[${Target.CleanName}]}||${Target.Buff[Turger's Swarm].ID}||${Target.Buff[${SlowSong}].ID}||${Target.Buff[Desolate Deeds].ID}||${Target.Buff[Dreary Deeds].ID}||${Target.Buff[Counterbias Slow Rk. II].ID}||${Target.Buff[Curtailing Helix Rk. II].ID}) /return
/if (${Slowed}==FALSE && ${Attacking}) {
        /squelch /twist 0
        /squelch /twist once ${SlowGem}
        /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \arSlow: ${SlowSong}
        /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo Slow: ${SlowSong}    
        /delay 35
        /varset SlowTimer ${SlowTimer.OriginalValue}
        /if (${Target.Buff[${SlowSong}].ID}) /varset Slowed TRUE
        /delay 5
        /squelch /twist ${PlayList${CombatSongList}}
        }
/return

            

 
Sub Gem
/declare g int local
/declare cs int local
/declare rs int local

      /for g 1 to 12 {
        |/if (${Me.Gem[${g}].ID}==${Spell[${AEMezSong}].ID}) /varset AEMezGem ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${MezSong}].ID}) /varset MezGem ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${AuraSong1}].ID} && ${UseAura1}) /varset AuraGem1 ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${AuraSong2}].ID} && ${UseAura2}) /varset AuraGem2 ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${CharmSong}].ID} && ${UseCharm}) /varset CharmGem ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${GrubersName}].ID} && ${UseGrubers}) /varset GrubersGem ${g}
        /if (${Me.Gem[${g}].ID}==${Spell[${SlowSong}].ID} && ${UseSlow}) /varset SlowGem ${g}
        
        }
    /next g
/return



Sub AEMez
    
    /if (${Me.XTarget}<2||${AEMezzed}||${Me.CurrentMana}<500) /return
    /varset aemezcount 0
    /declare a int local 
    
    /for a 1 to 5
    /if (${Spawn[${Me.XTarget[${a}].ID}].LineOfSight} && ${Spawn[${Me.XTarget[${a}].ID}].Distance}<${AEMezRange}) /varcalc aemezcount ${aemezcount}+1
    /next a

    /if (${Me.XTarget}>2 && ${UseAEMez} && ${aemezcount}>=3) {
                /squelch /twist off
                /delay 3
                /squelch /twist ${AEMezGem}
                /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \amAE Mez: ${AEMezSong}
                /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo AE Mez: ${AEMezSong}
                /delay 35
                /if (${Target.Buff[${AEMezSong}].ID})     /varset AEMezzed ${AEMezzed.OriginalValue}
                }
   
/return


Sub Mez
   /if (!${UseMez}||!${Me.XTarget}||${Me.XTarget}<1) /return
   /if (${Me.XTarget[3].ID} && ${UseAEMez} && !${AEMezzed}) /call AEMez
   /declare i int local
   :MezLoop
   /for i 2 to 7 {
    /if (${Target.ID}==${Me.XTarget[1].ID}||${Me.XTarget[${i}].ID}==${Me.ID}||${Me.XTarget[${i}].Type.NotEqual[Auto Hater]}) /next i
    /if (!${Defined[MezTimer${Me.XTarget[${i}].ID}]}) { 
            /declare MezTimer${Me.XTarget[${i}].ID} timer outer 0
            }
    /if (${MezTimer${Me.XTarget[${i}].ID}} && ${i}<8||${MezImmuneList.Find[${Me.XTarget[${i}]}]}) /next i
    /if (!${MezTimer${Me.XTarget[${i}].ID}} && ${Spawn[${Me.XTarget[${i}].ID}].LineOfSight} && ${Spawn[${Me.XTarget[${i}].ID}].Distance}<${MezRange} && ${Spawn[${Me.XTarget[${i}].ID}].Level}<=${MaxMezLevel} && ${Spawn[${Me.XTarget[${i}].ID}].PctHPs}>80) {
        /squelch /twist off
        /tar ${Spawn[${Me.XTarget[${i}].ID}]} noalert 6
        /delay 4
        /stopcast
        | /bc Mezzing ${Target.CleanName}
        /squelch /twist off
        /squelch /twist once ${MezGem}
        /if (${UseColorEcho}  && ${EchoAnnounce}) /cecho \a-mMez: ${MezSong}
        /if (!${UseColorEcho}  && ${EchoAnnounce}) /echo Mez: ${MezSong}
        /delay 34
        /varset BuffWait 5s
        /doevents MezOn
        /doevents MezResist
        }
      }
    /next i
    /if (${Me.XTarget[3].ID} && ${UseAEMez} && !${AEMezzed}) /call AEMez
    /if (${Me.XTarget}>1 || (${Me.XTarget}==1 && !${Me.XTarget[1].ID})) /goto :MezLoop

/return

Sub Charm(int charmid)
    /if (${Me.Pet.ID}||!${UseCharm}||!${CharmGem}) /return
    /declare i int local
    /for i 2 to 7 {
        /if (${charmid} && ${Spawn[${charmid}].Level}<=${MaxCharmLevel} && !${CharmImmuneList.Find[${Spawn[${charmid}].CleanName}) /varset i ${charmid}
        /if (${Me.XTarget[${i}].ID} && ${Spawn[${Me.XTarget[${i}].ID}].Level}<=${MaxCharmLevel}&& ${Spawn[${Me.XTarget[${i}].ID}].Distance}<30 && !${CharmImmuneList.Find[${Me.XTarget[${i}]}]}) {
            /tar ${Me.XTarget[${i}].ID} noalert 6
            /squelch /twist off
            /bc Charming ${Target.CleanName}
            /squelch /twist ${CharmGem}
            /delay 34
            }
        }
    /next i
/return


Sub Initialize

|-----------------|
|-- Declares    --|
|-----------------|
/declare IniFile string outer Mob_Ignore_List.ini
/declare Attacking bool outer FALSE
/declare PetAttacking bool outer FALSE
/declare AttackCheck timer outer 1s
/declare UseMelee bool outer ${Ini[MyIni,Settings,UseMelee,TRUE]}
/declare MeleeAt int outer ${Ini[MyIni,Settings,MeleeAt,90]}
/declare MyChannel string outer ${Ini[MyIni,Settings,MyChannel,bc]}
/declare UseTashOrb bool outer ${Ini[MyIni,Settings,UseTashOrb,FALSE]}
/declare UseColorEcho bool outer ${Ini[MyIni,Settings,UseColorEcho,TRUE]}
/declare EchoAnnounce bool outer ${Ini[MyIni,Settings,EchoAnnounce,TRUE]}

/declare Debuffed bool outer FALSE
/declare BuffWait timer outer 5s

|------------|
|---MISC-----|
|------------|
/declare SitTimer timer outer ${Ini[MyIni,Settings,SitTimer,10s]}
/declare MedTimer timer outer ${Ini[MyIni,Settings,MedTimer,45s]}
/declare MedAt int outer ${Ini[MyIni,Settings,MedAt,0]}
/declare Outside bool outer TRUE
/declare Raged bool outer FALSE
/declare UseSelos bool outer ${Ini[MyIni,Settings,UseSelos,FALSE]}
/declare StopMobGate bool outer ${Ini[MyIni,Settings,StopMobGate,FALSE]}

/declare XLOC float outer ${Me.X} 
/declare YLOC float outer ${Me.Y}
/declare MyHeading int outer ${Me.Heading.DegreesCCW}
/declare Camp_Zone int outer ${Zone.ID}
/declare UseCamp bool outer ${Ini[MyIni,Settings,UseCamp,FALSE]}


|---------------|
|-- Play Lists--|
|---------------|

/declare PlayListTotal int outer ${Ini[MyIni,Songs,PlayListTotal]}
/declare pl int local
    /for pl 1 to ${PlayListTotal} {
        /declare PlayList${pl} string outer ${Ini[MyIni,Songs,PlayList${pl}]}
        }
    /next pl

/declare RestSongList int outer ${Ini[MyIni,Songs,RestSongList]}
/declare CombatSongList int outer ${Ini[MyIni,Songs,CombatSongList]}

/squelch /alias /anchor    /echo AnchorMe

/if (${Param0}) /varset CombatSongList ${Param0}

/squelch /alias /rplay1        /echo ${SongChange} RestSongList 1
/squelch /alias /rplay2        /echo ${SongChange} RestSongList 2
/squelch /alias /rplay3        /echo ${SongChange} RestSongList 3
/squelch /alias /rplay4        /echo ${SongChange} RestSongList 4
/squelch /alias /rplay5        /echo ${SongChange} RestSongList 5
/squelch /alias /rplay6        /echo ${SongChange} RestSongList 6

/squelch /alias /cplay1        /echo ${SongChange} CombatSongList 1
/squelch /alias /cplay2        /echo ${SongChange} CombatSongList 2
/squelch /alias /cplay3        /echo ${SongChange} CombatSongList 3
/squelch /alias /cplay4        /echo ${SongChange} CombatSongList 4
/squelch /alias /cplay5        /echo ${SongChange} CombatSongList 5
/squelch /alias /cplay6        /echo ${SongChange} CombatSongList 6

/declare SongChange string outer ${Ini[MyIni,Songs,SongChange]}
/declare SongCheck string outer ${Ini[MyIni,Songs,SongCheck]}


|--------------------|
|-- Self Buff info --|
|--------------------|

|- selfbuffs
/declare SelfBuffTotal int outer ${Ini[MyIni,SelfBuffs,SelfBuffTotal]}
    /declare sb int local
        /for sb 1 to ${SelfBuffTotal} {
            /declare SelfBuff${sb} string outer ${Ini[MyIni,SelfBuffs,SelfBuff${sb}]}
            /declare SelfBuffSpell${sb} string outer ${Ini[MyIni,SelfBuffs,SelfBuffSpell${sb}]}
            /declare SelfBuffGem${sb} string outer ${Ini[MyIni,SelfBuffs,SelfBuffGem${sb}]}
            }
        /next sb


|---------------|
|--Click items--|
|---------------|

|- OffensiveClickies
/declare ClickyNukeTotal int outer ${Ini[MyIni,OffensiveClickies,ClickyNukeTotal,0]}
    /declare oc int local
        /for oc 1 to ${ClickyNukeTotal} {
            /declare ClickyNuke${oc} string outer ${Ini[MyIni,OffensiveClickies,ClickyNuke${oc}]}
            /declare ClickyNukeTimer${oc} string outer ${Ini[MyIni,OffensiveClickies,ClickyNukeTimer${oc},30]}
            /declare UseClickyNuke${oc}At int outer ${Ini[MyIni,OffensiveClickies,UseClickyNuke${oc}At,90]}
            /declare StopClickyNuke${oc}At int outer ${Ini[MyIni,OffensiveClickies,StopClickyNuke${oc}At,25]}
            /declare NamedOnlyClickyNuke${oc} bool outer ${Ini[MyIni,OffensiveClickies,NamedOnlyClickyNuke${oc},FALSE]}
            }
        /next oc

|-------------------|
|-----Mez infos-----|
|-------------------|
/declare aemezcount int outer 0
/declare UseAEMez bool outer ${Ini[MyIni,Songs,UseAEMez,FALSE]}
/declare AEMezSong string outer ${Ini[MyIni,Songs,AEMezSong,Wave of Dreams Rk. II]}
/declare AEMezGem int outer ${Ini[MyIni,Songs,AEMezGem]}
/declare AEMezzed timer outer 290
/declare AEMezRange int outer ${Ini[MyIni,Songs,AEMezRange,50]}
/declare UseSlow bool outer ${Ini[MyIni,Songs,UseSlow,TRUE]}
/declare SlowSong string outer ${Ini[MyIni,Songs,SlowSong,Requiem of Time]}
/declare SlowGem int outer
/declare Slowed bool outer FALSE
/declare SlowTimer timer outer 130

/declare UseMez bool outer ${Ini[MyIni,Songs,UseMez,FALSE]}
/declare MezSong string outer ${Ini[MyIni,Songs,MezSong,Slumber of the Mindshear Rk.III]}
/declare MezGem int outer 
/declare MaxMezLevel int outer ${Ini[MyIni,Songs,MaxMezLevel,93]}
/declare MezDuration timer outer 140
/declare MezRange int outer ${Ini[MyIni,Songs,MezRange,200]}
/declare MezTimer timer outer 34



|-- Burn info
    /declare Burning bool outer FALSE
    /declare BurnOnTrigger    string outer ${Ini[MyIni,Triggers,BurnOnTrigger]}
    /declare BurnOffTrigger string outer ${Ini[MyIni,Triggers,BurnOffTrigger]}
    /squelch /alias /burnon     /echo ${BurnOnTrigger} ${BurnList}
    /squelch /alias    /burnoff    /echo ${BurnOffTrigger}


|----------|
|--CHARM---|
|----------|
/declare UseCharm bool outer ${Ini[MyIni,Songs,UseCharm,FALSE]}
/declare CharmSong string outer ${Ini[MyIni,Songs,CharmSpell]}
/declare MaxCharmLevel int outer ${Ini[MyIni,Songs,MaxCharmLevel,88]}
/declare CharmGem int outer
/declare CharmPet int outer

/squelch /alias /charm     /call Charm ${Target.ID}

    
     

|--------|
|-- AAs--|
|--------|

/declare AATotal int outer ${Ini[MyIni,AA,AATotal]}
    /declare aa int local
        /for aa 1 to ${AATotal} {
            /declare AA${aa} string outer ${Ini[MyIni,AA,AA${aa}]}
            /declare AAGem${aa} string outer ${Ini[MyIni,AA,AAGem${aa},alt]}
            /declare UseAA${aa} bool outer ${Ini[MyIni,AA,UseAA${aa},FALSE]}
            /declare UseAA${aa}At int outer ${Ini[MyIni,AA,UseAA${aa}At,95]}
            /declare StopAA${aa}At int outer ${Ini[MyIni,AA,StopAA${aa}At,25]}
            /declare NamedOnlyUseAA${aa} bool outer ${Ini[MyIni,AA,NamedOnlyUseAA${aa},FALSE]}
            /declare UseAA${aa}IfNearby string outer ${Ini[MyIni,AA,UseAA${aa}IfNearby,npc]}
            /declare UseAA${aa}IfNearbyAmt int outer ${Ini[MyIni,AA,UseAA${aa}IfNearbyAmt,1]}
            /declare UseAA${aa}AtMyHPs int outer ${Ini[MyIni,AA,UseAA${aa}AtMyHPs,100]}
            }
        /next aa


|-- invis info
/declare InvisSpell string outer ${Ini[MyIni,Songs,InvisSpell]}
/declare IG string outer ${Ini[MyIni,Songs,IG]}
/declare InvisTrigger string outer ${Ini[MyIni,Songs,InvisTrigger]}
/declare InvisOffTrigger string outer ${Ini[MyIni,Songs,InvisOffTrigger]}

|---------------|
|- buff others--|
|---------------|
/declare DoBuffs bool outer ${Ini[MyIni,Buffs,DoBuffs,FALSE]}
/declare BuffTotal int outer ${Ini[MyIni,Buffs,BuffTotal]}
    /declare b int local
        /for b 1 to ${BuffTotal} {
            /declare BuffTrigger${b} string outer ${Ini[MyIni,Buffs,BuffTrigger${b}]}
            /declare BuffGem${b} string outer ${Ini[MyIni,Buffs,BuffGem${b}]}
            /declare Buff${b} string outer ${Ini[MyIni,Buffs,Buff${b}]}
            }
        /next b




|-- Grubers --|
/declare UseGrubers bool outer ${Ini[MyIni,Songs,UseGrubers,FALSE]}
/declare GrubersHPAt int outer ${Ini[MyIni,Songs,GrubersHPAt]}
/declare GrubersManaAt int outer ${Ini[MyIni,Songs,GrubersManaAt]}
/declare GrubersName string outer ${Ini[MyIni,Songs,GrubersName]}
/declare GrubersRecourseName string outer ${Ini[MyIni,Songs,GrubersRecourseName]}
/declare GrubersMyMana int outer ${Ini[MyIni,Songs,GrubersMyMana]}
/declare GrubersGem int outer

/declare FadedTimer timer outer 5s
/declare FadeAt int outer ${Ini[MyIni,Settings,FadeAt]}




|-- DPS Stuff --|
/declare UseSmartDPS bool outer ${Ini[MyIni,Misc,UseSmartDPS,TRUE]}
/declare FightStartTime float outer
/declare FightTotalTime float outer
/declare FightRemainingTime float outer
/declare AnnounceTimeRemaining bool outer ${Ini[MyIni,Misc,AnnounceTimeRemaining,FALSE]}
/declare AnnouncedTimer timer outer ${Ini[MyIni,Misc,AnnouncedTimer]}


|- Aura
/declare UseAura1 bool outer ${Ini[MyIni,Songs,UseAura1,FALSE]}
/declare AuraName1 string outer ${Ini[MyIni,Songs,AuraName1]}
/declare AuraSong1 string outer ${Ini[MyIni,Songs,AuraSong1]}
/declare AuraGem1 string outer

/declare UseAura2 bool outer ${Ini[MyIni,Songs,UseAura2,FALSE]}
/declare AuraName2 string outer ${Ini[MyIni,Songs,AuraName2]}
/declare AuraSong2 string outer ${Ini[MyIni,Songs,AuraSong2]}
/declare AuraGem2 string outer


|- immunity / ignore checks:


/declare IgnoreList string outer ${Ini[${IniFile},"Ignores.${Zone.ShortName}","Ignore"]}
/declare StunImmuneList string outer ${Ini[${IniFile},"StunImmunes.${Zone.ShortName}","StunImmune"]}
/declare CharmImmuneList string outer ${Ini[${IniFile},"CharmImmunes.${Zone.ShortName}","CharmImmune"]}
/declare DiseaseImmuneList string outer ${Ini[${IniFile},"DiseaseImmunes.${Zone.ShortName}","DiseaseImmune"]}
/declare ColdImmuneList string outer ${Ini[${IniFile},"ColdImmunes.${Zone.ShortName}","ColdImmune"]}
/declare FireImmuneList string outer ${Ini[${IniFile},"FireImmunes.${Zone.ShortName}","FireImmune"]}
/declare MagicImmuneList string outer ${Ini[${IniFile},"MagicImmunes.${Zone.ShortName}","MagicImmune"]}
/declare PoisonImmuneList string outer ${Ini[${IniFile},"PoisonImmunes.${Zone.ShortName}","PoisonImmune"]}
/declare MezImmuneList string outer ${Ini[${IniFile},"MezImmunes.${Zone.ShortName}","MezImmune"]}
/declare SnareImmuneList string outer ${Ini[${IniFile},"SnareImmunes.${Zone.ShortName}","SnareImmune"]}
/declare SlowImmuneList string outer ${Ini[${IniFile},"SlowImmunes.${Zone.ShortName}","SlowImmune"]}
/declare MezList string outer  ${Ini[${IniFile},"Mez.${Zone.ShortName}","Mez"]}
/declare SnareList string outer ${Ini[${IniFile},"Snare.${Zone.ShortName}","Snare"]}
/declare StunList string outer ${Ini[${IniFile},"Stun.${Zone.ShortName}","Stun"]}


/declare resistfire string outer Fire
/declare resistcold string outer Cold
/declare resistdisease string outer Disease
/declare resistpoison string outer Poison
/declare resistmagic string outer Magic



  /if (${IgnoreList.Equal[NULL]}) {
                /ini "${IniFile}" "Ignores.${Zone.ShortName}" "Ignore" "|"
                /varset IgnoreList ${Ini[${IniFile},"Ignores.${Zone.ShortName}","Ignore"]}
                }
            /echo IgnoreList: ${IgnoreList}
          
  
  /if (${StunImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "StunImmunes.${Zone.ShortName}" "StunImmune" "|"
                /varset StunImmuneList ${Ini[${IniFile},"StunImmunes.${Zone.ShortName}","StunImmune"]}
                } 
            |/echo StunImmuneList: ${StunImmuneList}
      
  /if (${StunList.Equal[NULL]}) {
                /ini "${IniFile}" "Stun.${Zone.ShortName}" "Stun" "|"
                /varset StunList ${Ini[${IniFile},"Stun.${Zone.ShortName}","Stun"]}
                } 
            |/echo StunList: ${StunList}        

  /if (${CharmImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "CharmImmunes.${Zone.ShortName}" "CharmImmune" "|"
                /varset CharmImmuneList ${Ini[${IniFile},"CharmImmunes.${Zone.ShortName}","CharmImmune"]}
                }
            /echo CharmImmuneList: ${CharmImmuneList}
               
          
  /if (${DiseaseImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "DiseaseImmunes.${Zone.ShortName}" "DiseaseImmune" "|"
                /varset DiseaseImmuneList ${Ini[${IniFile},"DiseaseImmunes.${Zone.ShortName}","DiseaseImmune"]}
                }
            |/echo DiseaseImmuneList: ${DiseaseImmuneList}
               
          
  /if (${ColdImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "ColdImmunes.${Zone.ShortName}" "ColdImmune" "|"
                /varset ColdImmuneList ${Ini[${IniFile},"ColdImmunes.${Zone.ShortName}","ColdImmune"]}
                }
            |/echo ColdImmuneList: ${ColdImmuneList}
              
          
  /if (${FireImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "FireImmunes.${Zone.ShortName}" "FireImmune" "|"
                /varset FireImmuneList ${Ini[${IniFile},"FireImmunes.${Zone.ShortName}","FireImmune"]}
                }
            |/echo FireImmuneList: ${FireImmuneList}
               
          
  /if (${MagicImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "MagicImmunes.${Zone.ShortName}" "MagicImmune" "|"
                /varset MagicImmuneList ${Ini[${IniFile},"MagicImmunes.${Zone.ShortName}","MagicImmune"]}
                }
            |/echo MagicImmuneList: ${MagicImmuneList}
               
          
  /if (${PoisonImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "PoisonImmunes.${Zone.ShortName}" "PoisonImmune" "|"
                /varset PoisonImmuneList ${Ini[${IniFile},"PoisonImmunes.${Zone.ShortName}","PoisonImmune"]}
                }
            |/echo PoisonImmuneList: ${PoisonImmuneList}
               
          
  /if (${MezImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "MezImmunes.${Zone.ShortName}" "MezImmune" "|"
                /varset MezImmuneList ${Ini[${IniFile},"MezImmunes.${Zone.ShortName}","MezImmune"]}
                }
            /echo MezImmuneList: ${MezImmuneList}
               
  /if (${MezList.Equal[NULL]}) {
                /ini "${IniFile}" "Mezs.${Zone.ShortName}" "Mez" "|"
                /varset MezList ${Ini[${IniFile},"Mezs.${Zone.ShortName}","Mez"]}
                }
            |/echo MezList: ${MezList}
          
  /if (${SnareImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "SnareImmunes.${Zone.ShortName}" "SnareImmune" "|"
                /varset SnareImmuneList ${Ini[${IniFile},"SnareImmunes.${Zone.ShortName}","SnareImmune"]}
                }
            /echo SnareImmuneList: ${SnareImmuneList}
 
  /if (${SnareList.Equal[NULL]}) {
                /ini "${IniFile}" "Snares.${Zone.ShortName}" "Snare" "|"
                /varset SnareList ${Ini[${IniFile},"Snares.${Zone.ShortName}","Snare"]}
                }
            |/echo SnareList: ${SnareList}             


        
  /if (${SlowImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "SlowImmunes.${Zone.ShortName}" "SlowImmune" "|"
                /varset SlowImmuneList ${Ini[${IniFile},"SlowImmunes.${Zone.ShortName}","SlowImmune"]}
                }
            /echo SlowImmuneList: ${SlowImmuneList}
               
          



/return


Sub PluginCheck

/if (!${Plugin[MQ2Melee].Name.Equal[MQ2Melee]}) {
    /echo Loading MQ2Melee
    /squelch /plugin MQ2Melee load
    /delay 1s
    /if (!${Plugin[MQ2Melee].Name.Equal[MQ2Melee]}) {
        /beep
    /echo Unable to load MQ2Melee, /end
        /end
    }
} 

/if (!${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]} && ${UseColorEcho}) {
    /echo Loading MQ2CEcho because UseColorEcho=TRUE
    /squelch /plugin MQ2CEcho load
    /delay 1s
    /if (!${Plugin[MQ2CEcho].Name.Equal[MQ2CEcho]}) {
        /beep
    /echo Unable to load MQ2CEcho, using standard echo.
        /varset UseColorEcho FALSE
    }
} 

/if (!${Plugin[MQ2Cast].Name.Equal[MQ2Cast]}) {
    /echo Loading MQ2Cast
    /squelch /plugin MQ2Cast load
    /delay 1s
    /if (!${Plugin[MQ2Cast].Name.Equal[MQ2Cast]}) {
        /beep
    /echo Unable to load MQ2Cast plugin, /end
        /end
    }
} 

/if (!${Plugin[MQ2MoveUtils].Name.Equal[MQ2MoveUtils]}) {
    /echo Loading MQ2MoveUtils
    /squelch /plugin MQ2MoveUtils load
    /delay 1s
    /if (!${Plugin[MQ2MoveUtils].Name.Equal[MQ2MoveUtils]}) {
        /beep
    /echo Unable to load MQ2MoveUtils plugin, /end
        /end
    }
} 

/if (!${Plugin[MQ2Twist].Name.Equal[MQ2Twist]}) {
    /echo Loading MQ2Twist
    /squelch /plugin MQ2Twist load
    /delay 1s
    /if (!${Plugin[MQ2Twist].Name.Equal[MQ2Twist]}) {
        /beep
    /echo Unable to load MQ2Twist plugin, /end
        /end
    }
}


/echo Required Plugins Verified

/return




|------------------------|
|---EVENTS BELOW HERE ---|
|------------------------|
Sub Event_Anchor
    /varset YLOC ${Me.Y}
    /varset XLOC ${Me.X}
    /echo New anchor set: X: ${XLOC} , Y: ${YLOC}
/return

Sub Event_BurnOnTrigger
    /varset Burning TRUE
    /squelch /twist ${PlayList${BurnList}}
/return

Sub Event_BurnOffTrigger
    /varset Burning FALSE
/return
Sub Event_Chat(string ChatType,string Sender,string ChatText)
  /if ((!${ChatType.Equal[EQBC]})&&(!${ChatType.Equal[${MyChannel}]})&&(!${ChatType.Equal[TELL]})) /return
  /if (${Spawn[${Sender}].ID}==${Me.ID}) /return
  /if (${ChatText.Equal[${InvisTrigger}]}) /casting "${InvisSpell}" ${IG}
  /if (${ChatText.Equal[${InvisOffTrigger}]}) {
      /if (${Me.Buff[Camouflage].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Camouflage].ID}-1].Int} leftmouseup
      /if (${Me.Buff[Shared Camouflage].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Shared Camouflage].ID}-1].Int} leftmouseup
        /if (${Me.Buff[Sun Cloak].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Sun Cloak].ID}-1].Int} leftmouseup
      /if (${Me.Buff[${InvisSpell}].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[${InvisSpell}].ID}-1].Int} leftmouseup
    /if (${Me.Buff[Group Perfected Invisibility].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Group Perfected Invisibility].ID}-1].Int} leftmouseup
    /if (${Me.Buff[Group Perfected Invisibility to Undead].ID}) /nomodkey /notify BuffWindow Buff${Math.Calc[${Me.Buff[Group Perfected Invisibility to Undead].ID}-1].Int} leftmouseup

}  
  /if (${ChatText.Equal[manacheck]}) /bc ${Me.CleanName} - Mana ${Me.PctMana}%


  /if (!${Spawn[${Sender}].ID}) {
    /echo ${Sender} is not in the Zone
    /return
  }
/return



Sub Event_EQBC(EQBCSay,EQBCSender,EQBCCommand)
  /if (${EQBCCommand.Left[1].Equal[/]}) {
    /docommand ${EQBCCommand}
  } else {
    /call Event_Chat "EQBC" "${EQBCSender}" "${EQBCCommand}"
  }
/return


Sub Event_Gate(string Line,string MobName)
    /if (${StopMobGate} && ${Target.ID}==${Me.XTarget[1].ID} && ${Me.AltAbilityReady[Boastful Bellow]} && ${Me.AltAbility[Boastful Bellow]}) {
      /echo Stop gate: ${Target.CleanName}
      /casting "Boastful Bellow" alt
   }
/return

Sub Event_Hit
  /declare q int local 0
  /declare r int local 0
  /declare tempID int local
  /varset r ${SpawnCount[npc radius 15]}
  /if (${r}) {
      /for q 1 to ${r}
      /varset tempID ${NearestSpawn[${q},npc radius 15].ID}
      /if (!${NearestSpawn[${q},npc radius 15].ID}) /next q
      /squelch /target id ${tempID}
      /delay 5 ${Target.ID}==${tempID}
      /delay 1
      /if (${Me.TargetOfTarget.ID}==${Me.ID} && ${Target.ID} && ${Target.ID}!=${Me.ID} && (!${MezImmuneList.Find[${Target.CleanName}]} || ${MezTimer${Target.ID}} > 0)) {
                   
          /if (${Me.PctHPs}<=60 && ${Me.AltAbilityReady[Lyrical Prankster]}) /casting "Lyrical Prankster" alt
          /if (${Me.PctHPs}<=50 && ${Me.AltAbility[Shield of Notes]} && ${Me.AltAbilityReady[Shield of Notes]}) /casting "Shield of Notes" alt
          /if (${Me.PctHPs}<=50 && ${Me.AltAbilityReady[Last Stand]}) /casting "Last Stand" alt
          /if (${Me.PctHPs}<=30) /call Fade
       
      }
    /next q
  }

/return

Sub Event_InDoors
   /varset Outside FALSE
/return

Sub Event_MezImmune
  /bc mezimmunemob ${Target.CleanName}
/return

Sub Event_MezOn
        /if (!${Defined[MezTimer${Target.ID}]}) { 
            /declare MezTimer${Target.ID} timer outer 
            }        
        /varset MezTimer${Target.ID} ${MezDuration}
/return

Sub Event_MezResist
    /varset MezTimer${Target.ID} 0 

/return

Sub Event_RageOff(string line)
  /if (${line.Find[${Target.DisplayName}]}) && ${Me.Pet.ID}) {
    /target ${Me.XTarget[1].ID}
    /attack on
    /pet attack
    /varset Raged FALSE
    /varset Attacking TRUE
    /varset PetAttacking TRUE
  }
/return

Sub Event_RageOn(string line)
  /if (${line.Find[${Target.DisplayName}]}) { 
        /if (${Me.Pet.ID}) && !${Me.PetBuff[Master's Aura Effect].ID}) {
            /echo Enrage detected! Backing pet off.
            /pet back off
        }
        /varset Raged TRUE
        /varset Attacking FALSE
        /varset PetAttacking FALSE
        /if (!${Me.Buff[Master's Aura Effect].ID} && !${Me.Song[Master's Aura Effect].ID} && ${UseMelee}) /attack off
  }
/return

Sub Event_SongChange(string line, string listname, int listnum)
    /varset ${listname} ${listnum}
    /echo New list: ${listname} is now playing songs: ${PlayList${listnum}}
/return

Sub Event_SongCheck
    /delcare pl int local    
    /for pl 1 to ${PlayListTotal} {
        /echo PlayList${pl} : ${PlayList${pl}}
        }
    /next pl
/return

Sub Event_Zoned
 /varset Outside TRUE

  /if (${IgnoreList.Equal[NULL]}) {
                /ini "${IniFile}" "Ignores.${Zone.ShortName}" "Ignore" "|"
                /varset IgnoreList ${Ini[${IniFile},"Ignores.${Zone.ShortName}","Ignore"]}
                }
            /echo IgnoreList: ${IgnoreList}
          
  
  /if (${StunImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "StunImmunes.${Zone.ShortName}" "StunImmune" "|"
                /varset StunImmuneList ${Ini[${IniFile},"StunImmunes.${Zone.ShortName}","StunImmune"]}
                } 
            /echo StunImmuneList: ${StunImmuneList}
      
  /if (${StunList.Equal[NULL]}) {
                /ini "${IniFile}" "Stun.${Zone.ShortName}" "Stun" "|"
                /varset StunList ${Ini[${IniFile},"Stun.${Zone.ShortName}","Stun"]}
                } 
            /echo StunList: ${StunList}        

  /if (${CharmImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "CharmImmunes.${Zone.ShortName}" "CharmImmune" "|"
                /varset CharmImmuneList ${Ini[${IniFile},"CharmImmunes.${Zone.ShortName}","CharmImmune"]}
                }
            /echo CharmImmuneList: ${CharmImmuneList}
               
          
  /if (${DiseaseImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "DiseaseImmunes.${Zone.ShortName}" "DiseaseImmune" "|"
                /varset DiseaseImmuneList ${Ini[${IniFile},"DiseaseImmunes.${Zone.ShortName}","DiseaseImmune"]}
                }
            /echo DiseaseImmuneList: ${DiseaseImmuneList}
               
          
  /if (${ColdImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "ColdImmunes.${Zone.ShortName}" "ColdImmune" "|"
                /varset ColdImmuneList ${Ini[${IniFile},"ColdImmunes.${Zone.ShortName}","ColdImmune"]}
                }
            /echo ColdImmuneList: ${ColdImmuneList}
              
          
  /if (${FireImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "FireImmunes.${Zone.ShortName}" "FireImmune" "|"
                /varset FireImmuneList ${Ini[${IniFile},"FireImmunes.${Zone.ShortName}","FireImmune"]}
                }
            /echo FireImmuneList: ${FireImmuneList}
               
          
  /if (${MagicImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "MagicImmunes.${Zone.ShortName}" "MagicImmune" "|"
                /varset MagicImmuneList ${Ini[${IniFile},"MagicImmunes.${Zone.ShortName}","MagicImmune"]}
                }
            /echo MagicImmuneList: ${MagicImmuneList}
               
          
  /if (${PoisonImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "PoisonImmunes.${Zone.ShortName}" "PoisonImmune" "|"
                /varset PoisonImmuneList ${Ini[${IniFile},"PoisonImmunes.${Zone.ShortName}","PoisonImmune"]}
                }
            /echo PoisonImmuneList: ${PoisonImmuneList}
               
          
  /if (${MezImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "MezImmunes.${Zone.ShortName}" "MezImmune" "|"
                /varset MezImmuneList ${Ini[${IniFile},"MezImmunes.${Zone.ShortName}","MezImmune"]}
                }
            /echo MezImmuneList: ${MezImmuneList}
               
  /if (${MezList.Equal[NULL]}) {
                /ini "${IniFile}" "Mezs.${Zone.ShortName}" "Mez" "|"
                /varset MezList ${Ini[${IniFile},"Mezs.${Zone.ShortName}","Mez"]}
                }
            /echo MezList: ${MezList}
          
  /if (${SnareImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "SnareImmunes.${Zone.ShortName}" "SnareImmune" "|"
                /varset SnareImmuneList ${Ini[${IniFile},"SnareImmunes.${Zone.ShortName}","SnareImmune"]}
                }
            /echo SnareImmuneList: ${SnareImmuneList}
 
  /if (${SnareList.Equal[NULL]}) {
                /ini "${IniFile}" "Snares.${Zone.ShortName}" "Snare" "|"
                /varset SnareList ${Ini[${IniFile},"Snares.${Zone.ShortName}","Snare"]}
                }
            /echo SnareList: ${SnareList}             


        
  /if (${SlowImmuneList.Equal[NULL]}) {
                /ini "${IniFile}" "SlowImmunes.${Zone.ShortName}" "SlowImmune" "|"
                /varset SlowImmuneList ${Ini[${IniFile},"SlowImmunes.${Zone.ShortName}","SlowImmune"]}
                }
            /echo SlowImmuneList: ${SlowImmuneList}
               
          
    /call LoadMQ2Targets
  

/return


Sub Event_Mez
  /echo mezmob ${Target.CleanName}
/return


Sub Event_Slow
  /echo slowmob ${Target.CleanName}
/return

Sub Event_Snare
  /echo snaremob ${Target.CleanName}
/return

Sub Event_IgnoreMob(string line,string MobName)
  /if (!${IgnoreList.Find[${MobName}]}) {
      /ini "${IniFile}" "Ignores.${Zone.ShortName}" "Ignore" "${IgnoreList}${MobName}|"
       /varset IgnoreList ${Ini[${IniFile},"Ignores.${Zone.ShortName}","Ignore"]}
      /echo IgnoreList: ${IgnoreList}
  }
/return

Sub Event_StunImmuneMob(string line,string MobName)
  /if (!${StunImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "StunImmunes.${Zone.ShortName}" "StunImmune" "${StunImmuneList}${MobName}|"
         /varset StunImmuneList ${Ini[${IniFile},"StunImmunes.${Zone.ShortName}","StunImmune"]}
      /echo StunImmuneList: ${StunImmuneList}
  }
/return

Sub Event_SnareImmuneMob(string line,string MobName)
  /if (!${SnareImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "SnareImmunes.${Zone.ShortName}" "SnareImmune" "${SnareImmuneList}${MobName}|"
       /varset SnareImmuneList ${Ini[${IniFile},"SnareImmunes.${Zone.ShortName}","SnareImmune"]}
      /echo SnareImmuneList: ${SnareImmuneList}
  }
/return

Sub Event_StunMob(string line,string MobName)
  /if (!${StunList.Find[${MobName}]}) {
      /ini "${IniFile}" "Stuns.${Zone.ShortName}" "Stun" "${StunList}${MobName}|"
         /varset StunList ${Ini[${IniFile},"Stuns.${Zone.ShortName}","Stun"]}
      /echo StunList: ${StunList}
  }
/return

Sub Event_SnareMob(string line,string MobName)
  /if (!${SnareList.Find[${MobName}]}) {
      /ini "${IniFile}" "Snares.${Zone.ShortName}" "Snare" "${SnareList}${MobName}|"
       /varset SnareList ${Ini[${IniFile},"Snares.${Zone.ShortName}","Snare"]}
      /echo SnareList: ${SnareList}
  }
/return

Sub Event_SlowImmuneMob(string line,string MobName)
  /if (!${SlowImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "SlowImmunes.${Zone.ShortName}" "SlowImmune" "${SlowImmuneList}${MobName}|"
       /varset SlowImmuneList ${Ini[${IniFile},"SlowImmunes.${Zone.ShortName}","SlowImmune"]}
      /echo SlowImmuneList: ${SlowImmuneList}
  }
/return

Sub Event_MezMob(string line,string MobName)
  /if (!${MezList.Find[${MobName}]}) {
      /ini "${IniFile}" "Mezs.${Zone.ShortName}" "Mez" "${MezList}${MobName}|"
       /varset MezList ${Ini[${IniFile},"Mezs.${Zone.ShortName}","Mez"]}
      /echo MezList: ${MezList}
  }
/return

Sub Event_MezImmuneMob(string line,string MobName)
  /if (!${MezImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "MezImmunes.${Zone.ShortName}" "MezImmune" "${MezImmuneList}${MobName}|"
       /varset MezImmuneList ${Ini[${IniFile},"MezImmunes.${Zone.ShortName}","MezImmune"]}
      /echo MezImmuneList: ${MezImmuneList}
  }
/return

Sub Event_FireImmuneMob(string line,string MobName)
  /if (!${FireImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "FireImmunes.${Zone.ShortName}" "FireImmune" "${FireImmuneList}${MobName}|"
       /varset FireImmuneList ${Ini[${IniFile},"FireImmunes.${Zone.ShortName}","FireImmune"]}
      /echo FireImmuneList: ${FireImmuneList}
  }
/return

Sub Event_ColdImmuneMob(string line,string MobName)
  /if (!${ColdImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "ColdImmunes.${Zone.ShortName}" "ColdImmune" "${ColdImmuneList}${MobName}|"
       /varset ColdImmuneList ${Ini[${IniFile},"ColdImmunes.${Zone.ShortName}","ColdImmune"]}
      /echo ColdImmuneList: ${ColdImmuneList}
  }
/return

Sub Event_MagicImmuneMob(string line,string MobName)
  /if (!${MagicImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "MagicImmunes.${Zone.ShortName}" "MagicImmune" "${MagicImmuneList}${MobName}|"
       /varset MagicImmuneList ${Ini[${IniFile},"MagicImmunes.${Zone.ShortName}","MagicImmune"]}
      /echo MagicImmuneList: ${MagicImmuneList}
  }
/return

Sub Event_PoisonImmuneMob(string line,string MobName)
  /if (!${PoisonImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "PoisonImmunes.${Zone.ShortName}" "PoisonImmune" "${PoisonImmuneList}${MobName}|"
       /varset PoisonImmuneList ${Ini[${IniFile},"PoisonImmunes.${Zone.ShortName}","PoisonImmune"]}
      /echo PoisonImmuneList: ${PoisonImmuneList}
  }
/return

Sub Event_DiseaseImmuneMob(string line,string MobName)
  /if (!${DiseaseImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "DiseaseImmunes.${Zone.ShortName}" "DiseaseImmune" "${DiseaseImmuneList}${MobName}|"
       /varset DiseaseImmuneList ${Ini[${IniFile},"DiseaseImmunes.${Zone.ShortName}","DiseaseImmune"]}
      /echo DiseaseImmuneList: ${DiseaseImmuneList}
  }
/return

Sub Event_CharmImmuneMob(string line,string MobName)
  /if (!${CharmImmuneList.Find[${MobName}]}) {
      /ini "${IniFile}" "CharmImmunes.${Zone.ShortName}" "CharmImmune" "${CharmImmuneList}${MobName}|"
       /varset CharmImmuneList ${Ini[${IniFile},"CharmImmunes.${Zone.ShortName}","CharmImmune"]}
      /echo CharmImmuneList: ${CharmImmuneList}
  }
/return

</complete>
 
Last edited by a moderator:
Guys thanks for taking a look at this. Its odd, its almost like Macroquest stores some attributes for the characters in a file I dont' know where to go to tweak. I basically want the character to move to the mob when told to move, instead of standing there and turning on autoattack when OOR.

Code:
bard.ini
[MeleeStuff]
DoMelee=1
DoRanged=0
StickArgs=10 !front moveback
DiscTotal=0
UseDiscs=0
DiscName1=Put the name of Discipline #1 here
DiscType1=0
DiscEndurance1=100
DiscMinHPs1=0
DiscMaxHPs1=0
DiscSpawnCount1=1


[Settings]
LeashLength=100
NPCRadius=150
NPCZRadius=100
PCRadius=200
PCZRadius=100
AutoNinja=0
FoodSpell=Put the name of your food summoning spell/item here
FoodGem=Put gem# for spells, or item for items
DrinkSpell=Put the name of your drink summoning spell/item here
DrinkGem=Put gem# for spells, or item for items
AutoSit=0
SitDelay=5s
UseMount=0
MountItem=Put the name of your mount summoning item here
MedPct=80
UseRods=0
RodMana=80


[GeneralStuff]
ChatChannel=i say
MasterList=Guess|Who|I|Am
AssistMA=1
AssistDelay=2s
MA1=nate
MA2=Gets
MA3=To Know
EngageHPs=99
StopHPs=10
ReportEvents=0
ReportToggles=1
RelayTells=0
ReportMana=0
ReportManaPct=50
SpellSetTotal=1
SpellSet1=Default


[CureStuff]
CureTotal=0
DoCures=0
ReportCures=0
CureSpell1=Cure Item/Spell #1
CureGem1=Cure #1 Gem or put Item if an item
CureCounters1=0
CureType1=0


[SelfBuffStuff]
SelfBuffTotal=1
SelfBuffs=1
ReportSelfBuffs=0
SelfBuffRecheck=10s
SelfBuff1=Voice of the Serpent
SelfBuffIcon1=Resonance
SelfBuffGem1=Item
SelfBuffCount1=15


[DoBuffStuff]
DoBuffTotal=0
DoBuffs=0
ReportDoBuffs=0
DoBuffTells=0
RefreshBuffs=0
DoBuffMana=0
DoBuff1=Do Buff Item/Spell #1
DoBuffIcon1=Do Buff #1 Buff Icon
DoBuffGem1=Do Buff #1 Gem or put Item if an item
DoBuffAliases1=Put the keywords you want to respond to for this buff
DoBuffRefresh1=0
BuffGem=Buff Gem you would like to cast /buff requests from


[DebuffStuff]
DebuffTotal=0
DoDebuffs=0
DoDoTs=0
DoMez=0
ReportDebuffs=0
ReportDoTs=0
ReportMez=0
DebuffChannel=i say
UseHoTT=0
MaxMobs=15
AllDebuffsFirst=1
DebuffMAFirst=1

DebuffSpell1=Vulka's Lullaby
DebuffIcon1=Vulka's Lullaby
DebuffGem1=gem9
DebuffMana1=0
DebuffHPs1=100
DebuffStopHPs1=0
DebuffRecast1=0
DebuffSpellSet1=0
DebuffMAOnly1=1
DebuffNamedOnly1=0
DebuffMessage1=MEZZED %Target, Learn to love Bard Spam!
SpellType1=2

DebuffSpell2=Harmony of Sound
DebuffIcon2=Harmony of Sound
DebuffGem2=gem8
DebuffMana2=0
DebuffHPs2=97
DebuffStopHPs2=0
DebufRecast2=0
DebuffRecast2=0
DebuffSpellSet2=0
DebuffMAOnly2=0
DebuffNamedOnly2=0
DebuffMessage2=LOWER RESISTS %Target, go get it!
SpellType2=0

DebuffSpell3=Song of Stone
DebuffIcon3=Song of Stone
DebuffGem3=alt
DebuffMana3=0
DebuffHPs3=95
DebuffStopHPs3=40
DebuffRecast3=0
DebuffSpellSet3=0
DebuffMAOnly3=1
DebuffNamedOnly3=0
DebuffMessage3=nONE
DebuffType3=0
DebuffRecast3=0
SpellType3=1



[NukeStuff]
NukeTotal=0
DoNukes=0
NukeDelay=0
WhichNuke=1
Nuke1=Put the name of nuke #1 here
NukeGem1=Put the spell gem you want to cast nuke #1 from here
NukeSpellSet1=1
NukeStartHPs1=90
NukeStopHPs1=40
NukeMaxMana1=100
NukeMinMana1=30
GoMNuke1=0


[PetStuff]
UsePet=0
PetMana=0
PetFocus=Put the name of your pet focus buff item here
PetSpell=Put the name of your pet Spell here
PetGem=Put the name of the Spell Gem you want to cast your Pet Spell from here
PetShrink=0
PetShrinkSpell=Put the name of your pet shrinking AA/Item/Spell here
PetShrinkGem=Put gem# for spells, item for items, and alt for AAs
PetBuffTotal=0
DoPetBuffs=0
ReportPetBuffs=0
PetBuffRecheck=10s
PetBuff1=pet Buff Item/Spell #1
PetBuffIcon1=pet Buff #1 Buff Icon
PetBuffGem1=pet Buff #1 Gem or put Item if an item


[HolyShit]
TotalShit=0
DoHolyShit=0
HolyShit1=Name of Item/AA/Spell to cast.
HolyShitGem1=HolyShit Gem# or aa
HolyShitHp1=90
HolyShitType1=0
HolyShitRUN1=0


[Bard]
DoBardSwap=1
DoBardMeleeSwap=1
AutoRestOff=0
AutoRestRadius=125


[Bard-Combat]
SongsArray1=Chant of battle
SongsArray2=Hymn of Restoration
SongsArray3=Jonathan's Whistling warsong
SongsArray4=Warsong of Zek
SongsArray5=Song Name
SongsArray6=Song Name
SongsArray7=Song Name
SongsArray8=Song Name
SongsArray9=Song Name


[Bard-Rest]
SongsArray10=Hymn of Restoration
SongsArray11=Song Name
SongsArray12=Song Name
SongsArray13=Song Name
SongsArray14=Song Name
SongsArray15=Song Name
SongsArray16=Song Name
SongsArray17=Song Name
SongsArray18=Song Name

[Bard-Aliases]
AEMana=Hymn of Restoration
Overhaste=Eriki's Psalm of Power
resists=Psalm of Veeshan
DDProc=Storm Blade
Haste=Warsong of Zek
AEFire=Elemental Chorus
AECold=Elemental Chorus
AEDisease=Purifying Chorus
AEPoison=Purifying Chous
Selos=Selo's Accelerating Chorus
 
Last edited by a moderator:
That is the bard macro i wrote, and that is NOT the .ini that goes with it. you are using the wrong ini bud. so no, that macro wouldnt work at all for you until you use the correct ini and fill it out properly.
 
Heya 1stcall. For posting macros, configs, etc., it is best to put them in code sections, so that the post readability is easy, as well as preserving any formatting with changing things (such as replacing :somechar with an emoticon).

Like this:


here is my macro:
[code]
paste my macro here
[/code]
Other text, comments, sig, etc.


Regarding your issue, not sure why they would not move at all, but I have saved your config & macro, and will look into it as soon as I get a chance.

htw
 
That is the bard macro i wrote, and that is NOT the .ini that goes with it. you are using the wrong ini bud. so no, that macro wouldnt work at all for you until you use the correct ini and fill it out properly.
Thanks Pete! 1stcall/pete, if you don't mind, could you PM me if you think there is an issue I need to look into?

htw
 
i dont think there is an issue for you htw, I think he didnt follow the instructions is all. He is using the wrong macro or the wrong ini, i dont know which he is meaning to use. If he is meaning to use my bard mac, then his ini file is named: CharacterName_BRD.ini .. in this case, if his character name was the name of his mmobugs userid, it would be 1stcall_BRD.ini. But that is listed in the mac and on the thread. if he is meaning to use whatever macro that the bard.ini is he posted, then it is not my macro and maybe he overwrote the other one.

IRT movement: Assist macro works for movement consistently when you have your mq2moveutils set up properly. so either his stickrange= is wrong in mq2melee in his server_CHARNAME.ini, or his stick distance is wrong in mq2moveutils.ini.
 
Thanks that gives me something to look at at least some direciton.

Stick distance is usually 10-15?
 
Everyone does things slightly different, but i find stick at 90-95% works well. You sometimes avoid AE rampage at that distance, and you are always in melee. Important setting for stick highlighted in red for %:

mq2moveutils.ini
Code:
[Stick]
AlwaysUW=off
AwareNotAggro=off
ArcBehind=45.00
ArcNotFront=135.00
BreakOnGate=on
BreakOnTarget=off
BreakOnWarp=on
PauseOnWarp=off
DelayStrafe=on
DistBackup=10.00
DistBreak=250.00
DistMod=0.00
[COLOR=Red]DistMod%=.95[/COLOR]
DistSnaproll=10.00
RandomArc=off
StrafeMinDelay=1500
StrafeMaxDelay=3000
UseBackward=on
UseFleeing=off
UseWalk=on

Here is the setting in mq2melee that determines if you want to only stick once the mob is inside this range, until then, attack may be on, but stick wont engage. (by setting this to 0, it turns stick off, but you still turn attack on)

server_charname.ini
ie.
fippy_PeteSampras.ini
Code:
[MQ2Melee]
[COLOR=Red]stickrange=50[/COLOR]