Archived Zip Announcements: 2/17 - 8/18/2004

General announcements relating to the modularized MacroQuest2 system.

Moderator: MacroQuest Developers

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Mon Mar 29, 2004 3:50 am

Code: Select all

29 Mar 2004 by Lax
- Phase 1 of MQ2Data system rollout begins! Please start updating macros, custom uis, plugins,  
  etc to use this sytem.
  To use MQ2Data modify these MQ2Main lines
   #define USEMQ2PARMS
   //#define USEMQ2DATATYPES  
  Uncomment the USEMQ2DATATYPES #define to allow MQ2Data parsing.  If you wish to disable
  MQ2Parms parsing, comment the USEMQ2PARMS #define.  You may use both or just one.
  See this thread to see how MQ2Parms will be phased out 
      http://macroquest2.com/phpBB2/viewtopic.php?t=6008
  See this thread to see how to use MQ2Data instead 
      http://macroquest2.com/phpBB2/viewtopic.php?t=6022
  Specific information for plugins to add types and Top Level Objects will be available soon
- Moved a few functions to MQ2Inlines.h
- Fixed a performance issue in GetSpellByName
- Trying to detour an already detoured address will now fail instead of crashing
- Added some offsets to eqgame.h (mostly CListWnd), removed some offsets that were virtual
  functions and probably not used anyway.  If you are adding basic UI offsets to your plugins
  ask to have them in eqgame.h please (people were doing this with CListWnd offsets).
This part was actually in the super-sekrit zip from Mar 25:

Code: Select all

23 Mar 2004 by Amadeus
- Removed DisplayZem function and calls and $zone(ZEM)  ...rest in peace.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Mon Mar 29, 2004 6:57 pm

29 Mar 2004 Revision C zip update

Code: Select all

29 Mar 2004 by Lax (more)
- Added < <= == >= > && & || | to the Calculate function (someone rewrite if please... 
  fail if zero, fall through if non-zero)
- MQ2Data updates:
  * Added top level object: string If[conditions,whentrue,whenfalse]
  * Added type corpse, top level object: corpse Corpse
  * Added top level object: item Cursor
  * Added string members:
    - int Compare[text]: -1 if the string is alphabetically before text, 0 if equal, 1 if after. Case does not count.
    - int CompareCS[text]: -1 if the string is alphabetically before text, 0 if equal, 1 if after. Case counts.
  * Lots of others...
- Fixed MQ2Parm slowness from debug spew if MQ2Data is also in use
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Tue Mar 30, 2004 12:42 am

At it again.. here's the 29 Mar 2004 Revision D notes

Code: Select all

29 Mar 2004 by Lax (even more)
- Added /ctrl /alt and /shift commands:
  /ctrl <command>
  /alt <command>
  /shift <command>
  These execute a command while telling the window manager that a key is pressed.  This can
  be used in conjunction with /itemnotify to pick up a stack or a single item... example:
  pick up a single item from a stack: /ctrl /itemnotify pack1 leftmouseup
  pick up an entire stack: /shift /itemnotify pack1 leftmouseup
  Because they execute a command, they can also be used together, as in 
  /ctrl /alt /shift <command>...
- Fixed character.Buff[slot]
- Fixed character.Gem[name]
- Fixed If top level object crashing on false
- Added MQ2CHAT bind to start typing in the MQ2 Chat Window, also added MQ2CSCHAT bind which
  gets forced to bind as "/" at character select, and does not exist while in game.
- Added /timed command, which executes a command after a specified duration (in deciseconds like pause)
  /timed <deciseconds> <command>
  Example: /timed 10 /echo 1 second has passed
  Note: This does NOT "pause" successive commands.
- Added /newif command, which ONLY does numeric compares -- use MQ2Data string comparison to 
  turn string compares into numeric compares -- and note that this means you do NOT use the "n"
  stuff.  This will replace the current /if command in MQ2Data phase 3.  Until then, you may 
  "/alias /if /newif" if you wish to use newif exclusively.
  /newif <calculations> <command>
  <calculations> gets evaluated down to a single term from however many terms there are (You
  may use && and || freely.) *BE WARNED* that in calculations parentheses are still not
  officially supported.. that's on my TODO list.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Tue Mar 30, 2004 5:18 pm

Zip updated for patch.
Added Easar's iteminfo additions, and fixed spell.Mana in MQ2Data
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Tue Mar 30, 2004 6:18 pm

Zip updated, fixed /alt ability :)

the new /alt /ctrl /shift commands are renamed to /altkey /ctrlkey /shiftkey. /ctrl and /shift will still do the commands just fine
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Mar 31, 2004 4:55 am

Zip updated MQ2-20040331

Code: Select all

31 Mar 2004 by Lax
- Fixed /newif so variables/parms/data get parsed
- string.Mid and string.Find are now 1-based instead of 0-based
- Calculate (and stuff that uses it) now supports parentheses, and will treat 
  "NULL" and "FALSE" as 0, and "TRUE" as 1
