Page 9 of 20
Posted: Sun May 02, 2004 5:30 pm
by Craft
Ok I changed the quotes around and it working perfectly.... I haven't got a chance to test the backstab stuff but should later tonight.
A new problem.. made the changes poster for sitaftercast and now my bot sits aftercasting even if the flag is set to 0 or FALSE. Any thoughts?
Craft
Posted: Sun May 02, 2004 7:48 pm
by MacroFiend
Request/Suggestion: Don't use short appreviations for EQ commands. If you don't have /g set as an alias to /gsay, it confuses EQ because it could also be /guildsay. Instead, since you are not manually typing these things to the client, use the whole command so there would be no chance for confusion. Use /gsay, /guild, /rsay etc.
Posted: Sun May 02, 2004 9:21 pm
by LordGiddion
Ok folks just to touch base, I won't be doing much with this tomorrow - work and all that stuff. But I will be putting asside some time for development and testing Tuesday - and maybe I might even get in some time playing EQ mayself :)
Things on my hit list, bug fixes posted, Buff and the rebuff timing, Chat channel - I'll fix it for text chat channel, maybe reload (not high priority), targeting for shortcuts and the breakout for that, Checking Quote use.
If I get those straight I'll work on the next round of enhancements to add (probably with associated bugs :) )
Posted: Mon May 03, 2004 1:39 am
by Virtuoso65
I think genbot is making a bad call to the advpath.inc when doing the follow command. Iv tryed to debug it but Im not quite sure whats wrong.
Code: Select all
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
[MQ2]Goto - went to label :fastmoveloop
[MQ2]Face - Facing 'gimp'...
First-chance exception at 0x74736166 in eqgame.exe: 0xC0000005: Access violation reading location 0x74736166.
As far as I can tell there is something wrong with this piece of code where it always crashes on the /goto :fastmoveloop.
Code: Select all
|Fastmove
|Called by Rangesub for when mob is more than /keypress distance away.
|Usage: /call Fastmove
Sub Fastmove
/varset ObstacleCheck 0
/varset GenLastXLoc ${Me.X}
/varset GenLastYLoc ${Me.Y}
:fastmoveloop
/doevents
/if (!${Target.ID}) {
/varset Combatstatus 0
/keypress FORWARD
/if (${Me.Combat}) /attack off
/return
}
/if (${Me.Sitting}) /stand
/face fast
/if (${Target.Distance}>${FastRange}) /keypress FORWARD hold
/if (${Target.Distance}<=${FastRange}) {
/keypress FORWARD
/return
}
/if (${ObstacleCheck}>=30) {
/call Detectobst
/varset ObstacleCheck 0
}
/if (${Target.Distance}>=${Math.Calc[${FastRange}*3]}) /varcalc ObstacleCheck ${ObstacleCheck}+1
/goto :fastmoveloop
/return
Posted: Mon May 03, 2004 5:25 am
by Wishbringer
Darn, i wish i would understand the whole genbot macro.
Tried to rewrite it as a MQ2 plugin (faster, because compiled code) but failed like a noob.
Wrote this msg now, because i think it's a good thing in it's nature and someone has the necessary knowledge.
Posted: Mon May 03, 2004 9:24 am
by Chant3r
Hey Lord Giddeon
You kick ass thanks for the awesome macro .. I will keep posting things when I find them and sit queioty waitign for ya to get to it.. most likely with me I fergot to make the file right lol
Posted: Mon May 03, 2004 12:29 pm
by omper
Still getting random end macro's.. Not sure where these are comming from.. think its in the botcore.inc .. not sure but when i do evac it ends.. and most of the time when i zone.. Like i said random
Getting alot of code being passed to the mq2 window.. not sure why its doing that either.. but i think that problem is in the bothealer.inc cause it does it when i do autoheal..
Bots are not autositting..
Bots dont remember to rebuff .. I know you working on that one..
Sometimes i get CTD when i issue the follow command.. I do this follow because EQfollow does not work ..
Thanks a bunch..
Omper..
Posted: Mon May 03, 2004 5:24 pm
by LordGiddion
Had a little insperation this afternoon, I think this will fix the buff problem.
Code: Select all
Sub Event_timer(string TimerName,string OldValue)
/if (${TimerName.Equal[SitTimer]}) {
/if (${Me.Standing}) /sit
}
/if (${TimerName.Equal[ChainStunTime]}) {
/call NextStun
}
/if (${TimerName.Equal[BuffListAdvance]}) {
/declare counter int local
/for counter 1 to ${BuffListCount}
/varcalc BuffList[${counter},3] ${Int[${BuffList[${counter},3]}]}-5
/if (${Int[${BuffList[${counter},3]}]}<5) {
/call StandardTarget "${BuffList[${counter},1]}"
/if (${Target.CleanName.Equal[${BuffList[${counter},1]}]}) {
/call SpellSub "${BuffList[${counter},2]}"
/if (${Macro.Return}==0) /varset BuffList[${counter},3] ${Spell[${BuffList[${counter},2]}].Duration.TotalSeconds}
}
}
/next counter
/varset BuffListAdvance 50
}
/return
Someone please give it a test and let me know if it fixes.
Posted: Mon May 03, 2004 5:47 pm
by fez_ajer
I'm trying out the buff code now Gid.
On another note, I have two things going round my brain:
1) We should probably do something similar to AddCommand to handle INI stuff. There is alot of semi-standard repeated code there just like there was in adding commands.
2) This is more of a question: What is a good one sentence description of ${BreakOut}? Right now, it's kind-of odd because it gets set during follow code and only gets cleared during GrpHealthCheck. I think I know how it works, but that doesn't mean I know what it's REALLY supposed to do :)
Posted: Mon May 03, 2004 6:00 pm
by LordGiddion
fez_ajer: a routine for reading ini files is in the works, that's the peice I keep mentioning as changing personal.inc later down the road. Also the routine for reading INI will make it easier to write a routine probably also this week that will let people save state to an ini. Additionally I plan to have the INI routine add support so the same call can read or write to the MySQL plugin (and later MQ2ODBC - if I finish writing it) as an option to the INI - Hoping if it works well ml2517 might pull the same routine for advpath as I'd love pathfiles to be DB entries instead of multiple INI files.
${BreakOut} is something Grim started adding to genbot, he threw it into stuff that seemed buggy and used it to stop those routines from running out of control - ${BreakOut} is only set to true by the stop command and is cleared by the routines that check it.
Posted: Mon May 03, 2004 6:23 pm
by ml2517
I doubt I'd every program something that relies on something that isn't a core feature of MQ2, sorry.
Hrmm...
Posted: Mon May 03, 2004 6:23 pm
by fez_ajer
The reason I ask about ${BreakOut} is that currently the only code that clears it is GrpCheckHealth. I found this out the hard way by trying to move the ${IsHealer} check into HealerMain so that non-healer bots wouldn't have to go through the overhead of make the subroutine calls. What happened is that ${BreakOut} got set and was never cleared, which stopped all the non-healer bots from casting at all.
I also have one other thing I've been looking at SpellSub about... It would be real nice for it to do two things:
1) Take a second parameter for retries. That way you could do:
Code: Select all
/call SpellSub "Dooming Darkness" 3
which would try Dooming 3 times before giving up and exiting. It's a nice thing to retry snare spells after an initial resist
2) Pass a result back to the caller on whether the spell stuck. This would be great for personal.inc so that you could, say, throw a tash in then retry slow if slow failed the first time.
I know you have alot on your plate. I'll mash some proposed changes together and throw them at you at some point.
Posted: Mon May 03, 2004 7:10 pm
by LordGiddion
ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.
fez_ajer: I'll look at cleaning up the implimation of Breakout.
I might look at updating spell sub to do some auto retrys. As far as spell success and Fails, spell sub returns 0 if the spell took and 1 if it didn't (in theory at least) I have plans to beef the return infomation up but it's on the to-do list
Did the suggested code for the buff timer work?
Posted: Mon May 03, 2004 7:26 pm
by Nightshift
LordGiddion wrote:ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.
fez_ajer: I'll look at cleaning up the implimation of Breakout.
I might look at updating spell sub to do some auto retrys. As far as spell success and Fails, spell sub returns 0 if the spell took and 1 if it didn't (in theory at least) I have plans to beef the return infomation up but it's on the to-do list
Did the suggested code for the buff timer work?
The buff code does the same thing for me.
/tell botname Buff <spellname> ON <target>
bot casts spell
then after about 5 seconds..
/varcalc failed, variable 'BuffList(1,3)' not found
botcore.inc@602 (Event_timer(string TimerName,string OldValue)): /varcalc BuffList[${counter},3]
${int[$Bufflist[${counter},3]}]-5
bothealer.inc@225 (CheckGrpHealth):}
I let it show another fail after the first and it added to it..
added:
bothealer.inc@184 (HealerMain):/call CheckGrpHealth
genbot.mac@54 (Main):/call HealerMain
this was right after the bottom of the other error text.
NightShift
Posted: Mon May 03, 2004 7:49 pm
by ml2517
LordGiddion wrote:ml2517: wasn't suggesting it as a replacment, don't plan to make a replacement in Genbot either, just sugesting that it might be nice to add it as an option.
Gotchya