Shambot v1.0c

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

Moderator: MacroQuest Developers

Lane
a hill giant
a hill giant
Posts: 201
Joined: Fri Dec 06, 2002 11:57 am

Post by Lane » Fri Nov 19, 2004 1:29 pm

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
I Macroquest, therefor I am!

Phatsacks
decaying skeleton
decaying skeleton
Posts: 5
Joined: Sat Nov 13, 2004 7:59 pm

Post by Phatsacks » Sat Nov 20, 2004 3:33 am

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)

A_Druid_00
Macro Maker Extraordinaire
Posts: 2378
Joined: Tue Jul 13, 2004 12:45 pm
Location: Rolling on the Lawn Farting

Post by A_Druid_00 » Sat Nov 20, 2004 3:44 am

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 
[quote]<DigitalMocking> man, A_Druid_00 really does love those long ass if statements
<dont_know_at_all> i don't use his macro because i'm frightened of it[/quote]
[quote][12:45] <dont_know_at_all> never use a macro when you can really fuck up things with a plugin[/quote]

User avatar
fisting
orc pawn
orc pawn
Posts: 11
Joined: Sun Sep 26, 2004 2:40 am

chain buffing

Post by fisting » Tue Nov 23, 2004 4:55 am

...its chain casting focus when i run it

Batou
decaying skeleton
decaying skeleton
Posts: 6
Joined: Tue Nov 23, 2004 5:23 am

Post by Batou » Tue Nov 23, 2004 5:29 am

abc
Last edited by Batou on Tue Dec 09, 2008 11:40 pm, edited 1 time in total.

dedpoet
a hill giant
a hill giant
Posts: 247
Joined: Sat Aug 14, 2004 12:22 pm

Post by dedpoet » Wed Nov 24, 2004 9:19 am

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.

Batou
decaying skeleton
decaying skeleton
Posts: 6
Joined: Tue Nov 23, 2004 5:23 am

Post by Batou » Tue Nov 30, 2004 2:59 am

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

Batou
decaying skeleton
decaying skeleton
Posts: 6
Joined: Tue Nov 23, 2004 5:23 am

Part 2

Post by Batou » Tue Nov 30, 2004 3:23 am

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

dedpoet
a hill giant
a hill giant
Posts: 247
Joined: Sat Aug 14, 2004 12:22 pm

Post by dedpoet » Tue Nov 30, 2004 1:59 pm

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...

Orion711
decaying skeleton
decaying skeleton
Posts: 3
Joined: Sat Jan 31, 2004 7:37 pm

Post by Orion711 » Thu Jan 20, 2005 6:44 pm

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?

Draconis
a lesser mummy
a lesser mummy
Posts: 40
Joined: Tue Mar 23, 2004 4:53 pm

Post by Draconis » Thu Jan 20, 2005 7:21 pm

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.

kool23
a lesser mummy
a lesser mummy
Posts: 33
Joined: Mon Apr 05, 2004 12:58 am

Post by kool23 » Sun Jan 30, 2005 8:45 pm

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

dedpoet
a hill giant
a hill giant
Posts: 247
Joined: Sat Aug 14, 2004 12:22 pm

Post by dedpoet » Sun Jan 30, 2005 10:03 pm

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.

Arune
a hill giant
a hill giant
Posts: 216
Joined: Sat Jul 03, 2004 1:51 pm

Post by Arune » Wed Feb 16, 2005 1:19 pm

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.

dedpoet
a hill giant
a hill giant
Posts: 247
Joined: Sat Aug 14, 2004 12:22 pm

Post by dedpoet » Wed Feb 16, 2005 2:36 pm

From the comments at the top of the macro:
| During combat he will only do requests for heals and detrimentals