Bard AE dot macro

A forum for you to dump all the macros you create, allowing users to use, modify, and comment on your work.

Moderator: MacroQuest Developers

Guest

Bard AE dot macro

Post by Guest » Sun Nov 16, 2003 12:50 am

Mjello, after using a bard chant macro for some time, i wanted to try something new so i editted abit in the chant macro that i had so i didnt have to start from scrath (thanks Insanitywiz). I have only tried this in Plane of Valor and it works great, you run around gather all spawn in the desert and AE them :) a good place to do the circle run is in front of castle on the frozen lake.

PS: Run around with a lute instead of a drum since you can outrun them easy with anyway and you want the extra effect of you AE spells.

Code: Select all

| 
| - swarm.mac - 
| Hacked together by Brick 37 twisting 3 AE dots, 49 Selo's, 
| 
| swarm <dot1> <dot2> <dot3> <selo> <loc x> <loc y> <radius> 
| run around in a cirle while twisting selos and three DOT AEs.  If x, 
| y, and radius are not supplied, use the current position and a radius 
| of 32. But i strongly recommend you to type in xloc yloc and radius.
|

#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 Tell       "tells you" 
#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 global 
/declare ciry global 
/declare cirr global 
| array of songs 
/declare a array 
| number of songs 
/declare nsongs global 
| current song 1-3 
/declare cursong global 
/declare prevsong global 
/declare exper global 
/declare aaexp global 
/declare health global 
/declare songtimer timer 
/declare selotimer timer 
/declare angstimer timer 
/declare puretonetimer timer 
/declare bellowtimer timer 
/declare rangecalc global 
/declare lastmobid global 
/varset rangecalc 0

  /if $defined(p0)==false { 
    /echo usage: swarm.mac <DOT> <DOT> <DOT> <selo> <loc x> <loc y> <radius>
    /return 
  } 

  | check if the location was passed in... 
  /if $defined(p4)==false { 
        /varset cirx $char(y) 
        /varset ciry $char(x) 
        /varset cirr 32 
  } else { 
        /varset cirx @p4 
        /varset ciry @p5 
        /varset cirr @p6 
  } 

  /varset nsongs 3 

| First song 
  /varset a(1) @p0 
  /echo Song 1: $char(gem,@p0) 

  /if $defined(p1)!=false { 
            /varset a(2) @p1 
            /echo Song 2: $char(gem,@p1) 
      } 

  /if $defined(p2)!=false { 
            /varset a(3) @p2 
            /echo Song 3: $char(gem,@p2) 
      } 

|Selos 
  /if $defined(p5)!=false { 
            /varset a(4) @p3 
            /echo Song 4: $char(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 exper $char(exp)% 
  /varset aaexp $char(aa,exp)% 
  /varset songtimer 64 
  /varset bellowtimer 186 
  /varset selotimer 0 
  /varset angstimer 240 
  /varset puretonetimer 64 

:Loop 
   /if $defined(p3)==false { 
      /varset selotimer 10000 
  } 
  /if $defined(p5)!=false { 
    /if $char(speed)<=1 /varset cursong @a(4) 
    /call circ @cirx @ciry @cirr 
  } 
    /if n @selotimer<=0 { 
      /varset cursong @a(4) 
      /varset selotimer 1500 
      /call Sing 
  } 
    /if n @puretonetimer<=0  { 
      /varset angstimer 0 
      /disc puretone 
      /varset puretonetimer 43200 
  } 
    /if n @songtimer<=0 /call Sing 
    /call circ @cirx @ciry @cirr 
    /doevents 
/goto :Loop 
/return 

Sub Sing 
   /stopsong 
   /cast @cursong 
   /if n $target(id)!=@lastmobid /if n @rangecalc!=0 /varset rangecalc 0
|   /echo casting @cursong 
   /varset prevsong @cursong 
   /varadd cursong 1 
   /varset songtimer 32 
   /call circ @cirx @ciry @cirr 
   /doevents 
   /if n @cursong>@nsongs /varset cursong @a(1) 
/return 

Sub circ 
   /if $char(speed)<=.2 /press Num_Lock 
   /if n $distance(@cirx,@ciry)<(@cirr/2){ 
   /face heading $calc($heading(@cirx,@ciry)+180) 
   } else { 
   /face heading $calc($heading(@cirx,@ciry)+$calc(90*$calc(@cirr/$distance(@cirx,@ciry)))) 
   } 
/return 

Sub Event_MissedNote 
  | restart song 
   /varset cursong @prevsong 
   /varset songtimer 0 
   /call circ $xloc $yloc $radius 
   /doevents 
/return 

Sub Event_Recovered 
  | restart song 
   /if @cursong!=a(5) { 
   /varset cursong @prevsong 
} 
   /varset songtimer 0 
   /call circ $xloc $yloc $radius 
   /doevents 
/return 

Sub Event_Notsee 
   /stopsong 
   /varset cursong @prevsong 
   /varset songtimer 0 
   /call circ $xloc $yloc $radius 
   /doevents 
/return 

Sub Event_NeedTarget 
  | get target 
   /tar npc 
   /varset lastmobid $target(id)
   /call circ @cirx @ciry @cirr 
   /doevents 
/return 

Sub Event_Tell 
   /beep 
   /call circ $xloc $yloc $radius 
   /doevents 
/return 

Sub Event_Died 
  /delay 10 
  /sit 
  /delay 10 
  /camp desktop 
/return 

Sub Event_Exp 
  /varset aaexp $calc($char(aa,exp)-@aaexp) 
  /varset exper $calc($char(exp)-@exper) 
  /echo Running time $calc($running/60) minutes 
  /echo @exper% regular exp @aaexp% AA exp 
  /varset exper $char(exp) 
  /varset aaexp $char(aa,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

GL with it :)


/Brick 37

Brick 37
decaying skeleton
decaying skeleton
Posts: 6
Joined: Sun Nov 16, 2003 12:35 am

Post by Brick 37 » Sun Nov 16, 2003 12:55 am

gah n00b me i forgot to log in hehe oh well flame away :)


/Brick 37

theafkxper
a hill giant
a hill giant
Posts: 207
Joined: Sun Sep 08, 2002 6:41 pm

Post by theafkxper » Sun Nov 16, 2003 1:08 am

wanna give us a breakdown of what you changed?

skimmed through it and looked alot like the other one, hehe :D

definately nice though, GJ

Brick 37
decaying skeleton
decaying skeleton
Posts: 6
Joined: Sun Nov 16, 2003 12:35 am

Post by Brick 37 » Sun Nov 16, 2003 1:12 am

well i didnt do much i said that, and its more the ideer to do the AEing, but if you run the other in while you AE you get errors and thats more of less what i fixed so you dont :)

but exp with this is a killer you get 5-6% aa pr kill x 50 mobs.


/Brick 37

theafkxper
a hill giant
a hill giant
Posts: 207
Joined: Sun Sep 08, 2002 6:41 pm

Post by theafkxper » Sun Nov 16, 2003 4:11 pm

tried it out last night, works very very well, great job :P

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Sun Nov 16, 2003 4:25 pm

I gave this a try and it didn't seem to increment songs properly. Not sure why. The syntax I used was like this:

/macro swarm.mac 4 5 6 8 100.11 200.22 30

Where 4, 5, 6 are the AE DoT's
8 is where selo's is memmed

and then the x and y loc and radius.

Am I doing something wrong?

Likwidation

Question?

Post by Likwidation » Sun Nov 16, 2003 5:00 pm

How do you figure out your x,y....if its just a matter of looking at your location and putting it in then how do you use it if its negative. Whenever I do this it seems like it doesn't work...

