nyghteyes
What is a macro??
- Joined
- Mar 21, 2006
- RedCents
- 1,347¢
This will run from camp too camp and kill whatever is near the set range. You have too make sure you can run between camp 1 and camp 5 and have a fairly clear shot from camp too camp sequentially. This probably isn't the best way to do it but seems too work.
Rich (BB code):
|Mac for camping 5 locations - Nyghteyes - 05-11-09
|Edit Campsites line 56 - 69
|All abilities other than the pull alt I use mq2melee flags for
|Thanks Omper for your anchor routines
|Plugins: MQ2Moveutils, MQ2Cast, MQ2Rez, MQ2Melee, EQBC(just for exit routine)
|I have some toons bound next too eachother, If they end up in the lobby next too each other
|they will /exit, lost too many corpses heh
#event GotHIT "#*#hits YOU for#*#"
#event GotHIT "#*#slashes YOU for#*#"
#event GotHIT "#*#crushes YOU for#*#"
#event GotHIT "#*#bashes YOU for#*#"
#event GotHIT "#*#kicks YOU for#*#"
#event GotHIT "#*#smashes YOU for#*#"
#event GotHIT "#*#mauls YOU for#*#"
#event GotHIT "#*#gores YOU for#*#"
#event GotHIT "#*#pierces YOU for#*#"
#event GotHIT "#*#kicks YOU for#*#"
#event GotHIT "#*#bashes YOU for#*#"
#Event lobby "You have entered"
Sub Main
/declare AnchorX float outer
/declare AnchorY float outer
/declare fXLoc float outer 0.0
/declare fYLoc float outer 0.0
/declare campsite1x float outer
/declare campsite1y float outer
/declare campsite2x float outer
/declare campsite2y float outer
/declare campsite3x float outer
/declare campsite3y float outer
/declare campsite4x float outer
/declare campsite4y float outer
/declare campsite5x float outer
/declare campsite5y float outer
/declare npcrad int outer
/declare Agro outer FALSE
/if (!${Plugin[MQ2Moveutils].Name.Equal[mq2moveutils]}) /squelch /plugin mq2moveutils nocheck
/if (!${Plugin[MQ2Cast].Name.Equal[mq2cast]}) /squelch /plugin mq2cast nocheck
/if (!${Plugin[MQ2Melee].Name.Equal[mq2melee]}) /squelch /plugin mq2melee nocheck
/if (!${Plugin[MQ2Rez].Name.Equal[mq2rez]}) /squelch /plugin mq2rez nocheck
/delay 10
/rez accept on
/rez loot off
/melee stickrange=20
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
|##############################MAKE CHANGES DOWN HERE############################
|#####################################CampSites##################################
|###Your starting anchor will not be moved to again unless added as a Campsite###
|Campsite1
/varset campsite1y -1000
/varset campsite1x 1000
|Campsite2
/varset campsite2y -1100
/varset campsite2x 1000
|Campsite3
/varset campsite3y -1200
/varset campsite3x 1000
|Campsite4
/varset campsite4y -1300
/varset campsite4x 1000
|Campsite5
/varset campsite5y -1400
/varset campsite5x 1000
|#####NPC Radius Check#####
/varset npcrad 150
/declare Pullspell outer "Nature's Balance"
/declare Pullgem int outer gem1
/declare Buddy1 outer "BUDDYNAMEHERE"
/declare Buddy2 outer "OTHERBUDDYHERE
/declare zonename outer "Walls of Slaughter"
|###############################No more changes from here#########################
/echo Pulls Starting
:start
/doevents
/delay 1s
/if (${Me.Casting}) /goto :start
/if (${Agro}) /call combat
/if (!${Agro}) /cleanup
/call MoveToAnchor
/doevents
/delay 1s
/if (!${Agro} && !${Target.ID}) /call Targetit
/if (!${Agro} && ${Target.ID} && ${Target.Distance}< ${npcrad}) /call pull
/call Movenext
/goto :start
/return
Sub Combat
/attack on
/if (!${Target.ID}) {
/varset Agro FALSE
/keypress esc
/goto :End
}
/doevents
/if (!${Target.ID}) /goto :end
/call fighting
:end
/return
Sub Event_GotHIT
/varset Agro TRUE
/doevents
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/doevents
/call Move2me
/call Pull
/return
Sub MoveToAnchor
/if (${Math.Distance[${AnchorY},${AnchorX}]}<=20) /return
/declare iCount int local
/varset fXLoc ${Me.X}
/varset fYLoc ${Me.Y}
/varset iCount 0
/echo Moving to Anchor at Loc: ${AnchorY}, ${AnchorX}.
:AnchorMoveLoop
/delay 1
/doevents
/face nolook loc ${AnchorY},${AnchorX}
/if (${Math.Distance[${AnchorY},${AnchorX}]}>20) {
/keypress forward hold
} else {
/keypress forward
/return
}
/if (${iCount}>2) {
/call Detectobst
/face nolook loc ${AnchorY},${AnchorX}
/varset iCount 0
}
/varcalc iCount ${iCount}+1
/goto :AnchorMoveLoop
/return
Sub Detectobst
/delay 2
/if (${fXLoc}==${Me.X}) /if (${fYLoc}==${Me.Y}) /call Hitobst
/varset fXLoc ${Me.X}
/varset fYLoc ${Me.Y}
/return
Sub Hitobst
/keypress forward
/keypress back hold
/if (${Math.Rand[2]}) {
/delay 2s
/keypress back
/keypress right hold
/delay 8
/keypress right
/delay 2s
/keypress back
/keypress left hold
/delay 8
/keypress left
}
/delay 10
| /keypress forward hold
/return
sub pull
/delay 5
/casting ${Pullspell} ${Pullgem}
/delay 5
/face loc ${AnchorY}, ${AnchorX}
/delay 5
/call MoveToAnchor
/face nolook
/call combat
/return
|##Stay in combat sub, abilities handled by mq2melee##
sub fighting
:hold
/delay 7
/if (!${Target.ID}) /goto :endfight
/if (${Target.Distance}>${npcrad}) /goto :hold
:keepfighting
/delay 7
/if (!${Target.ID}) /goto :endfight
/if (${Target.ID}) /goto :keepfighting
:endfight
/varset Agro FALSE
/return
Sub Movenext
:camp1
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
/face loc ${campsite1y}, ${campsite1x}
/delay ${Math.Rand[50]}
/squelch /Moveto loc ${campsite1y}, ${campsite1x}
:wait1
/doevents
/delay 1s
/if (${Me.Moving}) /goto :wait1
}
/target npc radius ${npcrad}
/delay 1s
/doevents
/if (${Target.Distance}<${npcrad}) {
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/call Move2me
/call pull
}
:camp2
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
/face loc ${campsite2y}, ${campsite2x}
/delay ${Math.Rand[50]}
/squelch /Moveto loc ${campsite2y}, ${campsite2x}
:wait2
/delay 1s
/doevents
/if (${Me.Moving}) /goto :wait2
}
/target npc radius ${npcrad}
/delay 1s
/doevents
/if (${Target.Distance}<${npcrad}) {
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/call Move2me
/call pull
}
:camp3
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
/face loc ${campsite3y}, ${campsite3x}
/delay ${Math.Rand[50]}
/squelch /Moveto loc ${campsite3y}, ${campsite3x}
:wait3
/delay 1s
/doevents
/if (${Me.Moving}) /goto :wait3
}
/target npc radius ${npcrad}
/delay 1s
/doevents
/if (${Target.Distance}<${npcrad}) {
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/call Move2me
/call pull
}
:camp4
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
/face loc ${campsite4y}, ${campsite4x}
/delay ${Math.Rand[50]}
/squelch /Moveto loc ${campsite4y}, ${campsite4x}
:wait4
/delay 1s
/doevents
/if (${Me.Moving}) /goto :wait4
}
/target npc radius ${npcrad}
/delay 1s
/doevents
/if (${Target.Distance}<${npcrad}) {
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/call Move2me
/call pull
}
:camp5
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
/face loc ${campsite5y}, ${campsite5x}
/delay ${Math.Rand[50]}
/squelch /Moveto loc ${campsite5y}, ${campsite5x}
:wait5
/delay 1s
/doevents
/if (${Me.Moving}) /goto :wait5
}
/target npc radius ${npcrad}
/delay 1s
/doevents
/if (${Target.Distance}<${npcrad}) {
/varset AnchorX ${Me.X}
/varset AnchorY ${Me.Y}
/varset iCount 0
/call Move2me
/call pull
}
/goto :start
/return
Sub Move2me
:wait6
/delay 8
/doevents
/if (${Me.Moving}) /goto :wait6
/bca //face loc ${AnchorY}, ${AnchorX}
/delay ${Math.Rand[50]}
/bca //moveto ${AnchorY}, ${AnchorX}
/return
Sub Targetit
/target npc radius ${npcrad}
/if (${Target.Distance}>${npcrad} || !${Target.ID}) {
/keypress esc
}
/call Movenext
/return
sub event_lobby
/delay 2s
/echo Damn were in the lobby again...
/delay 1s
/echo Waiting in the lobby for a rez...
/echo or till my buddies die...
/doevents
:waitingforrez
/doevents
/delay 5s
/if (${Bool[${NearestSpawn[1,PC ${Buddy1}]}]} && ${Bool[${NearestSpawn[1,PC ${Buddy2}]}]} && !${Zone.Name.Equal[${zonename}]}) /call allwiped
/doevents
/if (!${Zone.Name.Equal[${zonename}]}) /goto :Waitingforrez
/return
Sub allwiped
/echo Guess we wiped again - exiting too save rez timers
/bca //end
/delay 3s
/bcaa //exit
/endmacro
/return
Last edited:

