Sep 20 2017 by redguides
- Please report broken macros in the macro forum, this update will break many.
- New Plugin! MQ2FindItem (Sym) - type "/finditem name" with a merchant window open, and it will select that item.
- KissAssist 10.0.6(Maskoi, TreeHuginDruid, ctaylor22) - Updated for new bind/warning changes
Sep 20 2017 by eqmule
- Updated for LIVE
There will be no more public mq2 updates until I catch the guy that released the mq2 for agnarr.
send me a pm or skype text: eq.mule
if you have information. you can be anonymous.
longtime friends and loyal users here that I know and trust will be given the updates by me only from now on. (at no charge of course.) mq2 is still open source and free, its just that equistructs.h eqgame.h and eqdata.h wont be distributed or updated by me anymore. those change every patch and everything prior to this day is under gpl and can of course be requested or downloaded, but from now on until this crap is resolved, I have my own NEW includes that are NOT under the gpl.
I'm sick of having my hard work being taken and passed of by some leech on a server that I specifically requested we stay away from. I wont tolerate it.
mq2 is free and staying off of truebox was the only price people had to pay, cant do that? no mq2 for anyone anymore.
wanna step in and update it? lol go for it, it must be "easy" if eqmule can do it in a couple hours... pfft... yeah right...
/eqmule (yeah I'm bitter)
19 Sep 2017 by rswiders
- Modified Math.Clamp to use the parameter list of (N, Min, Max). ie, will clamp the value N between Min and Max.
- Added ${Group.AvgHPs} guess what it returns? - eqmule
18 Sep 2017 by eqmule
- Fixed an infinite loop bug and a variable parse bug in Eval functions. -cred bug report: creamo
- Eval functions that take multiple arguments MUST separate those with comma(s) from now on
Example: (run with a cleric, war or shaman)
Rich (BB code):
Sub Main
/declare c_argueString string outer shm clr war
/declare ChatSender string local ${Me}
/if (!${checkbot["shm war clr", ${ChatSender}]}) { <-NOTE the COMMA
/echo ${Time} Only Func3: FALSE, this should be TRUE
} else {
/echo ${Time} Only Func3: TRUE, this should be TRUE
}
/return
Sub checkbot(selectedBots, chatSender)
/declare botSelected bool local FALSE
/echo ${Time} in Sub checkbot selectedBots=${selectedBots} chatSender=${chatSender}
/if (${Select[${Me.Class.ShortName},${selectedBots}]}) /varset botSelected TRUE
/return ${botSelected}
17 Sep 2017 by eqmule
- Fixed ${Me.GukEarned}, ${Me.MMEarned}, ${Me.RujEarned}, ${Me.TakEarned}, ${Me.MirEarned} and ${Me.LDoNPoints}
- Added a new TLO PointMercant it only have one member : Item which is a pPointMerchantItemType.
The pPointMerchantitemType has the following members: Name, ItemID, Price, ThemeID, IsStackable, IsLore, RaceMask, ClassMask, bCanUse
Usage:
/echo ${PointMercant} returns true if the LDON Mercant window is open and FALSE if not.
/echo ${PointMercant.Item[1].Price} OR /echo ${PointMercant.Item[Ebon Hammer].Price}
returns the Price for index 1 or whatever index Ebon Hammer is in if you do it by name.
etc.
15 Sep 2017 starring rswiders as "the captain", eqmule as "crew member number 6" and special guest star: eqholic
- Updated to handle the new SPA's
- Fixed a bug in /next not taking its argument into account for nested for loops.
- Fix for labels
- Fixed the CSIDLWND struct (the SIDL define...) so since we have never had this right it was time, but note that
if your plugin uses stuff like: pwnd->SidlText and its NOT an actual CSidlScreenWnd then you need to change it to whatever window it actually is.
I guess questions about this should be directed to me (eqmule)
plugins changed outside of core are attached here:
http://www.macroquest2.com/phpBB3/viewtopic.php?f=29&t=11451&p=174467#p174467
MQ2AutoAccept,MQ2Rez
14 Sep 2017 by redguides
- KissAssist 10.0.5 (Maskoi, TreeHuginDruid, ctaylor22) - Updated for new bind/warning changes
- Ninjadvloot 6.0.7 (Maskoi) - Updated for new bind/warning changes
14 Sep 2017 by eqmule
- Updated for TEST
- Fixed ${Familiar[x].} it will return familiars and not illusions now...
-
- Fixed a bunch of window structs that we where completely misusing anyway.
this could require some plugin changes, contact me for help if you get errors.
-
- Fix: Variables that are undeclared but supplied as paramters now default to an actual NULL or 0 not the string "NULL"
-
- Inspecting the Blessed Spiritstaff of the Heyokah will no longer ctd you.
- Added Math.Clamp ${Math.Clamp[Min, N, Max]} will clamp N between Min and Max. - cred derple
Example:
${Math.Clamp[1, 15, 30]} => 15
${Math.Clamp[20, 15, 30]} => 20
${Math.Clamp[1, 15, 10]} => 10
Practical usage:
/bct ranger //stick id ${Target.ID} ${Math.Clamp[25,${Target.Distance},150]}
this will make your ranger stay put if he is already between 25-150 meters away
otherwise it will move him at most 150 away and at least 25 away.
12 Sep 2017 by eqmule and eqholic
- All plugin sources for this zip are attached to this post:
http://www.macroquest2.com/phpBB3/viewtopic.php?f=29&t=11451&p=174415#p174415
- Changed MQ2MoveUtils to save stuff faster.
- MQ2ChatWnd got a new tlo /echo ${ChatWnd.Title}
- MQ2ChatWnd got a new command /setchattitle
- MQ2Melee updated - it has flags for down and holyshits called downflag0-60 and holyflag0-60
you SHOULD set those flags to 2 if you parse ANY macro variables.
Example:
Rich (BB code):
downflag0=2
downshit0=/if (${Macro.Paused}) /echo ${Macro} is PAUSED!
- MQ2Hud now updated with a new type HUDTYPE_MACRO which is 16
This means you can now set the type to any combination of 1 2 4 8 and 16
see http://www.macroquest2.com/wiki/index.php/MQ2HUD for more info.
Basically using a hud that tries to parse variables that are used in macros, before they are declared will fail.
This new flag lets mq2hud know to not even try unless its set.
-
- Adding events from a macro will now also automatically /declare variable as outer if used.
Example: #Event Burn "[MQ2] |${BurnText}|"
As you can see this event uses the variable ${BurnText} and it will therefor /declare it as well.
This means you can remove /declare BurnText in your Sub Main since adding the event did it for you already.
-
- Added ${Macro.IsOuterVariable[xxx]} which returns TRUE/FALSE, it checks if a outer variable exists. (read is declared)
I would recommend NOT using this in macros unless its for debug purposes because it can get quickly get expensive in terms of cpu cycles.
-
- Added ${Macro.IsTLO[xxx]} which returns TRUE/FALSE, it checks if a Top Level Object exists. This should be faster than checking if a plugin is loaded. *should*
Usage:
Rich (BB code):
/if (${Macro.IsTLO[Melee]}) {
/echo yes there is a Melee Top Level Object loaded...
/echo this means I CAN actually do stuff with it without it throwing the Undeclared warning:
/delay 25 !${Melee.Combat}
} else {
/echo no there is no such TLO, maybe you should load mq2melee?
/end
}
07 Sep 2017 by eqmule and eqholic
- All Plugin Sources changed outside of core for this zip are attached to the post here:
http://www.macroquest2.com/phpBB3/viewtopic.php?f=29&t=11451&p=174399#p174399
- using namespace std; has been removed from mq2main.h
THIS MEANS your plugins will ERROR with lines like this:
error C2143: syntax error: missing ';' before '<'
The line: map<string, class CXWnd2 *> WindowMap;
To fix: Find #include "../MQ2Plugin.h" in your plugin and add using namespace std; under the LAST #include below it.
Example:
Rich (BB code):
#include "../MQ2Plugin.h"
#include <otherheader>
...
using namespace std;
OR just change the line to say std:: map<std::string, class CXWnd2 *> WindowMap;
-
- The reason for that change is that right now we litter ALL projects with the std namespace and it is just not good.
Let everyone that needs that namespace use it in their own projects from now on.
-
- #bind(s) are now fixed and won't screw up the macrostack anymore.
- Todays update is significant because I rebuilt the macro engine to improve performance,
it was well overdue. The biggest change is that gMacroBlock is now a map.
- Undeclared Variables are no longer tolerated, and the macroengine will not run at optimal speed
if they exist. I have added a TLO to check for them because of this and a new macro keyword #warning as well
so there is no good reason to run old macros where these kinds of variables hog cpu power:
AGAIN: IMPORTANT: Undeclared variables will slow down macro performance a LOT if they are used over and over, so, fix your macros.
-
- The Macro TLO has a new method: .Undeclared
Usage: /invoke ${Macro.Undeclared} and it will list all undeclared variables.
- New macro keyword: #warning
add it at the top of your macro, and you will get warnings if there are undeclared variables used in it.
-
- /while and /for loops can now be nested inside each other.
- /continue and /break should work properly inside /for loops now.
- /continue and /break works in /while loops now.
-
- Updated MQ2Rez and MQ2Cast to not hog the cpu looking up windows over and over.
- Other stuff to optimize and cut down on cpu intensive tasks.
Files changed outside of core:
\MQ2Cast\MQ2Cast.cpp
\MQ2Rez\MQ2Rez.cpp
01 Sep 2017 by eqmule and eqholic
- You can now call functions inside if statements in your macros
Use [] after your sub inside the if statement to tell the macro its a sub
so /if (blah[]) /call dostuff
or if it actually have parameters
/if (blah[${arg1} "hi there" 0]) /call dostuff
Example:
Rich (BB code):
Sub Testsub
/echo Enter Testsub
/return Hello world
/return
Sub Testargs(int arg1,int arg2)
/if (${arg1} > ${arg2}) {
/return Testargs: ${arg1} > ${arg2}
} else {
/return Testargs: ${arg1} <= ${arg2}
}
/return
Sub IsHuuge(int arg1)
/echo IsHuuge ${arg1} ?
/if (${arg1} > 1000) {
/echo TRUE
/return TRUE
} else {
/echo FALSE
/return FALSE
}
/return
Sub Main
/echo ${Testsub[]}
/echo ${Testargs[10 9]}
/if (${IsHuuge[2000]} && !${IsHuuge[1]}) /echo Huuge and smaaal
/return