Twist1.mac - A chant kiting macro.

Macro depository for macros written before the user variable changes that broke all of them.

Moderator: MacroQuest Developers

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Tue Aug 05, 2003 6:44 pm

/em got confused, what's the problem? If you wanna twist the regular Selo's treat it like a regualr song, Say it's in slot 5... /mac bard 3 4 5 would twist 3, 4 and selo's-short-ass-thing, 5... Gem numbers... always... "selo" is a tag that the macro grabs and reads the next number as the number associated with selo's-longer-thing... anyhow, I've been goofin' with it... small things mostly... I'll fix it here in the next day or so.

EDIT: Only the macro on the first post is worth a crap, all the others are just that... crap. So... ignore them use the one on the frist page, I like it the most. and it's all mine, noone helped... that I know of.
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

Draekz
a hill giant
a hill giant
Posts: 263
Joined: Thu Aug 01, 2002 6:07 pm
Location: Winnipeg, Manitoba, Canada

Post by Draekz » Tue Aug 05, 2003 8:12 pm

OH hey TC, hmm from what i see, when i start the macro im using, it lists the songs you select (in the proper slots..) so anyway, i presumed it uses the song names that it grabs using a varset or something and instead of the number slot it uses the name.

Hmm i'll post the code that i think is making hte problem!

Code: Select all

:Loop 
  /varset songname $char(gem,$cursong) 
  /call Sing $int($a(0,$cursong)) 
  /call circ $p0 $p1 $p2 
  /doevents 
  /varset CastTimer $int($spell("$songname",casttime)*10+$spell("$songname",recoverytime)*10) 
  :casting 
  /call circ $p0 $p1 $p2 
  /if n $CastTimer>0 /goto :casting 
  /doevents 
  /cal circ $p0 $p1 $p2 
