Afk Cleric/Melee EXP Macro...Levels 51 to 61
MACRO OUT OF DATE REFER TO Redone PoJustice Macro
Modified afkcleric Macro (Cleric Macro) v1.1
(Edited 3/21/05)--Modified Z axis check and Zone Check(auto camp when not in PoJ)
Refer to Redone PoJustice macro for Up to date Version of Melee portion
MACRO OUT OF DATE REFER TO Redone PoJustice Macro
Modified afkcleric Macro (Cleric Macro) v1.1
(Edited 3/21/05)--Modified Z axis check and Zone Check(auto camp when not in PoJ)
Rich (BB code):
#include spell_routines.inc
#Chat Chat
#Chat tell
Sub Main
|------------READ THIS SECTION AND EDIT IF NEEDED-----------|
/declare myzone int outer ${Zone.ID}
/declare RV_MyZLOC int outer -100
/declare autohealmode int outer 0
/declare healspell string outer Complete Healing
/declare healspellrange int outer 100
/declare patchheal string outer Pious Remedy
/declare patchhealrange int outer 100
/declare yaulpspell string outer Yaulp VII
/declare autosit int outer 1
/declare distancetosit int outer 40
/declare autointerrupt int outer 1
/declare defaultstophealpoint int outer 65
|** Tweak Heals Here - tankhealpoint is for War/Pal/SK other
than MT, casterhotpoint and casterpatchpoint refer to
wiz/mag/enc/dru, necshmpatchpoint refers to necros and
shamans, defaultpatchpoint refers to all other classes. **|
/declare selfhealpoint int outer 65
/declare tankhealpoint int outer 65
|------------------------END EDITING------------------------|
/declare healpct int outer 60
/declare tankname string outer ${Target}
/declare tanknameid int outer
/declare tankclass string outer
/declare stophealpoint int outer ${defaultstophealpoint}
/if (!${Target.ID}) {
/echo Target the Tank when you run this macro to designate him as MT
/end
} else {
/varset tanknameid ${Target.ID}
/varset tankclass ${Target.Class.Name}
}
/if (${Defined[Param0]}) {
/varset healpct ${Param0}
} else /echo No Heal% specified, defaulting to 60%
/if (!${Defined[Param1]}) {
/echo Usage: /mac AFCleric % healspell
} else {
/if (!${Defined[Param2]}) {
/varset healspell ${Param1}
} else /if (!${Defined[Param3]}) {
/varset healspell ${Param1} ${Param2}
} else /if (!${Defined[Param4]}) {
/varset healspell ${Param1} ${Param2} ${Param3}
} else {
/varset healspell ${Param1} ${Param2} ${Param3} ${Param4}
}
}
/echo Casting ${healspell} on ${tankname} at ${healpct}% HP
:tankwatchloop
/if (${Target.Distance}>90) {
/delay 5s
/stand
/delay 1s
/warp target
}
/if (${RV_MyZLOC}>${Int[${Me.Z}]}) /warp target
/if (${String[${Spawn[${tanknameid}]}].NotEqual[${tankname}]}) /varset tanknameid 0
/if (!${Spawn[${tanknameid}].ID}) /if (${Spawn[${tankname}].ID}) {
/if (${SpawnCount[${tankname} ${tankclass}]}==1) {
/varset tanknameid ${Spawn[${tankname} ${tankclass}].ID}
/echo ${Spawn[${tankname} ${tankclass}].Name} is the designated MT and has ID# ${tanknameid}
}
}
/if ((!${Target.ID})||(${Target.ID}!=${tanknameid})) {
/if (${Spawn[${tanknameid}].ID}) /if (${Spawn[${tanknameid}].Type.NotEqual[Corpse]}) {
/target id ${tanknameid}
/delay 6 ${Target.ID}==${tanknameid}
}
}
/if (${GameState.Equal[CHARSELECT]}) /end
/if (${Target.ID}==${tanknameid}) {
/varset stophealpoint ${Math.Calc[${healpct}*1.1]}
/if ((${Target.Distance}<=${patchhealrange})&&(${Target.PctHPs}<=${Math.Calc[0.7*${healpct}]})&&(${Target.PctHPs}>=1)) {
/call Cast "${patchheal}" gem2 1s CheckHP
/delay 15 ${Me.SpellReady[${patchheal}]}
}
/if ((${Target.Distance}<=${healspellrange})&&(${Target.PctHPs}<=${healpct})&&(${Target.PctHPs}>=${Math.Calc[0.7*${healpct}]})) {
/call Cast "${healspell}" gem1 1s CheckHP
/delay 15 ${Me.SpellReady[${healspell}]}
/delay 10s
}
/varset stophealpoint ${defaultstophealpoint}
/call CheckEvents
}
/if ((${autosit}>=1)&&(${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) {
/if ((${Me.PctMana}>98)||(${Me.PctHPs}<=90)) /stand
}
/if ((${autosit}==1)&&(${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})) {
/if (${NearestSpawn[NPC].Distance}<=${Math.Calc[${NearestSpawn[NPC].MaxRange}+${Math.Calc[${distancetosit}/3]}]}) /stand
}
/if ((${autohealmode}<2)&&(${Me.PctMana}<=98)) /call MedTime
/call CheckEvents
/goto :tankwatchloop
/return
Sub CheckEvents
/delay 1
/if (${Me.PctHPs}<20) /gate
/if (!${Me.Buff["Armor of the Zealot"].Duration}&&(${Bool[${Me.Sitting}]})) /call cast "Armor of the Zealot" gem7 7s
/call GMCheck
/doevents Chat
/doevents tell
/doevents flush
/return
Sub MedTime
:oomwait
/call CheckEvents
/if ((${autosit}==1)&&(${Me.PctMana}<=98)&&(!${Me.Casting.ID})) {
/if ((${Bool[${Me.Standing}]})&&(${NearestSpawn[NPC].Distance}>=${Math.Calc[${NearestSpawn[NPC].MaxRange}+${distancetosit}]})&&(${Me.PctHPs}>90)) /sit
/if ((${Bool[${Me.Sitting}]})&&(!${Window[SpellBookWnd].Open})&&(${NearestSpawn[NPC].Distance}<=${Math.Calc[${NearestSpawn[NPC].MaxRange}+${Math.Calc[${distancetosit}/3]}]})) /stand
}
/if ((${Bool[${Me.Standing}]})&&(${autosit}==2)&&(${Me.PctMana}<=98)&&(${Me.PctHPs}>90)&&(!${Me.Casting.ID})) /sit
/if ((${Bool[${Me.Sitting}]})&&(${autosit}>=1)&&(${Me.PctMana}>98)&&(!${Window[SpellBookWnd].Open})) /stand
/if ((${Bool[${Me.Standing}]})&&(!${Me.Mount.ID})&&(${Me.SpellReady[${yaulpspell}]})&&(!${Me.Buff[${yaulpspell}].ID})) {
/if ((!${Me.Buff[Vallon].ID})&&(!${Me.Buff[Spiritual Vigor].ID})&&(!${Me.Buff[Strength of Tunare].ID})) /call Cast "${yaulpspell}"
}
/return
Sub CheckHP
/if (!${Window[CastingWindow].Open}) /return
/if ((${autointerrupt}>=1)&&(${Target.PctHPs}>=${stophealpoint})) {
/call Interrupt
/return
}
/return
Sub FindExactPC(string name)
/declare nameid int local
/declare counter int local 1
:FindNext
/if (!${NearestSpawn[${counter}, pc ${name}].ID}) /return NOT_FOUND
/varset nameid ${NearestSpawn[${counter}, pc ${name}].ID}
/if (${Spawn[${nameid}].CleanName.Equal[${name}]}) {
/target id ${nameid}
/delay 1s ${Target.ID}==${nameid}
/if (${Target.ID}==${nameid}) /return TARGET_SUCCESS
}
/varcalc counter ${counter}+1
/if (${NearestSpawn[${counter}, pc ${name}].ID}) /goto :FindNext
/return NOT_FOUND
Sub Event_Chat(string ChatType,string Sender,string ChatText)
/if (${ChatText.Equal[c]}) /call Cast "Conviction" gem8 10s
/return
|--------------------------------------------------------------------------------
|SUB: GM Check
|--------------------------------------------------------------------------------
Sub GMCheck
/if (${Zone.ID}!=${myzone}) {
/nomodkey /keypress forward
/nomodkey /keypress left
/nomodkey /keypress right
/camp desktop
/endmacro
}
/if (${Spawn[gm].ID}) {
/beep
/beep
/beep
/echo GM has entered the zone!
/echo FUCK HIM but ending the macro...
/keypress forward
/keypress back
/call Cast "${healspell}"
/delay 6s
/quit
/endmacro
}
/return
Refer to Redone PoJustice macro for Up to date Version of Melee portion
Last edited:





cause im a hillbilly and not that comp smart lol.