|_______________________________________________|
| Everdead's Ranger Macro of Killing |
| Target mainassist and turn on macro will snare|
| auto bow and all that shit |
|_______________________________________________|
#chat group
#chat tell
#Event ImHit "#*#tries to hit you#*#"
#Event ImDead "You have been slain by#*#"
#Event GrpInvite "#*#To join the group, click on the 'FOLLOW' option,
or 'DISBAND' to cancel#*#"
#include Spell_Routines.inc
Sub Main
/declare SpellSnare outer "Snare"
/declare SpellJolt outer "Jolt"
/declare SpellSow outer "Spirit of Wolf"
/declare SpellAttack outer "Firefist"
/declare SpellAttack2 outer "Nature's Precision"
/declare SpellAccuracy outer "Hawk Eye"
/declare SpellColdDD outer "Icewind"
/declare SpellFireDD outer "Ignite"
/declare SpellMagicAE outer "Invoke Lightning"
/declare SpellHeal outer "Light Healing"
/declare SpellRoot outer "Grasping Roots"
| ############ Combat Variables
/declare AssistAt int outer 98
/declare CombatAt int outer 97
/declare GotTarget outer FALSE
/declare Rootat int outer 40
/declare RootMana int outer 40
/declare SnareAt int outer 35
/declare SnareMana 10
/declare NukeAt int outer 90
/declare NukeMana int outer 30
/declare MinMana int outer 15
/declare following int outer 0
/declare follname string outer NULL
/declare MobSnared outer FALSE
/declare MobRooted outer FALSE
/declare CombatOn outer FALSE
/declare Autofire outer FALSE
/varset MobSnared FALSE
/varset MobRooted FALSE
/varset CombatOn FALSE
/varset Autofire FALSE
| ############ To Do List
/declare DoSnare outer TRUE
/declare DoRoot outer FALSE
/declare DoNuke outer FALSE
/declare DoHeal outer TRUE
/declare Verbose outer TRUE
/declare M_Assist string outer
|/call MemSpells
| ############### Target a player as Main Assist
/if (${Defined[Param0]}) {
/varset M_Assist ${Param0}
/echo Assist set to ${M_Assist}
} else {
/if (!${Target.ID} || ${Target.Type.NotEqual[PC]}) {
/echo Your Do not have a main assist, make sure its a player character!
/endmacro
}
/varset M_Assist ${Target.CleanName}
/echo Assist set to ${M_Assist}
}
/assist off
| ###############
| ############### Main Loop Starts
| ###############
:Main_Loop
|- Check for new events in chat etc etc...
/doevents
|- Do we move?
:Hold_Main
/if (${Me.Moving}) /goto :Hold_Main
|- Check for mobs and do combat stuff
/if (!${GotTarget}) {
/call GetTarget
} else {
/if (${CombatOn}) {
/call Combat
}
}
/goto :Main_Loop
/return
| ###############
| ############### Main Loop Ends
| ###############
| ############### Mem Spells in Spell List
Sub MemSpells
/echo Memming spells. Hang on.
/if ( !${Me.Gem[${SpellSnare}]} ) {
/memspell 1 ${SpellSnare}
/delay 25
}
/if ( !${Me.Gem[${SpellSow}]} ) {
/memspell 2 ${SpellSow}
/delay 20
}
/if ( !${Me.Gem[${SpellAttack}]} ) {
/memspell 3 ${SpellAttack}
/delay 20
}
/if ( !${Me.Gem[${SpellAttack2}]} ) {
/memspell 4 ${SpellAttack2}
/delay 20
}
/if ( !${Me.Gem[${SpellAccuracy}]} ) {
/memspell 5 ${SpellAccuracy}
/delay 20
}
/if ( !${Me.Gem[${SpellHeal}]} ) {
/memspell 6 ${SpellHeal}
/delay 20
}
/if ( !${Me.Gem[${SpellFireDD}]} ) {
/memspell 7 ${SpellFireDD}
/delay 20
}
/if ( !${Me.Gem[${SpellColdDD}]} ) {
/memspell 8 ${SpellColdDD}
/delay 30
}
/if ( !${Me.Gem[${SpellJolt}]} ) {
/memspell 9 ${SpellJolt}
/delay 30
}
/if ( ${Window[SpellBookWnd].Open} ) /windowstate SpellBookWnd close
/echo Spells are memmed.
/return
| ###############
| ############### Attack Subs
| ###############
Sub GetTarget
/assist ${M_Assist}
/delay 3
/if (${Target.Type.Equal[NPC]} && ${Target.PctHPs}<=${CombatAt}) {
/varset MobRooted FALSE
/varset MobSnared FALSE
/varset Autofire FALSE
/varset CombatOn TRUE
/varset GotTarget TRUE
}
/return
Sub Combat
|- Check for new events in chat etc etc...
/doevents
|/if (${CombatOn} && ${DoSnare} && !${MobSnared} && ${Target.PctHPs}<=${SnareAt}) {
|/call cast ${SpellSnare} gem1
|/varset MobSnared TRUE
|}
|/if (${CombatOn} && ${DoNuke} && ${Me.PctMana}>=${NukeMana} &&
|${Target.PctHPs}<=${NukeAt}) {
|/call cast ${SpellFireDD} gem7
|}
|/if (${CombatOn} && ${DoRoot} && ${Me.PctMana}>=${RootMana} &&
|${Target.PctHPs}<=${RootAt}) {
|/call cast ${SpellRoot} gem9
|/varset MobRooted TRUE
|}
|- Check for new events in chat etc etc...
/doevents
| - Autofiring bit
/if (!${Autofire}) {
/echo you are fucked
/autofire
/varset Autofire TRUE
/face
} else {
/if (${Autofire} && ${CombatOn}) {
/face
}
}
}
/return
| ################## Group Invite
Sub Event_Invited
/invite
/return
| ################## I Died
Sub Event_ImDead
/echo Bummer !
:Zone_Loop
/if ( ${Me.Bound.ID} != ${Zone.ID} ) /goto :Zone_Loop
/delay 5s
/consent group
/delay 5
/gsay Im ready to get rez.
/gsay I have consented group.
/call Wait4Rez
/delay 20
/call MemSpells
/if (${Me.State.Equal[Stand]}) /sit
| ################## This part is taken from wait4res.
Sub Wait4Rez
:waitforrez
/if (!${Window[ConfirmationDialogBox].Open}) {
/delay 5s ${Window[ConfirmationDialogBox].Open}
/goto :waitforrez
}
/if (${Window[ConfirmationDialogBox].Open}) /notify ConfirmationDialogBox
Yes_Button leftmouseup
:zonein
/delay 5
/squelch /target mycorpse
/delay 5
/if (${Target.CleanName.NotEqual[${Me}'s corpse]}) /goto :zonein
/if (${Target.CleanName.Equal[${Me}'s corpse]}) {
/delay 3s
/call Loot_Corpse
} else /goto :zonein
/return
| ################# Looting Corpse
Sub Loot_Corpse
/declare LootTotal int local 0
/declare LootSlot int local
/squelch /target mycorpse
/if (${Target.Type.NotEqual[CORPSE]} || !${Target.ID}) {
/echo ** Can't target my corpse.
/return
}
/corpse
/delay 1s
/loot
/delay 1s
/if (${Me.State.NotEqual[BIND]}) {
/echo ** Massive lag right now... Aborting looting.
/return
}
:LootLag
/if (${LootTotal}!=${Corpse.Items}) {
/varset LootTotal ${Corpse.Items}
/delay 5
/goto :LootLag
}
/for LootSlot 1 to ${LootTotal}
:LootItem
/itemnotify loot${LootSlot} rightmouseup
/delay 3
/if (${Corpse.Item[${LootSlot}].ID}) {
/delay 2
/goto :LootItem
}
/next LootSlot
/delay 5
/echo ** Done looting my corpse.
/notify LootWnd DoneButton leftmouseup
/return
| #################
| ################# Tells n Hells
| #################
Sub Event_Chat(string ChatType,string ChatSender,string ChatText)
/if (!${ChatType.Equal[GROUP]} && !${ChatType.Equal[TELL]}) /return
| ################# Follow me
/if (${ChatText.Equal[Follow me]} || ${ChatText.Equal[Follow]}) {
/delay 5
/if (!${Spawn[${ChatSender}].ID}) {
/e ${ChatSender} is not in zone for me to follow!
/return
}
/varset follname ${ChatSender}
/varset following 1
/tell ${ChatSender} I am following you!!!
/if ( ${Me.Mount.ID} ) /dismount
:targetfoll
/target pc ${follname}
/delay 1s ${Target.Name.Equal[${follname}]}
/if (${Target.Name.Equal[${follname}]}) {
/goto :Loop
} else /goto :targetfoll
:Loop
/face fast
/if (${Target.Distance}>40) /keypress forward hold
/if (${Target.Distance}<39) /keypress back
/if (!${Target.ID}) /varset following 0
/doevents
/if ((${Target.Name.Equal[${follname}]})&&(${following}>0)) {
/goto :Loop
} else {
/keypress forward
/keypress back
}
}
| ################# Stop Following me
/if (${ChatText.Equal[End follow]} || ${ChatText.Equal[stop]}) {
/varset following 0
/keypress forward
/keypress back
/timed 50 /face pc ${follname}
/tell ${ChatSender} I Stopped following you!!!
/return
}
/return