Preview of MQ-20020704

A forum for the general posts relating to MacroQuest. *DEPRECATED: This forum is no longer in public use, but remains here for your reading pleasure. Enjoy

Moderator: MacroQuest Developers

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Wed Jul 03, 2002 12:42 pm

That's not quite how #turbo works... It's an all or nothing perf boost.
- Plazmic

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Wed Jul 03, 2002 1:21 pm

Salutations,
As i said, i'd like that, but really, i don't care...

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Wed Jul 03, 2002 3:01 pm

You'll understand more when I release the souce and you can look at the changes to the DInput hook.
- Plazmic

User avatar
Nuad
a ghoul
a ghoul
Posts: 93
Joined: Thu Jun 27, 2002 11:43 am
Location: Berlin, Germany

Post by Nuad » Wed Jul 03, 2002 4:35 pm

Plazmic wrote:All you need to support old macros is something similiar to:

Code: Select all

#event CombineFail "You lacked the skills to fashion the items together."
#event CombineSuceed "You have fashioned the items together to create something new!"
Or to make it easier... implement these into routines.mac ... :)

Amadeus
The Maestro
The Maestro
Posts: 2036
Joined: Sat Jun 29, 2002 3:51 pm

Yes, please please please

Post by Amadeus » Wed Jul 03, 2002 5:10 pm

Yes, please! :)

I'm assuming you could just copy/paste the strings from the old source into the released routines.mac ...of course, I could too *laugh* ..but, it's nice to have it in the 'released' routines.mac ;)

icon
Official loudmouth
Official loudmouth
Posts: 158
Joined: Fri Jun 14, 2002 2:59 pm
Location: ...
Contact:

Post by icon » Wed Jul 03, 2002 10:24 pm

/pout

You *still* haven't gotten around to the $buff parts have you? Then again I haven't been able to go online in the last 4 days, so I haven't tested out the new version. So maybe you did add it just didn't mention it.

I had alot of good ideas in the "post 2002-06-22 ideas" forum, in my many posts... have you looked them over?

Not to sound spoiled, as I love the new custom events and variables, and I'm sure I'll love the #turbo addition also. I'm just curious, since you designated me the "official loudmouth" and all...

- icon
In memory of [b][color=darkblue]MasTerKeyZ[/b][/color].

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Post by Plazmic » Thu Jul 04, 2002 4:35 am

Having #events in routines.mac that aren't used eats extra cpu cycles...
- Plazmic

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Icon....

Post by Plazmic » Thu Jul 04, 2002 4:45 am

Let me go through all your ideas from that thread...

Events: Event_SpellFades (Where it says "Your ___ spell has worn off") You could use $p0 for name_of_spell... and maybe having other variables, $p1 for who spell wore off from (if possible) etc...
Also, Event_GotSummoned and Event_GotDeathTouched for both ME and for OTHERS. for me it would be "You have been summoned!" for others you would hear "You will not evade me, $p0!" and similar stuff for Death Touch.
remember the variables for those, Event_GotSummoned, $p0 (who got summoned), $p1 (who did the summoning).... and same for death touch.
maybe add an Event_YouGotCastedOn or a Event_YouResistedSomeonesSpell...... $p0 (who casted the spell) $p1 (name of spell)
and with the above, having $p1 (or $p0 if you can't tell who casted) return the name of spell could allow for lots of flexability with like /checkforbuff commands and stuff, since DOTS and ROOTS etc would count as buffs probably.
Oh, and don't forget Event_Proc to include both weapon procs and right-clicking on items with effects... and ones with Charges...


Custom #event's... and $arg(num,string)


Auto-flush all variables and delays upon /endm. Currently, if I have /delay 999999999999 in a macro, and /endm it, I can't start a different macro until the delay is up. Pain in the ass

This is in...


put the damned /endif stuff in

This is in...


Where's my title? You promised to tag me two releases ago!

Loud mouth ;)


If it's not already in (don't remember) $char(zone) to return zone I'm in.

It's been in for a long time.


Also $char(surname) to return my surname...
Even $target(surname) for some weird macro that might use it.


