|**********************************************************************************|
|
| I am kinda making some assumptions about twist sets here, with 8 being the snare,
| 2-7 being runspeed and damage songs, and 1 being the regen Song,
| but you can reset the twist commands to what you wish them to be
|
|**********************************************************************************|
#turbo 20
#include oc-utilities.inc
#event GMInTells "#*#tells you,#*# GM #*#"
#event GMInTells "#*#tells you,#*# Guide #*#"
#event GMInTells "#*#tells you,#*# Senior Guide #*#"
#event GMInTells "#*#tells you,#*# gamemaster #*#"
#event GMInTells "#*#tells you,#*# Game Master #*#"
#event GMInTells "#*#tells you,#*# Customer Service #*#"
#event GMInTells "#*#tells you,#*# CSR #*#"
#event ExpTracker "#*#experience!#*#"
#event AA "You have gained an ability point!#*#"
#event tar "#*#You gain #*#"
#event Slain "#*#You have slain#*#"
#event tar "#*#You must first #*#"
#event tar "You cannot see your target."
#event invite "<Text that will trigger an invite of the person who sent the tell goes here>"
#event dzadd "<Text that will trigger a task invite of the person who sent the tell goes here>"
#event camp "<Insert tell based camp event of your preference>'
#event Kills "#*#My Progress#*#"
/echo ==The Bard Kiting Macro==
/echo '.'
/echo Coding concepts shamelessly remembered and borrowed from many a great bard macro.
/echo AFK macroing in a public zone is not advised. Please use this macro with caution in public areas.
/echo unless of course you want to bring the wrath down from the thing up high.
/popup ==Ruined City Bard Macro With Player Detection==
Sub Main
|//Don't touch these.
/declare Kills int outer 0
/declare AA int outer 0
/declare AaDPS int outer
/declare regensong int outer 0
/declare snaresong int outer 0
/declare dirgesong int outer 1
/declare resettwist int outer 1
/declare Exper float outer
/declare AAExp float outer
/declare LDRExp float outer
/varset Exper ${Me.PctExp}
/varset AAExp ${Me.PctAAExp}
/varset LDRExp ${Me.PctGroupLeaderExp}
|===
|//~Alter the Hit Point percentage that will trigger the use of Potions, Regen song, & Evac; below here.
/declare RegenHps int outer 90
/declare ChugPotion int outer 60
/declare EvacHps int outer 1
|//~Edit the player check radius below here
/declare PWRadius int outer 300
|===
|//~Alter the ${Zone.ID} for the zone you are kiting in below here.
/declare KiteZoneID int outer 336
|//~Alter the zone you're bound in below here.
/if (${Zone.ID}==344) /call Died
/if (${Zone.ID}==${KiteZoneID}) /call KiteZone
:MainLoop
/if (${Zone.ID}==${KiteZoneID}) {
/doevents
/call GMcheck
/doevents
/call CheckHP
/doevents
/delay 1s
/call AaDPS
/doevents
/call Tar
/doevents
/call Dirgesong
/doevents
/call Snare
/doevents
/if (${Target.Distance}>=300) /call Tar
/doevents
/if (${Me.CurrentMana}>=1800) /varset dirgesong 1
/if (${Target.PctHPs}<=20) /varset snaresong 1
/call SetTwist
}
/doevent
/goto :MainLoop
/return
Sub SetTwist
/if (${resettwist}==1) {
/if (${snaresong}==0 && ${regensong}==0 ) {
/twist 2 3 4 5 6 7
/varset resettwist 0
}
/if (${snaresong}==0 && ${regensong}==1 ) {
/twist 1 2 3 4 1 5 6 7
/varset resettwist 0
}
/if (${snaresong}==1 && ${regensong}==0 ) {
/twist 8 2 3 8 4 5 8 6 7
/varset resettwist 0
}
/if (${snaresong}==1 && ${regensong}==1 ) {
/twist 8 2 3 1 8 4 5 1 8 6 7
/varset resettwist 0
}
}
/return
Sub GMcheck
/if (${Spawn[gm].ID}) {
/echo Gm detected
/beep
/beep
/beep
/q
/endmac
}
/return
Sub Event_GMInTells
/twist off
/delay 1s
/alt act 212
/delay 2s
/q
/return
Sub Devoted
/if (${Me.AltAbilityReady["481"]}==TRUE) {
/twist 6
/delay 5s
/twist end
/delay 1s
/alt act 481
/delay 7s
/if (${regensong} == 1) /twist 1 2 3 4 1 5 6 7
/if (${regensong} == 0) /twist 2 3 4 5 6 7
}
/return
Sub AaDPS
/if (${Me.AltAbilityReady[Boastful Bellow]}) /aa act Boastful Bellow
/if (${Me.AltAbilityReady[Cacophony]}) /aa act Cacophony
/return
sub Dirgesong
/if (!${Target.ID} && ${dirgesong}==0) /return
/if (${Me.CurrentMana}>=1800 && ${dirgesong}==1) {
/squelch /twist 9
/delay 4S
/if (${Me.CurrentMana}<1700) {
/varset dirgesong 0
/varset resettwist 1
}
}
/return
sub Died
/twist end
/delay 1s
/keypress down
/delay 1s
/sit
/delay 1s
/camp desk
/q
/return
sub CheckHP
/if (${Me.PctHPs}<=${RegenHps} && ${Me.PctHPs}>=${EvacHps} && ${regensong}==0 && ${Zone.ID}==${KiteZoneID}) {
|/twist 1 2 3 4 1 5 6 7
/varset regensong 1
/varset resettwist 1
}
/if (${Me.PctHPs}>${RegenHps} && ${regensong}==1 && ${Zone.ID}==${KiteZoneID}) {
|/twist 2 3 4 5 6 7
/varset regensong 0
/varset resettwist 1
}
/if (${Me.PctHPs}<=${ChugPotion} && ${Zone.ID}==${KiteZoneID}) {
/potionbelt activate 2
|/twist 2 3 4 5 6 7
/varset regensong 0
/varset resettwist 1
}
|/if (${Me.PctHPs} < ${EvacHps} && ${Zone.ID}==${KiteZoneID}) {
|/warp loc -2000, -1555, -172.13
|/circle off
|/keypress forward
|/band activate strings
|/twist 1
|/delay 10s
|/alt act 212
|/doevents
|/sit
|:HealLoop
|/doevents
|/delay 21s
|/if (${Me.PctHPs} > ${RegenHps}) {
|/if (${Me.Sitting}) /stand
|/call KiteZone
|/return
|}
|/goto :HealLoop
|}
/return
Sub Tar
/if (${Target.ID}==FALSE) /tar NPC radius 200
/if (${Target.Type.Equal[corpse]}) /tar npc next
/if (${Target.Distance}>=300) /tar npc next
/if (${Target.Type.Equal[Discord Fluctuation]}) /tar npc next
/if (${Target.PctHPs}>80 && ${snaresong}==1 ) {
/varset snaresong 0
/varset resettwist 1
}
/return
Sub event_Slain
/varset snaresong 0
/varset resettwist 1
/return
Sub Snare
/if (${Target.PctHPs}<=20){
/varset snaresong 1
/varset resettwist 1
}
/return
Sub event_dzaddPerson
/dzadd
/return
Sub event_invite
/invite
/return
Sub event_camp
/twist end
/delay 30s
/alt act 212
|/warp succor
/circle off
/camp desktop
/endmac
/return
Sub KiteZone
/if (${Zone.ID}==${KiteZoneID}) {
/band activate percussion
/call moveto 2275 340
/face fast heading 320
/circle on 90
/keypress forward hold
/call SafetyCheck
/delay 1s
/call Tar
/twist 2 3 4 5 6 7
}
/return
Sub SafetyCheck
/if (${SpawnCount[pc radius ${PWRadius} notid ${Me.ID}]}) {
/if (${Me.Moving}) {
/twist end
/delay 25s
/keypress FORWARD
/keypress BACK
/alt act 212
|/warp loc -2000, -1555, -172.13
}
/beep
/beep
/beep
/echo [${Time.Time24}] !!! Alert !!!
/popup [${Time.Time24}] !!! Alert !!!
/echo [${Time.Time24}] Another Player is near by, the Macro has been paused...
/popup [${Time.Time24}] Another Player is near by, the Macro has been paused...
/if (!${Me.AFK}) /afk
/twist 9
/alt act 212
:loop
/delay 10s (!${SpawnCount[pc radius ${PWRadius} notid ${Me.ID}]})
/if (${SpawnCount[pc radius ${PWRadius} notid ${Me.ID}]}) /goto :loop
/echo [${Time.Time24}] Macro resumed...
/popup [${Time.Time24}] Macro resumed...
/call KiteZone
}
/return
Sub event_ExpTracker
/varset AAExp ${Math.Calc[${Me.PctAAExp}-${AAExp}]}
/varset Exper ${Math.Calc[${Me.PctExp}-${Exper}]}
/varset LDRExp ${Math.Calc[${Me.PctGroupLeaderExp}-${LDRExp}]}
/echo EXP: ${Exper} (${Me.PctExp}%) - AA: ${AAExp} (${Me.PctAAExp}%) : ${Time.Time12} :
/varset Exper ${Me.PctExp}
/varset AAExp ${Me.PctAAExp}
/varset LDRExp ${Me.PctGroupLeaderExp}
/varcalc Kills (${Kills}+1)
/return
Sub event_AA
/echo ${Time.Time12}
/varcalc AA (${AA}+1)
/return
Sub event_Kills
/echo =====================================
/echo ======= Kill Count - ${Kills} =======
/echo ========= AA Earned - ${AA} =========
/echo ======= Time - ${Time.Time12} =======
/echo =====================================
/return