Page 2 of 6

Posted: Fri Nov 19, 2004 1:29 pm
by Lane
Still doesn't respond to tells, but is working in channels (I added that) and group. I still have no idea what's wrong with tells.

-Lane

Posted: Sat Nov 20, 2004 3:33 am
by Phatsacks
Anyway you can make a small change for the shamans that have slow stick? More and more do these days (the bot I have fortunately has had it for a very long time). I guess this would require to also remove the fact the casts the slow spell. Also time legs cast a mana free dot (pox of bertoxx).

(I don't write macros, and just started using mq2 the other day and loving it, so sorry if what I'm asking is outrageous)

Posted: Sat Nov 20, 2004 3:44 am
by A_Druid_00
It's not outrageous, but it's something that you can take on as your own little homework assignment. Spell_Routines.inc is very easy to use, and if you spend a few minutes working on it, you'll have it fixed on your own.


I'll get you started, pretty much everything you need to do is right here:

Code: Select all

| ############### Slowing 

Sub Slow 
   /if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) { 
      /if (${Me.CurrentMana}<${Spell[${SpellSlow}].Mana}) { 
         /echo Shid ! I don't have mana to Malo %T 
      } else { 
      :Slow_Loop 
         /call cast ${SpellSlow} gem2 6s 
         /if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :Slow_Loop 
         /if (${Macro.Return.Equal["CAST_IMMUNE"]}) { 
            /if (${Verbose}) /gsay *** %T is IMMUNE to my slow ! 
          
            /varset MobSlowed TRUE 
         } 
         /if (${Macro.Return.Equal["CAST_RESISTED"]}) { 
            /if (!${FastSlow}) { 
               /if (${Verbose}) /gsay *** %T RESISTED slow ! Trying again asap 
                /goto :Slow_Loop 
             } 
            /varset MobSlowed TRUE 
          } 
         /if (${Macro.Return.Equal["CAST_SUCCESS"]}) { 
            /if (${Verbose}) /gsay *** %T is SLOWED 
            /varset MobSlowed TRUE 
          } 

      } 
   } 
/return 

chain buffing

Posted: Tue Nov 23, 2004 4:55 am
by fisting
...its chain casting focus when i run it

Posted: Tue Nov 23, 2004 5:29 am
by Batou
abc

Posted: Wed Nov 24, 2004 9:19 am
by dedpoet
If you are the MA and you switch targets, it will malos and slow what you switch to automatically every time you switch. I.e. you are fighting mob1. Bot malos and slows. Mob2 adds and you switch targets to it. Shaman also switches and malos and slows. You go back to mob 1. Shaman switches again and malos and slows. Mob1 dies and you go back to mob2. Shaman malos and slows again.

It's not the most efficient thing out there, but short of keeping a list of ID's of things that have been slowed and constantly updating it, I don't really know of a better way. I use a modified version of this macro myself, and generally it does very well. If somone other than the MA tells it to slow or root, you'll do less casting.

Posted: Tue Nov 30, 2004 2:59 am
by Batou
Right, but what im wondering is if it starts casting malo's on one mob and you switch targets will it go ahead and slow that mob before looking at your target or after malos does it do a ma target check?

I think it can would be better if it did malos and slow before it did ma target check. without spell haste buff or item it can take 8 sec to slow a mob. If im in a group and we are beating on a named. when we get an add i like to switch to the add long enuff to proc agro then switch back to named to the rogue or wiz doesnt pull agro from me on the named.

I'm not asking for any code changes here just wondering how it works.

Thanks for repling

Part 2

Posted: Tue Nov 30, 2004 3:23 am
by Batou
Sorry it has been a while since I have programmed. I was just wondering how far "/return" is going to take you. will it take you back to the sub that called it ie combat, or all the way back to main?

Wish I would of paid more attention in those classes now :)

Sub Combat
/if (${CombatOn} && !${MobMaloed} && ${DoMalo} && ${Target.ID}==${TargetArray[4]}) /call DeBuff
/if (${CombatOn} && !${MobSlowed} && ${DoSlow} && ${Target.ID}==${TargetArray[4]}) /call Slow
/if (${CombatOn} && !${PetOn} && ${Target.ID}==${TargetArray[4]}) {
/pet attack
/varset PetOn TRUE
/varset Engaged TRUE
}


Sub DeBuff
:DeBuff_Loop
/if (${Target.PctHPs}<=${CombatAt} && ${Target.ID}==${TargetArray[4]}) {
/if (${Me.CurrentMana}<${Spell[${SpellDeBuff}].Mana}) {
/echo *** Shid ! I don't have mana to Malo %T
} else {
/call cast ${SpellDeBuff} gem3 6s
/if (${Macro.Return.Equal["CAST_INTERRUPTED"]}) /goto :DeBuff_Loop
/varset MobMaloed TRUE
}
}
/return

Posted: Tue Nov 30, 2004 1:59 pm
by dedpoet
The return takes it back to exactly where it left off. Your main target will be slowed before it changes to the add, since there is no check before the slow to even see if it received the command. If you put a /doevents in between the malos and slow routines, it would do the add first, but unless you also added a line to retarget the orginal mob, it would cast slow again on the add. One of the things I do in my version of this is to add /target clear and /delay 2 at every place I switch targets. It's a little spammy, but I've found it gets rid of ocassional problems with trying to debuff/slow the MA, or cast a heal on a mob instead of a group member. Now that I think about it, I may disable the echo that /target clear generates...

Posted: Thu Jan 20, 2005 6:44 pm
by Orion711
This mac has worked excellent for me...Ibut I'm wondering, is there a way to add a new command such as [Epic] so that you can have it cast the dot on mobs?

And secondly could it be set up so that if the epic isn't in primary it would call that item from inventory do a swapitem command cast then swap back?

Posted: Thu Jan 20, 2005 7:21 pm
by Draconis
Spell_Routines will do what you want it to do.

I think if you add

Code: Select all

/if (${ChatText.Equal[Epic]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast "Spear of Fate" item 5s
            }
      /return
      }
under

Code: Select all

/if (${ChatText.Equal[dot]}) {
         /assist ${ChatSender}
         /if (${Target.Type.Equal[NPC]} && ${Target.Distance}<=100) {
            /call cast ${SpellDot} gem8 5s
            }
      /return
      } 
in the | ################# Mob Requests section it will do what you want.

not tested so try it i guess.

Posted: Sun Jan 30, 2005 8:45 pm
by kool23
iam haveing a problem when i cast spellhot on my self wich is stociam (forget how its spelled ) at 50% it allways heals ma's target most of the time...it seems like it switching targets to fast and heal dont go off b4 assist ma is used.

also sometimes when healing ma it heals mob first again thinking it switchs back to mas target b4 heal goes off

also same with group members

and cant find the places where i need to change targeting issues

there still other things i have problems with but these main ones right now

Posted: Sun Jan 30, 2005 10:03 pm
by dedpoet
In your heal routine, where it does a /target <whatever>, do this:

Code: Select all

/sq /target clear
/delay 2
/target <whatever>
That will clear your current target and squelch the window spam, wait a very small amount of time (1/5 of a second), and then target what you want. I've found that gets rid of the problem you're mentioning.

Posted: Wed Feb 16, 2005 1:19 pm
by Arune
Is it normal for the mac to wait until the end of combat before doing anything else? If it receives a buff request before combat is over, it won't buff. While no combat is initiated, it works fine.

Posted: Wed Feb 16, 2005 2:36 pm
by dedpoet
From the comments at the top of the macro:
| During combat he will only do requests for heals and detrimentals