• You've discovered RedGuides, an EverQuest multi-boxing and scripting community 🧙‍♀️⚙️. We want you to play several EQ characters at once, come join us and say hello! 👋

  • A TLP without truebox has thawed (Very Vanilla ready)
    Frostreaver

Update notifications via email for Very Vanilla (Live) updates

Status
Not open for further replies.
Updated!

28 Jun 2016
MQ2AutoLogin is now part of the core zip
NEW FEATURE: Profiled Logins:
Basically it's a new menu on the task icon called Profiles.
The first time you click it you will see a Create New... menu item.
You click it and a small window asking for 5 things will pop up.
Server, login, pass, character name and path to eqgame.exe
Once you have that filled in you click an OK button and your profile will be encrypted and saved in mq2autologin.ini
You can save as many profiles as you want and they will sort per server on the menu.
Each server profile has a Load/Unload All option so once you have added all your accounts for a server you just click the Load All and away it goes,
it will login all of the characters under that server. (Well all that are check marked)

Check marks: each character can be marked for loading by simply right clicking the character name to toggle it marked on or off.

Loading individual accounts:
You just left click on a character name and if it is check marked, it will load and the name will be changed to (Loaded)

Unloading individual accounts:
If a char is loaded and has the text (Loaded) behind it you just left click it to unload.
I kept this as simple as I possibly could so its a Toggle.

I can add window positioning and stuff I guess but for now it's just a easy way to login a box team on a server.

Batch Files and hotkeys:
If you currently use batch files or hotkeys or whatever, those should still be usable if you don't want to click the menu.
Example: (this example assumes you HAVE profiles created with "Create New..." in mq2autologin.ini)
Batch file can launch your accounts by sending the server_charname to the eqgame client like this: patchme /login:drinal_eqmule
And that's really all there is to it... You would of course change the server and Charname to your server and your char (drinal and eqmule)

Encryption:
I strongly recommend getting this setup though, because it encrypts your password in a way that in "theory" makes it only decryptable on YOUR computer,
this means that even if you accidently post your mq2autologin.ini somewhere, or someone gets hold of it, the information inside it will be useless to them.
Finally, no, you don't "HAVE" to use this feature, mq2autologin is backwards compatible to handle any old way you feel more comfortable with.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/43036-Very-Vanilla-Compile-20160628
 
01 Jul 2016
Updated for TEST
The Create new Profile window no longer closes after u create a profile.
you can close it on the [X] when you are done adding profiles, this was a requested feature.
To celebrate that it looks like we are getting all our accounts back, I decided to comply with some users requests
so I:
Added a popupmenu to the Profilemenu on the trayicon
you can now rightclick the profile and you will see Edit, Delete and Check/Uncheck
The browse button is active now as well.
Happy Boxing!, this should make it easier.

30 Jun 2016
Updated for TEST
Updated MQ2AutoLogin.cpp - cred: derple.
Updated Blech - cred derple
change was done to fix a crash in blech.
Fixed Spell Dmg in MQ2ItemDisplay - cred: dewey2461
Misc Stuff to improve stability.
Changed the way Profile for Login works, you will need to recreate your profiles. -cred: dewey2461
Im really sorry about that, but its better we get this done now than in 6 months
when it will affect more people.
This is new feature to me as well, and im doing my best to make it work the way people want it,
based on the feedback I get.
The good news is, next version will have a browse to path button (that works)
an edit and a delete option for the profiles, this change lays the groundwork for that.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/43036-Very-Vanilla-Compile-20160701
 
06 Jul 2016
Updated for LIVE
You can now enable/disable MQ2login from the tasktray menu.

02 Jul 2016
Added a check for "You have a character logged into a world server as an OFFLINE TRADER from this account" to mq2autologin
Added a check for "failed login attempts on your account since the last time you logged in." to mq2autologin
Added a check for "This login requires that the account be activated. Please make sure your account is active in order to login" to mq2autologin
Added a check for "Error - A timeout occurred" to mq2autologin

Added a setting for the "Trade when you have something on the cursor and click on the name of the target in the target window" feature
its in macroquest.ini as UseTradeOnTarget. default is 1. (on)

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/43574-Very-Vanilla-Compile-20160706
 
Redguides:
MQ2Gmail added - receive an email/text if your toons die.
MQ2AFNuke & MQ2Heals updated (thanks jimbob!)

mq2devs:
13 Jul 2016
- Updated for LIVE
- Updated for TRUEBOX
Yes... you can probably bypass my code thats in place to make a TRUEBOX version that
has all the stuff the LIVE one has, but I am appealing to your decency now.
Please dont. We have a good thing going with dbg now and I hate to see that ruined by someone
for their own personal gain. -eqmule
-
- To build a TRUEBOX version of mq2, uncomment //TRUEBOX in mq2main.
- If I find out that people are abusing this newfound power, I WILL have no other choice than
moving more stuff into mq2ic, please dont make me do that. I like to keep mq2 as open
as possible.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/43806-Very-Vanilla-Compile-20160713
 
8 Aug 2016 by Redguides
All plugins updated and tested, thank you Maskoi, ctaylor & Jimbob.

8 Aug 2016 by eqmule
- The integrity checker is now 714% faster (or something).
- Updated mq2autologin, its not going to crash you ever again (well in theory at least)
So, look, mq2autologin has been overhauled, and I also figured out where the serverids
are being stored, this means that from now on you can place server shortnames in the mq2autologin.ini
and as long as they have a server LONGNAME that matches what you see in the server select list it will be able to log you in.
This is particularly useful on emulator login servers that assign dynamic IDs.
NOTE2: for live servers, like tunare and drinal for example, those really ARE the real shortnames so I use those.
BUT for emu servers, I have no idea what their shortanmes are, sometimes they dont even use a "short name", but instead, they use like a really long one with
spaces in it and so on, so I HIGHLY recommend you stick to a short name with no spaces in it, especially IF you are using the new MQ2 login feature on
the tray icon because eqgame only accepts 30 character commandlines so having a really long "shortname" will definaltely break that type of login for you...
bottomline, the mq2 login feature doesn't really care if the shortname is fake or real, it will use whatever is in your profile when it look them up in the ini.
NOTE3: for live and test servers, obviously the staic id of those servers is still valid, and mq2autologin will still be able to look those up internally
like it always have, this new ini setting is mainly for emu servers, but you can of course add any server u like, even live ones.
so without further ado here is an:
Example of a [Servers] section in mq2autologin.ini (note that I have no idea if these servers even allow mq2, this is just an example)
[Servers]
tunare=Tunare - The Seventh Hammer
drinal=Drinal - Maelin Starpyre
firiona=Firiona Vie (Roleplaying Preferred)
peqtgc=[] [PEQ]The Grand Creation [legit-god]
ezserv=[] EZ Server - Custom Zones, Vendors, Quests, Items, etc
stormhav=[] Storm Haven - High-Quality Custom Content
alkabor=[] The Al'Kabor Project [www.takproject.net]

