Simple Kite (bard)

Post your completed (working) macros here. Only for macros using MQ2Data syntax!

Moderator: MacroQuest Developers

jcooler
a ghoul
a ghoul
Posts: 87
Joined: Wed Dec 31, 2003 7:38 pm

Simple Kite (bard)

Post by jcooler » Wed May 05, 2004 3:41 pm

This is a manual bard kite macro.

this is for skilled kiters only and i take no responabilty in the many many many deaths you will have from running this macro

Code: Select all

| - Kite.mac - 
| Hacked together by Brick 37 twisting 3 AE dots, 49 Selo's, 
| Changed by jcooler to add the extra coolness which cast 4 AE dots and no selo's
| Converted by ******** whom shall remain nameless untill he give me a good name =p
| 
| swarm <dot1> <dot2> <dot3> <dot4> <loc x> <loc y> <radius> 
|
| Runs around in a cirle while twisting four DOT AEs.   
| 
| DISCLAIM this is outdated by the PLUGIN but for the rest of 
| you still in the stoneage have fun with it

#event MissedNote "You miss a note, bringing your song to a close!" 
#event NeedTarget "You must first select a target for this spell!" 
#event Slow       "you slow down" 
#event Exp        "You gain " 

#event Recovered "You haven't recovered yet..." 
#event Notsee   "You cannot see" 
#event Died "You have entered" 

| this needs to be on now -- parameter parsing takes too long 
#turbo 

Sub Main(p0,p1,p2,p3,p4,p5,p6) 

/declare cirx float outer
/declare ciry float outer 
/declare cirr float outer 
| array of songs 
/declare a[4] int outer
| number of songs 
/declare nsongs int outer
| current song 1-3 
/declare cursong int outer
/declare prevsong int outer 
/declare exper float outer 
/declare aaexp float outer 
/declare health int outer
/declare songtimer timer outer
/declare rangecalc int outer 
/declare lastmobid string outer 
/varset rangecalc 0

  /if (!${Defined[p0]}) { 
    /echo usage: swarm.mac <DOT> <DOT> <DOT> <selo> <loc x> <loc y> <radius> 
    /return 
  } 

  | check if the location was passed in... 
  /if (!${Defined[p4]}) { 
        /varset cirx ${char[y]} 
        /varset ciry ${char[x]} 
        /varset cirr 32 
  } else { 
        /varset cirx ${p4} 
        /varset ciry ${p5} 
        /varset cirr ${p6} 
  } 

  /varset nsongs 4 

| First song 
  /varset a[1] ${p0} 
  /echo Song 1: ${Me.Gem[${p0}]} 

  /if (${Defined[p1]}) { 
            /varset a[2] ${p1} 
            /echo Song 2: ${Me.Gem[${p1}]}
      } 

  /if (${Defined[p2]}) { 
            /varset a[3] ${p2} 
            /echo Song 3: ${Me.Gem[${p2}]} 
      } 
  /if (${Defined[p3]}) { 
            /varset a[4] ${p2} 
            /echo Song 4: ${Me.Gem[${p3}]} 
      } 


| always incremented before starting a new 
| song.  songs start at 1 so we can make 
| cursong = 0 to restart the list 
  /varset cursong 1 
  /varset songtimer 64 

:Loop 
  
    /if (${songtimer}<=0) /call Sing 
    /call circ ${cirx} ${ciry} ${cirr} 
    /doevents 
/goto :Loop 
/return 

Sub Sing 
   /stopsong 
	/keypress 0
   /cast ${cursong} 

   /if ( ${rangecalc}!=0) /varset rangecalc 0
|   /echo casting ${cursong} 
   /varset prevsong ${cursong} 
   /varcalc cursong ${cursong} + 1 
   /varset songtimer 32 
   /call circ ${cirx} ${ciry} ${cirr} 
   /doevents 
   /if (${cursong}>${nsongs}) /varset cursong ${a[1]} 
/return 

Sub circ 
   /if (${Me.Speed}<=.2) /keypress Num_Lock
   /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*${Math.Calc[${cirr}/${Math.Distance[${cirx},${ciry}]}]}]}]} 
   } 
/return 


Sub Event_MissedNote 
  | restart song 
   /varset cursong ${prevsong} 
   /varset songtimer 0 
   /call circ ${cirx} ${ciry} ${cirr}
   /doevents 
/return 

Sub Event_Recovered 
  | restart song 
   /if (${cursong}!=${a[5]}) { 
   /varset cursong ${prevsong} 
} 
   /varset songtimer 0 
   /call circ ${cirx} ${ciry} ${cirr}
   /doevents 
/return 

Sub Event_Notsee 
   /stopsong 
   /varset cursong ${prevsong} 
   /varset songtimer 0 
   /call circ ${cirx} ${ciry} ${cirr}
   /doevents 
/return 

Sub Event_NeedTarget 
  | get target 
   /tar npc 
   /varset lastmobid ${Target[ID]} 
   /call circ ${cirx} ${ciry} ${cirr} 
   /doevents 
/return 



Sub Event_Died 
  /delay 10 
  /sit 
  /delay 10 
  /end
/return 

Sub Event_Exp 
  /stopsong 
  /tar npc 
  /varset cursong ${a[1]} 
  /varset songtimer 0 
  /call circ ${cirx} ${ciry} ${cirr} 
  /doevents 
/return 

Sub Event_OOR 
  /varcalc rangecalc ${rangecalc}+1 
  /if n (${rangecalc}>=10) { 
      /press esc 
      /varset rangecalc 0 
      /tar npc 
      /call circ ${cirx} ${ciry} ${cirr} 
      /doevents 
  } 
/return 

Huggles
orc pawn
orc pawn
Posts: 11
Joined: Wed Apr 21, 2004 6:13 pm

kk

Post by Huggles » Thu May 06, 2004 6:20 am

it runs one circle great, and then it just goes NULL and stops working.

Preocts
a snow griffon
a snow griffon
Posts: 312
Joined: Thu Jan 29, 2004 1:02 pm

Post by Preocts » Thu May 06, 2004 6:26 am

Worked fine for me. Had to edit the song list because the inputed songs were being ignored. It just liked to play gems 1-4 no matter what you told it.

jcooler
a ghoul
a ghoul
Posts: 87
Joined: Wed Dec 31, 2003 7:38 pm

Post by jcooler » Thu May 06, 2004 3:30 pm

i got used to that feel free to post the corection

Now i didn;t write this kite

this kite mac and the plugin do that same thing just the plugin is less laggy and you can do better things with it

I would like to open up a discuessen on AEkiteing , if anyone wants to exchange ideas about AE kiteing PM me plz don;t post openly =p last thing i need is a bunch of jackmos in my kiteing spots

the funny thing is ..... i don;t even play a bard i play a friends bard to level my warrior =p

evilwayz
decaying skeleton
decaying skeleton
Posts: 2
Joined: Sun Nov 30, 2003 4:02 pm

plz fix

Post by evilwayz » Thu Jun 10, 2004 8:55 pm

when i run this macro it will run one circle then end itself how do i make it keep looping ?