- Added float math.Distance[x,y,z:x,y,z]: Performs distance calculations in 1, 2 or 3 dimensions.  Any not given will default to your character's current x y or z.
This was actually in all of the 3-30 zips:

Code: Select all

30 Mar 2004 by Lax
- Added a distance-sorted spawn list in MQ2Main
- Added MQ2Data top-level object:
  * spawn NearestSpawn[n]: The nth nearest spawn
  * spawn NearestSpawn[search]: The nearest spawn matching this search (same as Spawn[search])
  * spawn NearestSpawn[n,search]: The nth nearest spawn matching this search
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Mar 31, 2004 11:48 am

Zip updated, only change is MQ2Parm is default again sorry! Phase 2 is not active yet ;)
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Mar 31, 2004 6:52 pm

Code: Select all

31 Mar 2004 by Lax (more)
- Fixed character member PctExp
- Added character members:
  float PctAAExp: % AA exp..
  bool Moving: Moving? (includes the mount hack so you're not constantly "moving" when sitting on a mount)
- Added spawn members:
  bool Swimming: Swimming?
  bool Underwater: Underwater?
  bool FeetWet: Feet at least wet?
  int Animation: Animation id
  int Holding: Holding id
  float Look: Look angle
- Added "gm" to standard searchspawn, works with anything that uses that including MQ2Map commands,
  /target, ${Spawn[search]}, etc
- Modified the if block parsing in FailIf so that it only looks for } and { as the first and last characters on a line
Last update before i get back next week
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Mar 31, 2004 7:28 pm

Ninja updated to fix a compile error in MQ2Label if you have MQ2Data on. MQ2-20040331c.
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Mar 31, 2004 7:41 pm

10 seconds later someone reports a bug ;)

/target, etc fixed (anything that used searchspawn)
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

User avatar
dont_know_at_all
Developer
Developer
Posts: 5450
Joined: Sun Dec 01, 2002 4:15 am
Location: Florida, USA
Contact:

Post by dont_know_at_all » Fri Apr 02, 2004 5:56 am

Okay, fixed the major problem with turning off USEMQ2PARMS.

Zip updated.

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Apr 07, 2004 11:35 pm

Apr 7 2004 zip...

Code: Select all

7 Apr 2004 by Lax
- Changes to MQ2Data system:
  *** NOTICE: All X and Y coordinates used by the MQ2Data system have been REVERSED.
      Internally, MQ2 stays the same as it has been forever.  However, you will now
      notice that "/echo ${Me.X}, ${Me.Y}, ${Me.Z}" will give the same order as seen
      by typing /loc
  Top level objects:
  * currentzone Zone: Zone information about current zone
  * zone Zone[id]: Zone information for zone with this id
  * zone Zone[shortname]: Zone information for zone with this name
  * time Time: Your local time in real life
  * time GameTime: Game time
  * type Type[name]: Info about the type with this name
  * heading Heading[degrees]: Forms a heading type in the given direction in degrees
  * string Ini[filename,section,key,default]: Reads from an ini file.  section, key, 
    and default do not need to be given.  section and key may be set to -1 to skip them 
    and give a new value.  If section or key are not given, multiple values are read...
  Additions/Changes to existing types:
  * bool string.Equal[text]: Strings equal? Case does not count...
  * bool string.NotEqual[text]: Strings not equal? Case does not count...
  * bool string.EqualCS[text]: Strings equal? Case counts!
  * bool string.NotEqualCS[text]: Strings not equal? Case counts!
  * string string.Arg[n,separator]: Gets nth argument using separator as the separator (single character). If separator is not given, defaults to space
  * zone character.Bound: The zone you are bound in
  * int character.Skill[name]: Skill level of skill with this name
  * int character.Skill[n]: Skill level of skill with this index
  * int character.Ability[name]: Doability button number this skill name is on
  * string character.Ability[slot]: Skill name assigned to this doability button
  * bool character.AbilityReady[name]: Ability with this name ready?
  * bool character.AbilityReady[slot]: Ability on this button ready?
  * spell character.Book[slot]: Spell assigned to this slot in your spellbook
  * int character.Book[name]: Spell slot the spell with this name is assigned to in your spellbook
  * float (TOSTRING): Changed to ###.## instead of .###
  * heading spawn.Heading: (changed to "heading" type)
  * heading spawn.HeadingTo: (changed to "heading" type)
  * heading switch.Heading: (changed to "heading" type)
  * heading switch.DefaultHeading: (changed to "heading" type)
  * heading switch.HeadingTo: (changed to "heading" type)
  * heading ground.Heading: (changed to "heading" type)
  * heading ground.HeadingTo: (changed to "heading" type)
  New types:
  * currentzone
  * time
  * heading
  * type
  *** Special handling is used for casting to "type", such that the new data is equal 
      to the old type, and the new type is "type".
  -- Fixed type casting so that members of the new type may be accessed as expected (this
     was incorrectly ending the parsing at the type cast until now)
- ConColor changed to take 1 parameter
- FindMount tweaked/inlined
- Changed the "RunNextCommand" to remain to TRUE until set to FALSE, so only cases where
  the next command should not be run need to be explicitly set (this should increase
  macro performance in most cases, but some commands may need to be correctly updated)
