- Joined
- Aug 12, 2013
- RedCents
- 658¢
Here is a macro to use in EZ Server Plane of Fire. It has the AFK window workaround in place. I initially wrote this to use with multiple toons so it is parameterized and leverages EQBC. EQBC is not needed and you can remove the /bct. Twist is leveraged, in this case I'm twisting 10 which was configured as my mainhand. I've added a correct block in attempt to code around getting stuck on trees and walls.
Usage: /macro xp <toon name>
Usage: /macro xp <toon name>
Rich (BB code):
#Event cantseetarget "#*#You cannot see your target#*#"
sub main
|Param0 = name of toon
|Start timer at 30 seconds
|remove /bct references to not use parameterized name
|use in an instance or add code to check player count.
/declare runtime timer outer 300
/declare engage timer outer 200
:start
/if (${Window[LargeDialogWindow].Open} && ${Window[LargeDialogWindow].Child[LDW_TextBox].Text.Find[Are you still active?]}) /nomodkey /notify LargeDialogWindow LDW_YesButton leftmouseup
|Set to stop at 1 am to avoid GM
/if (${Time.Time24.Equal[01:00:00]}) {
/goto :camp
}
/if (${SpawnCount[GM]} > 0) {
/delay 30s
/goto :start
} else {
/if (!${Zone.Name.Equal[The Plane of Fire]}) {
/bct ${Param0} //camp
/delay 40s
/endmacro
}
/echo ${runtime.Value}
/if (${runtime.Value} == 0) {
/echo Evaluated True
/goto :move
}
|Make this a function
/if (${SpawnCount[npc radius 300]} > 1) {
|Paremeterize toon name
/bct ${Param0} //target npc radius 300
/bct ${Param0} //stick 1 uw
/bct ${Param0} //attack on
/delay 2s
/bct ${Param0} //twist 10
/if (${engage.Value} == 0 && ${Target.Distance} > 20) {
/echo Evaluated True
/goto :correct
}
} else {
/echo ${SpawnCount[npc radius 500]}
/if (${SpawnCount[npc radius 500]} > 1) {
/bct ${Param0} //target npc radius 500
/bct ${Param0} //stick 1 uw
/bct ${Param0} //attack on
/delay 2s
/bct ${Param0} //twist 10
/if (${Me.PctHPs} < 50) {
/goto :move
}
/if (${engage.Value} == 0 && ${Target.Distance} > 20) {
/echo Evaluated True
/goto :correct
}
}
}
/delay 6s
/if (${engage.Value} == 0 && ${Target.Distance} < 30) {
/echo Evaluated True
/goto :correct
}
/goto :start
}
:move
/echo In Move
|Parameterize loc
/bct ${Param0} //moveto loc 1223.88 -1327.72
/if (${Me.PctHPs} < 50) {
/varset runtime 400
/goto :correct
}
/delay 30s
/goto :settime
:correct
/echo you are stuck, correcting
/bct ${Param0} //stick off
|back up
/bct ${Param0} //face away
|move forward
/keypress forward hold
/delay 3s
/keypress back
/if (!${Me.Heading.ShortName.Equal[N]} && !${Me.Heading.ShortName.Equal}) {
/echo Facing South
/face heading 180
/keypress forward hold
/delay 3s
/keypress back
} else {
/echo Facing East
/face heading 270
/keypress forward hold
/delay 3s
/keypress back
}
/varset engage 200
/goto :start
:settime
|Set timer to 5 min
/varset runtime 3000
/delay 30s
/goto :checkspawn
:checkspawn
/if (${SpawnCount[npc radius 500]} > 1) {
/goto :start
} else {
/bct ${Param0} //moveto loc 817.37 -914.61
/delay 10s
/goto :start
}
:camp
/echo In Camp
|Parameterize loc
/bct ${Param0} //moveto loc 1223.88 -1327.72
/delay 20s
/bct ${Param0} //camp
/delay 40s
/endmacro
/return