25 Jul 2016 by eqmule
- THE BIG #pragma warnings SHOULD DIE patch...
- I have removed the #pragma warnings for depreciated string functions.
- This will absolutely break ALL your plugins.
- I am available on skype to help you fix every single one. eq.mule
- This is NOT going to be easy, but I have posted updated plugins
on macroquest2.com in every thread that I had plugin source for.
- When you get WARNINGS while buidling this version, IT MEANS, you need a fix.
- DO NOT I REPEAT DO NOT ADD A PRAGMA TO FIX IT
- I'm seriously going to go ballistic if i see any more #pragma warnings
If a #pragam warning is needed we are doing it wrong.
-
- So... the whambulance will be comming for sure when you update to this version.
Sorry about that, but it was needed because I'm sick of all the buffer overflows
that are crashing us randomly and I can never get a good call stack in order to fix them.
This fix is years overdue, and I consider it crucial in order to move forward
towards a 100% stable mq2.
-
- Anyway... I made a whole bunch of stuff stringsafe
too much to list, if u have plugins that wont build
post about it or message me and ill help u fix them.
Here is a link to a post that has all my personal versions of the plugins I use, that I have fixed for this release:
- http://www.macroquest2.com/phpBB3/viewtopic.php?f=50&t=20053
- pMQ2Blech is no longer an export, create your own Blechs, cause hooking into that one is no longer an option.
(this means mq2moveutils need to be updated see above link for updated plugins.)

Huge update, perhaps our most stable build in history. If you experience any crashes or issues, or if you're just happy with how the compile is running, let us know:

http://www.redguides.com/community/showthread.php/43806-Very-Vanilla-Compile-20160809
 
02 Sep 2016 by RedGuides
Ninjadvloot updated to 6.2 (Thanks hoosierbilly!)
kissassist updated to 9.1 (Thanks ctaylor and maskoi!)
MQ2AFNuke & MQ2Heals updated (Thanks jimbob!)
MQ2AASpend, MQ2Cast, MQ2Melee all updated


02 Sep 2016 by eqmule
Reverted a "fix" to the /while command that instead of fixing it made it worse
im not happy with this command, im gonna have to spend more time on it.