- /declare will no longer spam you if the variable previously existed.  If the variable
  previously existed, it will be quietly deleted and replaced by the new one.  This might
  cause some people problems but they will learn quickly ;)
- New command /deletevar <name> - Deletes an existing variable.  Gives a message if the
  variable did not exist, but no message if the variable did exist.
- /notify modified to work for clicking off buffs and other things it would not previously
  work for.  However, items must still be clicked using /itemnotify.  /notify now accepts
  all of the same clicks as /itemnotify (leftmouse,leftmouseup,leftmouseheld,etc)
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Thu Apr 08, 2004 2:29 am

Code: Select all

8 Apr 2004 by Lax
- MQ2Data changes:
  - macro.Defined is now a top level object instead
    bool Defined[name]
  - Fixed all variable parsing when MQ2Parms is not on
- Fixed a major problem with /newif, should now "work as intended"
- Fixed (I think) problem with /face which let the macro continue before facing the target
  completed
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Fri Apr 09, 2004 7:42 pm

04.09.2004 zip changelog

Code: Select all

9 Apr 2004 by Lax:
- Fixed != in Calculate (and therefore in /newif, math.Calc, etc), and implemented ! as
  the unary NOT operator.  This gives 0 if your calculation is non-zero, or 1 if your
  calculation is zero.
- MQ2Data changes:
  -- Swapped Y and X back to being backwards-backwards or backwards-forwards, or whatever they
     originally were
  -- Added "NWU" coordinates (North/West/Up), the three positively oriented directions in EQ.  
     Spawns also have a shortcut for SED (South/East/Down).  All type member names involving 
     XYZ have a NWU complement (none necessary for the "index" bracketed part, of Heading[y,x] 
     for example)
  -- Fixed character.AbilityReady
  -- Fixed item (TO STRING)
  Top Level Objects
  * spawn LastSpawn: The last spawn chronologically.
  * spawn LastSpawn[n]: The nth from last spawn.. LastSpawn[1] is the LastSpawn.. LastSpawn[2] is 2nd from last, LastSpawn[3] is 3rd from last, and so on
  * spawn LastSpawn[-n]: The nth from FIRST spawn.. LastSpawn[-1] is you, LastSpawn[-2] is the second spawn, LastSpawn[-3] is the third spawn, and so on
  Additions/Changes to existing types:
  * heading Heading[y,x]: Heading from player's current position to y,x
  * float math.Distance[y,x,z:y,x,z]: Performs distance calculations in 1, 2 or 3 dimensions.
    Any not given will default to your character's current x y or z.
  * bool item.Stackable: Stackable?
  * bool merchant.Open: Merchant open?
  * float merchant.Markup: The amount used to calculate item values on this merchant 
    (Markup is what your charisma, faction, etc change).  Markup*Cost=Merchant's sell price.
    Cost*(1/Markup)=Your sell price. Markup of 1.05 is highest no matter what, so there might
    not be any actual cap based on charisma.
  * int merchant.Items: Item count on the merchant
  * item merchant.Item[n]: nth item on the merchant  
  * bool corpse.Open: Corpse open?
  * int corpse.Items: Item count on the corpse
  * item corpse.Item[n]: nth item on the corpse
  * item character.Inventory[slotname]: Item in this slot (inventory slots only, but 
    same names as /itemnotify)
  * bool character.SpellReady[name]: Gem with this spell name ready for cast?
  * bool character.SpellReady[slot]: Spell in this gem ready for cast?

8 Apr 2004 by Lax (more)
- MQ2Data changes:
  Top level objects:
  * heading Heading[x,y]: Heading from player's current position to x,y
  Additions/Changes to existing types:
  * int item.Container: The number of slots, if this is a container
  * int item.Items: The number of contained items, if this is a container
  * item item.Item[n]: The item in this slot, if this is a container
- Item links were apparently not working in the MQ2ChatWnd, nobody reported this until now.
  Thanks people who noticed it and never reported it!  Anyway, item links in MQ2ChatWnd are
  simply stripped until I figure out the issue.  Item links in MQ2Chat still work fine.
I must have forgot to put this note in, but heading.DegreesCCW gets you the counter-clockwise degrees (e.g. "the way it used to be", the way eq uses it, how some macros expect it still)
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0

Lax
We're not worthy!
We're not worthy!
Posts: 3524
Joined: Thu Oct 17, 2002 1:01 pm
Location: ISBoxer
Contact:

Post by Lax » Wed Apr 14, 2004 2:56 pm

2004 04 14 zip

Code: Select all

13 Apr 2004 by Lax:
- Fixed ! in Calculate (worked most of the time, but not in some special cases)
- Fixed heading's "To String" to give the correct heading.  heading.Name/heading.ShortName were fine
- Fixed time.Time12 to be 12 hour (oops)
Lax Lacks
Master of MQ2 Disaster
Purveyor of premium, EULA-safe MMORPG Multiboxing Software
* Multiboxing with ISBoxer: Quick Start Video
* EQPlayNice, WinEQ 2.0