ml2517
a grimling bloodguard
a grimling bloodguard
Posts: 1216
Joined: Wed Nov 12, 2003 1:12 am

Post by ml2517 » Sun Nov 16, 2003 5:02 pm

I believe you have to have autorun on when you kick it off. I don't have problems with the circle stuff at all. My problem seems to be the singing doesn't increment songs.

insanitywiz
a hill giant
a hill giant
Posts: 250
Joined: Mon Jul 08, 2002 7:50 am

Post by insanitywiz » Sun Nov 16, 2003 6:01 pm

This was from an old copy of my chantkite macro, and at the time I didn't have the songs incrementing properly. Try using it with your AE songs in gems 1 2 3.

As for locs, yes, you need to have autorun on in this version, or you won't do anything other then spin a bit. For negative loc values, just use the minus.

theafkxper
a hill giant
a hill giant
Posts: 207
Joined: Sun Sep 08, 2002 6:41 pm

Post by theafkxper » Sun Nov 16, 2003 10:27 pm

whne you enter in a negative loc, make sure you dont have a space between the - and the number, ie:

-123 - Right
- 123 - Wrong

GeoffreyF67
a lesser mummy
a lesser mummy
Posts: 70
Joined: Tue Nov 04, 2003 6:07 pm

Post by GeoffreyF67 » Sun Nov 23, 2003 9:58 am

Sweet! How can I get this to twist 4 songs? I've got a nice speedy connection :)

mekaniak
a hill giant
a hill giant
Posts: 290
Joined: Thu Sep 18, 2003 3:21 pm

Post by mekaniak » Sun Nov 23, 2003 12:49 pm

and in the exact opposite respect to the poster above. How would I go about only twisting 2 dots and the regular selos instead of a third dot because my connection suxx0rz!
I love the Power Glove, it's so bad

Say hello to M.C. Smurf!

[quote]<mekaniak> adios guys.
<dont_know_at_all> idiot
* mekaniak is now known as mekaniak_dinner
<Jacensolo> me?
<dont_know_at_all> not this time
[/quote]

[quote]
<dont_know_at_all> A_Enchanter_00, how the fuck should i know? it's your code[/quote]

I love quoting IRC chat.

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

could be very nice......

Post by evilwayz » Sun Nov 30, 2003 10:16 pm

everytime i run this mac with selos im always out of range for songs ... and everytime i use run 3 i get hit and die after a while
i have all the necessary aa to kite in pov en3 sc3 ect. i usually use 3 dots and selos , or 4 dots and no selos whatever the loc is to the right of the castle in pov the littlte frozen lake . and 32 as last integer i assume that is circumfrance . can anyone give me a winnning combination ... preferabley without seols so i can use more dots but either way is fine
. thx in advance

MQ_Wannabe
Custom Builder
Custom Builder
Posts: 27
Joined: Wed Nov 12, 2003 9:51 pm

Post by MQ_Wannabe » Tue Dec 09, 2003 12:59 am

This macro is great, but It never refreshes my Selo enough...

This happenin to anyone else? ive had to stop/start it just to refresh selo... Is it because of missed notes or whatnot?

BobbyShaftoe
orc pawn
orc pawn
Posts: 21
Joined: Wed Dec 10, 2003 2:10 am

Fix for "AEs must be in gems 1 2 3"

Post by BobbyShaftoe » Wed Dec 10, 2003 4:07 am

Code: Select all

Sub Sing 
   /stopsong 
   /cast @cursong 
Shouldn't that be:

Code: Select all

Sub Sing
  /stopsong
  /cast @a(@cursong)
That'll fix the "AEs must be in gems 1 2 3" problem.

If you do that though, you need to fix one line in the :Loop

Code: Select all

   /if n @selotimer<=0 { 
      /varset cursong @a(4) 
      /varset selotimer 1500 
      /call Sing 
  }
make that /varset cursong 4

I'll clean it up tonight when I get home.