advchant.mac - Advanced Chant REV7

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

Moderator: MacroQuest Developers

Raebis
a ghoul
a ghoul
Posts: 81
Joined: Fri Dec 12, 2003 6:23 am

REV5a Update

Post by Raebis » Sat Jan 03, 2004 4:53 am

Thanks to ml2517 I am able to release REV5a ahead of schedule!!

Fixes in REV5a:
...Missed note & havn't recovered handling routine updated to use Amadeus' code
...Re-wrote Anchor and Gettarget routines to positively target closest mob to anchor
...added el's request for targeting of yellow & red aggros

New Version: REV5a Jan 03 03:00

Enjoy, this works a lot better than REV5.
Always say what you want to say. Because those who mind, don't matter. And those who matter, don't mind.

Raebis
a ghoul
a ghoul
Posts: 81
Joined: Fri Dec 12, 2003 6:23 am

REV5b

Post by Raebis » Sat Jan 03, 2004 6:15 am

Zac informed me of a crash error in casterdetection, so i fixed that.
Always say what you want to say. Because those who mind, don't matter. And those who matter, don't mind.

El
a ghoul
a ghoul
Posts: 108
Joined: Mon Dec 29, 2003 12:34 pm

Post by El » Sat Jan 03, 2004 1:24 pm

Raebis, getting an error with REV 5b: calculate encountered unparseable text "

I changed the statement to:

/if n @SeloSong!=0 /if n $calc($char(buff,"$char(gem,@SeloSong)",duration)*6)<=36 {

and it seems to work.

Raebis
a ghoul
a ghoul
Posts: 81
Joined: Fri Dec 12, 2003 6:23 am

REV5c

Post by Raebis » Sat Jan 03, 2004 5:10 pm

el, your fix Seems to work
However it won't, and if u are using level 49 selo it will refresh everytime...

see

$char(buff,"Selo`s Accererating Chorus",duration)

and

$char(buff,"Selo`s Accelerating Chorus")

Both return the same thing: The slot the buff is in
If selo is in buff slot 1 then you could type
$char(buff,1,duration) to get the correct duration.

The reason you were getting an unparsable error is because if there was no buff it would return null, and $calc has no idea how to calculate "NULL"
I added a check to see if it is null or not

There was another syntax error where <= was =< so i fixed that as well.

New version: REV5c Jan 03 15:00

I apologize for leaving a prety much unworking version up here
Always say what you want to say. Because those who mind, don't matter. And those who matter, don't mind.

El
a ghoul
a ghoul
Posts: 108
Joined: Mon Dec 29, 2003 12:34 pm

Post by El » Sat Jan 03, 2004 11:47 pm

Yup, I see now. It worked for me because I'm only using level 6 selo's, and I'm afraid that was in my mind when I was debugging the problem. Good catch -- I'll test it out later tonight :-)

Raebis
a ghoul
a ghoul
Posts: 81
Joined: Fri Dec 12, 2003 6:23 am

Post by Raebis » Mon Jan 05, 2004 2:12 pm

some people say that no news is good news....
but somone needs to complain, compliment, or comment on this mac hehe i am striving to make it better

i've come up with 2 solutions on why nobody posts in it n e more...

1. Everybody is using the mac to kite lots of mobs and be happy

or, worse,

2. everybody hates it.

whichever, i'm still around, and still accepting feedback...

anyway, whats comeing up in rev6?

the rubber anchor is gonna get a tasty addition.
also people who want to switch weapons may be interested in rev6...

look for it soon in a theater near you
Always say what you want to say. Because those who mind, don't matter. And those who matter, don't mind.

icehouse33
orc pawn
orc pawn
Posts: 12
Joined: Mon Dec 15, 2003 8:34 am

Post by icehouse33 » Mon Jan 05, 2004 3:02 pm

-- nt --

Revised and listed below
Last edited by icehouse33 on Tue Jan 06, 2004 8:32 pm, edited 1 time in total.

pab05
a lesser mummy
a lesser mummy
Posts: 42
Joined: Thu Aug 14, 2003 12:24 am

Post by pab05 » Mon Jan 05, 2004 8:36 pm

Warping anyone?

How can i prevent this when 5 out of ever 10 mobs warp it gets aggrivating.

Thanks :D

Sporked
orc pawn
orc pawn
Posts: 28
Joined: Tue Jan 06, 2004 7:08 am

Level 6 selos compatability question