/goto :Loop 
/return 
In that chunk of code the /varset CastTimer $int($spell("$songname",casttime)*10+$spell **etc etc etc*

Isnt that using the spell name, not the gem number? what my problem is, is that i dont know how to convert that correctly to use the gem slot instead of the spell name! Hence the reason i also think its using the do hickey (') instead of this do hickey (`) which is whats causing the name problem!

Anyway, repost if u dunno wtf im talking bout :P

thanks!

Draekz

Draekz
a hill giant
a hill giant
Posts: 263
Joined: Thu Aug 01, 2002 6:07 pm
Location: Winnipeg, Manitoba, Canada

Post by Draekz » Tue Aug 05, 2003 8:14 pm

PS: I'll use the first one lol i posted my response before reading ur entire thread :P

So yah, i'll try the first one! thanks!! The one im currently using tho works awsome! Wasnt sure if u updated the first post neither, so didnt use it :)

Anyway, thanks!

Draekz

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Wed Aug 06, 2003 2:09 pm

Yes, the first one is the most up-to-date. and will be forever... as far as what it says when it says "Song 1: <song name>" that just means it's the first song it'll twist, doesn't mean it's from gem #1

Code: Select all

      /varset a(0,$int($nsongs)) $int($a(1,$v60)) 
      /varadd nsongs 1 
      /echo Song $int($nsongs): $char(gem,$a(0,$int($nsongs-1))) 
Is what produces that output. $nsongs is the song's location+1 in the array that holds the gem numbers... so, hypothetically you could change that up mid twist by typing in EQ
"/varset a(0,<desired-twist-slot-minus-one) <new-gem-number>"
But that's me just making a note for myself when I get home... I've noticed a few times where it just freaks out and starts/stops the songs in rapid succession. I'll look into it tonight, if y'all have any ideas, lemme know.
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Wed Aug 06, 2003 2:18 pm

Hmm... was reading around the site... apparently someone added ini abilities... well... I'm gonna take advantage of that tonight.... The call will be /mac bard ini <ini-name> Different INI files for different chant-kites/situations... Good idea oh lord!! 'Course it's a good idea, now stop groveling.
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

Neoplex
a lesser mummy
a lesser mummy
Posts: 45
Joined: Wed Nov 06, 2002 12:27 pm

Post by Neoplex » Fri Aug 08, 2003 6:27 pm

Odd when I try to run it keeps saying a call beeing requested before the macro starts to run...


Any ideas? :roll:
Noobmonk01 says "Your kung fu is no match for me The tribunal!"
Autoattack on
The Tribunal begins to cast a spell
LOADING PLEASE WAIT ;)

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Fri Aug 08, 2003 10:44 pm

I've gotten that a few times, not with this macro, but with some others I've written, so far as I can tell it only happens when I'm watching a movie and playing EQ...
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

pecos
decaying skeleton
decaying skeleton
Posts: 4
Joined: Wed May 14, 2003 9:22 am

Post by pecos » Sun Aug 10, 2003 2:42 pm

can't seem to get this to run at all even when I kinda ripped every /call I see

Cannot call when a macro isn't running.

confused..

Shin Noir
a ghoul
a ghoul
Posts: 90
Joined: Tue Aug 05, 2003 8:18 pm

Post by Shin Noir » Sun Aug 10, 2003 4:54 pm

This is his code, tweaked a little bit for little features I like. Biggest noteworthy things I added is it keeps record of mobs killed in npc.ini and it supports up to 5 songs to be twisted (I like twisting 5 songs since technically you can do so if no messups\lag). I also commented out the circle code, It didn't work for me and personally I can run around in circles just fine.. it's the twisting that gets boring for me.

Maybe if you're having problems with his version try mine out.

Syntax can be like, /mac twist1 2 3 5 6 7
But less than 5 songs twisted is supported to, I.E. /mac twist1 2 3 5
(Ideally you list Chant of Flame, Frost, Poison, Disease, and Fulfil's.)

Code: Select all

| - Twist1.mac - 
| 
#event MissedNote "You miss a note, bringing your song to a close!" 
#event Recovered "You haven't recovered yet..." 
#event NeedTarget "You must first select a target for this spell!" 
#event Slow   "You slow down" 
#event Exp   "You gain " 
#event Slain "You have slain"
|#event Outof   "out of range" 

#define cursong v1 
#define nsongs v3 
#define switch v4 
#define exper V2 
#define targcount v5 

Sub Main 
  /if $p0=="" /return 
  /if $p0==NULL /return 

  /varset nsongs 1 

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

  /if $p1!="" /if $p1!=NULL { 
            /varadd nsongs 1 
            /varset a(0,2) $p1 
            /echo Song 2: $char(gem,$p1) 
      } 

  /if $p2!="" /if $p2!=NULL { 
            /varadd nsongs 1 
            /varset a(0,3) $p2 
            /echo Song 3: $char(gem,$p2) 
      } 
  
   /if $p3!="" /if $p3!=NULL { 
            /varadd nsongs 1 
            /varset a(0,4) $p3 
            /echo Song 4: $char(gem,$p3) 
      } 
   /if $p3!="" /if $p4!=NULL { 
            /varadd nsongs 1 
            /varset a(0,5) $p4 
            /echo Song 5: $char(gem,$p4) 
      } 

  /varset cursong 1 
  /varset exper $char(exp) 
  /varset switch 0 
  /varset t0 33 
 /varset a(8,0) "$target(name,clean)" 
 /varset a(8,1) $target(level) 
 /varset a(8,2) $target(name) 
 /varset a(8,3) $target(id) 
:Loop 
  /if n $t0<=0 /call Sing $int($a(0,$cursong)) 
|  /call circ $p3 $p4 $p5 
  /doevents 
/goto :Loop 

/return 

sub event_exp
/delay 1s 
 
/varset v57 $char(exp) 
/varcalc v58 $v57-$v56 
/varcalc v60 100-$char(exp) 
/varcalc v59 $v60/$v58 
  /if n $v58>0 { 
  /echo and you've gained $v58% exp, bringing your total exp to $char(exp)%!! 
   |#Read npc.ini for any entries of last target.
   /if n $ini(npc.ini,"$zone","$a(8,0)")=="notfound" {
    /varset v74 0
   } else {
    /varset v74 $ini(npc.ini,"$zone","$a(8,0)")
   }
   /varcalc v74 $v74+1
   |#Save the data in npc.ini
   /ini npc.ini "$zone" "$a(8,0)" $v74
   |End of NPC ini
   /echo Don't forget, $v60% left till level, with only $v59 of these mobs to kill. 
    |#display npc.ini data.
    /if n $v74==1.00 {
     /echo This is your first kill of $a(8,0) in $zone.
    } else {
     /echo You've have killed $a(8,0) a total of $int($v74) times in $zone.
    }  
   /varset v73 0 
  } else { 
|# Below handles when you don't get exp or just dinged
  /echo Exp remains at $char(exp)% after kill.
  } 
/return

Sub Sing 
  /varset t0 33 
  /stopsong 
  /cast $p0 
  /varadd cursong 1 
  /if n $cursong>$nsongs /varset cursong 1 
  /doevents 
/return 

|sub circ 
|  /face heading $calc($heading($p0,$p1)+90+$calc($p2-$distance($p0,$p1))/2) 
|  |/echo $distance($p0,$p1) 
|/return 

Sub Event_MissedNote 
  /varcalc cursong $cursong - 1 
  /if n $cursong<1 /varset cursong 1 
  /call Sing $cursong 
  /doevents 
/return 

Sub Event_Slow 
  /if n $cursong!=1 { 
    /varset cursong 1 
    /varset t0 0 
    /doevent 
  } 
/return 

|Sub Event_Outof 
|  /varset t0 0 
|  /varadd targcount 1 
|  /if n targcount>4 { 
|    /varset targcount 0 
|    /tar npc 
|  } 
|  /doevents 
|/return 

Sub Event_Recovered 
  /delay 1 
  
  /doevents 
/return 

Sub Event_NeedTarget 
  /varadd cursong 1 
  /if n $cursong>$nsongs /varset cursong 1 
/return 


Sub Event_Slain
/if n $ini(npc.ini,"$zone","$a(8,0)")=="notfound" {
    /varset v74 0
   } else {
    /varset v74 $ini(npc.ini,"$zone","$a(8,0)")
   }
   /varcalc v74 $v74+1
   /ini npc.ini "$zone" "$a(8,0)" $v74
   /if n $v74==1.00 {
     /echo This is your first kill of $a(8,0) in $zone.
    } else {
     /echo You have killed $a(8,0) a total of $int($v74) times in $zone.
    }  
/endm
/return

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Mon Aug 11, 2003 11:17 pm

Righto... well I think most of the problems you all are running into is this problem with "exp.mac" there's not actually a problem, aside from it not being in the macro dir... If you don't want to use it... read the comments....

That came off as hostile... little disgruntled, girl problems. Smurf hut building!
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

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

Post by theafkxper » Thu Aug 14, 2003 3:04 am

anyone up for adding:
charm support (intelligent or just temporarily charm for added damage)
chase runner support (optional, but avoids having to snare, i for one cant get snare to work right)

great macro btw!
/afk

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Sat Aug 16, 2003 10:55 pm

I've been fooling around with some charm support, and snare support wouldn't be too hard... Just a problem with the limited number of parameters... Once I figure out why I'm being a retard with the INI loading, I suppose you could just load all the options you want into that. But... until then... (9 is the limit on parameters I'm 1/4 tempted to just combine all the individual song numbers into one parameter, since nothing is ever above 10 there'd be no worry of double-digit things... I'll take a look at the parameter system... so don't be surprised if the next version is called like /mac bard selo1 2345 snare6 x-123 y345) But that's more of a note to myself... off to Rocky Horror Picture Show, girlie just bought some pink fishnets!
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-

Valerian
a grimling bloodguard
a grimling bloodguard
Posts: 709
Joined: Sun Jul 28, 2002 3:29 am

Post by Valerian » Sun Aug 17, 2003 12:39 am

TheColonel wrote:9 is the limit on parameters
MQ.h:

Code: Select all

#define MAX_STACKVARS 10

------> #define MAX_STACKVARS 30
recompile. *POOF* instant $p0-$p29.

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

Post by theafkxper » Mon Aug 18, 2003 3:58 pm

also...
why does the angl call make it so it dosent run in circles?
maybe some of you natural bards are used to it, but i use it for pling a bard for raid purposes, and my fingers hurt when i run in circles, lol

TheColonel
of what?
of what?
Posts: 164
Joined: Thu Oct 10, 2002 6:34 pm
Location: Golden, CO
Contact:

Post by TheColonel » Tue Aug 19, 2003 2:18 pm

That feature was added per someone's request, they didn't want any circles... so I made a different loop to simplify my life. I suppose I could make it do both. =) Got class in a few, I'll be back afterwards and I'll see what I can do.
Hell hath no fury like a woman's scorn for EQ.
-==(UDIC)==-