any ideas

Need some help with that macro you're working on or aren't quite sure how to get your macro to do something? Ask here!

Moderator: MacroQuest Developers

RDPidb
a lesser mummy
a lesser mummy
Posts: 69
Joined: Mon Dec 15, 2003 1:14 am

any ideas

Post by RDPidb » Thu Feb 05, 2004 4:01 pm

I have a kiting script I have been workign on, which runs the char between 4 anchor points, at 2 of the points, it casts a spell. Im using the spellcast.inc file.

I run to a point, /delay lets say 5 seconds, then cast, then move to the next point.

The problem is that when I get a fizzle or more noticably a resist, it screws up the timing because it has to recast, and by that time the mob usualy hits me a coupel times before i start moving to the next anchor point. ... which is bad when they r hittign for 500 + unslowed.


If anyone has any ideas how to avoid this problem, im all ears.
:D

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

Post by ml2517 » Thu Feb 05, 2004 4:06 pm

Use a modified version of spellcast.inc that has this line commented out:

Code: Select all

/if "$return"=="CAST_RESTART" /goto :StartCast 

RDPidb
a lesser mummy
a lesser mummy
Posts: 69
Joined: Mon Dec 15, 2003 1:14 am

Post by RDPidb » Thu Feb 05, 2004 4:15 pm

yes but the spell that gets resisted liek 10 % of the time is Darkness .. i.e. my snare ... i.e. .. it needs to land.


also .., if I cast sooner to allow for 2 casts if need be, and then the first cast does land .. im runnign to the next point too soon and it screws up the timming on the next castting point.

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

Post by ml2517 » Thu Feb 05, 2004 4:26 pm

Ok try changing that line to something like this:

Code: Select all

/if "@SpellName"=="Darkness Spell Name" /if "$return"=="CAST_RESTART" /goto :StartCast 

RDPidb
a lesser mummy
a lesser mummy
Posts: 69
Joined: Mon Dec 15, 2003 1:14 am

Post by RDPidb » Thu Feb 05, 2004 4:44 pm

Hmm guess i wasn't exactly clear.

I am runnign in a rectangle, point A to B to C to D, and repeat.
I cast 2 spells, a darkness and a DOT.
I cast the Darkness at point A, and the DoT at point C.

It goes somethign like this:
start at A
delay 8 seconds
cast darkness

run to B
delay1s

run to C
delay 8 seconds
cast DoT

run to D
delay 1s

go back to A.


Its works very well when you get no resists, because the 8 seconds is perfect amount of time for the distance of the rectangle im using.

When you get resists, everythign gets screwed up completly.
I either die cause the mob reaches me and kills me, or the mob is now
closer to me and the next 8 second delay is too much.

Im sure there must be a better way than just run here, wait x amount of seconds, cast, go to next place.

I am not necasarily looking for the code, just the logic.

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

Post by ml2517 » Thu Feb 05, 2004 4:56 pm

The reason why I'd initially had you comment the entire line out is so that it would never retry a cast of any spell. This would in effect make you cast and run to the next point. If you fizzled, resisted etc. it won't care and will keep running to the other points.

The second suggestion was to only care about resists/fizzles when it involved snares. If it isn't a snare and the spell fails it won't care and will keep running. If the fizzle/resist happened with a snare it will try to recast since its critical.

If that isn't what you were asking then I'm not sure what to tell you.

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

Post by ml2517 » Thu Feb 05, 2004 4:59 pm

As far as the question of what type of pattern etc to run in I suppose one way of "fixing" the issue might be to feign death if your snare is resisted. Then wait for the mob to be a certain distance away. Stand up and try again.

9232mark
decaying skeleton
decaying skeleton
Posts: 6
Joined: Mon Jan 05, 2004 6:59 pm

Post by 9232mark » Thu Feb 05, 2004 5:05 pm

Or make your pause time a variable and if the fizzle requirement is met, reduce the pause time accordingly.

M

User avatar
SimpleMynd_01
a lesser mummy
a lesser mummy
Posts: 71
Joined: Thu May 08, 2003 3:16 pm

Don't use /delay

Post by SimpleMynd_01 » Thu Feb 05, 2004 5:05 pm

Don't use hard coded delays. Keep your script flexable.

Instead of:

Code: Select all

/delay 8s
use:

Code: Select all

:WaitForMOB
| Too far, so we wait...
/if n $target(distance)>300 /goto :WaitForMOB
| Mobs too close so we run like hell to the next spot...
/if n $target(distance)<50 /goto :MoveToNextPoint
.
.
.
<stuff to do when he get's in range... Dot/Snare/Make funny faces...>
.
.
.
:MoveToNextPoint
<call move to next point code>
-SimpleMynd