Forgot about these ;(


/checkforbuff "Spirit of Wolf" to return TRUE or FALSE (TRUE if you have it, FALSE if not)

or $buff(xxx) where 'xxx' can be: total (returns total amount of buffs), [n] (1, 2, 3, etc... returns name of 1st buff, 2nd buff, etc... depends on the number you put for [n]), "NameOfBuff" (with quotes) (This one is just referring to that specific buff by name, so that in the macro you can have it cancel the buff or recast it or check the info on it etc...)
$LastTell to return the name of the last person to send you a tell, like used for /reply.
and on that $lasttell you could add $LastTell(gm) to return TRUE (if it's a GM) or FALSE (if it's not...)
and $LastTell(race) (class) and stuff, pretty much all the $target features.
Although some people being anon might pose a problem.
Also, $LastTell(doTheyExist) TRUE or FALSE.... does it show up with ANYONE at all in /who list... anon GMs don't show up as being online...


I had a disclaimer at one point for this release... no magic system stuff or making me search memory address, sorry


Damage Stuff... if three things are beating on the main tank, I want a $target(target) to be sorta like /assist, and I want to be able to grab the name of or be able to target one of the other things, like whatever hit $target last... sorta like $target(lastdmg) or $target(lasthit) or basically $target(whojustsmackedme?)

Would have to find the assist stuff... postponed...


enhance the /follow command, make it follow non group members and NPCs. Make it follow from Anywhere, no matter how far away. That would help AWESOMELY... since you could /target npc Range yourlevelrange ... then just hit /follow to walk up to them. It would make levelling macro's much easier then the current /face, autorun, autoattack, /if $target(distance) etc method.

Forgot about this one too... would be nice... and a lot of work


How about a /changeto <something.mac> command for macroing? It would be put INSIDE of a macro, and it would /endm the macro it was put inside, and start another one instead.

I thought about this, but didn't have the time to do it right.
- Plazmic

User avatar
Nuad
a ghoul
a ghoul
Posts: 93
Joined: Thu Jun 27, 2002 11:43 am
Location: Berlin, Germany

Another day, another request... ;)

Post by Nuad » Thu Jul 04, 2002 8:37 am

I read thru all the messages telling that macros won't work for some ppl. which works for others and i found two reasons for this.

One is that some ppl. still using the wrong keyboard layout in their system settings (i made the same error first time using MQ) and the second one is PL.

Every Macro, regardless which one freezes or makes funny things if the PL is too high so here is my feature request:

A global routine, let's call it #pl, which pauses a running macro when a PL occurs and resumes the macro after this.

The normal way of preventing a freeze, e.g. with "if $cursor()" anf "if $find()" won't work when a massive PL happens, these only help with slow connections.

Massive PL: when the left part of the lag-o-meter in EQ starts "counting" up to 100% (disconnect). Every macro freezes or doesn't make what it should make when the shown PL is higher then 0.0%.

target
decaying skeleton
decaying skeleton
Posts: 1
Joined: Thu Jul 04, 2002 2:03 pm

Error object?

Post by target » Thu Jul 04, 2002 2:12 pm

Have you thought about an $error object? It would be handy to be able to trap things like "Your cursor must be empty to find an item"

if "$error"=="Your cursor must be empty to find an item" /call HandleError

icon
Official loudmouth
Official loudmouth
Posts: 158
Joined: Fri Jun 14, 2002 2:59 pm
Location: ...
Contact:

Post by icon » Thu Jul 04, 2002 2:40 pm

Why thanks Plaz! That was a nice answer!

Now I have no more complaints... although I really like that 'check PacketLoss' idea.

and to "target" and his $error idea.... it depends how you want it implemented... If you mean that as soon as that error message pops up, the macro instantly stops and does the /call HandleError part, that wouldn't be reasonable. You would have to actively be waiting for the error in the macro for it to work, and that can be accomplished that way already by creating an event for it. Event_Error "Your hands are too ful blah blah blah", then when you think the error might occur, /doevents. Now I can see how this is a slashup solution and probably not as practicle(sp) as having a non-stop check for it, but Plaz would have to implement it into MacroQuest himself, which would require every macro define it's own $error's, and have something in place to handle them. A good macro wouldn't need it anyway, a macro that constantly checks itself, making sure everything is where and how it should be, would only screw up during lagg or packetloss. Except for typos and syntax errors and logical errors in the actual macro code.

