Post your completed (working) macros here. Only for macros using MQ2Data syntax!
Moderator: MacroQuest Developers
-
mamba666
- a lesser mummy

- Posts: 49
- Joined: Fri Aug 15, 2003 11:47 am
Post
by mamba666 » Sun May 09, 2004 8:57 pm
Yes this is the Bard Chantkite Macro that runs around in a predefined circle and kills stuff.....
| - circle.mac - By Pi
|
|
| ********************************************************** |
| ***** This Bard Macro Chant Kites Mobs in a **** |
| ***** defined radius running in a circular pattern **** |
| ********************************************************** |
| ***** I Borrowed stuff from all over **** |
| ***** So don't whine too much **** |
| ********************************************************** |
| usage: circle.mac <Target Y,Target X,Radius,Songlist,Selos>
| Example -- circle.mac ${Target.X} ${Target.Y} 70 4567 3
| ********************************************************** |
| ********************************************************** |
#event NeedTarget "You must first select a target for this spell!"
#event MissedNote "You miss a note, bringing your song to a close!"
#event Stun "You are unstunned"
#event Oor "target is out of range"
Sub Main(int RubberY,int RubberX,int CirRadius,CombatGems,Selo)
/declare CirX int outer
/declare CirY int outer
/declare CirR int outer
/declare Songtimer timer outer
/declare Selosong int outer
/declare Selotimer timer outer
/declare Cursong int outer
/declare Prevsong int outer
/declare Nsongs int outer
/declare Songs[10] int outer
/declare TwistI int outer
/declare NCombatSongs int outer
/declare CombatSongList string outer
/declare angstimer timer outer
/declare Angstsong int outer
/declare Healsong int outer
/declare Notarget int outer
/declare MobMaxLevel int outer
/declare MobMinLevel int outer
/declare MobMaxRange int outer
/varset CirX ${RubberY}
/varset CirY ${RubberX}
/varset CirR ${CirRadius}
/varset Selotimer 0
/varset Songtimer 0
/varset angstimer 240
/varset Cursong 1
/varset Notarget 0
/varset CombatSongList ${CombatGems}
/varset NCombatSongs ${Int[${String[${CombatGems}].Length}]}
|This sets your Selo Gem number
/varset Selosong ${Selo}
| ********************************************************** |
| ***** These Variables are specific to your Character ***** |
| ********************************************************** |
|This sets your Angst Gem number
/varset Angstsong 8
|This is your Healsong
/varset Healsong 2
| This is the Maximum and Minimum Mob Levels as well as Max Distance
/varset MobMaxLevel 65
/varset MobMinLevel 59
/varset MobMaxRange 200
| ********************************************************** |
| ********************************************************** |
/if (!${Defined[CirRadius]}) {
/echo usage: circle.mac <Target Y,Target X,Radius,Songlist,Selos>
/echo Example -- circle.mac 600 -900 70 4567 3
/return
}
/if (${Defined[CombatGems]}) {
/for TwistI 1 to ${NCombatSongs}
/varset Songs[${TwistI}] ${String["${CombatSongList}"].Mid[${TwistI},1]}
/echo Song ${TwistI} is ${Songs[${TwistI}]}
/next TwistI
}
/echo Number of Songs ${NCombatSongs}
/echo Song List ${CombatGems}
/echo Radius ${CirR}
/echo Y ${CirY}
/echo X ${CirX}
:loop
/if (${Me.PctHPs}<75) {
/varset Songs[1] ${Healsong}
}
/if (${Me.PctHPs}>95) {
/varset Songs[1] ${String["${CombatSongList}"].Mid[1,1]}
}
/call Circ
/doevents
/if (${Selotimer}<=0) {
/call Singselo
}
/if (${Songtimer}<=0) {
/call Sing
}
/if (${angstimer}<=0) {
/call Angst
}
| *** This Checks for Selos Duration in Buff Slot 1
/if (${Me.Buff[1].Duration}<=6) {
/echo Need Selos Badly!
/call SeloBuff
}
/goto :loop
/return
Sub SeloBuff
/declare ThisTimer timer local
/varset ThisTimer 33
/stopsong
/cast ${Selosong}
:SeloBuffLoop
/call Circ
/if (${ThisTimer}>0) {
/goto :SeloBuffLoop
}
/return
Sub Circ
/if (${Math.Distance[${CirX},${CirY}]}<${Math.Calc[${CirR}/2]}) {
/face heading ${Math.Calc[${Heading[${CirX},${CirY}].DegreesCCW}+180]}
} else {
/face heading ${Math.Calc[${Heading[${CirX},${CirY}].DegreesCCW}+${Math.Calc[90*${CirR}/${Math.Distance[${CirX},${CirY}]}]}]}
}
/return
Sub Sing
/stopsong
/varset Prevsong ${Cursong}
/echo Casting gem ${Songs[${Cursong}]}
/cast ${Songs[${Cursong}]}
/varset Songtimer 33
/varcalc Cursong ${Cursong}+1
/if (${Cursong}>${NCombatSongs}) {
/varset Cursong 1
}
/call Circ
/doevents
/return
Sub Singselo
/stopsong
/echo Casting SELO"S!!!!
/cast ${Selosong}
/varset Songtimer 33
/varset Selotimer 1300
/return
Sub Angst
/stopsong
/varset Cursong ${Prevsong}
/echo Casting Angst!!!!
/cast ${Angstsong}
/varset Songtimer 33
/varset angstimer 1300
/return
Sub Event_NeedTarget
| get target
/tar npc radius ${MobMaxRange} range ${MobMinLevel} ${MobMaxLevel}
/call Circ
/doevents
/return
Sub Event_MissedNote
| restart song
/varset Cursong ${Prevsong}
/varset Songtimer 0
/call Circ
/doevents
/return
Sub Event_Stun
/sendkey up up
/delay 3
/sendkey up down
/varset Selotimer 0
/return
Sub Event_Oor
/varcalc Notarget ${Notarget}+1
/if (${Notarget}>9) {
/tar npc radius ${MobMaxRange} range ${MobMinLevel} ${MobMaxLevel}
/varset Notarget 0
}
/varset Songtimer 0
/call Circ
/doevents
/return
-
3x
- orc pawn

- Posts: 20
- Joined: Sun Jan 25, 2004 12:54 am
Post
by 3x » Mon May 10, 2004 7:09 pm
Cool mac... though what is "Angst Song" I assumed it would be for agro... but what is the point if your solo kiting and you have enough agro using DoTs?
Also the ability to not use selos would be a great addition... and set heal song gem from the /macro command.
Also add an echo when you start the macro that you can /varset CirR mid kite to change your circle radius if you need to adjust it.
-
mamba666
- a lesser mummy

- Posts: 49
- Joined: Fri Aug 15, 2003 11:47 am
Post
by mamba666 » Tue May 11, 2004 12:06 am
I'll probably post one without the selos check, if you don't have selos in first buff slot the macro will probably give you serious problems.
The Angst song is the long duration dot.
-
3x
- orc pawn

- Posts: 20
- Joined: Sun Jan 25, 2004 12:54 am
Post
by 3x » Tue May 11, 2004 6:24 am
Ohh.. I understand now. Angstlich's Assonance.
Yes disabling selos check would be great. Selos runspeed isn't always a good thing when kiting. Most mobs you can kite just with normal run3 aa.