Post by Sporked » Tue Jan 06, 2004 7:35 am

Okay, I've been reviewing your script since early ver 5.

The syntax i originally used then had been (at level 25)

/macro (scriptname) Chords_of_DissonanceDenons_Disruptive_discord_selos selos 28 (healsong)
(in my instance, this would be say 321 1 28 8)

This worked remarkably well... Only lost selos maybe for a brief partial-song cycle every 5-8 cycles.

Then i tried the following with rev5c

32 1 28 8
.. this resulted in it chain casting selos, with no dots twisted, it would seek a target, and start kiting it. but doing no damage... on the plus side selos never runs out, so a great way to max out percussion... I think

Now i'm playing with the actual recommended settings for lev6 selos

At first i tried 1324 0 28 8

(/macro (scriptname) SelosChords_of_Dissonance_Denons_Disruptive_DiscordBellows 0 28 healsong )
This results in losing selos almost every other song cycle for the remainder of that cycle. (from what i'm seeing this is losing selos just after denons hits, while bellows is being cast.

Needless to say, I get whonked.. It works reliably well wtih version 5B and 325 5 28 1
(where 5 is selos, 32 are dots, and 1 is healsong)

Thank you for sharing your creation, and bringing joy to all of us including those who lurk behind the guise of guest for weeks on end while trying to figure out what this MQ is about.
Last edited by Sporked on Tue Jan 06, 2004 7:45 am, edited 2 times in total.

Sporked
orc pawn
orc pawn
Posts: 28
Joined: Tue Jan 06, 2004 7:08 am

Attn Raebis: possible fix to warping mobs on modest pulls?

Post by Sporked » Tue Jan 06, 2004 7:41 am

how might I alter this to detect if a mob is <22pct hp and start twisting a different set of dots.. (say snare dd, and fulfils, (to finish a straggler off quickly)

my thought, but i have no idea how this is actually implemented.. just reading what you have written and trying to apply it to what I'm trying to think of.

err. now i'm lost.

Basically you have a big if mob hp > less than 22 (presumably about to start running/warping)
then run circles around your mob. twisting slow and your target dd and dots (to finish it quickly before it warps on you).. It wont help with pack kiting at low hp. but it will help with warping solo pulls...


I had some code here. but I got confused with nested if loops.. plus i've got no idea where to insert it.
would this be called from inside do_circle?

(goes back to reading the documentation, shhh .dont tell anyone)

If someone wants ill post the code I have for bug fixing.. but it's pretty pathetic so far.. still learning how to do this

icehouse33
orc pawn
orc pawn
Posts: 12
Joined: Mon Dec 15, 2003 8:34 am

Post by icehouse33 » Tue Jan 06, 2004 9:47 am

I guess what you are looking for is just a change of 1 song, drop one of the dots and start to sing Snare.

It could be done very similarly to how the heal song is called to replace the first song of the twist.

it would require a change to the macro useage something like..

chant.mac <DOTs/LVL6 Selos> <49selo> <radius> <snare song> [<heal song>]

Below are changes or additions to the code to be inserted at various parts of the macro...

Code: Select all

/declare SnareSong global 

Sub Main(DOTs,Selos,CRadius,Snare,Health) 

/if n @Snare!=0 { 
   /varset SnareSong @Snare 
   /echo Snare's: $char(gem,@SnareSong) 
} else { 
   /varset SnareSong 0 
   /echo Not using Snare Song. 
} 
Now The Big question, do we place snare in the slot 1 ? What if we are below minhealth? do we want to twist heal and snare? just for ease of coding.. (I'm at work atm) we'll snare instead of heal

Code: Select all

   /if n @SnareSong!=0 /if n $target(id)>0 {
      /if n $target(hp,pct)<=23 { 
         /if n @Songs(1)!=@SnareSong { 
            /echo Snare On - TargetHealth: $target(hp,pct)% 
            /varset Songs(1) @SnareSong 
         } 
      } 
   }

   /if n @SnareSong!=0 /if $target(id)>0 {
      /if n $target(hp,pct)>23 {
         /if n @Songs(1)!=@OrigSong {
            /echo Snare song off
            /varset Songs(1) @OrigSong
         }
      }
   }

   /if n @HealSong!=0 /if n $char(hp,pct)<@HealthMin { 
      /if n @Songs(1)!=@HealSong /if n @Songs(1)!=@SnareSong { 
         /echo Healing On - Health: $char(hp,pct)% to @HealthMax% 
         /varset Songs(1) @HealSong 
      } 
   } 

   /if n @HealSong!=0 /if n $char(hp,pct)>=@HealthMax { 
      /if n @Songs(1)!=@OrigSong { 
         /echo Healing Off 
         /varset Songs(1) @OrigSong 
      } 
   } 

doing a check for $target(id)>0 because I'm not sure if checking $target(hp,pct) with no target selected would cause the macro to crash. Like I said I'm at work and can't test it.

also there may be some typing errors.. enjoy

Sporked
orc pawn
orc pawn
Posts: 28
Joined: Tue Jan 06, 2004 7:08 am

Post by Sporked » Tue Jan 06, 2004 12:41 pm

Thank you Icehouse.. looking through your code and I realize just how far I need to go yet. =)

What i'm thinking about doing is a completely diff loop if the mob hp percent is below 23.

For us lowbies, it's mainly denons and chords of dissonance, with snare coming up pretty quickly.

So assuming someone has snaresong/chains.

selos, dot dot, selos, dot dot (teh swarm, knock them all down).. soon as our target drops to the key %. then we start the single target fulfils and the snare, and bellows.. all the single target offense we can procure.

Rinse. repeat.

Might have some of your pack warp off on you. but this should be clean enough to pick off more of your kite than letting the mobs drop low health and warp off on you. (I notice the mobs dont _seem_ to warp with chain on them, not until chain wears off)

Starting to actually flowchart this, and figure out where this loop will get called...
Only concern I have is the ability to return out of this kill loop, back to our main function/getnewtarget... I dont want it to return out every single time and back into this function, which is what would appear to happen with the snare. (it would be a check on mob hp-pct every time that i can tell for each song twisted)

In a nutshell..

while target is high health >= 23
selos-dot-dot-dot (lvl 49)
selos-dot-dot-selos (lvl 19)

while target is low health <=22
selos-snare-bellows-dot (lvl 49)
selos-snare-bellows-selos (lvl 19)


This can probably be explained in an easier fashion, however I am running on fumes at the moment. I will happily post what I'm writing in the macro request/assistance forum as soon as It's significant enough to post.

icehouse33
orc pawn
orc pawn
Posts: 12
Joined: Mon Dec 15, 2003 8:34 am

Post by icehouse33 » Tue Jan 06, 2004 3:42 pm

Only concern I have is the ability to return out of this kill loop, back to our main function/getnewtarget... I dont want it to return out every single time and back into this function, which is what would appear to happen with the snare. (it would be a check on mob hp-pct every time that i can tell for each song twisted)
I too have considered the amount of processing cycles to evalutate the extra if's, granted it's not very efficient, but it does accomplish what you were asking. It could be tweeked some, by maybe only looking at the mobs hit points if we're about to sing the first song in the twist (which will require an /if). Honestly, I wonder how much impact it really would have on todays computers.

BTW this isn't really a funcion, we're just evaluting an if and either setting some different values or dropping to the end once we see vaules we dont want.

icehouse33
orc pawn
orc pawn
Posts: 12
Joined: Mon Dec 15, 2003 8:34 am

Post by icehouse33 » Tue Jan 06, 2004 8:34 pm

Some pretty hefty changes. Enjoy!

Tested it for about 20 min, seems to work :roll:

Code: Select all

| - chant.mac - By Raebis
| Version: REV5c.ice Jan 06 20:30 
| edited by: icehouse33
| 
| This mac is used mostly for big open zones with not a lot of 
| big hills (cause hills cause pain - unless you have levitate)
| Unless you have Singing Steel Boots! *See Below* 
| 
| Features:------------------------------------------------------------------------ 
| 
| * Automatically selects high light blue, dark blue, or white mob 
| * Runs to mob before targeting it (Stealth! No cross-zone targeting!) 
| * Aggro/Add Detection: Automatically targets and kites aggroed mobs (adds) 
| * Ignores greens and low light blues unless they are aggroed (adds) 
| * Caster Detection: Automatically will switch target to aggroed casting mobs 
| * Compatible with level 49 and level 6 selos 
| * Auto Healing: If health gets low, it will automatically heal 
| * Fleeing Mob Catcher: If mob runs away, macro keeps you in range! 
| * Detects WMS (Warping Mob Syndrom) and gets a new target if a mob warps away! 
| * NEW: Rubber Anchor: kites mobs closest to macro starting point - no wandering! 
| * NEW: Support for Singing Steel Boots
| * NEW: Snare Song when Mob low on health
| --------------------------------------------------------------------------------- 
| 
| usage: chant.mac <DOTs/LVL6 Selos> <49selo> <radius> <snare song> [<heal song>] 
| 
| 
| Usage Examples: 
|  -Scenario 1: If you are using... 
|   ...DOTs in Gems 4, 5, 6, and 7 
|   ...Level 49 Selo in Gem 2
|   ...Snare Song in Gem 3 
|   ...Hymn of Restoration in Gem 1 
|   ...Radius of 55 
|   syntax: /mac chant 4567 2 55 3 1 
| 
|  -Scenario 2: If you are using... 
|   ...DOTs in Gems 6 and 7 
|   ...Level 6 Selo in gem 3
|   ...No Snare Song 
|   ...Hymn of Restoration in gem 8 
|   ...Radius of 80 
|   syntax: /mac chant 673 0 80 0 8 
|  
| 
| If <heal song> is defined then when health goes below @HealthMin (default is 70%) 
| it will replace the first song in <DOTs> with <heal song> until health is above 
| @HealthMax (default is 85%) 
| 
| If <selos> is 0 then the macro will not try to cast selos every 150 seconds
|
| If <snare> is 0 then the macro will not try to snare the mob when it reaches a % hp
| User may change HP% to begin Snare. <SnarePerc> Defaulted to 23%
| User may Change if he wishes Snare to override Heal song Defaulted to yes.
| <SnareOverHeal> = 1 for Yes, 0 for No
| 
| Note about the rubber anchor: 
|   The macro will target the mob closest to the RubberAnchor (your /loc when first 
|   starting the macro) 
| 
| REV5b was Tested in EW for bout an hour 
|
| Note: If you don't have Singing Steel Boots, and you don't have a levitate buff
|       then the function to click your boots won't be called.
| 
| Warning: You may wander from your starting point but after killing a mob, the 
|          next mob that the macro targets will be closest to your starting point 
| 
| Note: Rev information moved to the top 
| 

#event NeedTarget "You must first select a target for this spell!" 
#event Exp        "You gain " 
#event Died       "You have entered" 
#event Caster     " begins to cast a spell." 
#event Levitate   "You feel as if you are about to fall"

#turbo 

Sub Main(DOTs,Selos,CRadius,Snare,Health) 
   /zapvars 

   /if $defined(CRadius)==false { 
      /echo usage: chant.mac <DOTs, LVL6 Selos> <49selo> <radius> <snare song> [<heal song>]  
      /return 
   } 

   /declare CirR global 

   /declare Songs array 
   /declare nSongs global 
   /declare CurSong global 
   /declare PrevSong global 

   /declare Exper global 
   /declare AAExp global 

   /declare SongTimer timer 
   /declare SeloSong global 

   /declare HealSong global 
   /declare OrigSong global

   /declare SnareSong global 
   /declare SnarePerc global
   /declare SnareOverHeal global

   /declare HealthMin global 
   /declare HealthMax global 

   /declare DBLevel global 

   /declare TargetUpNext global 

   /declare RubberX global 
   /declare RubberY global 

   /declare EachSong local 

   /varset nSongs $strlen(@DOTs) 
   /for EachSong 1 to @nSongs 
      /varset Songs(@EachSong) $mid($calc(@EachSong-1),1,@DOTs) 
      /echo Song @EachSong: $char(gem,@Songs(@EachSong)) 
   /next EachSong 

   /if n @Selos!=0 { 
      /varset SeloSong @Selos 
      /echo Selo's: $char(gem,@SeloSong) 
   } else { 
      /varset SeloSong 0 
      /echo Not using level 49 Selos. 
   } 

   /if n @Snare!=0 { 
      /varset SnareSong @Snare 
      /echo Snare's: $char(gem,@SnareSong) 
   } else { 
      /varset SnareSong 0 
      /echo Not using a Snare Song. Welcome to warpville.
   } 
   
   /if $defined(Health)!=false { 
      /varset HealSong @Health 
      /echo Healsong: $char(gem,@HealSong) 
   } else { 
      /echo No HealSong. Please watch your health. 
      /varset HealSong 0 
   } 

   /varset CirR @CRadius 
   /echo Radius: @CRadius 

   /varset OrigSong @Songs(1) 
   /varset CurSong 1 
   /varset Exper $char(exp) 
   /varset AAExp $char(aa,exp) 
   /varset SongTimer 1 

   /varset DBLevel $int($calc($calc($char(level)*.7)+1)) 

   /varset HealthMin 70 
   /varset HealthMax 85 
   /varset SnarePerc 23
   /varset SnareOverHeal 1
 
   /varset TargetUpNext 0    
  
   /varset RubberX $char(x) 
   /varset RubberY $char(y) 

   /echo Rubber Anchor dropped at @RubberX,@RubberY 

:Loop 

   /if n @CurSong>@nSongs /varset CurSong 1

   /if n @TargetUpNext<=0 /if n $target(id)<=0 { 
      /call gettarget 
   } 

   /if n @TargetUpNext>0 /if n $target(id)>0 /if n $target(id)!=@TargetUpNext { 
      /echo User Selected Target or Aggroed while running 
      /varset TargetUpNext 0 
   } 

   /if n $target(distance)>1000 /if n $target(hp,pct)<=50 { 
      /echo Target Warped... Distance: $target(distance) HP: $target(hp,pct)
      /echo getting new target  
      /cleanup
      /call GetTarget 
   } 
| Change - will only look to Set Snare or Heal song into twist when trying to cast 1st song
   /if n @CurSong==1 {
      /call Snareorheal
   }
   
   /if n @SeloSong!=0 /if $char(casting)==FALSE /if n $char(buff,"$char(gem,@SeloSong)")==0 /varset SongTimer 1 
   /if n @SongTimer>0 /if $char(casting)==FALSE /call SongFailed 
   /call Circ 
   /doevents 
   /delay 0 
   /goto :Loop 
/return 

Sub Event_Timer(TimerName) 
   /if @TimerName==SongTimer { 
      /if n @SeloSong!=0 /if n $char(buff,"$char(gem,@SeloSong)")==0 { 
         /delay 2 
         /stopsong 
         /cast @SeloSong 
         /varset PrevSong 0 
         /varset SongTimer 30 
         /call Circ 
         /doevents 
         /return 
      } 

      /if n @SeloSong!=0 /if n $char(buff,"$char(gem,@SeloSong)")!=0 /if n $char(buff,$char(buff,"$char(gem,@SeloSong)"),duration)<=6 { 
         /delay 2 
         /stopsong 
         /cast @SeloSong 
         /varset PrevSong 0 
         /varset SongTimer 30 
         /call Circ 
         /doevents 
         /return 
      } 

      /delay 2 
      /stopsong 
      | stop trying to dot while running to target but Heal if needed
      /if n $target(id)>0 /if n $target(distance)<=200 {
         /if n @CurSong>@nSongs /varset CurSong 1 
         /cast @Songs(@CurSong) 
         /varset PrevSong @CurSong 
         /varadd CurSong 1 
      } else {
         /if n @Songs(@Cursong)==@HealSong /cast @Songs(@CurSong)         
      }
      /varset SongTimer 30 
      /call Circ 
      /doevents 
   } 
/return 

Sub Circ 
   /declare CirX local 
   /declare CirY local 

   /if n @TargetUpNext!=0 { 

      /varset CirX $spawn(@TargetUpNext,y) 
      /varset CirY $spawn(@TargetUpNext,x) 

      /if n $spawn(@TargetUpNext,distance)<=$calc(@CirR*2) { 
         /target id @TargetUpNext 
         /varset TargetUpNext 0 
      } 
   } 

   /if n $target(id)>0 { 
      /varset CirX $target(y) 
      /varset CirY $target(x) 
   } 

   /if n $distance(@CirX,@CirY)<$calc(@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 Snareorheal
   /if n @SnareSong!=0 /if n $target(id)>0 { 
      /if n $target(hp,pct)<=@SnarePerc { 
         /if n @Songs(1)!=@SnareSong { 
            /if n @SnareOverHeal!=1 /if n @Songs(1)==@HealSong {
               /echo Snare NOT set to override Heal .. 
               /return
            }
            /if n @Songs(1)==@HealSong {
               /echo Snare on, but Heal Song overridden *Caution*
               /varset Songs(1) @SnareSong
            } else {
               /echo Snare On - TargetHealth: $target(hp,pct)% 
               /varset Songs(1) @SnareSong
            }
            /return
         }
      } 
   } 

   /if n @SnareSong!=0 /if $target(id)>0 { 
      /if n $target(hp,pct)>@SnarePerc { 
         /if n @Songs(1)==@SnareSong { 
            /echo Snare song off 
            /varset Songs(1) @OrigSong 
            /return
         } 
      } 
   } 

   /if n @HealSong!=0 /if n $char(hp,pct)<@HealthMin { 
      /if n @Songs(1)!=@HealSong {
         /if n @SnareOverHeal==1 /if n Songs(1)==@SnareSong {
            /echo Heal can NOT override Snare *Caution*
            /return
         }
         /if n @Songs(1)==@SnareSong {
            /echo Healing On - Snare Off - Health: $char(hp,pct)% to @HealthMax%
            /varset Songs(1) @HealSong
         } else {
            /echo Healing On - Health: $char(hp,pct)% to @HealthMax% 
            /varset Songs(1) @HealSong 
         }
         /return
      }
   }  

   /if n @HealSong!=0 /if n $char(hp,pct)>=@HealthMax { 
      /if n @Songs(1)==@HealSong { 
         /echo Healing Off 
         /varset Songs(1) @OrigSong 
      } 
   } 
/return

Sub SongFailed 
   /if n @PrevSong==0 { 
      /varset SongTimer 1 
      /return 
   } 
   /varset CurSong @PrevSong 
   /varset SongTimer 1 
/return 

Sub Event_NeedTarget 
   /if n @TargetUpNext<=0 /call GetTarget 
/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 EXP: @Exper%:$char(exp)% - AAXP: @AAExp%:$char(aa,exp)% - $calc($running/60) minutes 

   /varset Exper $char(exp) 
   /varset AAExp $char(aa,exp) 

   /varset DBLevel $int($calc($calc($char(level)*.7)+1)) 

   /if n @TargetUpNext==0 /if n $target(id)==0 /call gettarget 
/return 

Sub GetTarget 
   /declare MobID local 
   /declare SRadius local 
   /varset MobID $searchspawn(npc,radius:$calc(@CirR*2)) 
   /if n @Songs(1)==@SnareSong /varset Songs(1) @OrigSong
   /if n @MobID!=0 /if n $spawn(@MobID,speed)>100 { 
      /target id @MobID 
      /echo Kiting aggro'd mob: $target(name,clean) 
      /return 
   } 
   /varset MobID 0 
   /for SRadius 0 to 10000 step 100 
      /varset MobID $searchspawn(npc,range:@DBLevel:$char(level),loc:@RubberX:@RubberY,radius:@SRadius) 
      /if n @MobID!=0 { 
         /goto :Done 
      } 
   /next SRadius 
   /echo No mobs found, action required! 
   /beep 
   /echo Ending Macro 
   /beep 
   /endmac 
:Done 
   /varset TargetUpNext @MobID 
   /echo Next: $spawn(@MobID,level) $spawn(@MobID,name,clean) - Distance: $spawn(@MobID,distance) 
/return  

Sub Event_Caster(CastText) 
   /declare CasterID local 
   /varset CasterID $searchspawn(name,"$left($calc($strlen("@CastText")-24),"@CastText")") 
   /if $spawn(@CasterID,type)!=NPC /return 
   /if n $target(id)==@CasterID /return 
   /if n $spawn(@CasterID,distance)<=$calc(@CirR*2) { 
      /target id @CasterID 
      /echo Targeting Caster: $spawn(@CasterID,name,clean) 
   } 
/return 

Sub Event_Levitate
   /delay 2 
   /stopsong 
   /cast item "Singing Steel Boots"
:Levloop 
   /delay 2
   /call Circ 
   /if $char(casting)!=FALSE /goto :Levloop 
/return

Sporked
orc pawn
orc pawn
Posts: 28
Joined: Tue Jan 06, 2004 7:08 am

Rev 5C variant: LEv6selos friendly

Post by Sporked » Wed Jan 07, 2004 10:21 pm

Okay Icehouse.. thanks for that excellent addition with snare.

I have my code almost finished with the addition, if someone could please give it a try .

Essentially it does a level check, sets a variable up Selolvl initially. then looks for this variable in the main selos routine. if it does, then it skips the main selos block, and then refreshes the SONG not the buff (short lived buff)
.. also only refreshes when its 6 seconds to go or less...

http://macroquest2.com/phpBB2/viewtopic.php?t=4891

Is the url where it can be found, in the macro help subsection.

Your criticism is appreciated, please give it a whack.
Last edited by Sporked on Thu Jan 08, 2004 1:17 pm, edited 1 time in total.