01 Sep 2016 by eqmule
Misc Fixes to improve stability.
The Launcher can now launch single sessions without logging u in, i basically just "launches clean"
rightclick the "Launch Clean" menu item to toggle starting eqgame in suspended mode (for power users)
The Launcher can now export and import login profiles.
Added some missing itemtypes.
The ALTABILITY struct has gotten an overhaul
CurrentRank is now GroupLevel
RequirementCount is now RequiredGroups
RequiresAbility is now RequiredGroupLevels
grant_only is now QuestOnly
next_id is now NextGroupAbilityId
last_id is now PreviousGroupAbilityId
PointsSpent is now TotalPoints
PLUGIN AUTHORS: GetAAById has a second parameter, its level, use it or it will default to -1 this is only important when you try to find a aa by name.
example:
int level = -1;
if (PSPAWNINFO pMe = (PSPAWNINFO)pLocalPlayer) {
level = pMe->Level;
}
if (PALTABILITY pAbility = pAltAdvManager->GetAAById(index, level)) {
I added a wrapper for GetAAById so we can build emu builds.
its called GetAAByIdWrapper and is exported.

CTargetWnd__UpdateBuffs is now CTargetWnd__RefreshTargetBuffs (cause it is)
Bunch of other stuff

17 Aug 2016 by Redguides
KissAssist 9.0 Released - Thanks Maskoi & ctaylor!
MQ2AFNuke Updated - Thanks Jimbob!
MQ2AdvPath Updated
MQ2Dpsadv updated
MQ2Navigation removed (use MQ2Nav instead)
MQ2Pop removed (use MQ2SpawnMaster instead)

17 Aug 2016 by eqmule
Updated for LIVE
TRUEBOX nerfed.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/44955-Very-Vanilla-Compile-20160902
 
Rich (BB code):
16 Sep 2016 by Redguides
MQ2CPULoad added - thanks Dewey
Kissassist updated - thanks Maskoi & Ctaylor
The following plugins have been updated: MQ2Cast, MQ2Melee, and MQ2Nav (thanks brainiac)

16 Sep 2016 by eqmule
Fixed a crash bug in listwnd::addstring for the test build -report cred: fry
ISXEQ once again compiles... sorry about the long wait.
  BIG NOTE: it now includes ISXDK 35, this means you should use VS 2015 with toolset 140 to build it.
  one thing though... mq2ic doesnt load for some reson for it
  I have contacted Lax and hope we can figure out a workaround.
  Bottomline... yeah... you CAN build isxeq now...
  but its not protected by mq2ic, so run at your own risk.
  I really didnt want to wait any longer to get something out.
  but if you are the paranoid type, id hold off a couple more days
  until we can figure out a way to load it...

15 Sep 2016 by eqmule
Updated for TEST
The injector now detects if a profile is loaded or not and reinjects if needed if clicked,
  prior to this update sessions that u did /unload in game for had their profile name set
  as character (Loaded) and if you clicked such a profile, it would not reinject.
Fixed a bug in GetItemContentsByName
Fixed a bug in GetItemLink -cred demonstar55 and rswiders
Added a new parameter to FindItemBySlot so we can specify which locations to search.
NEW FEATIRE: The EverQuest TLO has a new member .LastMouseOver
  it returns a windowtype of the last window the mouse was hovering.
  Want to know the name of a window or its children? Tired of doing /windows and look through a list of a million windows?
  Well now it's easy:
  Example: Place the mouse over a window and do a /echo ${EverQuest.LastMouseOver.Name}
  Example2: /echo ${EverQuest.LastMouseOver.Tooltip}
NEW FEATURE: Added .MouseOver to the Group TLO
  Usage1: /echo Im hovering my mouse over ${Group.MouseOver.Name} which has ths spawnid: ${Group.MouseOver.ID}
  Usage2: /bct ${Group.MouseOver.Name} hi there I dont want to change my target just to tell u: please heal ${Me.Mame}
  Usage3: /bct eqmule //casting "Complete Heal" -targetid|${Group.MouseOver.ID}
  Usage4: /bct ${Group.MouseOver.CleanName} //setprio 2
  Final Note: YOU CAN hover over your own name in the player window where u see your hp and it will return you.
  There are many more usages for this im sure...
Fixed GetItemLink
Fixed AltAbilityReady to only return true for active abilities - cred desgn
Fixed multiple buffer overflows all over the place in core.
Note to self:
  The following plugins has had some kind of modification made to them to work with this release:
  MQ2Twist, MQ2SpawnMaster, MQ2LinkDB, MQ2EQBC I should post them on the forum.
  NavigationType.cpp MQ2Netheal.cpp MQ2SpawnMaster.cpp MQ2Twist.cpp

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/44955-Very-Vanilla-Compile-20160916
 
Last edited:
Rich (BB code):
21 Sep 2016 by eqmule
Updated for LIVE

18 Sep 2016 by eqmule
Sunday is funday... so here is some fluff:
Added a "Boss Mode" hotkey, alt+~, (alt+tilde) if u click that all your eq windows will be instantly hidden. It's a toggle.
  the hotkey can be changed in the [MacroQuest] section, the value is called BossMode=
  setting BossMode=0 disables it.
You can now "cycle" eq windows now with the '~' key.... (also known as tilde)
  its not obvious but you CAN change it by editing the macroquest.ini
  in the [MacroQuest] section add a CycleNextWindow=somekey
  Example: (and this is what it defaults to when this entry does not exist)
           CycleNextWindow=shift+`
  u can do alt+ and ctrl+ as well but thats it.
  you cannot combine alt+shift+, i didnt want to make this to complex.
  you CAN however drop the prefixes altogether and just specify it as
  CycleNextWindow=b
  that would make the lettere "b" on your keyboard cycle the windows... (not recommended unless u plan on never using the letter b for any other reason...)
  Setting CycleNextWindow=0 will disable it completely.
---- fluff end -----
/loadspells no longer "loads them" even when a load technically isn't needed. -code cred: Vyco Dynn
Fixed a bug related to keyring locations.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/45856-Very-Vanilla-Compile-20160921
 
Rich (BB code):
12 Oct 2016 by Redguides
- MQ2Autoforage fixed (thanks Maxranor, drcrimzon)
- cskillup updated (thanks drcrimzon)
- ninjadvloot updated (thanks hoosierbilly)

11 Oct 2016 by eqmule
- Updated for BETA
- I had a lot to do and it was difficult to get this working, so it's not tested properly.
  I basically wanted to get it out before they patch again.

01 Oct 2016 by eqmule
- some new stuff added to the map by JudgeD
	/mapactivelayer
	/maploc
	/clearloc
	see this post for more info: http://www.macroquest2.com/phpBB3/viewtopic.php?f=17&t=19987

29 Sep 2016 by eqmule
- Added fellowship to the spawnsearch tlo - Idea Cred: mwilliam
  Example usage:
   /if ${SpawnCount[fellowship loc ${Me.X} ${Me.Y} radius 50]} >= 3) {
		/echo its ok to place a campfire now.
   } else {
		/echo not enough fellowship members here to place a campfire right now
   }
- RemoveBuff now accepts buffnames that are quoted "some buff"
- pinstCSystemInfoDialogBox HAS BEEN RENAMED TO pinstCLargeDialogWnd cause thats what it is.
- /loginchar server:charname will now launch eq and log the char in.
  NOTE: if you run this command and server:char is already running, you will kill his game and
  he will be logged in again, this command ALWAYS launches a new client.
  this is for advanced users only, I use it personally to launch and get back into a game when 
  one of my clients has crashed. (easily detected with the ${Group.Member[soandso].Offline} tlo member... or lets say I havent seen the guy for 15 minutes)
  NOTE2: this command only works if you are using the mq2 login system and have a profile for the character.
  Example: /loginchar tunare:eqmule
  will search all mq2 profile sets for the tunare server and the char eqmule
  if it finds it, it will launch eq and log in that character.
- The ~ key should now be able to cycle full screen windows and in order - rswiders

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/45856-Very-Vanilla-Compile-20161012
 
Rich (BB code):
28 Oct 2016 by Redguides
AutoCleric updated to 2.1 (thanks Noobhaxor)
MQ2Cast updated with snare immune event

28 Oct 2016 by eqmule
ChatWindow is now top dog at charselect and will no longer go awol there.
ChatWindow will no longer crash at charselect when it's children are clicked.
Made some changes to MQ2DInput.cpp in preparation for going full scale c++
  since CINTERFACE is going bye bye in a future update.

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/46689-Very-Vanilla-Compile-20161020
 
Rich (BB code):
16 Nov 2016 by eqmule
Updated for LIVE
Reorganised SPAWNINFO to reflect how its laid out in memory.
Feet in Spawninfo has been renamed to FloorHeight
AvatarHeight2 in Spawninfo has been renamed to Width
HoldingType in Spawninfo has been renamed to HoldingAnimation
InnateETA in Spawninfo is now part of SpellGemETA as its LAST member because... well it should be.
GetMeleeRangeVar2 has been renamed to MeleeRadius
Class in the spawninfo struct has been moved to its correct location which is inside ActorClient.
  Therefor: (and I know people will post even though the answer is right here)
  ITS NOT pSpawn->Class anymore, its now pSpawn->mActorClient.Class
  same thing goes for Race.
  pSpawn->mPlayerPhysicsClient.Levitate instead of pSpawn->Levitate
  pSpawn->mPlayerPhysicsClient.pSpawn instead of  pSpawn->pSpawn

mkay...

14 Nov 2016 by eqmule
Updated for BETA
GetSpellEffectNameByID fixed to not return a temp buffer - cred HTW
ReadWindowINI in MQ2AdvPath correctly read the ini but never set the window value
  this has been corrected - cred Brainiac
  a zip which has the corrected version in it is located here : http://www.macroquest2.com/phpBB3/viewtopic.php?f=29&t=11451&p=172713#p172713

Corrected the zoneinfo struct 
  What we previously had been refering to as "ZoneType" was not in fact it, so it has been renamed to FOgOnOff which is what its for.
  This means that ${Zone.Type} has changed a bit...
  it now returns 0-5 see the EOutDoor enum for more info. And whoever wants to update the wiki should refer to that.
  in short: 0=Indoor Dungeon 1=Outdoor 2=Outdoor City 3=Dungeon City 4=Indoor City 5=Outdoor Dungeon

13 Nov 2016 by eqmule
Added some missing members to the test cxwnd struct
Fixed the 4Byte error.

12 Nov 2016 by eqmule
Updated for TEST

12 Nov 2016 by rswiders
Updated spell effects display

11 Nov 2016 by eqmule
Updated for BETA

10 Nov 2016 by eqmule
Updated for BETA
In preparation for the expansion on the 16th and for future faster patching,
  THE FOLLOWING STUFF has undergone some serious changes:
  You have 5 days to adjust your personal builds and plugins.

BGColor is now a COLORREF change plugins accordingly.
  and no, it CANNOT be changed back to a ARGBCOLOR since that contains a union with bytes and that screws up the 4 aligned padding.
UnknownCW has been renamed to CRNormal change plugins accordingly.
Locked is now a bool
TimeMouseOver has been renamed to FadeDelay
dShow is now a bool
We are using 4 byte alignemnt from now on, set ur plugins to 4 byte alignment.
ONE MORE TIME, WE ARE NOT USING 1 byte ALIGNMENT ANYMORE.
the CXWnd struct grew somewhat to make patching of it easier for me.
Fixed a bug in MQ2EQBC that would crash u on /unload
The following plugins has had changes made to them:
MQ2AvdPath.cpp
MQ2DPSAdv.cpp
MQ2EQBC.cpp
MQ2Melee.cpp
MQ2MoveUtils.cpp
MQ2Spawns.cpp

10 Nov 2016 by rswiders
Updated RankName to find an exact match for name. The results from Spell.ID and Spell.RankName will now be
  from the same spell (if it exists in the spellbook).

09 Nov 2016 by eqmule
Updated for BETA

08 Nov 2016 by eqmule
Updated for TEST
Updated for BETA

04 Nov 2016 by eqmule
Updated for BETA

03 Nov 2016 by eqmule
Updated for BETA

02 Nov 2016 by eqmule
Updated for BETA

01 Nov 2016 by eqmule
Updated for BETA

31 Oct 2016 by eqmule
Updated for BETA

30 Oct 2016
Updated for BETA -eqmule
ChatWindow will again allow itself to be hidden behind other windows when ingame. -rswiders

29 Oct 2016 by eqmule
Updated for BETA

If you have any issues, ideas or comments please discuss here:
http://www.redguides.com/community/showthread.php/47498-Very-Vanilla-Compile-20161116
 
Rich (BB code):
29 Nov 2016 by Redguides
- Kissassist updated to 9.1.4
- Added EoK zones to MQ2Nav Zones.ini
- Fixed MQ2Tooltip
- Fixed MQ2AASpend issues
- Fixed MQ2Melee issues with Demolishing Frenzy

28 Nov 2016 by eqmule
Fixed ${Me.ManaRegen}
CButtonWnd now inherits CXWnd (cause it does).
GetItemTimerValue has been renamed to GetItemRecastTimer
Removed ManaGained, HealthGained, EnduranceGained from Pulse() and the exports.
  Use GetEnduranceRegen(), GetHPRegen() and GetManaRegen() instead.
  This change should make Pulse() a bit faster since we dont check that stuff constantly.

20 Nov 2016 by rswiders
Fixed bug waiting for familiars keyring to load

19 Nov 2016 by rswiders/eqmule
Updated for TEST
Added GuildID and ExpansionFlags to MQ2CharacterType
Added support for familiars keyring in /cast and /useitem

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/47498-Very-Vanilla-Compile-20161129
 
Rich (BB code):
14 Dec 2016 by redguides
KissAssist updated to 9.1.5

14 Dec 2016 by eqmule
GuildID in SPAWNINFO is a __init64 now... not by my design, it just is
  I have tried to make it backwards compaible with the spawn guild tlo which is still a DWORD
  report any bugs related to this change on the forum. Plugins are gonna have to be updated accodingly.
Fix Errors like this for example: error C2660: 'GetGuildByID': function does not take 1 arguments
  char  *pGuild = GetGuildByID( GetCharInfo()->GuildID ); becomes
  LARGE_INTEGER guildlarge = {0};
  guildlarge.QuadPart = GetCharInfo()->GuildID;
  char  *pGuild = GetGuildByID( guildlarge.LowPart,guildlarge.HighPart );

I started correcting the iteminfo struct it's a work in progress so expect more changes to fully implement this.
Initially the Augment members has gotten a review (and a fix they where broken)
So... AugSlot1 etc is now part of its own class
therefor:
pitem->AugSlot1 is now pitem->AugData.Sockets[0].Type
and so on...
pitem->AugSlot1_Visible is now pitem->AugData.Sockets[0].bVisible
and so on...
CListWnd no longer inherits CSidlScreenWnd BUT it has access to the CXWnd class members.
CComboWnd no longer inherits CSidlScreenWnd BUT it has access to the CXWnd class members.
  Fix Errors like these:
  list->Items becomes list->ItemsArray.Count
  CListWnd*pListWnd = (CListWnd*)pCombo->Items becomes CListWnd*pListWnd = pCombo->pListWnd (it was kinda confusing before, but less so after this change)

13 Dec 2016 by rswiders
Updated GetClassesFromMask to display "ALL" or "ALL EXCEPT:" when appropriate based on the class
  mask.

08 Dec 2016 by eqmule
Updated for TEST
Fixed a bug where FindItem and all its derivatives wouldn't look deeper than 20 slots into a bag.
  Now it doesn't matter how many slots a bag has, it is dynamic.
I #pragma pack(8) where I need it now, dont change them.
In preparation for automatic updating of the CONTENTS struct
 I HAD to reorganise it.
 Therefor:
	NumOfSlots1 has been renamed to ContentSize Ths also effects macros that use the NumOfSlots1 member.
	NumOfSlots2 has been renamed to Size

	MOST of these changes affect core only, I dont think there will be many plugins that needs updating
	BUT here are some examples of how to fix errors that I have seen:
	change:
	pItem->ItemSlot TO pItem->Contents.ItemSlot
	cSlot->pContentsArray TO cSlot->Contents.ContainedItems.pItems
	cSlot->pContentsArray->Contents[iPack] to cSlot->GetContent(iPack)
	pInvSlot->pContentsArray TO pInvSlot->Contents.ContainedItems.pItems
	pInvSlot->pContentsArray->Contents[ucPack] TO EITHER:
	pInvSlot->Contents.ContainedItems.pItems->Item[ucPack] OR SIMPLY JUST
	pInvSlot->GetContent(ucPack) BOTH return the exact same thing.

06 Dec 2016 by rswiders
Fixed up the new SPA descriptions in spell display

If you have any issues, ideas or comments please discuss here:

http://www.redguides.com/community/showthread.php/48447-Very-Vanilla-Compile-20161214
 
Rich (BB code):
15 Dec 2016 by eqmule
Fix: double timestamps in the eqlog is no longer happening so you can turn on /timestamp again.
Fixed a bug in FindItem and its derivatives where it needed signed parameters.
Fixed the EQINVSLOTWND struct, it was off by a few bytes.
  Yes that means .InvSlot will once again "work" (dont effing use it. in your macros, use ItemSlot and ItemSlot2)

If you have any issues, ideas or comments please discuss here:
http://www.redguides.com/community/showthread.php/48447-Very-Vanilla-Compile-20161215
 
Rich (BB code):
18 Dec 2016 by eqmule
OK ILL PUT THIS FIRST SO YOU DON'T MISS IT:
I have changed ALL instances of GuildID to __int64 (cause DBG did)
  PLEASE! be aware of this change as it WILL break some plugins.
  NOW, as for macros: IF your macros uses ${Me.GuildID} NOTE that it returns a pInt64Type
  from now on.
  This is the reason I have added 2 new members to the pInt64Type TLO
  Namely: .LowPart and .HighPart
  SO: IF you have a macro that relies on GuildID being 4 bytes...
  Then you NEED to change it from: ${Me.GuildID} to ${Me.GuildID.LowPart}
  mkay...
Now onto the fixes:
FIX: /pet attack 
FIX: barter and trader "tells" no longer trigger beepontells
FIX: /mqclear no longer crashes
FIX: /itemnotify "name of item" lefmouseup can pick up
  items from top level slots once again.
For completeness sake I also added .LowPart and .HighPart to the pIntType TLO

If you have any issues, ideas or comments please discuss here:
http://www.redguides.com/community/showthread.php/48447-Very-Vanilla-Compile-20161218
 
Rich (BB code):
07 Jan 2017 by Redguides
- KissAssist updated to 9.1.8
- Ninjadvloot updated to 6.04 (thanks hoosier!)
- MQ2Heals & MQ2AFNuke are working again, thanks Jimbob
- All macros are now formatted properly. Thanks joojoobee!

06 Jan 2017 by eqmule
Fixed the _EQCASTSPELLGEM struct, thanks JimBob
  this should make features that relies on the spellicon and spellstate members of that struct work again.
Updated the TEST build so its synced with LIVE.
Added some new Spawn TLO members: (DISCLAIMER:  I reserve the right to remove/alter and or depreciate any of these as I'm still testing this stuff.)
	IsBerserk (pBoolType), pTouchingSwitch (pIntType), bShowHelm (pBoolType), CorpseDragCount (pIntType), bBetaBuffed (pBoolType), CombatSkillTicks[x] 0-1 (pIntType), 
	FD (pIntType), InPvPArea (pBoolType), bAlwaysShowAura (pBoolType), GMRank (pIntType), WarCry (pIntType), IsPassenger (pBoolType), 
	LastCastTime (pIntType), DragNames[x] 0-1 (pStringType), DraggingPlayer (pStringType), bStationary (pBoolType), BearingToTarget (pFloatType), bTempPet (pBoolType), 
	HoldingAnimation (pIntType), Blind (pIntType), LastCastNum (pIntType), CollisionCounter (pIntType), CeilingHeightAtCurrLocation (pFloatType), AssistName (pStringType), 
	SeeInvis[x] 0-2 (pIntType), SpawnStatus[x] 0-5 (pIntType), bWaitingForPort (pBoolType)

SolventNeeded in the iteminfo struct has been renamed to SolventItemID 
Added some new members to the iteminfo struct and cleaned it up a little.
Added MQ2AugType TLO, iy has these members: Slot (pIntType), Type (pIntType), Visible (pBoolType), Infusable (pBoolType), Empty (pBoolType), Name (pStringType), Item (pItemType)
New Member: AugSlot added to the item TLO 
  it returns a pAugType
  Usage: (Items can have MAX 6 slots for augs so... [x] can ONLY be 0-5)
        /echo ${Cursor.AugSlot[0].Type}
        /echo ${Cursor.AugSlot[1].Visible}
        /echo ${Cursor.AugSlot[2].Infusable}
        /echo ${Cursor.AugSlot[3].Empty}
        /echo ${Cursor.AugSlot[4].Name}
        /echo ${Cursor.AugSlot[5].Item.Purity}
Added 2 new commands: /removeaug and /insertaug to the mq2itemdisplay plugin
  type /removeaug or /insertaug for help
  /removeaug will pop a dialog if a perfect augmentation distiller needs to be used...
  I would be extremely careful with these 2 commands unless you understand
  how they work... if you augment the wrong item or remove an augment from the wrong item or whatever... its not my fault.
Added the MQ2WorldLocationType TLO it has the following members: ID (pIntType),Y (pFloatType), X (pFloatType), Z (pFloatType),Heading (pFloatType), Zone (pZoneType),
Added BoundLocation to the Charatcer TLO its size is 0-4 for up to 5 bind points.
  Usage:
		 /echo ${Me.BoundLocation[0].ID} returns the zone id of your first bind point
		 /echo ${Me.BoundLocation[1].ID} returns the zone id of your second bind point
Changed pChar2->ZoneBoundX it's now pChar2->BoundLocations[0].ZoneBoundX; 
          as well as all the other ->ZoneBo****** members.

If you have any issues, ideas or comments please discuss here:
http://www.redguides.com/community/showthread.php/48447-Very-Vanilla-Compile-20170107
 
Rich (BB code):
15 Jan 2017 by Redguides
Kissassist updated to 9.1.9

13 Jan 2017 by rswiders
Added SkillBase to character. This will give you the static base maximum for your skills.
Updated Skill and SkillCap to handle the new TS aas allowing for above the cap values.

13 jan 2017 by eqmule
Added ${Macro.MemUse} it returns a pIntType letting u know how much memory your macro is using.
  its useful if you suspect you have a leak.
Ok so here is a NEW FEATURE which was brought to us by Brainiac, Thanks Brainiac!
  It allows us to extend any existing TLO's in our own plugins.
  Example:
  You want to add a new member to for example the character TLO
  named .CursorKrono which tells you how many Krono you have on your cursor
  you could then do /echo ${Me.CursorKrono}

  Below is a plugin example for how you would do this: (code tags added for forum post to show up correctly)

	
	





Rich (BB code):
// MQ2ExtensionTest.cpp : Defines the entry point for the DLL application.
//

// PLUGIN_API is only to be used for callbacks.  All existing callbacks at this time
// are shown below. Remove the ones your plugin does not use.  Always use Initialize
// and Shutdown for setup and cleanup, do NOT do it in DllMain.


#include "../MQ2Plugin.h"

PreSetup("MQ2ExtensionTest");

//----------------------------------------------------------------------------
// test the mq2 datatype extension code

class MQ2CharacterExtensionType* pCharExtType = nullptr;

class MQ2CharacterExtensionType : public MQ2Type
{
public:
	enum ExtensionMembers {
		CursorKrono = 1,
	};
	MQ2CharacterExtensionType() : MQ2Type("MQ2TestCharacterExtension")
	{
		TypeMember(CursorKrono);
	}
	bool GETMEMBER()
	{
		PMQ2TYPEMEMBER pMember = FindMember(Member);
		if (!pMember)
			return false;
		switch (pMember->ID) {
		case CursorKrono:
		{
			if(PCHARINFO pCharInf = GetCharInfo()) {
				Dest.DWord = pCharInf->CursorKrono;
				Dest.Type = pIntType;
				return true;
			}
		}
		return false;
	}
	bool ToString(MQ2VARPTR VarPtr, PCHAR Destination)
	{
		return false;
	}
	bool FromData(MQ2VARPTR& VarPtr, MQ2TYPEVAR& Source)
	{
		if (Source.Type != pCharExtType)
			return false;
		VarPtr.Ptr = Source.Ptr;
		return true;
	}
	bool FromString(MQ2VARPTR& VarPtr, PCHAR Source)
	{
		return false;
	}
};
PLUGIN_API VOID InitializePlugin(VOID)
{
	pCharExtType = new MQ2CharacterExtensionType;
	// This is where you add it to an existing TLO
	// in this case the one named "character" aka our ${Me} tlo...
	AddMQ2TypeExtension("character", pCharExtType);
}
PLUGIN_API VOID ShutdownPlugin(VOID)
{
	//dont forget to remove it on plugin shutdown...(aka plugin unload)
	RemoveMQ2TypeExtension("character", pCharExtType);
	delete pCharExtType;
}

If you have any issues, ideas or comments please discuss here:
http://www.redguides.com/community/showthread.php/48447-Very-Vanilla-Compile-20170115
 
Rich (BB code):
20 Jan 2017 by eqmule
Fixed a bug in the EQINVSLOTWND struct where slots where WORD instead of short
  this will take care of any remaining problems with /itemnotify
stuff in progress, nothing to see here yet...
Fixed a buffer overflow in the UPCNotificationFlush_Detour -Thanks Maskoi

19 Jan 2017 by rswiders
Fixed BuffStackTest to correctly test spells with triggering spas.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170121
 
Rich (BB code):
29 Jan 2017 by redguides
Ninjadvloot.inc updated to 6.04 (thanks hoosierbilly)
Kissassist.mac updated to 9.2.1 (thanks Maskoi & ctaylor)

29 Jan 2017 by eqmule
I finally had time to sit down and look at the crash reporting
  it has been given a major overhaul
  you will know what I mean next time you crash.
  Please READ the crash message carefully.
  Do what it says. Or not.

24 Jan 2017 by eqmule
Fix for ${Me.HaveExpansion[Empires of Kunark]} crash - cred maskoi
A few changes to mq2chatwnd to deal with potential memleaks - cred Derple

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170129
 
Rich (BB code):
03 Feb 2017 by redguides
MQ2EQBC now includes extended information for the EQBC Interface. Thanks jimbob!

03 Feb 2017 by eqmule
Updated for latest LIVE patch

30 Jan 2017 by eqmule
Added ${MacroQuest.Build} it returns an int where LIVE = 1 TEST = 2 BETA = 3 and EMU = 4
Added Start EQBC Server to the tray icon menu.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170203
 
Last edited:
Rich (BB code):
03 Feb 2017 by eqmule
Updated for TEST, yes there was a new patch.
Fixed a issue that would hang the client and sometimes even crash it.
  this should fix the problem with using Untamed Rage on a berserker
  as well as other buff stacking check problems.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170203a
 
Rich (BB code):
15 Feb 2017 by eqmule
- Updated for LIVE
- XTARGETDATA has been renamed to XTARGETSLOT
- New include added SharedClasses.h
- the XTARGETSLOT struct has been moved to SharedClasses.h
- Unknown0x4 in the XTARGETSLOT struct has been renamed to XTargetSlotStatus, change plugins accordingly.
- XTarget stuff has gone through a make over, this will break plugins.
  Here are ONE example of how to fix this:
  MQ2Melee.cpp:
  change:
  
	
	





Rich (BB code):
case XTaggro:
		{
			Dest.DWord = true;
			Dest.Type = pBoolType;
			if (PCHARINFO pChar = GetCharInfo()) {
				if (PXTARGETMGR xtm = pChar->pXTargetMgr) {
					if (PXTARGETARRAY xta = xtm->pXTargetArray) {
						DWORD x = 0;
						for (DWORD n = 0; n < xtm->TargetSlots; n++)
						{
							if (xta->pXTargetData[n].xTargetType == XTARGET_AUTO_HATER && xta->pXTargetData[n].Unknown0x4)
							{
								x++;
							}
						}
						if (x>1) {
							if (pAggroInfo) {
								for (DWORD i = 0; i<xtm->TargetSlots; i++) {
									if (DWORD spID = xta->pXTargetData.SpawnID) {
										if (PSPAWNINFO pSpawn = (PSPAWNINFO)GetSpawnByID(spID)) {
											if (pTarget && ((PSPAWNINFO)pTarget)->SpawnID == pSpawn->SpawnID)
												continue;
											if (pSpawn->Type == SPAWN_NPC && xta->pXTargetData.xTargetType == XTARGET_AUTO_HATER) {
												DWORD agropct = pAggroInfo->aggroData[AD_xTarget1 + i].AggroPct;
												//WriteChatf("Checking aggro on %s its %d",xta->pXTargetData.Name,agropct);
												if (agropct<100) {
													Dest.DWord = false;
													break;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
to
Rich (BB code):
case XTaggro:
				{
					Dest.DWord = true;
					Dest.Type = pBoolType;
					if (PCHARINFO pChar = GetCharInfo()) {
						if (ExtendedTargetList *xtm = pChar->pXTargetMgr) {
							DWORD x = 0;
							for (int n = 0; n < xtm->XTargetSlots.Count; n++)
							{
								XTARGETSLOT xts = xtm->XTargetSlots[n];
								if (xts.xTargetType == XTARGET_AUTO_HATER && xts.XTargetSlotStatus)
								{
									x++;
								}
							}
							if (x > 1) {
								if (pAggroInfo) {
									for (int i = 0; i < xtm->XTargetSlots.Count; i++) {
										XTARGETSLOT xts = xtm->XTargetSlots;
										if (DWORD spID = xts.SpawnID) {
											if (PSPAWNINFO pSpawn = (PSPAWNINFO)GetSpawnByID(spID)) {
												if (pTarget && ((PSPAWNINFO)pTarget)->SpawnID == pSpawn->SpawnID)
													continue;
												if (pSpawn->Type == SPAWN_NPC && xts.xTargetType == XTARGET_AUTO_HATER) {
													DWORD agropct = pAggroInfo->aggroData[AD_xTarget1 + i].AggroPct;
													//WriteChatf("Checking aggro on %s its %d",xta->pXTargetData.Name,agropct);
													if (agropct < 100) {
														Dest.DWord = false;
														break;
													}
												}
											}
										}
									}
								}
							}
						}
					}
				}
- Good Luck. 13 Feb 2017 by derple - Fixed ${Target.Buff[x].Caster} so it takes multiple casters of the same spell into account. Before this fix, only the first caster of a spell would be returned. - Added ${Target.MyBuff[x]} it returns a pSpellType Example Usage:
Rich (BB code):
holyshit0=/if (!${Debuff.Silenced} && ${Me.PctMana} > 10 && ${Target.MyBuff[Envenomed Breath].ID} == NULL && ${Target.CurrentHPs}<95) /casting "Envenomed Breath"
- Added ${Target.MyBuffCount} it returns a int of all buffs YOU have casted on the target. 08 Feb 2017 by redguides ninjadvloot.inc updated, thanks hoosierbilly! 08 Feb 2017 by eqmule - Fixed a few places which would use pInvSlotMgr without NULL checking it - Added .TimeBeenDead to the spawn tlo You can use it to figure out how long a corpse has been dead. NOTE: The timer is dependant on if you where in the zone when the corpse spawned. If you enter a zone and check this tlo member it will display the time of the death as the time you entered the zone. - Fixed a potential stack corruption in EndMacro - Updated for TEST - Made some changes to MacroQuest2.exe to deal with it not detecting eqgame version correctly sometimes.


If you have any issues, ideas or comments please discuss here:

https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170215
 
Rich (BB code):
10 Mar 2017 by brainiac
Huge MQ2Nav update. All old meshes no longer work, you must rebuild. It's worth it because everything is incredible now.

10 Mar 2017 by eqmule
Updated for TEST
Stuff

10 Mar 2017 by brainiac

23 Feb 2017 by eqmule
Added the offline trader acceptance to mq2autologin.

22 Feb 2017 by eqmule
Tip for macro authors:
Added FloorZ to the Spawn TLO it returns a float.
  FloorZ usage: ok so... eh, spawns are sometimes (always?) "planted" a few inches below or above the floor...
  This member represent where the floor is ACTUALLY at.
  So if you for example do a /echo ${Target.Z} and it returns 219
  and then you do a ${Target.FloorZ} it will return like 216 or something...
  Why is this important, well for brainiacs new mq2nav, I discovered that
  sometimes, when a spawns z location is outside of the geometry... (above or below)
  you cannot just do a /nav target or a /nav locxyz ${Target.X} ${Target.Y} ${Target.Z}
  BUT doing a /nav locxyz ${Target.X} ${Target.Y} ${Target.FloorZ} works.
  So... this is how you get /nav working correctly with problematic spawns which have their feet outside of the geometry.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170310
 
Rich (BB code):
19 Apr 2017 by redguides
update all auto* macros - thanks noobhaxor!
updated mq2camera - thanks brainiac!

19 Apr 2017 by Dr. Sneerstell
- ${Skill[someskill].Auto} returns true or false if the skill is set to use /autoskill on/off
- ${Me.AutoSkill[1]} returns a pSkillType
- ${Me.AutoSkill[2]} returns a pSkillType
- Example usage:
- ${Me.AutoSkill[1].Name} returns the name of whatever skill is set as the first autoskill.
- ${Me.AutoSkill[2].ID} returns the ID of whatever skill is set as the second autoskill.
- Reorganized skills a bit. NUM_SKILLS is now 0x64 (it always was) so change plugins if needed.

19 Apr 2017 by redguides
update all auto* macros - thanks noobhaxor!
updated mq2camera - thanks brainiac!

19 Apr 2017 by Dr. Sneerstell
- Updated for LIVE
- Fixed /items crash
- The previous change to the GROUNDITEM Struct member "ID", the renaming of it to "ItemPtr",
  caused a crash, and has been reverted.

15 Apr 2017 by eqmule
Fix for /ranged crash in the TEST build.
The GROUNDITEM Struct member "ID" has been renamed to "ItemPtr". (just accept it)
  Added some missing members to that struct as well.

08 Apr 2017 by eqmule
Changed max npc level to 125
  this fixes spawnsearch etc where npc's higher than level 115 would not show up.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170419
 
Rich (BB code):
25 Apr 2017 by The Undertaker
- Updated for LIVE

24 Apr 2017 by htw
- Added a new TLO ${Range} which returns a pRangeType
  pRangeType has 2 members:
  Between which returns TRUE or FALSE
  and
  Inside which also returns TRUE or FALSE
  Usage Example:
  /echo ${Range.Inside[10,5:9]}
  which will return TRUE since 5 and 9 are both within the 10 range.
  /echo ${Range.Between[85,95:100]}
  which will return FALSE since 85 is not a number between 95 and 100

24 Apr 2017 by The Undertaker
- Maintenance Update

21 Apr 2017 by Derple
- Added new #bind command for macros.
  Short Explaination, this allows you to execute macro sub routines.
  Long Explaination:
#bind allows you to bind an ingame slash command to a macro function.
Before you had to do this with #events and capture text that you sent to yourself for example: 
#event SayMana "#*#SayManaPercent#*#"
Now you can do 
#bind SayMana /saymana
Instead of sending yourself the keyword you can just type /saymana and it will execute the function called "Sub Bind_SayMana"
Example:

	
	





Rich (BB code):
| Old Way
| #event StartCoh "#*#COH --GRP--#*#"
| New Way you can now just type /coh or /bcaa //coh or /bct mage //coh
#bind StartCoh /coh

Sub CastSpell(string spellToCast)
    /declare delayTime int local 0
    /echo Casting: ${Target.Name} with ${spellToCast}
    /casting "${spellToCast}" -maxtries|5
    /call WaitCastFinish
/return

Sub Event_StartCoh
    /if ( ${Bool[${Me.Book["Call of the Hero"]}]} == FALSE ) {
        /echo I don't have COH - Bailing...
        /return
    }
 
    /declare i int local 0
    /declare GroupCount int local ${Group.Members}
    /for i 1 to ${GroupCount}
        /doevents
        /if ( ${Group.Member[${i}].Distance} > 50 ) {
            /target id ${Group.Member[${i}].ID}
            /call CastSpell "Call of the Hero"
        }
        /call WaitCastReady "Call of the Hero"
    /next i
/return

Sub Bind_StartCoh
    /call Event_StartCoh
/return

Sub Main
    :Loop
    /doevents
    /delay 1s
    /goto :Loo
/return
21 Apr 2017 by The Undertaker - Updated for TEST - Fixed a couple offsets that where wrong for LIVE.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170425
 
Rich (BB code):
02 May 2017
KissAssist 9.2.4 by ctaylor22, treehugindruid, maskoi
FIXED:
Corrected an issue that was allowing for mount buff spamming when not in an outdoor dungoen/city/zone, this is based on eqmule's TLO of Zone.Outdoor and Zone.Type.
Corrected a coding issue that was preventing Gmail feature from properly parsing states and sending emails / texts to you via the GmailIniParse sub function, now working as intended.
Fixed invis being broke when casting regen.
Fixed spell book getting stuck open when memorizing spells. 
Fixed GOM event not casting spells because of global cooldown.
Fixed the Healers not healing if MeleeOn and DPSOn are both turned off.

ADDED:
Added ScatterOn to ini file to control use of random camp locations.
Added code to fix executing stuck code after death.
Added /zoneinfo command to display the zone information in the Kissassist_info.ini 
Added IF/NOTIF/IFME/NOTIFME logic to the combatcast routine.
IF and NOTIF checks current target for Buff Name1
DPS1=Spell Name1|95|IF|Buff Name1
Added IFME and NOTIFME logic so it will check caster for Buff Name1
DPS2=Spell Name1|95|IFME|Buff Name1

01 May 2017 by The Undertaker
Fixed a bug in the new noparse ini thingy

01 May 2017 by The Undertaker
${Ini} now takes an optional 5th argument "noparse"
  This means you can now (finally) read ini settings into a variable without parsing the actual setting.
Example:
INIFILE:

	
	





Rich (BB code):
[DPS]
DPSCondition1=${Me.XTarget[1].PctHPs} > 50
Rich (BB code):
Sub Main
	/declare DPSCondition1 string local
	/echo This is the actual setting for DPSCondition1 : ${Ini[MySettings.ini,DPS,DPSCondition1,NULL,noparse]}
	/varset DPS1Condition ${Ini[MySettings.ini,DPS,DPSCondition1,NULL,noparse]}

	|looping it here so you can see the condition actually changes as the xtarget mobs HP changes and no need 
	|for reading the ini over and over anymore... you're welcome...
:loop
	/echo ${DPSCondition1}
	/delay 1s
	/goto :loop
/return
29 Apr 2017 by The Undertaker Updated for TEST

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170502
 
Rich (BB code):
17 May 2017 by Redguides
Some nice surprises from Level 3 Creators this month:
NEW PLUGIN: MQ2AutoLoot - handles loot from within the advanced loot window. thanks Plure
NEW PLUGIN: MQ2KillTracker - Tracks kills over time and can autoreport every X minutes. Sym rules!
NEW MACRO: KeepToonBuffed.mac - Great for powerleveling. Run on any toon to keep others, even out-of-group, buffed. Thanks TreeHuginDruid
MQ2Posse fixed - thanks Sym
MQ2IRC added timestamps - thanks Sym
updated ninjadvloot.inc - thanks hoosierbilly

17 May 2017 by The Undertaker
- Updated for LIVE

15 May 2017 by maskoi
EverQuest.CurrentUI now return a string representing the currently loaded UI skin.
EverQuest.IsCurrentUILoaded returns a bool true or false if the "Default" UI skin is the one loaded.

If you have any issues, ideas or comments please discuss here:
https://www.redguides.com/community/threads/49822-Very-Vanilla-Compile-20170517
 
Update notifications via email for Very Vanilla (Live) updates
Status
Not open for further replies.

Users who are viewing this thread

Back
Top
Cart