But besides that, maybe that last way is a fair idea after all... Having MacroQuest itself require that every running macro define at least one $error (even if it's defined as NULL), and MacroQuest automatically running the HandleError routine if it's seen... but then again that would seriously slow down macros, and eat up CPU... so then again, maybe not.

Argueing with yourself is fun, you should try it.

- icon
In memory of [b][color=darkblue]MasTerKeyZ[/b][/color].

Plazmic
The One
The One
Posts: 800
Joined: Fri Jun 14, 2002 12:31 am
Contact:

Error Handling...

Post by Plazmic » Thu Jul 04, 2002 3:58 pm

RE:#PL, Need to find that info in memory...

RE:$error, I can do the following:

$getlasterror: return last error text
/setlasterror <clear|errortext>

The internal functions will set/clear this as appropriate:
/target TARGET_NOTFOUND
/itemtarget GROUND_NOTFOUND
/face TARGET_NOTFOUND
/finditem ITEM_NOTFOUND, ITEM_INHAND

/mouseto and /click could return:
TARGET_NOTFOUND (/mouseto target)
ITEM_NOTFOUND (/mouseto item)
PACK_NOTOPEN (/mouseto pack # #)
INV_NOTOPEN (/mouseto inv #; equip #; auto; destroy)


You will also be able to set your own:
Sub FindCombiner could have /setlasterror COMBINER_NOTFOUND
- Plazmic

User avatar
L124RD
Site Admin
Site Admin
Posts: 1343
Joined: Fri Jun 14, 2002 12:15 am
Location: Cyberspace
Contact:

Post by L124RD » Thu Jul 04, 2002 4:44 pm

Salutations,
If we had wildcards and v 20020704 (or irc-20020704) we could do

Code: Select all

#define str_error_finditem "Your cursor must be empty to find an item"
| no_item would trigger for finding item in inventory and ground...
| Don't think next two would work unless we had wildcards in events...
#define str_error_no_item "Couldn't find a '*'"
#define str_error_target "There are no '*' around here."
| there is no error message for face
| #define str_error_face "no error message for face..."
#event error str_error_no_item
#event error str_error_target
#event error str_error_face
#event error str_error_finditem
but we don't have wild cards... so... for no item in inventory check that event_error wasn't called with the text "Your cursor must be..." and that $find!=true then the item wasn't found.

Code: Select all

#define str_error_finditem "Your cursor must be empty to find an item"
#event error_finditem str_error_finditem
sub main
  /varset v0 0
  /finditem similar itemwewanttofind
  /doevents
  /if $find()==true /echo found item...
  /if $find()==false /if $v0==0 /echo no such item in inventory
  /if $find()==false /if $v0==1 /echo somethings in the cursor
/return

sub event_error_finditem
 /varset v0 1
/return
/target?

Code: Select all

/cleanup
/target mob
/if $target()!=true /dosomething
/itemtarget? check to see if $distance(item) is greater then 0...

Code: Select all

/if n $distance(item)>=0 /dostuff
/face your either facing a loc or a mob... well here we go anyway...

Code: Select all

sub main
/varset v0 0
/if "$p0"=="loc" /varset v0 1
/if n $v0==0 /target $p0
/if n $v0==0 /varset v1 $target(distance)
/if n $v0==1 /varset v1 $distance($p1)
/if n $v0==0 /face $p0
/if n $v0==1 /face loc $p1
/press up
/if n $v0==0 /varset v2 $target(distance)
/if n $v0==1 /varset v2 $distance($p1)
/if n $v1>$v2 /facesuccess
/if n $v1<$v2 /facefailed
/if n $v1==$v2 /youragainstawallorstuckinaditchorsomething...
/return
I think i covered all the errors mentioned and how to detect them currently (for me anyway, i have the irc-devel)