├── .editorconfig ├── .gitignore ├── .gitmodules ├── Blech ├── Blech.h ├── test.cpp ├── test2.cpp ├── test3.cpp └── test4.cpp ├── Detours ├── Detours from Microsoft.url ├── inc │ └── detours.h ├── lib │ ├── detours.lib │ └── detours.pdb └── lib60 │ ├── detours.lib │ └── detours.pdb ├── ISXDK └── 35 │ ├── bin │ ├── Struct2LSType.exe │ └── mkisx.exe │ ├── doc │ └── ISXDK.txt │ ├── include │ ├── ColumnRenderer.h │ ├── FileList.h │ ├── ISInterface.h │ ├── ISUI │ │ ├── LGUI.h │ │ ├── LGUIButton.h │ │ ├── LGUICheckBox.h │ │ ├── LGUIComboBox.h │ │ ├── LGUICommandButton.h │ │ ├── LGUICommandCheckBox.h │ │ ├── LGUICommandEntry.h │ │ ├── LGUIConsole.h │ │ ├── LGUIContextMenu.h │ │ ├── LGUIElement.h │ │ ├── LGUIEmbeddedScript.h │ │ ├── LGUIFont.h │ │ ├── LGUIFrame.h │ │ ├── LGUIGauge.h │ │ ├── LGUIHudElement.h │ │ ├── LGUIListBox.h │ │ ├── LGUIManager.h │ │ ├── LGUIMap.h │ │ ├── LGUIMessageBox.h │ │ ├── LGUIScreen.h │ │ ├── LGUIScrollBar.h │ │ ├── LGUISlider.h │ │ ├── LGUITabControl.h │ │ ├── LGUITable.h │ │ ├── LGUIText.h │ │ ├── LGUITextEdit.h │ │ ├── LGUITextEntry.h │ │ ├── LGUITexture.h │ │ ├── LGUITooltip.h │ │ ├── LGUITree.h │ │ ├── LGUIVariableGauge.h │ │ ├── LGUIVariableSlider.h │ │ └── LGUIWindow.h │ ├── ISXDK.h │ ├── ISXInterface.h │ ├── Index.h │ ├── LavishScript │ │ ├── LSSTLTypes.h │ │ ├── LSType.h │ │ └── LavishScript.h │ ├── Queue.h │ ├── Services.h │ ├── Threading.h │ ├── WinThreading.h │ └── utf8string.h │ ├── lib │ └── vs14 │ │ ├── ISUI.lib │ │ ├── ISUI_md.lib │ │ ├── ISXDK.lib │ │ └── ISXDK_md.lib │ ├── lib64 │ └── vs14 │ │ ├── ISUI.lib │ │ ├── ISUI_md.lib │ │ ├── ISXDK.lib │ │ └── ISXDK_md.lib │ └── samples │ └── ISXFullTemplate │ ├── Commands.cpp │ ├── Commands.h │ ├── DataTypeList.h │ ├── DataTypes.cpp │ ├── DataTypes.h │ ├── ISXFullTemplate.cpp │ ├── ISXFullTemplate.h │ ├── ISXFullTemplate.vcproj │ ├── ISXFullTemplateServices.h │ ├── LGUIFullTemplateFrame.cpp │ ├── LGUIFullTemplateFrame.h │ ├── Services.cpp │ ├── Services.h │ ├── TopLevelObjects.cpp │ └── TopLevelObjects.h ├── ISXEQ.NET ├── EQTypes │ ├── EQAltAbility.cs │ ├── EQArgb.cs │ ├── EQBody.cs │ ├── EQBuff.cs │ ├── EQCharacter.cs │ ├── EQClass.cs │ ├── EQCorpse.cs │ ├── EQCurrentZone.cs │ ├── EQDZMember.cs │ ├── EQDeity.cs │ ├── EQDynamicZone.cs │ ├── EQEvolvingItem.cs │ ├── EQFellowship.cs │ ├── EQFellowshipMember.cs │ ├── EQGround.cs │ ├── EQGroup.cs │ ├── EQGroupMember.cs │ ├── EQHeading.cs │ ├── EQInvSlot.cs │ ├── EQItem.cs │ ├── EQMacroQuest.cs │ ├── EQMerchant.cs │ ├── EQRace.cs │ ├── EQRaid.cs │ ├── EQRaidMember.cs │ ├── EQSkill.cs │ ├── EQSpawn.cs │ ├── EQSpell.cs │ ├── EQSwitch.cs │ ├── EQTicks.cs │ ├── EQTime.cs │ ├── EQTimer.cs │ ├── EQWindow.cs │ └── EQZone.cs ├── ISXEQ.NET.csproj ├── ISXEQ.cs └── Properties │ └── AssemblyInfo.cs ├── ISXEQ.sln ├── ISXEQ ├── PostBuild.bat └── isxGamesCommon.props ├── ISXEQClient.h ├── ISXEQLegacy ├── ISXEQLegacy-VS2005.vcproj ├── ISXEQLegacy.cpp ├── ISXEQLegacy.h ├── ISXEQLegacy.vcproj ├── ISXEQLegacyEngine.cpp ├── ISXEQLegacyEngine.h └── LegacyGlobals.cpp ├── MQ2-API.chm ├── MQ2Auth.exe ├── MQ2AutoLogin ├── ISXEQAutoLogin.cpp ├── ISXEQAutoLogin.h ├── MQ2AutoLogin.cpp ├── MQ2AutoLogin.vcxproj └── MQ2AutoLogin.vcxproj.filters ├── MQ2Bzsrch ├── MQ2Bzsrch.cpp ├── MQ2Bzsrch.vcxproj ├── MQ2Bzsrch.vcxproj.filters ├── netstream.cpp └── netstream.h ├── MQ2Chat ├── ISXEQChat.cpp ├── ISXEQChat.h ├── ISXEQChat.vcxproj ├── ISXEQChat.vcxproj.filters ├── MQ2Chat.cpp ├── MQ2Chat.vcxproj └── MQ2Chat.vcxproj.filters ├── MQ2ChatWnd ├── ISXEQChatWnd.cpp ├── ISXEQChatWnd.h ├── ISXEQChatWnd.vcxproj ├── ISXEQChatWnd.vcxproj.filters ├── MQ2ChatWnd.cpp ├── MQ2ChatWnd.vcxproj └── MQ2ChatWnd.vcxproj.filters ├── MQ2CustomBinds ├── ISXEQCustomBinds.cpp ├── ISXEQCustomBinds.h ├── ISXEQCustomBinds.vcxproj ├── ISXEQCustomBinds.vcxproj.filters ├── MQ2CustomBinds.cpp ├── MQ2CustomBinds.vcxproj └── MQ2CustomBinds.vcxproj.filters ├── MQ2EQBugFix ├── MQ2EQBugFix.cpp ├── MQ2EQBugFix.vcxproj └── MQ2EQBugFix.vcxproj.filters ├── MQ2EQIM ├── ISXEQEQIM.cpp ├── ISXEQEQIM.h ├── ISXEQEQIM.vcxproj ├── ISXEQEQIM.vcxproj.filters ├── MQ2EQIM.cpp ├── MQ2EQIM.vcxproj └── MQ2EQIM.vcxproj.filters ├── MQ2Ext ├── MQ2Ext.vcproj ├── WDbgExts.h ├── exts.c ├── exts2.cpp ├── makefile ├── mqext.c ├── mqext.def ├── mqext.h ├── mqext.rc ├── resource.h └── test.cpp ├── MQ2HUD ├── MQ2HUD.cpp ├── MQ2HUD.vcxproj └── MQ2HUD.vcxproj.filters ├── MQ2Irc ├── MQ2Irc.cpp ├── MQ2Irc.vcxproj ├── MQ2Irc.vcxproj.filters └── mqirc.h ├── MQ2ItemDisplay ├── ISXEQItemDisplay.cpp ├── ISXEQItemDisplay.h ├── ISXEQItemDisplay.vcxproj ├── ISXEQItemDisplay.vcxproj.filters ├── MQ2ItemDisplay.cpp ├── MQ2ItemDisplay.vcxproj └── MQ2ItemDisplay.vcxproj.filters ├── MQ2Labels ├── ISXEQLabels.cpp ├── ISXEQLabels.h ├── ISXEQLabels.vcxproj ├── ISXEQLabels.vcxproj.filters ├── MQ2Labels.cpp ├── MQ2Labels.vcxproj └── MQ2Labels.vcxproj.filters ├── MQ2Main ├── ArrayClass.h ├── DataTypeList.h ├── EQClasses.cpp ├── EQClasses.h ├── EQData(Test).h ├── EQData.h ├── EQUIStructs(Test).h ├── EQUIStructs(beta).h ├── EQUIStructs.h ├── EqData(beta).h ├── ISXEQ.vcxproj ├── ISXEQ.vcxproj.filters ├── ISXEQ │ ├── ISXEQ.cpp │ ├── ISXEQ.h │ ├── ISXEQCommandAPI.cpp │ ├── ISXEQCommandList.h │ ├── ISXEQCommands.cpp │ ├── ISXEQCommands.h │ ├── ISXEQDataTypes.cpp │ ├── ISXEQDataTypes.h │ ├── ISXEQServices.cpp │ ├── ISXEQServices.h │ ├── ISXEQTopLevelObjects.cpp │ ├── ISXEQTopLevelObjects.h │ ├── ISXEQUtilities.cpp │ └── ISXEQUtilities.h ├── MQ2Auth.cpp ├── MQ2Benchmarks.cpp ├── MQ2ChatHook.cpp ├── MQ2CleanUI.cpp ├── MQ2CommandAPI.cpp ├── MQ2Commands.cpp ├── MQ2Commands.h ├── MQ2DInput.cpp ├── MQ2Data.cpp ├── MQ2DataAPI.cpp ├── MQ2DataTypes.cpp ├── MQ2DataTypes.h ├── MQ2DataVars.cpp ├── MQ2DetourAPI.cpp ├── MQ2Globals-private_default.cpp ├── MQ2Globals-private_default.h ├── MQ2Globals.cpp ├── MQ2Globals.h ├── MQ2Inlines.h ├── MQ2Internal.h ├── MQ2KeyBinds.cpp ├── MQ2MacroCommands.cpp ├── MQ2Main.cpp ├── MQ2Main.h ├── MQ2Main.rc ├── MQ2Main.vcxproj ├── MQ2Main.vcxproj.filters ├── MQ2Mouse.cpp ├── MQ2ParseAPI.cpp ├── MQ2PluginHandler.cpp ├── MQ2Prototypes.h ├── MQ2Pulse.cpp ├── MQ2Spawns.cpp ├── MQ2TopLevelObjects.h ├── MQ2Utilities.cpp ├── MQ2Windows.cpp ├── SpellEffects.h ├── actordef.h ├── combines.h ├── dikeys.h ├── eqgame(Test).h ├── eqgame(beta).h ├── eqgame.h ├── itemtypes.h ├── resource.h ├── skills.h └── str_com │ ├── pchar.cpp │ ├── pchar2.cpp │ └── pspawn.cpp ├── MQ2Map ├── ISXEQMap.cpp ├── ISXEQMap.h ├── ISXEQMap.vcxproj ├── ISXEQMap.vcxproj.filters ├── ISXEQMapCommands.cpp ├── MQ2Map.cpp ├── MQ2Map.h ├── MQ2Map.vcxproj ├── MQ2Map.vcxproj.filters ├── MQ2MapAPI.cpp └── MQ2MapCommands.cpp ├── MQ2Plugin.h ├── MQ2PluginDevelopment.html ├── MQ2PluginDevelopment.md ├── MQ2Template ├── ISXEQTemplate.cpp ├── ISXEQTemplate.h ├── ISXEQTemplate.vcxproj ├── ISXEQTemplate.vcxproj.filters ├── MQ2Template.cpp ├── MQ2Template.dep ├── MQ2Template.dsp ├── MQ2Template.mak ├── MQ2Template.vcproj ├── MQ2Template.vcxproj ├── MQ2Template.vcxproj.filters ├── ReadMe.txt └── makefile ├── MQ2Test ├── ArrayTest.cpp ├── MQ2Test.cpp ├── MQ2Test.vcxproj ├── MQ2Test.vcxproj.filters └── Tests │ ├── ReadMe.txt │ ├── Tests.cpp │ ├── Tests.sln │ ├── Tests.vcxproj │ ├── Tests.vcxproj.filters │ ├── stdafx.cpp │ ├── stdafx.h │ └── targetver.h ├── MacroQuest2.sln ├── Plugin.Debug.ISXEQ.props ├── Plugin.Debug.props ├── Plugin.Release.ISXEQ.props ├── Plugin.Release.props ├── README.md ├── Release ├── Changes-ISXEQ.txt ├── Changes.txt ├── GPL.txt ├── ItemDB.txt ├── MQ2Ic.dll ├── MacroQuest2.exe ├── MacroQuest_default.ini ├── Macros │ ├── ArrayTest.mac │ ├── Arrows.mac │ ├── Cams.mac │ ├── DoorTests.mac │ ├── EventTest.mac │ ├── Fish.mac │ ├── Follow.mac │ ├── Inventory.mac │ ├── ShowBonuses.mac │ └── uservarstest.mac ├── locations.txt └── readme.chm ├── dxsdk81 ├── include │ └── dinput.h └── readme.txt ├── dxsdk90 ├── include │ └── dinput.h └── readme.txt ├── global.mak ├── makefile ├── makezip.bat ├── memtest ├── makefile ├── orig.asm ├── orig1.asm ├── orig2.asm ├── orig3.asm ├── orig4.asm └── testmem.c ├── mkplugin.exe ├── mkplugin ├── mkplugin.cpp └── mkplugin.vcproj ├── moveitem.h ├── moveitem2.h ├── mq2telnet ├── ISXEQTelnet.cpp ├── ISXEQTelnet.h ├── ISXEQTelnet.vcxproj ├── ISXEQTelnet.vcxproj.filters ├── Telnet.h ├── TelnetServer.cpp ├── TelnetServer.h ├── WinTelnet.cpp ├── WinTelnet.h ├── mq2telnet.cpp ├── mq2telnet.vcxproj └── mq2telnet.vcxproj.filters └── zipit.lst /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig is awesome: http://EditorConfig.org 2 | 3 | # top-most EditorConfig file 4 | root = true 5 | 6 | # Unix-style newlines with a newline ending every file 7 | [*] 8 | indent_style = tab 9 | charset = utf-8 10 | end_of_line = crlf 11 | insert_final_newline = true 12 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | *.dll 2 | *.exp 3 | *.map 4 | *.opensdf 5 | *.pdb 6 | *.sdf 7 | *.suo 8 | *.VC.opendb 9 | *.VC.db 10 | *.vcxproj.user 11 | *.user 12 | .vs/ 13 | Debug/ 14 | Intermediate/ 15 | ISXDK/ 16 | ISXEQ*Intermediate 17 | MQ2Main/MQ2Auth0.h 18 | Release/ 19 | UpgradeLog.htm 20 | packages/ 21 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "MQ2Nav"] 2 | path = MQ2Nav 3 | url = https://github.com/brainiac/MQ2Nav.git 4 | branch = develop 5 | [submodule "MQ2Camera"] 6 | path = MQ2Camera 7 | url = https://github.com/brainiac/MQ2Camera.git 8 | branch = master 9 | [submodule "MQ2Py"] 10 | path = MQ2Py 11 | url = https://github.com/brainiac/MQ2Py.git 12 | branch = master 13 | -------------------------------------------------------------------------------- /Blech/test2.cpp: -------------------------------------------------------------------------------- 1 | #include "Blech.h" 2 | 3 | #define CheckOne(ID) \ 4 | if (nevent != 1) { \ 5 | printf("bad event count %d != 1\n", nevent); \ 6 | exit(1); \ 7 | } \ 8 | if (eventarray[0].id != ID) { \ 9 | printf("bad event %d != " #ID "\n", eventarray[0].id); \ 10 | exit(1); \ 11 | } 12 | 13 | struct { 14 | int id, nvalues; 15 | char name[50][100]; 16 | char value[50][100]; 17 | } eventarray[20]; 18 | 19 | int nevent = 0; 20 | 21 | void __stdcall MyEvent(unsigned long ID, void *pData, PBLECHVALUE pValues) 22 | { 23 | int i = 0; 24 | printf("MyEvent(%d,%d,%X)\n", ID, pData, pValues); 25 | eventarray[nevent].id = (int) pData; 26 | while (pValues) { 27 | printf("\t'%s'=>'%s'\n", pValues->Name, pValues->Value); 28 | strcpy(eventarray[nevent].name[i], pValues->Name); 29 | strcpy(eventarray[nevent].value[i], pValues->Value); 30 | i++; 31 | pValues = pValues->pNext; 32 | } 33 | eventarray[nevent].nvalues = i; 34 | printf("\n"); 35 | nevent++; 36 | } 37 | 38 | 39 | main() 40 | { 41 | Blech b('#'); 42 | int j = 0, i = 0, eventid[200]; 43 | 44 | eventid[i++] = b.AddEvent( "[MQ2] New MTHealPoint #1#", MyEvent, (void *)22); 45 | eventid[i++] = b.AddEvent( "[MQ2] New TargetDAPoint #1#", MyEvent, (void *)23); 46 | eventid[i++] = b.AddEvent( "[MQ2] New TankHealPoint #1#", MyEvent, (void *)24); 47 | eventid[i++] = b.AddEvent( "[MQ2] New TopOffRange #1#", MyEvent, (void *)34); 48 | 49 | nevent = 0; 50 | b.Feed("[MQ2] New MTHealPoint 55"); 51 | CheckOne(22); 52 | 53 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 54 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 55 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 56 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 57 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 58 | printf("!!!!!!!!!!!!!!! SUCCESS !!!!!!!!!!!!!!!!!!!\n"); 59 | } 60 | -------------------------------------------------------------------------------- /Blech/test4.cpp: -------------------------------------------------------------------------------- 1 | // just a test again :wq 2 | // ver 1.2 lalala 3 | // asdf ver 1.3 4 | asdf 5 | -------------------------------------------------------------------------------- /Detours/Detours from Microsoft.url: -------------------------------------------------------------------------------- 1 | [InternetShortcut] 2 | URL=http://research.microsoft.com/sn/detours/ 3 | Modified=502F1701B323C20130 4 | -------------------------------------------------------------------------------- /Detours/lib/detours.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Detours/lib/detours.lib -------------------------------------------------------------------------------- /Detours/lib/detours.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Detours/lib/detours.pdb -------------------------------------------------------------------------------- /Detours/lib60/detours.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Detours/lib60/detours.lib -------------------------------------------------------------------------------- /Detours/lib60/detours.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Detours/lib60/detours.pdb -------------------------------------------------------------------------------- /ISXDK/35/bin/Struct2LSType.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/bin/Struct2LSType.exe -------------------------------------------------------------------------------- /ISXDK/35/bin/mkisx.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/bin/mkisx.exe -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUI.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifdef LGUI_LIBRARY 3 | #define LGUI_API 4 | #else 5 | #ifdef LGUI_EXPORTS 6 | #define LGUI_API __declspec(dllexport) 7 | #else 8 | #define LGUI_API __declspec(dllimport) 9 | #endif 10 | #endif 11 | 12 | #include 13 | //#include 14 | #include 15 | using namespace std; 16 | 17 | #define LGUI_VERSION 0x12 18 | #define LGUI_VERSIONSTRING "0.73" 19 | 20 | class LGUIPreParse 21 | { 22 | public: 23 | LGUI_API LGUIPreParse(const char *Text); 24 | LGUI_API LGUIPreParse(); 25 | LGUI_API ~LGUIPreParse(); 26 | 27 | LGUI_API void Clear(); 28 | LGUI_API void PreParse(const char *Text); 29 | LGUI_API bool RetrieveProcessedText(char *buf, unsigned int buflen); 30 | 31 | inline const char *GetOriginalText() 32 | { 33 | return OriginalText; 34 | } 35 | 36 | inline unsigned int GetID() 37 | { 38 | return ID; 39 | } 40 | protected: 41 | const char *OriginalText; 42 | unsigned int ID; 43 | }; 44 | 45 | class LGUIDataSequence 46 | { 47 | public: 48 | LGUI_API LGUIDataSequence(); 49 | LGUI_API LGUIDataSequence(const char *DataSequence); 50 | LGUI_API ~LGUIDataSequence(); 51 | 52 | LGUI_API void Clear(); 53 | LGUI_API void PreParse(const char *DataSequence); 54 | LGUI_API bool RetrieveOriginalText(char *buf, unsigned int buflen); 55 | LGUI_API bool RetrieveProcessedText(char *buf, unsigned int buflen); 56 | LGUI_API bool RetrieveProcessedResult(LSOBJECT &Result); 57 | 58 | inline unsigned int GetID() 59 | { 60 | return ID; 61 | } 62 | 63 | protected: 64 | unsigned int ID; 65 | }; 66 | 67 | #include "LGUIEmbeddedScript.h" 68 | #include "LGUITexture.h" 69 | #include "LGUIFont.h" 70 | #include "LGUIElement.h" 71 | #include "LGUIFrame.h" 72 | #include "LGUIContextMenu.h" 73 | #include "LGUIWindow.h" 74 | #include "LGUIText.h" 75 | #include "LGUITextEntry.h" 76 | #include "LGUITextEdit.h" 77 | #include "LGUICommandEntry.h" 78 | #include "LGUIConsole.h" 79 | #include "LGUIHudElement.h" 80 | #include "LGUIScreen.h" 81 | #include "LGUIButton.h" 82 | #include "LGUICommandButton.h" 83 | #include "LGUICheckBox.h" 84 | #include "LGUICommandCheckBox.h" 85 | #include "LGUISlider.h" 86 | #include "LGUIVariableSlider.h" 87 | #include "LGUIScrollBar.h" 88 | #include "LGUIMessageBox.h" 89 | #include "LGUIGauge.h" 90 | #include "LGUIVariableGauge.h" 91 | #include "LGUIListBox.h" 92 | #include "LGUIComboBox.h" 93 | #include "LGUITabControl.h" 94 | #include "LGUITooltip.h" 95 | #include "LGUITable.h" 96 | #include "LGUIMap.h" 97 | #include "LGUITree.h" 98 | #include "LGUIManager.h" 99 | 100 | #define SELECT(possiblevalue,defaultvalue) ((possiblevalue)?(possiblevalue):(defaultvalue)) -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIButton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateButton : public _CreateElement 5 | { 6 | char *Text; // may be 0 for no text 7 | // char *Font; 8 | // unsigned int FontSize; // may be 0 to use default 9 | // unsigned int TextColor; // may be 0 to use default (use 0xFF000000 for solid black) 10 | 11 | 12 | _CreateFont Font; 13 | 14 | unsigned int BackgroundColor; // may be 0 to use default (0xFF000000 for solid black) 15 | 16 | bool DefaultTextures; // // You may create textures directly if you do not use default textures flag 17 | 18 | unsigned int Border; 19 | unsigned int BorderColor; // may be 0 to use default (use 0xFF000000 for solid black) 20 | 21 | }; 22 | 23 | class LGUIButton : 24 | public LGUIElement 25 | { 26 | public: 27 | LGUI_API LGUIButton(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 28 | LGUI_API ~LGUIButton(void); 29 | LGUI_API class LSTypeDefinition *GetLSType(); 30 | 31 | LGUI_API void Create(_CreateButton &CreateInfo, class XMLNode *pTemplate=0); 32 | 33 | LGUI_API void Render(); 34 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 35 | LGUI_API bool IsTypeOf(char *TestFactory); 36 | 37 | LGUI_API bool OnLMouseUp(POINT2I &pt); 38 | LGUI_API bool OnLMouseDown(POINT2I &pt); 39 | 40 | // -- XML Properties -- 41 | LGUIPreParse Text; 42 | 43 | LGUIFont *pFont; 44 | 45 | unsigned int BackgroundColor; 46 | unsigned int Border; 47 | unsigned int BorderColor; 48 | 49 | LGUITexture *pTexture; 50 | LGUITexture *pTexturePressed; 51 | LGUITexture *pTextureHover; 52 | // -------------------- 53 | 54 | bool bDown; 55 | }; 56 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICheckBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICheckBox : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUI_API LGUICheckBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICheckBox(void); 10 | LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API void Render(); 13 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 14 | LGUI_API bool IsTypeOf(char *TestFactory); 15 | 16 | LGUI_API bool OnLMouseUp(POINT2I &pt); 17 | LGUI_API bool OnLMouseDown(POINT2I &pt); 18 | 19 | // -- XML Properties -- 20 | LGUIPreParse Text; 21 | LGUIFont *pFont; 22 | 23 | LGUITexture *pTexture; 24 | LGUITexture *pTexturePressed; 25 | LGUITexture *pTextureHover; 26 | LGUITexture *pTextureChecked; 27 | LGUITexture *pTextureCheckedPressed; 28 | LGUITexture *pTextureCheckedHover; 29 | 30 | // -------------------- 31 | 32 | bool bDown; 33 | bool bChecked; 34 | }; 35 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIComboBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIComboBox : 4 | public LGUIElement 5 | { 6 | public: 7 | LGUI_API LGUIComboBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIComboBox(void); 9 | LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | LGUI_API void RecalculateSize(bool RecalculateChildren); 15 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 16 | LGUI_API bool OnLMouseUp(POINT2I &pt); 17 | LGUI_API bool OnLMouseDown(POINT2I &pt); 18 | LGUI_API void OnLMouseDownOther(LGUIElement *pOther); 19 | 20 | // -- XML Properties -- 21 | LGUITexture *pTexture; 22 | LGUITexture *pButtonTexture; 23 | LGUIFont *pFont; 24 | 25 | unsigned int Border; 26 | 27 | unsigned int FullHeight; 28 | 29 | 30 | unsigned int ButtonWidth; 31 | 32 | LGUIEmbeddedScript *pOnSelect; 33 | // ---------------------- 34 | 35 | 36 | LGUIListBox *pListBox; 37 | bool bDown; 38 | unsigned int NormalHeight; 39 | int Selection; 40 | }; 41 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandButton.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICommandButton : 5 | public LGUIButton 6 | { 7 | public: 8 | LGUI_API LGUICommandButton(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandButton(void); 10 | // LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | 17 | // -- XML Properties -- 18 | 19 | char *Command; 20 | char *Console; 21 | // -------------------- 22 | 23 | }; 24 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandCheckBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUICommandCheckBox : 5 | public LGUICheckBox 6 | { 7 | public: 8 | LGUI_API LGUICommandCheckBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandCheckBox(void); 10 | // LGUI_API class LSTypeDefinition *GetLSType(); 11 | 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | LGUI_API void Render(); 17 | 18 | // -- XML Properties -- 19 | LGUIPreParse Data; 20 | 21 | char *Command; 22 | char *CommandChecked; 23 | char *Console; 24 | 25 | // -------------------- 26 | 27 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUICommandEntry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUItextentry.h" 3 | 4 | class LGUICommandEntry : 5 | public LGUITextEntry 6 | { 7 | public: 8 | LGUI_API LGUICommandEntry(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | LGUI_API ~LGUICommandEntry(void); 10 | LGUI_API bool IsTypeOf(char *TestFactory); 11 | // LGUI_API class LSTypeDefinition *GetLSType(); 12 | 13 | LGUI_API virtual bool OnKeyDown(unsigned int VKey); 14 | LGUI_API virtual void HandleEnter(); 15 | LGUI_API virtual void PasteClipboard(); 16 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 17 | 18 | LGUI_API void OnCommand(char *Text); 19 | 20 | // 21 | char *Console; 22 | 23 | // 24 | unsigned int CmdHistorySize; 25 | char **CmdHistory; 26 | 27 | int HistoryLine; 28 | int HistoryView; 29 | int HistoryLines; 30 | 31 | void InsertCmdHistory(char *Text); 32 | LGUIEmbeddedScript *pOnCommand; 33 | }; 34 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIConsole.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIConsoleSelector 5 | { 6 | public: 7 | LGUI_API LGUIConsoleSelector(class LGUIConsole *pConsole); 8 | LGUI_API LGUIConsoleSelector(const char *FullyQualifiedName); 9 | LGUI_API ~LGUIConsoleSelector(); 10 | protected: 11 | char PreviousConsole[1024]; 12 | }; 13 | 14 | 15 | class LGUIConsole : 16 | public LGUIElement 17 | { 18 | public: 19 | LGUI_API LGUIConsole(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 20 | LGUI_API ~LGUIConsole(void); 21 | LGUI_API class LSTypeDefinition *GetLSType(); 22 | 23 | LGUI_API bool IsTypeOf(char *TestFactory); 24 | LGUI_API void SizeRecalculated(bool Changed); 25 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 26 | 27 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 28 | LGUI_API void Render(); 29 | LGUI_API bool OnMouseMove(POINT2I &pt); 30 | LGUI_API bool OnMouseWheel(int Offset); 31 | LGUI_API bool OnLMouseUp(POINT2I &pt); 32 | LGUI_API bool OnLMouseDown(POINT2I &pt); 33 | 34 | LGUI_API virtual void HandlePageUp(); 35 | LGUI_API virtual void HandlePageDown(); 36 | LGUI_API virtual void HandleUp(); 37 | LGUI_API virtual void HandleDown(); 38 | 39 | LGUI_API void SetFontSize(unsigned int NewHeight); 40 | LGUI_API void SnapToGrid(POINT2I &pt); 41 | LGUI_API void CopySelection(); 42 | 43 | 44 | LGUI_API void SplitFixed(char *in, size_t MaxWidth); 45 | LGUI_API void Clear(); 46 | LGUI_API void Printf(const char *szFormat, ...); 47 | LGUI_API void Print(const char *Text); 48 | 49 | 50 | // -- XML PROPERTIES -- 51 | LGUIFixedFont *pFont; 52 | 53 | unsigned int Border; 54 | unsigned int BorderColor; 55 | unsigned int ScrollbackColor; 56 | unsigned int BackgroundColor; 57 | 58 | unsigned int SelectionColor; 59 | 60 | LGUITexture *pTexture; 61 | LGUITexture *pTextureScrollback; 62 | 63 | // ---------------------- 64 | 65 | 66 | unsigned int BackBufferSize; 67 | char **BackBuffer; 68 | int LastLine; 69 | 70 | class LGUIScrollBar *pVerticalBar; 71 | 72 | int ScrollBack; 73 | int VisibleLines; 74 | 75 | bool bSelect; 76 | RECT Selection; 77 | 78 | protected: 79 | LGUI_API virtual void AddLineInternal(char *Line); 80 | }; 81 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIEmbeddedScript.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIEmbeddedScript 4 | { 5 | public: 6 | LGUIEmbeddedScript(unsigned int AtomID, class LGUIElement *pThis); 7 | virtual ~LGUIEmbeddedScript(); 8 | 9 | LGUI_API static LGUIEmbeddedScript *New(class LGUIElement *pThis, const char *Buffer, const char *Parameters); 10 | LGUI_API virtual void Delete(); 11 | 12 | LGUI_API virtual int Execute(int argc=0, char *argv[]=0); 13 | LGUI_API virtual int Execute(class LGUIElement *pThis, int argc=0, char *argv[]=0); 14 | 15 | protected: 16 | unsigned int AtomID; 17 | class LGUIElement *pThis; 18 | unsigned int RefCount; 19 | }; 20 | 21 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIFrame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | struct _CreateFrame : public _CreateElement 5 | { 6 | unsigned int BackgroundColor; 7 | unsigned int Border; 8 | unsigned int BorderColor; 9 | }; 10 | 11 | class LGUIFrame : 12 | public LGUIElement 13 | { 14 | public: 15 | LGUI_API LGUIFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 16 | LGUI_API ~LGUIFrame(void); 17 | LGUI_API class LSTypeDefinition *GetLSType(); 18 | 19 | LGUI_API void Render(); 20 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 21 | LGUI_API bool IsTypeOf(char *TestFactory); 22 | LGUI_API void Create(_CreateFrame &CreateInfo); 23 | 24 | LGUI_API bool OnLMouseUp(POINT2I &pt); 25 | LGUI_API bool OnLMouseDown(POINT2I &pt); 26 | LGUI_API bool OnLMouseDoubleClick(POINT2I &pt); 27 | LGUI_API bool OnRMouseDoubleClick(POINT2I &pt); 28 | LGUI_API bool OnRMouseUp(POINT2I &pt); 29 | LGUI_API bool OnRMouseDown(POINT2I &pt); 30 | LGUI_API bool OnMouseMove(POINT2I &pt); 31 | LGUI_API bool OnMouseWheel(int Offset); 32 | 33 | // -- XML Properties -- 34 | LGUITexture *pTexture; 35 | unsigned int BackgroundColor; 36 | unsigned int Border; 37 | unsigned int BorderColor; 38 | 39 | // ---------------------- 40 | 41 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIGauge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIGauge : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUI_API LGUIGauge(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIGauge(void); 9 | LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | LGUI_API virtual void SetValue(float NewValue); 16 | 17 | // -- XML Properties -- 18 | LGUITexture *pTopTexture; 19 | 20 | bool bVertical; 21 | 22 | float fRange; 23 | 24 | // -------------------- 25 | 26 | bool Mod; 27 | class LGUIGaugeFiller* pFiller; 28 | float fValue; 29 | }; 30 | 31 | class LGUIGaugeFiller: 32 | public LGUIElement 33 | { 34 | public: 35 | LGUIGaugeFiller(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 36 | ~LGUIGaugeFiller(void); 37 | // LGUI_API class LSTypeDefinition *GetLSType(); 38 | 39 | void Render(); 40 | bool FromXML(class XMLNode *pXML); 41 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate); 42 | 43 | bool IsTypeOf(char *TestFactory); 44 | // void Default(); 45 | virtual void SetValue(float NewValue); 46 | void RecalculateSize(bool RecalculateChildren); 47 | 48 | // -- XML Properties -- 49 | LGUITexture *pTexture; 50 | // -------------------- 51 | 52 | float fRange; 53 | float fValue; 54 | bool bVertical; 55 | unsigned int Repeat; 56 | 57 | class LGUIGauge *pGauge; 58 | }; 59 | 60 | class LGUIGaugeFactory : public LGUIElementFactory 61 | { 62 | public: 63 | LGUIGaugeFactory():LGUIElementFactory("gauge",LGUI_VERSION) 64 | { 65 | } 66 | 67 | ~LGUIGaugeFactory() 68 | { 69 | } 70 | 71 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name, class XMLNode *pXML, const char *Template = 0) 72 | { 73 | LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name); 74 | 75 | if (!pElement->FromXML(pXML,g_UIManager.FindTemplate(Template))) 76 | { 77 | delete pElement; 78 | return 0; 79 | } 80 | Elements[pElement]=1; 81 | if (pElement->pFiller) 82 | return pElement->pFiller; 83 | return pElement; 84 | } 85 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name) 86 | { 87 | LGUIGauge *pElement = new LGUIGauge(Type,pParent,Name); 88 | Elements[pElement]=1; 89 | return pElement; 90 | } 91 | 92 | virtual LSType *GetLSType(); 93 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIHudElement.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIHudElement : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUIHudElement(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 9 | ~LGUIHudElement(void); 10 | bool IsTypeOf(char *TestFactory); 11 | class LSTypeDefinition *GetLSType(); 12 | 13 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 14 | 15 | bool OnLMouseUp(POINT2I &pt); 16 | bool OnLMouseDown(POINT2I &pt); 17 | bool OnMouseMove(POINT2I &pt); 18 | void Render(); 19 | 20 | virtual void UpdateElement(); 21 | virtual void SetText(char *NewValue); 22 | // -- From XML -- 23 | //char *Text; 24 | LGUIPreParse PreParsed; 25 | char *Group; 26 | 27 | LGUIFont *pFont; 28 | 29 | unsigned int UpdateInterval; 30 | 31 | // -------------------------------- 32 | 33 | char *CurrentValue; 34 | unsigned int CurrentInterval; 35 | bool bMoving; 36 | POINT2I MovingOffset; 37 | }; 38 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIMessageBox.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | enum eMessageBoxType 4 | { 5 | MSGBOX_OK=1, 6 | MSGBOX_OKCANCEL=2, 7 | MSGBOX_YESNO=3, 8 | }; 9 | 10 | class LGUIMessageBox : public LGUIWindow 11 | { 12 | public: 13 | LGUI_API LGUIMessageBox(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 14 | LGUI_API ~LGUIMessageBox(void); 15 | LGUI_API class LSTypeDefinition *GetLSType(); 16 | 17 | LGUI_API void Create(char *p_Title, char *p_Text, eMessageBoxType p_Type, class XMLNode *pTemplate=0); 18 | 19 | LGUI_API void Render(); 20 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 21 | LGUI_API bool IsTypeOf(char *TestFactory); 22 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 23 | 24 | 25 | // Text 26 | LGUIFont *pFont; 27 | 28 | eMessageBoxType MessageBoxType; 29 | 30 | // -------------------- 31 | 32 | LGUIButton *pOK; 33 | LGUIButton *pCancel; 34 | LGUIButton *pYes; 35 | LGUIButton *pNo; 36 | }; 37 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIScreen.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | class LGUIScreen : 5 | public LGUIElement 6 | { 7 | public: 8 | LGUIScreen(void); 9 | ~LGUIScreen(void); 10 | bool IsTypeOf(char *TestFactory); 11 | 12 | //void Render(); 13 | void RecalculateSize(bool RecalculateChildren); 14 | void MoveZTop(bool bAncestorsToo); 15 | void MoveZUp(); 16 | void MoveZDown(); 17 | void MoveZBottom(); 18 | 19 | bool OnLMouseDown(POINT2I &pt); 20 | }; 21 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIScrollBar.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct _CreateScrollBar : public _CreateElement 4 | { 5 | unsigned int Range; 6 | bool bVertical; 7 | bool DefaultTextures; 8 | }; 9 | 10 | class LGUIScrollBar : 11 | public LGUIElement 12 | { 13 | public: 14 | LGUI_API LGUIScrollBar(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 15 | LGUI_API ~LGUIScrollBar(void); 16 | LGUI_API class LSTypeDefinition *GetLSType(); 17 | 18 | LGUI_API void Create(_CreateScrollBar &CreateInfo, class XMLNode *pTemplate=0); 19 | 20 | LGUI_API void SizeRecalculated(bool Changed); 21 | // LGUI_API void Render(); 22 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 23 | LGUI_API bool IsTypeOf(char *TestFactory); 24 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 25 | 26 | // LGUI_API void RecalculateSize(); 27 | 28 | LGUI_API virtual void SetRange(unsigned int NewRange); 29 | LGUI_API virtual void SetValue(unsigned int NewValue); 30 | LGUI_API virtual void RaiseValue(unsigned int Offset); 31 | LGUI_API virtual void LowerValue(unsigned int Offset); 32 | LGUI_API virtual unsigned int GetValue(); 33 | 34 | 35 | unsigned int Range; 36 | bool bVertical; 37 | 38 | LGUIButton *pUp; 39 | LGUIButton *pDown; 40 | LGUISlider *pSlider; 41 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUISlider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateSlider : public _CreateElement 5 | { 6 | unsigned int Border; 7 | unsigned int Range; 8 | 9 | bool bVertical; 10 | 11 | bool DefaultTextures; 12 | }; 13 | 14 | class LGUISlider : 15 | public LGUIElement 16 | { 17 | public: 18 | LGUI_API LGUISlider(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 19 | LGUI_API ~LGUISlider(void); 20 | LGUI_API class LSTypeDefinition *GetLSType(); 21 | 22 | LGUI_API void Create(_CreateSlider &CreateInfo, class XMLNode *pTemplate=0); 23 | 24 | LGUI_API void Render(); 25 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 26 | LGUI_API bool IsTypeOf(char *TestFactory); 27 | 28 | LGUI_API bool OnLMouseUp(POINT2I &pt); 29 | LGUI_API bool OnLMouseDown(POINT2I &pt); 30 | LGUI_API bool OnMouseMove(POINT2I &pt); 31 | 32 | LGUI_API virtual void SetValue(unsigned int NewValue); 33 | LGUI_API virtual void SetPosition(unsigned int NewPosition); 34 | LGUI_API void RecalculateSize(bool RecalculateChildren); 35 | 36 | // -- XML Properties -- 37 | LGUITexture *pTexture; 38 | LGUITexture *pHandleTexture; 39 | unsigned int Border; 40 | 41 | bool bVertical; 42 | 43 | unsigned int Range; 44 | 45 | LGUIEmbeddedScript *pOnChange; 46 | // -------------------- 47 | 48 | unsigned int HandleWidth; 49 | unsigned int HandleHeight; 50 | unsigned int Value; 51 | unsigned int Position; 52 | bool bSliding; 53 | }; 54 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITabControl.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class CLGUITab 4 | { 5 | public: 6 | CLGUITab(class LGUITabControl *p_Control,const char *p_Name, unsigned int p_ID) 7 | { 8 | Name=strdup(p_Name); 9 | ID=p_ID; 10 | Order=0; 11 | pFrame=0; 12 | pTabControl=p_Control; 13 | // Length=strlen(Name); 14 | } 15 | ~CLGUITab() 16 | { 17 | free(Name); 18 | } 19 | 20 | LGUI_API void Rename(const char *NewName); 21 | 22 | char *Name; 23 | // unsigned int Length; 24 | unsigned int FullWidth; 25 | 26 | unsigned int ID; 27 | unsigned int Order; 28 | 29 | LGUIFrame *pFrame; 30 | class LGUITabControl *pTabControl; 31 | }; 32 | 33 | class LGUITabControl : 34 | public LGUIElement 35 | { 36 | public: 37 | LGUI_API LGUITabControl(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 38 | LGUI_API ~LGUITabControl(void); 39 | LGUI_API class LSTypeDefinition *GetLSType(); 40 | 41 | LGUI_API void Render(); 42 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 43 | LGUI_API bool IsTypeOf(char *TestFactory); 44 | LGUI_API bool OnLMouseDown(POINT2I &pt); 45 | LGUI_API bool OnLMouseUp(POINT2I &pt); 46 | LGUI_API bool OnMouseMove(POINT2I &pt); 47 | LGUI_API void RecalculateSize(bool RecalculateChildren); 48 | LGUI_API void SizeRecalculated(bool Changed); 49 | LGUI_API void OnNotify(LGUIElement *pElement, unsigned int Notification, UINT_PTR Value); 50 | 51 | LGUI_API virtual unsigned int AddTab(const char *Text,XMLNode *pXML, const char *ChildName, const char *Template); 52 | LGUI_API virtual void RemoveTab(unsigned int ID); 53 | LGUI_API virtual unsigned int GetTabFromPoint(POINT2I &pt); 54 | LGUI_API virtual unsigned int GetOrderFromPoint(POINT2I &pt); 55 | 56 | LGUI_API void MoveTab(CLGUITab *pTab, unsigned int Order); 57 | LGUI_API virtual void SelectTab(unsigned int ID); 58 | LGUI_API virtual void ClearSelection(); 59 | 60 | LGUI_API CLGUITab *GetTabFromName(const char *Name); 61 | 62 | 63 | // -- XML Properties -- 64 | LGUIFont *pFont; 65 | LGUITexture *pTabTexture; 66 | LGUITexture *pTabSelectedTexture; 67 | 68 | LGUITexture *pFrameTexture; 69 | unsigned int FrameBackgroundColor; 70 | unsigned int FrameBorder; 71 | unsigned int FrameBorderColor; 72 | 73 | unsigned int TabHeight; 74 | unsigned int TabBorder; 75 | unsigned int SelectedTextColor; 76 | bool bDraggable; 77 | 78 | LGUIEmbeddedScript *pOnSelect; 79 | // ---------------------- 80 | 81 | LGUIButton *pLeft; 82 | LGUIButton *pRight; 83 | 84 | unsigned int VisiblePos; 85 | unsigned int Selection; 86 | CIndex Tabs; 87 | CIndex OrderedTabs; 88 | 89 | unsigned int nTabs; 90 | unsigned int DraggingID; 91 | 92 | }; 93 | 94 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITable.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUITableCell : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUI_API LGUITableCell(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUITableCell(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | // LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // -- XML Properties -- 16 | unsigned int RowSpan; 17 | 18 | unsigned int ColSpan; 19 | // ---------------------- 20 | unsigned int Row; 21 | unsigned int Column; 22 | }; 23 | 24 | class LGUITable : 25 | public LGUIFrame 26 | { 27 | public: 28 | LGUI_API LGUITable(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 29 | LGUI_API ~LGUITable(void); 30 | // LGUI_API class LSTypeDefinition *GetLSType(); 31 | 32 | // LGUI_API void Render(); 33 | LGUI_API virtual void RecalculateSize(bool RecalculateChildren); 34 | LGUI_API virtual void SizeRecalculated(bool Changed); 35 | 36 | 37 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 38 | LGUI_API bool IsTypeOf(char *TestFactory); 39 | 40 | // -- XML Properties -- 41 | 42 | char *CellTemplate; 43 | //unsigned int CellSpacing; // TODO 44 | 45 | // ---------------------- 46 | 47 | LGUITableCell **Cell; 48 | ElementPosition *ColumnWidth; 49 | ElementPosition *RowHeight; 50 | 51 | unsigned int nRows; 52 | unsigned int nColumns; 53 | 54 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIText.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | enum eTextAlign 5 | { 6 | ALIGN_LEFT=0, 7 | ALIGN_CENTER=1, 8 | ALIGN_RIGHT=2, 9 | 10 | VALIGN_TOP=3, 11 | VALIGN_CENTER=4, 12 | VALIGN_BOTTOM=5, 13 | }; 14 | 15 | struct _CreateText : public _CreateElement 16 | { 17 | char *Text; 18 | _CreateFont Font; 19 | // char *Font; 20 | // unsigned int FontSize; 21 | // unsigned int Color; 22 | 23 | bool bWrap; 24 | eTextAlign Alignment; 25 | eTextAlign VerticalAlignment; 26 | }; 27 | 28 | class LGUIText : public LGUIElement 29 | { 30 | public: 31 | LGUI_API LGUIText(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 32 | LGUI_API ~LGUIText(void); 33 | LGUI_API bool IsTypeOf(char *TestFactory); 34 | LGUI_API class LSTypeDefinition *GetLSType(); 35 | 36 | LGUI_API static size_t SplitFixed(char *Value, size_t MaxChars, size_t &Width); 37 | LGUI_API static size_t Split(char *Value, size_t MaxWidth, LGUIFont *pFont, size_t &Width); 38 | LGUI_API size_t Split(char *Value); 39 | 40 | LGUI_API void Render(); 41 | LGUI_API bool RenderCustom(); 42 | 43 | LGUI_API void Create(_CreateText &CreateInfo, class XMLNode *pTemplate=0); 44 | 45 | LGUI_API void RenderLeft(char *Value); 46 | LGUI_API void RenderCenter(char *Value); 47 | LGUI_API void RenderRight(char *Value); 48 | LGUI_API void RecalculateSize(bool RecalculateChildren); 49 | 50 | 51 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 52 | 53 | LGUI_API void SetText(char *NewText); 54 | LGUI_API void SetHorizontalAlignment(eTextAlign value); 55 | LGUI_API void SetVerticalAlignment(eTextAlign value); 56 | LGUI_API void SetWrap(bool value); 57 | 58 | // -- XML Properties -- 59 | char *Text; 60 | LGUIFont *pFont; 61 | 62 | bool bWrap; 63 | eTextAlign Alignment; 64 | eTextAlign VerticalAlignment; 65 | // -------------------- 66 | 67 | char *NonVariable; 68 | size_t nLines; 69 | }; 70 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITextEntry.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "LGUIelement.h" 3 | 4 | struct _CreateTextEntry : public _CreateElement 5 | { 6 | char *Text; 7 | _CreateFont Font; 8 | // char *Font; 9 | 10 | // unsigned int FontHeight; 11 | // unsigned int TextColor; 12 | unsigned int BackgroundColor; 13 | unsigned int SelectionColor; 14 | unsigned int MaxLength; 15 | unsigned int BorderColor; 16 | unsigned int Border; 17 | unsigned int CaretOuterColor; 18 | unsigned int CaretInnerColor; 19 | char PasswordChar; 20 | }; 21 | 22 | class LGUITextEntry : 23 | public LGUIElement 24 | { 25 | public: 26 | LGUI_API LGUITextEntry(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 27 | LGUI_API ~LGUITextEntry(void); 28 | LGUI_API class LSTypeDefinition *GetLSType(); 29 | 30 | LGUI_API void Create(_CreateTextEntry &CreateInfo, class XMLNode *pTemplate=0); 31 | LGUI_API void Render(); 32 | LGUI_API void RenderCustom(); 33 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 34 | LGUI_API bool IsTypeOf(char *TestFactory); 35 | 36 | LGUI_API virtual void SetText(char *NewValue); 37 | LGUI_API virtual void SetFontSize(unsigned int NewHeight); 38 | LGUI_API virtual bool OnKeyUp(unsigned int VKey); 39 | LGUI_API virtual bool OnKeyDown(unsigned int VKey); 40 | LGUI_API virtual bool OnLMouseDown(POINT2I &pt); 41 | LGUI_API virtual void InsertCharacter(char C); 42 | LGUI_API virtual void HandleBackspace(); 43 | LGUI_API virtual void HandleDelete(); 44 | LGUI_API virtual void HandleEnter(); 45 | LGUI_API virtual void HandleEscape(); 46 | 47 | LGUI_API virtual void PasteClipboard(); 48 | 49 | LGUI_API unsigned int GetPositionFromPoint(POINT2I &pt); 50 | 51 | LGUI_API virtual void OnKeyboardExit(LGUIElement *pNewFocus); 52 | 53 | // -- XML PROPERTIES -- 54 | char *Text; 55 | LGUIFont *pFont; 56 | unsigned int BackgroundColor; 57 | unsigned int SelectionColor; 58 | unsigned int MaxLength; 59 | unsigned int BorderColor; 60 | unsigned int Border; 61 | unsigned int CaretOuterColor; 62 | unsigned int CaretInnerColor; 63 | 64 | LGUITexture *pTexture; 65 | LGUITexture *pTextureFocused; 66 | LGUITexture *pTextureCaret; 67 | LGUITexture *pTextureCaretOverwrite; 68 | 69 | LGUIEmbeddedScript *pOnChange; 70 | 71 | char PasswordChar; 72 | //--------------------- 73 | 74 | // unsigned int FontWidth; 75 | 76 | bool InsertMode; 77 | size_t Position; 78 | 79 | unsigned int LastVKey; 80 | size_t TextEnd; 81 | unsigned int LastVKeyTimer; 82 | size_t VisiblePos; 83 | }; 84 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITexture.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #define TR_TEXTURERECT 1 4 | #define TR_ALPHA 2 5 | #define TR_COLORMASK 4 6 | #define TR_NOSIZE 8 7 | #define TR_TEXTURETRIANGLE 16 8 | 9 | struct LGUITexturedRect 10 | { 11 | public: 12 | class LGUITexture *pTexture; 13 | 14 | RECT Rect; 15 | 16 | DWORD Flags; 17 | RECT TextureRect; 18 | unsigned char Alpha; 19 | unsigned int ColorMask; 20 | unsigned char Orientation; 21 | }; 22 | 23 | struct LGUITriangle 24 | { 25 | POINT2F Point[3]; 26 | }; 27 | 28 | struct LGUITexturedTriangle 29 | { 30 | public: 31 | class LGUITexture *pTexture; 32 | 33 | LGUITriangle Triangle; 34 | 35 | DWORD Flags; 36 | LGUITriangle TextureTriangle; 37 | unsigned char Alpha; 38 | unsigned int ColorMask; 39 | unsigned char Orientation; 40 | }; 41 | 42 | class LGUITexture 43 | { 44 | public: 45 | LGUITexture(const char *p_Name); 46 | LGUITexture(const LGUITexture&); 47 | ~LGUITexture(); 48 | 49 | void CopyFrom(const LGUITexture &other); 50 | 51 | LGUI_API static LGUITexture *New(const char *p_Name); 52 | LGUI_API static LGUITexture *New(const LGUITexture&); 53 | LGUI_API void Delete(); 54 | LGUI_API bool Prepare(); 55 | LGUI_API bool GetSize(); 56 | LGUI_API bool FromXML(class XMLNode *pXML); 57 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate); 58 | 59 | LGUI_API void Set(const char *Filename, unsigned int ColorKey=0); 60 | LGUI_API void SetFrom(const LGUITexture& other); 61 | 62 | char *Name; 63 | unsigned int TextureID; 64 | unsigned int ColorKey; 65 | 66 | DWORD Flags; 67 | RECT TextureRect; 68 | LGUITriangle TextureTriangle; 69 | 70 | float Alpha; 71 | unsigned int ColorMask; 72 | unsigned int Border; 73 | unsigned char Orientation; 74 | }; 75 | 76 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUITooltip.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | 4 | struct _CreateTooltip : public _CreateElement 5 | { 6 | unsigned int BackgroundColor; 7 | unsigned int Border; 8 | unsigned int BorderColor; 9 | _CreateFont Font; 10 | // unsigned int TextColor; 11 | // unsigned int FontSize; 12 | bool DefaultTextures; 13 | }; 14 | 15 | class LGUITooltipLine 16 | { 17 | public: 18 | LGUI_API LGUITooltipLine(const char *p_Text); 19 | LGUI_API ~LGUITooltipLine(); 20 | LGUI_API char *Parse(); 21 | 22 | LGUI_API void Set(const char *p_Text); 23 | 24 | char *Text; 25 | bool bVariable; 26 | }; 27 | 28 | class LGUITooltip : 29 | public LGUIFrame 30 | { 31 | public: 32 | LGUI_API LGUITooltip(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 33 | LGUI_API ~LGUITooltip(void); 34 | LGUI_API class LSTypeDefinition *GetLSType(); 35 | 36 | LGUI_API void Render(); 37 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 38 | LGUI_API bool IsTypeOf(char *TestFactory); 39 | // LGUI_API void Create(_CreateTooltip &CreateInfo, class XMLNode *pTemplate=0); 40 | LGUI_API bool OnMouseMove(POINT2I &pt); 41 | 42 | LGUI_API void Reset(); 43 | LGUI_API void Printf(const char *Format, ...); 44 | LGUI_API void Print(const char *Text); 45 | 46 | // -- XML Properties -- 47 | LGUIFont *pFont; 48 | 49 | // ---------------------- 50 | 51 | CIndex Lines; 52 | unsigned int nLines; 53 | 54 | protected: 55 | LGUI_API void AddLine(const char *Text); 56 | 57 | }; 58 | 59 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIVariableGauge.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIVariableGauge : 4 | public LGUIGauge 5 | { 6 | public: 7 | LGUI_API LGUIVariableGauge(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIVariableGauge(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // -- XML Properties -- 16 | LGUIDataSequence Data; 17 | float Offset; 18 | // -------------------- 19 | 20 | }; 21 | 22 | 23 | class LGUIVariableGaugeFactory : public LGUIElementFactory 24 | { 25 | public: 26 | LGUIVariableGaugeFactory():LGUIElementFactory("variablegauge",LGUI_VERSION) 27 | { 28 | } 29 | 30 | ~LGUIVariableGaugeFactory() 31 | { 32 | } 33 | 34 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name, class XMLNode *pXML, const char *Template = 0) 35 | { 36 | LGUIVariableGauge *pElement = new LGUIVariableGauge(Type,pParent,Name); 37 | 38 | if (!pElement->FromXML(pXML,g_UIManager.FindTemplate(Template))) 39 | { 40 | delete pElement; 41 | return 0; 42 | } 43 | Elements[pElement]=1; 44 | if (pElement->pFiller) 45 | return pElement->pFiller; 46 | return pElement; 47 | } 48 | virtual LGUIElement *CreateUIElement(LGUIElement *pParent, const char *Name) 49 | { 50 | LGUIVariableGauge *pElement = new LGUIVariableGauge(Type,pParent,Name); 51 | Elements[pElement]=1; 52 | return pElement; 53 | } 54 | 55 | }; -------------------------------------------------------------------------------- /ISXDK/35/include/ISUI/LGUIVariableSlider.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIVariableSlider : 4 | public LGUISlider 5 | { 6 | public: 7 | LGUI_API LGUIVariableSlider(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | LGUI_API ~LGUIVariableSlider(void); 9 | // LGUI_API class LSTypeDefinition *GetLSType(); 10 | 11 | LGUI_API void Render(); 12 | LGUI_API bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 13 | LGUI_API bool IsTypeOf(char *TestFactory); 14 | 15 | // LGUI_API bool OnLMouseUp(POINT2I &pt); 16 | // LGUI_API bool OnLMouseDown(POINT2I &pt); 17 | // LGUI_API bool OnMouseMove(POINT2I &pt); 18 | LGUI_API void SetValue(unsigned int NewValue); 19 | 20 | // -- XML Properties -- 21 | LGUIDataSequence Data; 22 | const char *OriginalData; 23 | 24 | float Offset; 25 | float VariableRange; 26 | // -------------------- 27 | 28 | bool InitialValue; 29 | }; 30 | -------------------------------------------------------------------------------- /ISXDK/35/include/ISXInterface.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | typedef struct _ISXSCRIPTENGINECAPS 4 | { 5 | unsigned int Sizeof; // set by the caller before calling GetCaps, to sizeof(ISXSCRIPTENGINECAPS) 6 | // use Sizeof to fill in the caps structure only up to the correct size 7 | 8 | bool bPreprocessor; // engine has a preprocessor (e.g. #define, #include, etc) 9 | bool bPersistent; // can run persistent scripts 10 | bool bMultipleScripts; // can run multiple scripts 11 | } ISXSCRIPTENGINECAPS, *PISXSCRIPTENGINECAPS; 12 | 13 | class ISXScriptEngine 14 | { 15 | public: 16 | virtual const char *GetName()=0; // unix name if possible, e.g. #!/usr/bin/perl would be "perl" 17 | virtual const char *GetVersion()=0; // used by extensions. implement however you want 18 | virtual bool GetCaps(ISXSCRIPTENGINECAPS &Dest)=0; // used by extensions to retrieve engine capabilities 19 | 20 | virtual void Pulse()=0; // for persistent scripts, use this to process microthreads, etc. 21 | 22 | virtual bool ExecuteScript(const char *FullFilename, int argc, char *argv[])=0; // used by RunScript command 23 | virtual bool EndScript(const char *Name)=0; // used by EndScript 24 | 25 | virtual bool IsScript(const char *FullFilename) {return true;} 26 | }; 27 | 28 | class ISXSoftwareCursorInterface 29 | { 30 | public: 31 | virtual bool CursorEnabled()=0; 32 | virtual bool GetPosition(int &X, int &Y)=0; 33 | 34 | virtual bool SetPosition(int X, int Y)=0; 35 | 36 | virtual bool DrawCursor() {return false;} 37 | }; 38 | 39 | class ISXInterface 40 | { 41 | public: 42 | virtual unsigned int GetVersion(); 43 | 44 | virtual bool Initialize(ISInterface *pISInterface)=0; 45 | virtual void Shutdown()=0; 46 | 47 | virtual bool RequestShutdown() 48 | { 49 | // return false if you must handle asynchronous shutdown behaviors first 50 | // doing so will require an additional unload request. 51 | return true; 52 | } 53 | 54 | }; 55 | -------------------------------------------------------------------------------- /ISXDK/35/include/LavishScript/LavishScript.h: -------------------------------------------------------------------------------- 1 | #define MAX_VARSTRING 4096 2 | #include "LSType.h" 3 | #include "LSSTLTypes.h" 4 | 5 | typedef bool (__cdecl *fLSTopLevelObject)(int argc, char *argv[], LSTYPEVAR &); 6 | typedef int (__cdecl *fLSCommand)(int argc, char *argv[]); 7 | typedef void (__cdecl *fLSGenericEnumCallback)(const char *Name, void *pData); 8 | 9 | -------------------------------------------------------------------------------- /ISXDK/35/include/Threading.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #ifndef __THREADING_H__ 3 | #define __THREADING_H__ 4 | 5 | //#ifdef WIN32 6 | #define THREAD DWORD 7 | //typedef DWORD (*PTHREAD_START_ROUTINE)(LPVOID); 8 | //#else 9 | //#define THREAD void* 10 | //typedef void* (*PTHREAD_START_ROUTINE)(void*); 11 | //#endif 12 | 13 | class CPortableSemaphore 14 | { 15 | //virtual void Initialize()=0; 16 | }; 17 | 18 | class CPortableLock 19 | { 20 | public: 21 | virtual void SetSemaphore(CPortableSemaphore*)=0; 22 | virtual void Lock()=0; 23 | virtual void Unlock()=0; 24 | virtual bool IsLocked()=0; 25 | }; 26 | 27 | class CPortableThread 28 | { 29 | public: 30 | virtual bool BeginThread(LPTHREAD_START_ROUTINE function, void* pInfo, bool bWait)=0; 31 | virtual void EndThread()=0; 32 | virtual void AbortThread()=0; 33 | bool bThreading; 34 | bool CloseThread; 35 | bool ThreadReady; 36 | void *Info; 37 | }; 38 | 39 | class CPortableSignal 40 | { 41 | public: 42 | virtual void Wait(unsigned int Timeout, CPortableLock* unlockme=0)=0; 43 | virtual void Wait(CPortableLock* unlockme=0)=0; 44 | virtual void Release()=0; 45 | virtual void Signal(bool*)=0; 46 | }; 47 | 48 | #endif 49 | 50 | -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISUI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib/vs14/ISUI.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISUI_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib/vs14/ISUI_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISXDK.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib/vs14/ISXDK.lib -------------------------------------------------------------------------------- /ISXDK/35/lib/vs14/ISXDK_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib/vs14/ISXDK_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISUI.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib64/vs14/ISUI.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISUI_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib64/vs14/ISUI_md.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISXDK.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib64/vs14/ISXDK.lib -------------------------------------------------------------------------------- /ISXDK/35/lib64/vs14/ISXDK_md.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/ISXDK/35/lib64/vs14/ISXDK_md.lib -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Commands.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | 3 | int CMD_FullTemplate(int argc, char *argv[]) 4 | { 5 | return 0; 6 | } -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Commands.h: -------------------------------------------------------------------------------- 1 | #ifndef COMMAND 2 | #define COMMAND_SELF 3 | #define COMMAND(name,cmd,parse,hide) extern int cmd(int argc, char *argv[]) 4 | #endif 5 | // ---------------------------------------------------- 6 | // commands 7 | 8 | // sample 9 | COMMAND("FullTemplate",CMD_FullTemplate,true,false); 10 | 11 | 12 | 13 | 14 | 15 | 16 | // ---------------------------------------------------- 17 | #ifdef COMMAND_SELF 18 | #undef COMMAND_SELF 19 | #undef COMMAND 20 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/DataTypeList.h: -------------------------------------------------------------------------------- 1 | #ifndef DATATYPE 2 | #define DATATYPE_SELF 3 | #define DATATYPE(_class_,_variable_,_inherits_) extern class _class_ *_variable_ 4 | #endif 5 | // ---------------------------------------------------- 6 | // data types 7 | 8 | // sample data type is the FullTemplateType class, and we're making a variable called pFullTemplateType. 9 | // this type does not inherit from another type, so we use 0. If it did inherit from another single type, 10 | // we would use the pointer to the definition of that type, such as pStringType 11 | DATATYPE(FullTemplateType,pFullTemplateType,0); 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | // ---------------------------------------------------- 24 | #ifdef DATATYPE_SELF 25 | #undef DATATYPE_SELF 26 | #undef DATATYPE 27 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/DataTypes.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "DataTypeList.h" 3 | 4 | // custom data type declarations 5 | 6 | class FullTemplateType : public LSTypeDefinition 7 | { 8 | public: 9 | // All data members (retrieving data) should be listed in this enumeration 10 | enum FullTemplateTypeMembers 11 | { 12 | RetrieveData, 13 | }; 14 | // All data methods (performing actions on or with the object) should be listed in this enumeration 15 | enum FullTemplateTypeMethods 16 | { 17 | PerformAction, 18 | }; 19 | 20 | FullTemplateType() : LSType("fulltemplate") 21 | { 22 | // Use the TypeMember macro to activate each member, or use AddMember 23 | TypeMember(RetrieveData); 24 | 25 | // Use the TypeMethod macro to activate each member, or use AddMethod 26 | TypeMethod(PerformAction); 27 | } 28 | 29 | virtual bool GetMember(LSOBJECTDATA ObjectData, PLSTYPEMEMBER Member, int argc, char *argv[], LSOBJECT &Object); 30 | virtual bool GetMethod(LSOBJECTDATA &ObjectData, PLSTYPEMETHOD pMethod, int argc, char *argv[]); 31 | virtual bool ToText(LSOBJECTDATA ObjectData, char *buf, unsigned int buflen); 32 | }; 33 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/LGUIFullTemplateFrame.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | #include "LGUIFullTemplateFrame.h" 3 | 4 | LGUIFactory FullTemplateFrameFactory("fulltemplateframe"); 5 | 6 | LGUIFullTemplateFrame::LGUIFullTemplateFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name):LGUIFrame(p_Factory,p_pParent,p_Name) 7 | { 8 | pText=0; 9 | Count=0; 10 | } 11 | LGUIFullTemplateFrame::~LGUIFullTemplateFrame(void) 12 | { 13 | } 14 | bool LGUIFullTemplateFrame::IsTypeOf(char *TestFactory) 15 | { 16 | return (!_stricmp(TestFactory,"fulltemplateframe")) || LGUIFrame::IsTypeOf(TestFactory); 17 | } 18 | bool LGUIFullTemplateFrame::FromXML(class XMLNode *pXML, class XMLNode *pTemplate) 19 | { 20 | if (!pTemplate) 21 | pTemplate=g_UIManager.FindTemplate(XMLHelper::GetStringAttribute(pXML,"Template")); 22 | if (!pTemplate) 23 | pTemplate=g_UIManager.FindTemplate("fulltemplateframe"); 24 | if (!LGUIFrame::FromXML(pXML,pTemplate)) 25 | return false; 26 | 27 | // custom xml properties 28 | return true; 29 | } 30 | 31 | void LGUIFullTemplateFrame::OnCreate() 32 | { 33 | // All children of this element are guaranteed to have been created now. 34 | pText = (LGUIText*)FindUsableChild("Output","text"); 35 | } 36 | 37 | void LGUIFullTemplateFrame::Render() 38 | { 39 | Count++; 40 | if (pText) 41 | { 42 | char Temp[256]; 43 | sprintf_s(Temp,"This frame has been rendered %d times.",Count); 44 | pText->SetText(Temp); 45 | } 46 | 47 | LGUIFrame::Render(); 48 | } 49 | 50 | 51 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/LGUIFullTemplateFrame.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class LGUIFullTemplateFrame : 4 | public LGUIFrame 5 | { 6 | public: 7 | LGUIFullTemplateFrame(const char *p_Factory, LGUIElement *p_pParent, const char *p_Name); 8 | ~LGUIFullTemplateFrame(void); 9 | bool IsTypeOf(char *TestFactory); 10 | bool FromXML(class XMLNode *pXML, class XMLNode *pTemplate=0); 11 | void OnCreate(); 12 | void Render(); 13 | 14 | LGUIText *pText; 15 | unsigned int Count; 16 | }; 17 | 18 | extern LGUIFactory FullTemplateFrameFactory; 19 | 20 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/Services.h: -------------------------------------------------------------------------------- 1 | #ifndef SERVICE 2 | #define SERVICE_SELF 3 | #define SERVICE(_name_,_callback_,_variable_) extern HISXSERVICE _variable_;extern void __cdecl _callback_(ISXInterface *pClient, unsigned int MSG, void *lpData); 4 | #endif 5 | // ---------------------------------------------------- 6 | // services 7 | 8 | SERVICE("FullTemplate Service",FullTemplateService,hFullTemplateService); 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | // ---------------------------------------------------- 22 | #ifdef SERVICE_SELF 23 | #undef SERVICE_SELF 24 | #undef SERVICE 25 | #endif -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/TopLevelObjects.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXFullTemplate.h" 2 | 3 | // A LavishScript Top-Level Object is similar to a global C++ object. The main difference is that 4 | // a TLO can give ANY data type it wants; it is not limited to a single type. You may wish to give 5 | // a different type depending on the index (parameters, dimensions, etc) for example. Usually, though, 6 | // you simply give one specific type. 7 | 8 | bool __cdecl TLO_FullTemplate(int argc, char *argv[], LSTYPEVAR &Dest) 9 | { 10 | // argc and argv are used if the object access uses an index, such as FullTemplate[1] or 11 | // FullTemplate[my coat,1,seventeen]. argc is the number of parameters (or dimensions) separated 12 | // by commas, and does NOT include the name of the object. 13 | 14 | // LSTYPEVAR, used for Dest, is a VarPtr with a Type. Type should be set to a pointer to a data type, 15 | // such as Dest.Type=pIntType for integers. Do not set the Type or return true if the data retrieval 16 | // fails (there is no object). For example, if the requested data is a string, and the string does 17 | // not exist, return false and do not set the type. 18 | 19 | Dest.DWord=1; 20 | Dest.Type=pFullTemplateType; 21 | return true; 22 | } 23 | -------------------------------------------------------------------------------- /ISXDK/35/samples/ISXFullTemplate/TopLevelObjects.h: -------------------------------------------------------------------------------- 1 | #ifndef TOPLEVELOBJECT 2 | #define TOPLEVELOBJECT_SELF 3 | #define TOPLEVELOBJECT(name,funcname) extern bool funcname(int argc, char *argv[], LSTYPEVAR &Ret); 4 | #endif 5 | 6 | // ---------------------------------------------------- 7 | // Top-Level Objects 8 | 9 | TOPLEVELOBJECT("FullTemplate",TLO_FullTemplate); 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | // ---------------------------------------------------- 28 | #ifdef TOPLEVELOBJECT_SELF 29 | #undef TOPLEVELOBJECT_SELF 30 | #undef TOPLEVELOBJECT 31 | #endif -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQArgb.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Argb type. 9 | /// 10 | public class EQArgb : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQArgb(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Alpha 19 | /// 20 | public int Alpha 21 | { 22 | get { return GetMember( "A"); } 23 | } 24 | 25 | /// 26 | /// Red 27 | /// 28 | public int Red 29 | { 30 | get { return GetMember( "R"); } 31 | } 32 | 33 | /// 34 | /// Green 35 | /// 36 | public int Green 37 | { 38 | get { return GetMember( "G"); } 39 | } 40 | 41 | /// 42 | /// Blue 43 | /// 44 | public int Blue 45 | { 46 | get { return GetMember( "B"); } 47 | } 48 | 49 | /// 50 | /// The integer formed by ARGB 51 | /// 52 | public int Int 53 | { 54 | get { return GetMember( "Int"); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQBody.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Body type. 9 | /// 10 | public class EQBody : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQBody(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The body types ID # 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// The full body type name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQBuff.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Buff type. 9 | /// 10 | public class EQBuff : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQBuff(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Remove the buff. 19 | /// 20 | public void Remove() 21 | { 22 | ExecuteMethod("Remove"); 23 | } 24 | 25 | /// 26 | /// The remaining damage absorbtion of the buff (if any). This is not entirely accurate, it will only show you to the Dar of your spell when it was initially cast, or what it was when you last zoned (whichever is more recent). 27 | /// 28 | public int Dar 29 | { 30 | get { return GetMember( "Dar"); } 31 | } 32 | 33 | /// 34 | /// The duration of the buff in ticks (time remaining, not total duration) 35 | /// 36 | public EQTicks Duration 37 | { 38 | get { return new EQTicks(GetMember("Duration")); } 39 | } 40 | 41 | /// 42 | /// The ID of the buff or shortbuff slot the buff is in 43 | /// 44 | public int ID 45 | { 46 | get { return GetMember( "ID"); } 47 | } 48 | 49 | /// 50 | /// The level of the person that cast the buff on you (not the level of the spell) 51 | /// 52 | public int Level 53 | { 54 | get { return GetMember( "Level"); } 55 | } 56 | 57 | /// 58 | /// The modifier to a bard song 59 | /// 60 | public float Mod 61 | { 62 | get { return GetMember("Mod"); } 63 | } 64 | 65 | /// 66 | /// The spell 67 | /// 68 | public EQSpell Spell 69 | { 70 | get { return new EQSpell(GetPersistentMember("Spell")); } 71 | } 72 | 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQCorpse.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Corpse type. 9 | /// 10 | public class EQCorpse : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQCorpse(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Item count on the corpse 19 | /// 20 | public int Items 21 | { 22 | get { return GetMember( "Items"); } 23 | } 24 | 25 | 26 | public EQItem Item(int Number) 27 | { 28 | return new EQItem(GetMember("Item", Number.ToString())); 29 | } 30 | public EQItem Item(string Partial_Name) 31 | { 32 | return new EQItem(GetMember("Item", Partial_Name)); 33 | } 34 | public EQItem Item(string Name, bool exact) 35 | { 36 | if (exact) 37 | Name.Insert(0, "="); 38 | return new EQItem(GetMember("Item", Name)); 39 | } 40 | 41 | /// 42 | /// Corpse open? 43 | /// 44 | public bool Open 45 | { 46 | get { return GetMember( "Open"); } 47 | } 48 | 49 | public static EQCorpse Corpse 50 | { 51 | get 52 | { 53 | return new EQCorpse(LavishScriptAPI.LavishScript.Objects.GetObject("Corpse")); 54 | } 55 | } 56 | 57 | } 58 | } 59 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQCurrentZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest CurrentZone type. 9 | /// 10 | public class EQCurrentZone : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQCurrentZone(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Gravity 19 | /// 20 | public float Gravity 21 | { 22 | get { return GetMember("Gravity"); } 23 | } 24 | 25 | /// 26 | /// Zone ID 27 | /// 28 | public int ID 29 | { 30 | get { return GetMember( "ID"); } 31 | } 32 | 33 | /// 34 | /// Maximum clip plane allowed in zone 35 | /// 36 | public float MaxClip 37 | { 38 | get { return GetMember("MaxClip"); } 39 | } 40 | 41 | /// 42 | /// Minimum clip plane allowed in zone 43 | /// 44 | public float MinClip 45 | { 46 | get { return GetMember("MinClip"); } 47 | } 48 | 49 | /// 50 | /// Full zone name 51 | /// 52 | public string Name 53 | { 54 | get { return GetMember( "Name"); } 55 | } 56 | 57 | /// 58 | /// Short zone name 59 | /// 60 | public string ShortName 61 | { 62 | get { return GetMember( "ShortName"); } 63 | } 64 | 65 | /// 66 | /// Sky type 67 | /// 68 | public int SkyType 69 | { 70 | get { return GetMember( "SkyType"); } 71 | } 72 | 73 | /// 74 | /// Zone type 75 | /// 76 | public int Type 77 | { 78 | get { return GetMember( "Type"); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDZMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest DZMember type. 9 | /// 10 | public class EQDZMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQDZMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The name of the member 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// The status of the member - will be one of the following: Unknown, Online, Offline, In Dynamic Zone, Link Dead 27 | /// 28 | public string Status 29 | { 30 | get { return GetMember( "Status"); } 31 | } 32 | 33 | 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDeity.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Deity type. 9 | /// 10 | public class EQDeity : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQDeity(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Deity ID number 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Deity name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | /// 34 | /// Deity team. For pvp servers only? 35 | /// 36 | public string Team 37 | { 38 | get { return GetMember( "Team"); } 39 | } 40 | 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQDynamicZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest DynamicZone type. 9 | /// 10 | public class EQDynamicZone : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQDynamicZone(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The leader of the dynamic zone 19 | /// 20 | public EQDZMember Leader 21 | { 22 | get { return new EQDZMember(GetMember("Leader")); } 23 | } 24 | 25 | /// 26 | /// Maximum number of characters that can enter this dynamic zone 27 | /// 28 | public int MaxMembers 29 | { 30 | get { return GetMember( "MaxMembers"); } 31 | } 32 | 33 | /// 34 | /// The dynamic zone member # 35 | /// 36 | public EQDZMember Member(int Number) 37 | { 38 | return new EQDZMember(GetMember("Member", Number.ToString())); 39 | } 40 | /// 41 | /// The dynamic zone member name 42 | /// 43 | public EQDZMember Member(string Name) 44 | { 45 | return new EQDZMember(GetMember("Member", Name)); 46 | } 47 | 48 | /// 49 | /// Current number of characters in the dynamic zone 50 | /// 51 | public int Members 52 | { 53 | get { return GetMember( "Members"); } 54 | } 55 | 56 | /// 57 | /// The full name of the dynamic zone 58 | /// 59 | public string Name 60 | { 61 | get { return GetMember( "Name"); } 62 | } 63 | 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQEvolvingItem.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest EvolvingItem type. 9 | /// 10 | public class EQEvolvingItem : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQEvolvingItem(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public float ExpPct 21 | { 22 | get { return GetMember("ExpPct"); } 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public bool ExpOn 29 | { 30 | get { return GetMember( "ExpOn"); } 31 | } 32 | 33 | /// 34 | /// 35 | /// 36 | public int Level 37 | { 38 | get { return GetMember( "Level"); } 39 | } 40 | 41 | /// 42 | /// 43 | /// 44 | public int MaxLevel 45 | { 46 | get { return GetMember( "MaxLevel"); } 47 | } 48 | 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQFellowshipMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest FellowshipMember type. 9 | /// 10 | public class EQFellowshipMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQFellowshipMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Player Name 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// zoneinfo for this player 27 | /// 28 | public EQZone Zone 29 | { 30 | get { return new EQZone(GetPersistentMember("Zone")); } 31 | } 32 | 33 | /// 34 | /// this player's level 35 | /// 36 | public int Level 37 | { 38 | get { return GetMember( "Level"); } 39 | } 40 | 41 | /// 42 | /// class info for this player 43 | /// 44 | public EQClass Class 45 | { 46 | get { return new EQClass(GetPersistentMember("Class")); } 47 | } 48 | 49 | /// 50 | /// when this player was last online 51 | /// 52 | public EQTicks LastOn 53 | { 54 | get { return new EQTicks(GetMember("LastOn")); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQGroup.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Group type. 9 | /// 10 | public class EQGroup : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQGroup(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Accesses #th member of your group; 0 is you, 1 is the first person in the group list, etc. 19 | /// 20 | public EQGroupMember Member(int Number) 21 | { 22 | return new EQGroupMember(GetMember("Member", Number.ToString())); 23 | } 24 | 25 | /// 26 | /// Which number in the group the PC with name is 27 | /// 28 | public int MemberNumber(string Name) 29 | { 30 | return GetMember( "Member", Name); 31 | } 32 | 33 | /// 34 | /// Total number of group members, excluding yourself 35 | /// 36 | public int Members 37 | { 38 | get { return GetMember( "Members"); } 39 | } 40 | 41 | /// 42 | /// The leader of your group 43 | /// 44 | public EQGroupMember Leader 45 | { 46 | get { return new EQGroupMember(GetMember("Leader")); } 47 | } 48 | 49 | 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQGroupMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest GroupMember type. 9 | /// 10 | public class EQGroupMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQGroupMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The name of the group member. This works even if they are not in the same zone as you. 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// Accesses the group member's spawn directly. This is only really needed to access Spawn.Name, instead of GroupMember.Name, as spawn is inherited automatically. 27 | /// 28 | public EQSpawn Spawn 29 | { 30 | get { return new EQSpawn(GetPersistentMember("Spawn")); } 31 | } 32 | 33 | /// 34 | /// TRUE if the member is the group's leader, FALSE otherwise 35 | /// 36 | public bool Leader 37 | { 38 | get { return GetMember( "Leader"); } 39 | } 40 | 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQHeading.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Heading type. 9 | /// 10 | public class EQHeading : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQHeading(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The long compass direction, eg. "south", "south by southeast" 19 | /// 20 | public string Name 21 | { 22 | get { return GetMember( "Name"); } 23 | } 24 | 25 | /// 26 | /// The short compass direction, eg. "S", "SSE" 27 | /// 28 | public string ShortName 29 | { 30 | get { return GetMember( "ShortName"); } 31 | } 32 | 33 | /// 34 | /// Heading in degrees (same as casting to float) 35 | /// 36 | public float Degrees 37 | { 38 | get { return GetMember("Degrees"); } 39 | } 40 | 41 | /// 42 | /// The nearest clock direction, e.g. 1-12 43 | /// 44 | public int Clock 45 | { 46 | get { return GetMember( "Clock"); } 47 | } 48 | 49 | /// 50 | /// Heading in degrees Counter-Clockwise (the way the rest of MQ2 and EQ uses it) 51 | /// 52 | public float DegreesCCW 53 | { 54 | get { return GetMember("DegreesCCW"); } 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQInvSlot.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest InventorySlot type. 9 | /// 10 | public class EQInvSlot : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQInvSlot(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Number of this item slot (usable directly by /itemnotify) 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Item contained by this item slot 27 | /// 28 | public EQItem Item 29 | { 30 | get { return new EQItem(GetMember("Item")); } 31 | } 32 | 33 | /// 34 | /// For inventory slots not inside packs, the slot name, otherwise NULL 35 | /// 36 | public string Name 37 | { 38 | get { return GetMember( "Name"); } 39 | } 40 | 41 | /// 42 | /// Container that must be opened to access the slot with /itemnotify 43 | /// 44 | public EQInvSlot Pack 45 | { 46 | get { return new EQInvSlot(GetPersistentMember("Pack")); } 47 | } 48 | 49 | /// 50 | /// Slot number inside the pack which holds the item, otherwise NULL 51 | /// 52 | public int Slot 53 | { 54 | get { return GetMember( "Slot"); } 55 | } 56 | 57 | 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQMerchant.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Ticks type. 9 | /// 10 | public class EQMerchant : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQMerchant(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Merchant full? 19 | /// 20 | public bool Full 21 | { 22 | get { return GetMember( "Full"); } 23 | } 24 | 25 | /// 26 | /// Number of items on the merchant 27 | /// 28 | public int Items 29 | { 30 | get { return GetMember( "Items"); } 31 | } 32 | 33 | public EQItem Item(int Number) 34 | { 35 | return new EQItem(GetMember("Item", Number.ToString())); 36 | } 37 | public EQItem Item(string partial_name) 38 | { 39 | return new EQItem(GetMember("Item", partial_name)); 40 | } 41 | public EQItem Item(string name, bool exact) 42 | { 43 | if (exact) 44 | name.Insert(0, "="); 45 | return new EQItem(GetMember("Item", name)); 46 | } 47 | 48 | /// 49 | /// The value used to calculate item values for merchant (Markup is what your charisma and faction change) * Markup*Cost=Merchant sell price. * Cost*(1/Markup)=Your sell price. 1.05 is the cap, so there might not be a cap based on Charisma. 50 | /// 51 | public float Markup 52 | { 53 | get { return GetMember("Markup"); } 54 | } 55 | 56 | /// 57 | /// Merchant open? 58 | /// 59 | public bool Open 60 | { 61 | get { return GetMember( "Open"); } 62 | } 63 | 64 | 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQRace.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Race type. 9 | /// 10 | public class EQRace : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQRace(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQRaidMember.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest RaidMember type. 9 | /// 10 | public class EQRaidMember : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQRaidMember(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Raid member's class (works without being in zone) 19 | /// 20 | public EQClass Class 21 | { 22 | get { return new EQClass(GetPersistentMember("Class")); } 23 | } 24 | 25 | /// 26 | /// Current group number (or 0) 27 | /// 28 | public int Group 29 | { 30 | get { return GetMember( "Group"); } 31 | } 32 | 33 | /// 34 | /// Group leader? 35 | /// 36 | public bool GroupLeader 37 | { 38 | get { return GetMember( "GroupLeader"); } 39 | } 40 | 41 | /// 42 | /// Raid member's level (works without being in zone) 43 | /// 44 | public int Level 45 | { 46 | get { return GetMember( "Level"); } 47 | } 48 | 49 | /// 50 | /// Allowed to loot with current loot rules and looters? 51 | /// 52 | public bool Looter 53 | { 54 | get { return GetMember( "Looter"); } 55 | } 56 | 57 | /// 58 | /// Allowed to loot with current loot rules and looters? 59 | /// 60 | public string Name 61 | { 62 | get { return GetMember( "Name"); } 63 | } 64 | 65 | /// 66 | /// Raid leader? 67 | /// 68 | public bool RaidLeader 69 | { 70 | get { return GetMember( "RaidLeader"); } 71 | } 72 | 73 | /// 74 | /// spawn object for this player if available (must be in zone) 75 | /// 76 | public EQSpawn Spawn 77 | { 78 | get { return new EQSpawn(GetPersistentMember("Spawn")); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQSkill.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Skill type. 9 | /// 10 | public class EQSkill : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQSkill(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Skill uses the kick/bash/slam/backstab/frenzy timer? 19 | /// 20 | public bool AltTimer 21 | { 22 | get { return GetMember( "AltTimer"); } 23 | } 24 | 25 | /// 26 | /// Skill number 27 | /// 28 | public int ID 29 | { 30 | get { return GetMember( "ID"); } 31 | } 32 | 33 | /// 34 | /// Minimum level for your class 35 | /// 36 | public int MinLevel 37 | { 38 | get { return GetMember( "MinLevel"); } 39 | } 40 | 41 | /// 42 | /// Name of the skill 43 | /// 44 | public string Name 45 | { 46 | get { return GetMember( "Name"); } 47 | } 48 | 49 | /// 50 | /// Reuse timer (what number format? ticks, seconds, deciseconds?) 51 | /// 52 | public int ReuseTime 53 | { 54 | get { return GetMember( "ReuseTime"); } 55 | } 56 | 57 | /// 58 | /// Skill cap based on your current level and class. 59 | /// 60 | public int SkillCap 61 | { 62 | get { return GetMember( "SkillCap"); } 63 | } 64 | 65 | /// 66 | /// Base skill level for your class 67 | /// 68 | public int StartingSkill 69 | { 70 | get { return GetMember( "StartingSkill"); } 71 | } 72 | 73 | 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQTicks.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Ticks type. 9 | /// 10 | public class EQTicks : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQTicks(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// The number of hours in HH:MM:SS (0-23) 19 | /// 20 | public int Hours 21 | { 22 | get { return GetMember( "Hours"); } 23 | } 24 | 25 | /// 26 | /// The number of minutes in HH:MM:SS (1-59) 27 | /// 28 | public int Minutes 29 | { 30 | get { return GetMember( "Minutes"); } 31 | } 32 | 33 | /// 34 | /// The number of seconds in HH:MM:SS (1-59) 35 | /// 36 | public int Seconds 37 | { 38 | get { return GetMember( "Seconds"); } 39 | } 40 | 41 | /// 42 | /// Time in the form MM:SS 43 | /// 44 | public string Time 45 | { 46 | get { return GetMember( "Time"); } 47 | } 48 | 49 | /// 50 | /// The total number of minutes 51 | /// 52 | public int TotalMinutes 53 | { 54 | get { return GetMember( "TotalMinutes"); } 55 | } 56 | 57 | /// 58 | /// The total number of seconds 59 | /// 60 | public int TotalSeconds 61 | { 62 | get { return GetMember( "TotalSeconds"); } 63 | } 64 | 65 | /// 66 | /// The value in ticks 67 | /// 68 | public int Ticks 69 | { 70 | get { return GetMember( "Ticks"); } 71 | } 72 | 73 | /// 74 | /// Time in the form HH:MM:SS (if there are no hours, the form will be MM:SS) 75 | /// 76 | public string TimeHMS 77 | { 78 | get { return GetMember( "TimeHMS"); } 79 | } 80 | 81 | 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQTimer.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Timer type. 9 | /// 10 | public class EQTimer : LavishScriptAPI.LavishScriptObject 11 | { 12 | public EQTimer(LavishScriptAPI.LavishScriptObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// 19 | /// 20 | public void Reset() 21 | { 22 | ExecuteMethod("Reset"); 23 | } 24 | 25 | /// 26 | /// 27 | /// 28 | public void Expire() 29 | { 30 | ExecuteMethod("Expire"); 31 | } 32 | 33 | /// 34 | /// 35 | /// 36 | public void Set() 37 | { 38 | ExecuteMethod("Set"); 39 | } 40 | 41 | 42 | 43 | /// 44 | /// Current value of the timer 45 | /// 46 | public int Value 47 | { 48 | get { return GetMember( "Value"); } 49 | } 50 | 51 | /// 52 | /// Original value of the timer 53 | /// 54 | public int OriginalValue 55 | { 56 | get { return GetMember( "OriginalValue"); } 57 | } 58 | 59 | 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /ISXEQ.NET/EQTypes/EQZone.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using LavishVMAPI; 4 | 5 | namespace ISXEQ.EQTypes 6 | { 7 | /// 8 | /// The MacroQuest Zone type. 9 | /// 10 | public class EQZone : LavishScriptAPI.LavishScriptPersistentObject 11 | { 12 | public EQZone(LavishScriptAPI.LavishScriptPersistentObject lavishObj) 13 | : base(lavishObj) 14 | { 15 | } 16 | 17 | /// 18 | /// Zone ID 19 | /// 20 | public int ID 21 | { 22 | get { return GetMember( "ID"); } 23 | } 24 | 25 | /// 26 | /// Full zone name 27 | /// 28 | public string Name 29 | { 30 | get { return GetMember( "Name"); } 31 | } 32 | 33 | /// 34 | /// Short zone name 35 | /// 36 | public string ShortName 37 | { 38 | get { return GetMember( "ShortName"); } 39 | } 40 | 41 | 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /ISXEQ.NET/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // General Information about an assembly is controlled through the following 6 | // set of attributes. Change these attribute values to modify the information 7 | // associated with an assembly. 8 | [assembly: AssemblyTitle("ISXEQ.NET")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("")] 12 | [assembly: AssemblyProduct("ISXEQ.NET")] 13 | [assembly: AssemblyCopyright("Copyright © 2008")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // Setting ComVisible to false makes the types in this assembly not visible 18 | // to COM components. If you need to access a type in this assembly from 19 | // COM, set the ComVisible attribute to true on that type. 20 | [assembly: ComVisible(false)] 21 | 22 | // The following GUID is for the ID of the typelib if this project is exposed to COM 23 | [assembly: Guid("4a89e77e-cac5-49b0-a872-ae1c1fc65314")] 24 | 25 | // Version information for an assembly consists of the following four values: 26 | // 27 | // Major Version 28 | // Minor Version 29 | // Build Number 30 | // Revision 31 | // 32 | // You can specify all the values or you can default the Revision and Build Numbers 33 | // by using the '*' as shown below: 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /ISXEQClient.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License, version 2, as published by 6 | the Free Software Foundation. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | ******************************************************************************/ 13 | 14 | #ifndef _MQ2PLUGIN_H 15 | #define _MQ2PLUGIN_H 16 | 17 | #define MQ2PLUGIN 18 | #ifndef ISXEQ 19 | #ifndef ISXEQ_LEGACY 20 | #define ISXEQ 21 | #endif 22 | #endif 23 | #include "MQ2Main/MQ2Main.h" 24 | #include "MQ2Main/MQ2Globals.h" 25 | 26 | #pragma comment(lib, "isxdk.lib") 27 | #pragma comment(lib, "ISXEQ") 28 | 29 | #ifdef EQLIB_EXPORTS 30 | #pragma message("EQLIB_EXPORTS") 31 | #else 32 | #pragma message("EQLIB_IMPORTS") 33 | #endif 34 | 35 | #define PLUGIN_API extern "C" __declspec(dllexport) 36 | 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacy.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "../ISXEQClient.h" 3 | #define __LSTYPE_H__ 4 | #define LSTYPEVAR DATAVAR 5 | #define LSOBJECT DATAVAR 6 | #pragma pack(push) 7 | #pragma pack(8) 8 | #include 9 | #pragma pack(pop) 10 | 11 | class ISXEQLegacy : 12 | public ISXInterface 13 | { 14 | public: 15 | 16 | virtual bool Initialize(ISInterface *p_ISInterface); 17 | virtual void Shutdown(); 18 | 19 | void LoadSettings(); 20 | void ConnectServices(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterServices(); 25 | 26 | }; 27 | 28 | extern ISInterface *pISInterface; 29 | extern HISXSERVICE hPulseService; 30 | extern HISXSERVICE hMemoryService; 31 | extern HISXSERVICE hServicesService; 32 | extern HISXSERVICE hScriptEngineService; 33 | 34 | extern HISXSERVICE hEQChatService; 35 | extern HISXSERVICE hEQUIService; 36 | extern HISXSERVICE hEQGamestateService; 37 | extern HISXSERVICE hEQSpawnService; 38 | extern HISXSERVICE hEQZoneService; 39 | 40 | extern ISXEQLegacy *pExtension; 41 | #define printf pISInterface->Printf 42 | 43 | #undef EzDetour 44 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 45 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 46 | 47 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 48 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 51 | 52 | #include "ISXEQLegacyEngine.h" 53 | extern class ISXEQLegacyEngine g_LegacyEngine; 54 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacyEngine.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #include "ISXEQLegacy.h" 16 | #include "isxeqlegacyengine.h" 17 | 18 | ISXEQLegacyEngine::ISXEQLegacyEngine(void) 19 | { 20 | } 21 | 22 | ISXEQLegacyEngine::~ISXEQLegacyEngine(void) 23 | { 24 | } 25 | 26 | bool ISXEQLegacyEngine::GetCaps(ISXSCRIPTENGINECAPS &Dest) 27 | { 28 | if (Dest.Sizeof==sizeof(ISXSCRIPTENGINECAPS)) 29 | { 30 | Dest.bMultipleScripts=false; 31 | Dest.bPersistent=true; 32 | Dest.bPreprocessor=true; 33 | return true; 34 | } 35 | return false; 36 | } 37 | 38 | extern void Heartbeat(); 39 | void ISXEQLegacyEngine::Pulse() 40 | { 41 | Heartbeat(); 42 | } 43 | 44 | bool ISXEQLegacyEngine::ExecuteScript(const char *FullFilename, int argc, char *argv[]) 45 | { 46 | char MacroLine[2048]={0}; 47 | 48 | if (argc) 49 | { 50 | char *pOut=MacroLine; 51 | pOut+=sprintf(MacroLine,"\"%s\" ",FullFilename); 52 | pISInterface->GetArgs(0,argc,argv,pOut); 53 | } 54 | else 55 | { 56 | sprintf(MacroLine,"\"%s\"",FullFilename); 57 | } 58 | 59 | Macro((PSPAWNINFO)pCharSpawn,MacroLine); 60 | return true; 61 | } 62 | 63 | bool ISXEQLegacyEngine::EndScript(const char *Name) 64 | { 65 | EndMacro((PSPAWNINFO)pCharSpawn,""); 66 | return true; 67 | } 68 | 69 | unsigned long __stdcall MQ2DataVariableLookup(char * VarName, char * Value) 70 | { 71 | strcpy(Value,VarName); 72 | return strlen(ParseMacroParameter(GetCharInfo()->pSpawn,Value)); 73 | } 74 | 75 | 76 | 77 | -------------------------------------------------------------------------------- /ISXEQLegacy/ISXEQLegacyEngine.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | class ISXEQLegacyEngine : 4 | public ISXScriptEngine 5 | { 6 | public: 7 | ISXEQLegacyEngine(void); 8 | ~ISXEQLegacyEngine(void); 9 | 10 | virtual const char *GetName() 11 | { 12 | return "LegacyMQ2"; 13 | } 14 | virtual const char *GetVersion() // used by extensions. implement however you want 15 | { 16 | return "1.00"; 17 | } 18 | virtual bool GetCaps(ISXSCRIPTENGINECAPS &Dest); // used by extensions to retrieve engine capabilities 19 | 20 | virtual void Pulse(); // for persistent scripts, use this to process microthreads, etc. 21 | 22 | virtual bool ExecuteScript(const char *FullFilename, int argc, char *argv[]); // used by RunScript command 23 | virtual bool EndScript(const char *Name); // used by EndScript 24 | }; 25 | 26 | -------------------------------------------------------------------------------- /ISXEQLegacy/LegacyGlobals.cpp: -------------------------------------------------------------------------------- 1 | #include "ISXEQLegacy.h" 2 | 3 | namespace MQ2Globals 4 | { 5 | 6 | PDATAVAR pGlobalVariables=0; 7 | PDATAVAR pMacroVariables=0; 8 | 9 | PMACROBLOCK gMacroBlock = NULL; 10 | PMACROSTACK gMacroStack = NULL; 11 | map gMacroSubLookupMap; 12 | PEVENTQUEUE gEventQueue = NULL; 13 | PMACROBLOCK gEventFunc[NUM_EVENTS] = {NULL}; 14 | 15 | Blech *pMQ2Blech=0; 16 | CHAR EventMsg[MAX_STRING]={0}; 17 | #ifdef USEBLECHEVENTS 18 | Blech *pEventBlech = 0; 19 | #endif 20 | PEVENTLIST pEventList = NULL; 21 | 22 | }; 23 | -------------------------------------------------------------------------------- /MQ2-API.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/MQ2-API.chm -------------------------------------------------------------------------------- /MQ2Auth.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/MQ2Auth.exe -------------------------------------------------------------------------------- /MQ2AutoLogin/ISXEQAutoLogin.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include 3 | 4 | 5 | class ISXEQAutoLogin : 6 | public ISXInterface 7 | { 8 | public: 9 | 10 | virtual bool Initialize(ISInterface *p_ISInterface); 11 | virtual void Shutdown(); 12 | 13 | void LoadSettings(); 14 | void ConnectServices(); 15 | void RegisterCommands(); 16 | void RegisterAliases(); 17 | void RegisterDataTypes(); 18 | void RegisterTopLevelObjects(); 19 | void RegisterServices(); 20 | 21 | void DisconnectServices(); 22 | void UnRegisterCommands(); 23 | void UnRegisterAliases(); 24 | void UnRegisterDataTypes(); 25 | void UnRegisterTopLevelObjects(); 26 | void UnRegisterServices(); 27 | 28 | }; 29 | 30 | extern ISInterface *pISInterface; 31 | extern HISXSERVICE hPulseService; 32 | extern HISXSERVICE hMemoryService; 33 | extern HISXSERVICE hServicesService; 34 | 35 | extern HISXSERVICE hEQChatService; 36 | extern HISXSERVICE hEQUIService; 37 | extern HISXSERVICE hEQGamestateService; 38 | extern HISXSERVICE hEQSpawnService; 39 | extern HISXSERVICE hEQZoneService; 40 | 41 | extern ISXEQAutoLogin *pExtension; 42 | #define printf pISInterface->Printf 43 | 44 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 45 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 46 | 47 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 48 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 51 | 52 | extern LSType *pStringType; 53 | extern LSType *pIntType; 54 | extern LSType *pBoolType; 55 | extern LSType *pFloatType; 56 | extern LSType *pTimeType; 57 | extern LSType *pByteType; 58 | -------------------------------------------------------------------------------- /MQ2AutoLogin/MQ2AutoLogin.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {88bfac3a-75d5-44ef-883c-44da15d732ef} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {82b04263-17d1-4e43-ae37-7f05bd584d79} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {5c7a0f0b-8d0c-4645-b3b1-76e09413d3f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Bzsrch/MQ2Bzsrch.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {b9414d2b-fb1b-47d8-ad13-d6dcf5d2dfc2} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {e520224b-e4f7-4056-b4df-5e60c129a6ef} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {c2fcef30-4280-4a46-a5ce-5f430e713606} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | 26 | 27 | Header Files 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /MQ2Chat/ISXEQChat.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQChat : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQChat *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Chat/ISXEQChat.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {50087621-a51a-44e8-bc80-f5e9a263bd47} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {d49a6ab1-764c-4c22-a9d3-23ae77c80b92} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e4962630-6a07-47ac-8a4a-42970e68698a} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Chat/MQ2Chat.cpp: -------------------------------------------------------------------------------- 1 | // MQ2Chat.cpp : Defines the entry point for the DLL application. 2 | // The "old" chat plugin 3 | 4 | 5 | 6 | #include "../MQ2Plugin.h" 7 | 8 | PreSetup("MQ2Chat"); 9 | 10 | 11 | PLUGIN_API VOID InitializePlugin(VOID) 12 | { 13 | DebugSpewAlways("Initializing MQ2Chat"); 14 | // Add commands, macro parameters, hooks, etc. 15 | } 16 | 17 | PLUGIN_API VOID ShutdownPlugin(VOID) 18 | { 19 | DebugSpewAlways("Shutting down MQ2Chat"); 20 | 21 | // Remove commands, macro parameters, hooks, etc. 22 | } 23 | 24 | PLUGIN_API DWORD OnWriteChatColor(PCHAR Line, DWORD Color, DWORD Filter) 25 | { 26 | // This is called every time WriteChatColor is called by MQ2Main or any plugin, 27 | // IGNORING FILTERS, IF YOU NEED THEM MAKE SURE TO IMPLEMENT THEM. IF YOU DONT 28 | // CALL CEverQuest::dsp_chat MAKE SURE TO IMPLEMENT EVENTS HERE 29 | CHAR Stripped[MAX_STRING]; 30 | StripMQChat(Line,Stripped); 31 | if (gFilterMacro == FILTERMACRO_NONE) return 0; 32 | if (!ppEverQuest) return 0; 33 | if (gGameState!=GAMESTATE_INGAME) return 0; 34 | 35 | if (!pEverQuest) 36 | return 0; 37 | dsp_chat_no_events(Stripped,Color,1); 38 | return 0; 39 | } 40 | 41 | -------------------------------------------------------------------------------- /MQ2Chat/MQ2Chat.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {1d9df4ba-4f99-4386-8a95-bc573b5d49cc} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {631973e7-7a23-4cfa-8555-d0eb30089fc2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {990343ba-020c-41b4-b93c-67f8698d6f6d} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ChatWnd/ISXEQChatWnd.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | class ISXEQChatWnd : public ISXInterface 8 | { 9 | public: 10 | virtual bool Initialize(ISInterface *p_ISInterface); 11 | virtual void Shutdown(); 12 | }; 13 | 14 | extern ISInterface *pISInterface; 15 | extern HISXSERVICE hPulseService; 16 | extern HISXSERVICE hMemoryService; 17 | extern HISXSERVICE hServicesService; 18 | 19 | extern HISXSERVICE hEQChatService; 20 | extern HISXSERVICE hEQUIService; 21 | extern HISXSERVICE hEQGamestateService; 22 | extern HISXSERVICE hEQSpawnService; 23 | extern HISXSERVICE hEQZoneService; 24 | 25 | extern ISXEQChatWnd *pExtension; 26 | 27 | #define printf pISInterface->Printf 28 | 29 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 30 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 31 | 32 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 33 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 34 | 35 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 36 | -------------------------------------------------------------------------------- /MQ2ChatWnd/ISXEQChatWnd.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {6a73d98c-ad28-4895-b8bb-56dc505f3f30} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {cdb0cdce-0918-4a29-9c0c-112c3cf470ef} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {45949a93-f710-4945-b334-47750ad2bbe3} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ChatWnd/MQ2ChatWnd.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {b760885f-21bf-4133-9886-15b5d84278df} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {9a23aefd-549d-44b3-acbc-13553ad85ff2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {45684388-0703-40ee-a0fc-f1730bd05728} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2CustomBinds/ISXEQCustomBinds.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQCustomBinds : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void ConnectServices(); 17 | void RegisterCommands(); 18 | void RegisterAliases(); 19 | void RegisterDataTypes(); 20 | void RegisterTopLevelObjects(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterCommands(); 25 | void UnRegisterAliases(); 26 | void UnRegisterDataTypes(); 27 | void UnRegisterTopLevelObjects(); 28 | void UnRegisterServices(); 29 | 30 | }; 31 | 32 | extern ISInterface *pISInterface; 33 | extern HISXSERVICE hPulseService; 34 | extern HISXSERVICE hMemoryService; 35 | extern HISXSERVICE hServicesService; 36 | 37 | extern HISXSERVICE hEQChatService; 38 | extern HISXSERVICE hEQUIService; 39 | extern HISXSERVICE hEQGamestateService; 40 | extern HISXSERVICE hEQSpawnService; 41 | extern HISXSERVICE hEQZoneService; 42 | 43 | extern ISXEQCustomBinds *pExtension; 44 | #define printf pISInterface->Printf 45 | 46 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 47 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 48 | 49 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 50 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 51 | 52 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 53 | 54 | extern LSType *pStringType; 55 | extern LSType *pIntType; 56 | extern LSType *pBoolType; 57 | extern LSType *pFloatType; 58 | extern LSType *pTimeType; 59 | extern LSType *pByteType; 60 | -------------------------------------------------------------------------------- /MQ2CustomBinds/ISXEQCustomBinds.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4f1f2452-0182-4168-87ab-d30748dacef9} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {411e81f9-4e41-4607-ba08-45fcf4add6b2} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {2c00d392-339c-4fd0-8160-ac05b4c6f082} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2CustomBinds/MQ2CustomBinds.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {532c0af6-a9d2-4cea-8ad8-dfaef5f3943d} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {8f371e79-1a44-4e1c-a01e-36e5ad4163ca} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {1a53f5f7-87dc-4696-9137-17eb4ce2ed25} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQBugFix/MQ2EQBugFix.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {7db2e500-2281-455d-b431-b8222582e8e3} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5deaef87-5551-4bdf-8680-2125af1f9025} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {60b881be-00fd-492c-9abf-90509db35ecf} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQIM/ISXEQEQIM.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQEQIM : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQEQIM *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2EQIM/ISXEQEQIM.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {02949806-da2b-4437-810f-33a45a4b1065} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {737f0547-d1ce-4aa1-97e8-4d2c9e6805cb} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {bd9b1133-8355-4b18-a881-b22214c4c499} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2EQIM/MQ2EQIM.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {eacc7fbd-0ecd-4f20-b489-e4e940ed34dd} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {6e893806-d862-43f0-a918-951f79b9a69f} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {e93f0fa6-7efe-42cb-9290-69f4c649b60d} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Ext/makefile: -------------------------------------------------------------------------------- 1 | DXSDK=..\dxsdk81 2 | OUTDIR=..\Release 3 | INTDIR=.\Release 4 | 5 | ALL : "$(OUTDIR)\mqext.dll" 6 | 7 | 8 | CLEAN : 9 | -@erase "$(INTDIR)\*.obj" 10 | -@erase "$(INTDIR)\*.res" 11 | -@erase "$(INTDIR)\*.idb" 12 | -@erase "$(OUTDIR)\mqext.dll" 13 | -@erase "$(OUTDIR)\mqext.pdb" 14 | 15 | "$(OUTDIR)" : 16 | if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 17 | 18 | "$(INTDIR)" : 19 | if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" 20 | 21 | CPP=cl.exe 22 | #CPP_PROJ=/nologo /MTd /W3 /Gm /GX /ZI /Od /I "d:\DXSDK\include" /D "_USRDLL" /D "MQEXT_EXPORTS" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "CINTERFACE" /Fp"$(INTDIR)\eqlib.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /GZ /c 23 | 24 | CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "$(DXSDK)\include" /D "_USRDLL" /D "MQEXT_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "CINTERFACE" /Fp"$(INTDIR)\mqext.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /Zi /Zp1 25 | 26 | .cpp{$(INTDIR)}.obj:: 27 | $(CPP) $(CPP_PROJ) $< 28 | 29 | .c{$(INTDIR)}.obj:: 30 | $(CPP) $(CPP_PROJ) $< 31 | 32 | .cpp.cod: 33 | $(CPP) $(CPP_PROJ) $< -FAcs -Fa$*.cod 34 | 35 | .rc{$(INTDIR)}.res:: 36 | $(RSC) $(RSC_PROJ) $< 37 | 38 | RSC=rc.exe 39 | RSC_PROJ=/l 0x409 /fo"$(INTDIR)\mqext.res" /d "NDEBUG" 40 | 41 | LINK32=link.exe 42 | 43 | LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib ws2_32.lib /nologo /dll /incremental:no /debug /pdb:"$(OUTDIR)\mqext.pdb" /machine:I386 /out:"$(OUTDIR)\mqext.dll" /implib:"$(OUTDIR)\mqext.lib" /def:mqext.def 44 | 45 | !if "$(_NMAKE_VER)" == "7.00.9466" 46 | LINK32_FLAGS=$(LINK32_FLAGS) /libpath:"..\Detours\lib" 47 | !elseif "$(_NMAKE_VER)" == "6.00.8168.0" 48 | LINK32_FLAGS=$(LINK32_FLAGS) /libpath:"..\Detours\lib60" 49 | !elseif "$(COMPILER)" == "6" 50 | LINK32_FLAGS=$(LINK32_FLAGS) /libpath:"..\Detours\lib" 51 | !elseif "$(COMPILER)" == "7" 52 | LINK32_FLAGS=$(LINK32_FLAGS) /libpath:"..\Detours\lib60" 53 | !else 54 | !message Cannot determine compiler version. 55 | !message use set COMPILER=6 56 | !message or set COMPILER=7 57 | !message as appropriate 58 | !endif 59 | LINK32_OBJS= \ 60 | "$(INTDIR)\exts.obj" \ 61 | "$(INTDIR)\exts2.obj" \ 62 | "$(INTDIR)\mqext.obj" \ 63 | "$(INTDIR)\mqext.res" 64 | 65 | "$(OUTDIR)\mqext.dll" : "$(INTDIR)" "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 66 | $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS) 67 | 68 | -------------------------------------------------------------------------------- /MQ2Ext/mqext.c: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | mqext.dll: NTSD extensions for EQLib.dll 3 | Copyright (C) 2002 Plazmic 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #include "mqext.h" 16 | 17 | #include 18 | 19 | // 20 | // globals 21 | // 22 | #if defined(EXT_API_VERSION_NUMBER64) 23 | EXT_API_VERSION ApiVersion = { (VER_PRODUCTVERSION_W >> 8), (VER_PRODUCTVERSION_W & 0xff), EXT_API_VERSION_NUMBER64, 0 }; 24 | #else 25 | EXT_API_VERSION ApiVersion = { (VER_PRODUCTVERSION_W >> 8), (VER_PRODUCTVERSION_W & 0xff), EXT_API_VERSION_NUMBER, 0 }; 26 | #endif 27 | WINDBG_EXTENSION_APIS ExtensionApis; 28 | ULONG SavedMajorVersion; 29 | ULONG SavedMinorVersion; 30 | 31 | DllInit( 32 | HANDLE hModule, 33 | DWORD dwReason, 34 | DWORD dwReserved 35 | ) 36 | { 37 | switch (dwReason) { 38 | case DLL_THREAD_ATTACH: 39 | break; 40 | 41 | case DLL_THREAD_DETACH: 42 | break; 43 | 44 | case DLL_PROCESS_DETACH: 45 | break; 46 | 47 | case DLL_PROCESS_ATTACH: 48 | break; 49 | } 50 | 51 | return TRUE; 52 | } 53 | 54 | 55 | VOID 56 | WinDbgExtensionDllInit( 57 | PWINDBG_EXTENSION_APIS lpExtensionApis, 58 | USHORT MajorVersion, 59 | USHORT MinorVersion 60 | ) 61 | { 62 | ExtensionApis = *lpExtensionApis; 63 | 64 | SavedMajorVersion = MajorVersion; 65 | SavedMinorVersion = MinorVersion; 66 | 67 | return; 68 | } 69 | 70 | LPEXT_API_VERSION 71 | ExtensionApiVersion( 72 | VOID 73 | ) 74 | { 75 | return &ApiVersion; 76 | } 77 | 78 | // 79 | // Routine called by debugger after load 80 | // 81 | VOID 82 | CheckVersion( 83 | VOID 84 | ) 85 | { 86 | return; 87 | } 88 | -------------------------------------------------------------------------------- /MQ2Ext/mqext.def: -------------------------------------------------------------------------------- 1 | ;-------------------------------------------------------------------- 2 | ; 3 | ; Module: 4 | ; mqext.def 5 | ;-------------------------------------------------------------------- 6 | EXPORTS 7 | ;-------------------------------------------------------------------- 8 | ; These are the extensions exported by dll 9 | ;-------------------------------------------------------------------- 10 | inv 11 | pack 12 | help 13 | exportallspells 14 | pchar 15 | pchar2 16 | pspawn 17 | pitem 18 | pgroundspawn 19 | pdoor 20 | pswitch 21 | pspellbuff 22 | pspell 23 | pzone 24 | pzoneinfo 25 | plootcorpse 26 | plootwnd 27 | ptradeskillwnd 28 | precipe 29 | ppetinfownd 30 | pguildwnd 31 | pguildmemberinfo 32 | praidwnd 33 | praid 34 | paltability 35 | ptmp 36 | 37 | ; pcmdlist 38 | ;-------------------------------------------------------------------- 39 | ; 40 | ; these are the extension service functions provided for the debugger 41 | ; 42 | ;-------------------------------------------------------------------- 43 | 44 | CheckVersion 45 | WinDbgExtensionDllInit 46 | ExtensionApiVersion 47 | -------------------------------------------------------------------------------- /MQ2Ext/mqext.h: -------------------------------------------------------------------------------- 1 | /*++ 2 | Module: 3 | mqext.h 4 | 5 | Common header file for extensions 6 | --*/ 7 | #include 8 | #define KDEXT_64BIT 9 | #include "wdbgexts.h" 10 | -------------------------------------------------------------------------------- /MQ2Ext/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by mqext.rc 4 | // 5 | 6 | // Next default values for new objects 7 | // 8 | #ifdef APSTUDIO_INVOKED 9 | #ifndef APSTUDIO_READONLY_SYMBOLS 10 | #define _APS_NO_MFC 1 11 | #define _APS_NEXT_RESOURCE_VALUE 101 12 | #define _APS_NEXT_COMMAND_VALUE 40001 13 | #define _APS_NEXT_CONTROL_VALUE 1000 14 | #define _APS_NEXT_SYMED_VALUE 101 15 | #endif 16 | #endif 17 | -------------------------------------------------------------------------------- /MQ2Ext/test.cpp: -------------------------------------------------------------------------------- 1 | #define WIN32_LEAN_AND_MEAN 2 | #define _WIN32_WINNT 0x510 3 | #define DIRECTINPUT_VERSION 0x800 4 | 5 | #include 6 | #include 7 | #include 8 | #include "dinput.h" 9 | #include 10 | #include 11 | #include 12 | #include 13 | #include 14 | #include 15 | #include "../eqlib/mq.h" 16 | 17 | main() 18 | { 19 | PCHARINFO p = NULL; 20 | 21 | printf("offset Plat 0x%x\n", &p->Plat); 22 | printf("offset GuildID 0x%x\n", &p->GuildID); 23 | printf("offset BankCopper 0x%x\n", &p->BankCopper); 24 | printf("offset AutoSplit 0x%x\n", &p->AutoSplit); 25 | printf("offset hungerlevel 0x%x\n", &p->hungerlevel); 26 | printf("offset AAExp 0x%x\n", &p->AAExp); 27 | } 28 | -------------------------------------------------------------------------------- /MQ2HUD/MQ2HUD.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {1b4b12d1-e6ab-41d4-b0ba-9321d09024b5} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {3718dc77-e4e5-4adb-807b-d16e58327541} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {da25492b-f40f-4b37-814d-50f2ba4e41dd} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Irc/MQ2Irc.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {72ac4fb4-8ef5-437c-8cf6-423ebc066226} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {1cfb6775-cca2-4a9b-8997-55b37096dcc7} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {ff692b3c-54ff-4e74-94e4-bbc5c69de75c} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Irc/mqirc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/MQ2Irc/mqirc.h -------------------------------------------------------------------------------- /MQ2ItemDisplay/ISXEQItemDisplay.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQItemDisplay : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQItemDisplay *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/ISXEQItemDisplay.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {869aa832-6dfe-4def-b75a-8dacfa48e52f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7767c691-6bbe-44a2-afbc-82941f6e9608} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {0876abe4-ee87-4dc3-901c-8cd4989db066} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2ItemDisplay/MQ2ItemDisplay.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {7919992d-761a-4b6e-9195-154f4d452890} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5b446a35-1fb8-473a-b696-a8434ab48b66} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {87782a9d-3dd7-4a76-bb4f-4e14458e5909} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Labels/ISXEQLabels.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQLabels : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQLabels *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Labels/ISXEQLabels.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {0ab53821-92cd-4fd7-8e98-79db743207ff} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {d6795130-916b-49d6-a880-bcd5290b926a} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {4cc4a2f3-8f43-471d-ad8f-09e42760a0f3} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Labels/MQ2Labels.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {990de73a-23c4-4f38-b4a9-a100226eb601} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7df92b19-387d-4e3e-9db7-518043476ea9} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {8f49529d-7a25-4f28-8c74-431243abfd8c} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQCommandList.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | COMMAND("Keypress",CMD_Keypress,true,false); 16 | COMMAND("EQExecute",CMD_EQExecute,true,false); 17 | COMMAND("MQ2Bind",CMD_MQ2Bind,true,false); 18 | COMMAND("Who",CMD_Who,true,false); 19 | COMMAND("Beep",CMD_Beep,true,false); 20 | COMMAND("Ranged",CMD_do_ranged,true,false); 21 | COMMAND("SetAutoRun",CMD_SetAutoRun,true,false); 22 | COMMAND("DisplayLoginName",CMD_DisplayLoginName,true,false); 23 | COMMAND("PopupText",CMD_PopupText,true,false); 24 | COMMAND("BuyItem",CMD_BuyItem,true,false); 25 | COMMAND("SellItem",CMD_SellItem,true,false); 26 | COMMAND("Target",CMD_Target,true,false); 27 | COMMAND("WhoFilter",CMD_WhoFilter,true,false); 28 | COMMAND("Where",CMD_Where,true,false); 29 | COMMAND("CastSpell",CMD_CastSpell,true,false); 30 | COMMAND("MemSpell",CMD_MemSpell,true,false); 31 | COMMAND("DoAbility",CMD_DoAbility,true,false); 32 | COMMAND("NoModKey",CMD_EQModKey,true,false); 33 | COMMAND("ctrl",CMD_EQModKey,true,false); 34 | COMMAND("alt",CMD_EQModKey,true,false); 35 | COMMAND("shift",CMD_EQModKey,true,false); 36 | COMMAND("destroy",CMD_EQDestroy,true,false); 37 | COMMAND("face",CMD_EQFace,true,false); 38 | COMMAND("look",CMD_EQLook,true,false); 39 | COMMAND("items",CMD_EQItems,true,false); 40 | COMMAND("eqecho",CMD_EQEcho,true,false); 41 | //COMMAND("EQAlias",CMD_EQAlias,true,false); // deprecated 42 | COMMAND("doortarget",CMD_DoorTarget,true,false); 43 | COMMAND("itemtarget",CMD_ItemTarget,true,false); 44 | COMMAND("pickzone", CMD_PickZone, true, false); 45 | COMMAND("click", Click, true, false); 46 | COMMAND("beepontells", CMD_BeepOnTells, true, false); 47 | COMMAND("timestamp", CMD_TimeStampChat, true, false); 48 | COMMAND("flashontells", CMD_FlashOnTells, true, false); 49 | COMMAND("useitem", CMD_UseItem,true,false); 50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQCommands.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #define COMMAND(name,cmd,parse,hide) EQLIB_API int cmd(int argc, char *argv[]) 16 | #include "ISXEQCommandList.h" 17 | #undef COMMAND 18 | 19 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQDataTypes.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQServices.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | struct _EQChat 4 | { 5 | PCHAR Line; 6 | DWORD Color; 7 | BOOL Filtered; 8 | }; 9 | 10 | #define CHATSERVICE_INCOMING ((ISXSERVICE_MSG)+1) 11 | #define CHATSERVICE_OUTGOING ((ISXSERVICE_MSG)+2) 12 | 13 | #define UISERVICE_CLEANUP ((ISXSERVICE_MSG)+1) 14 | #define UISERVICE_RELOAD ((ISXSERVICE_MSG)+2) 15 | 16 | #define GAMESTATESERVICE_CHANGED ((ISXSERVICE_MSG)+1) 17 | 18 | #define SPAWNSERVICE_ADDSPAWN ((ISXSERVICE_MSG)+1) 19 | #define SPAWNSERVICE_REMOVESPAWN ((ISXSERVICE_MSG)+2) 20 | #define SPAWNSERVICE_ADDITEM ((ISXSERVICE_MSG)+3) 21 | #define SPAWNSERVICE_REMOVEITEM ((ISXSERVICE_MSG)+4) 22 | #define SPAWNSERVICE_ADDGM ((ISXSERVICE_MSG)+5) 23 | #define SPAWNSERVICE_REMOVEGM ((ISXSERVICE_MSG)+6) 24 | 25 | #define ZONESERVICE_BEGINZONE ((ISXSERVICE_MSG)+1) 26 | #define ZONESERVICE_ENDZONE ((ISXSERVICE_MSG)+2) 27 | #define ZONESERVICE_ZONED ((ISXSERVICE_MSG)+3) 28 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQTopLevelObjects.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #if !defined(CINTERFACE) 16 | #error /DCINTERFACE 17 | #endif 18 | 19 | #define DBG_SPEW 20 | 21 | #include "..\MQ2Main.h" 22 | 23 | #define TLO(funcname) bool funcname(int argc, char *argv[], LSTYPEVAR &Ret) 24 | 25 | TLO(dataNearestDoor) 26 | { 27 | DWORD Count = 0; 28 | FLOAT cDistance = 100000.0f; 29 | PDOORTABLE pDoorTable = (PDOORTABLE)pSwitchMgr; 30 | 31 | if (pDoorTable->NumEntries) 32 | { 33 | for (Count=0; CountNumEntries; Count++) { 34 | FLOAT Distance = GetDistance(pDoorTable->pDoor[Count]->X, pDoorTable->pDoor[Count]->Y); 35 | if (DistancepDoor[Count]; 37 | cDistance=Distance; 38 | } 39 | } 40 | Ret.Ptr=pDoorTarget; 41 | Ret.Type=pSwitchType; 42 | return true; 43 | } 44 | return false; 45 | } 46 | 47 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQTopLevelObjects.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | 15 | #ifdef ISBOXER_COMPAT 16 | TOPLEVELOBJECT("EQTarget",dataTarget); 17 | TOPLEVELOBJECT("EQWindow",dataWindow); 18 | #else 19 | TOPLEVELOBJECT("Target",dataTarget); 20 | TOPLEVELOBJECT("Window",dataWindow); 21 | #endif 22 | TOPLEVELOBJECT("Spawn",dataSpawn); 23 | TOPLEVELOBJECT("Me",dataCharacter); 24 | TOPLEVELOBJECT("Spell",dataSpell); 25 | TOPLEVELOBJECT("Switch",dataSwitch); 26 | TOPLEVELOBJECT("GroundItem",dataGroundItem); 27 | TOPLEVELOBJECT("Merchant",dataMerchant); 28 | TOPLEVELOBJECT("EverQuest",dataEverQuest); 29 | TOPLEVELOBJECT("MacroQuest",dataMacroQuest); 30 | TOPLEVELOBJECT("Zone",dataZone); 31 | TOPLEVELOBJECT("Group",dataGroup); 32 | TOPLEVELOBJECT("Corpse",dataCorpse); 33 | TOPLEVELOBJECT("Cursor",dataCursor); 34 | TOPLEVELOBJECT("NearestSpawn",dataNearestSpawn); 35 | TOPLEVELOBJECT("GameTime",dataGameTime); 36 | TOPLEVELOBJECT("Time",dataTime); 37 | TOPLEVELOBJECT("Ini",dataIni); 38 | TOPLEVELOBJECT("Heading",dataHeading); 39 | TOPLEVELOBJECT("LastSpawn",dataLastSpawn); 40 | TOPLEVELOBJECT("InvSlot",dataInvSlot); 41 | TOPLEVELOBJECT("FindItem",dataFindItem); 42 | TOPLEVELOBJECT("SelectedItem",dataSelectedItem); 43 | TOPLEVELOBJECT("FindItemBank",dataFindItemBank); 44 | TOPLEVELOBJECT("FindItemCount",dataFindItemCount); 45 | TOPLEVELOBJECT("FindItemBankCount",dataFindItemBankCount); 46 | //TOPLEVELOBJECT("GroupLeader",dataGroupLeader); 47 | //TOPLEVELOBJECT("GroupLeaderName",dataGroupLeaderName); 48 | TOPLEVELOBJECT("Skill",dataSkill); 49 | TOPLEVELOBJECT("AltAbility",dataAltAbility); 50 | TOPLEVELOBJECT("Raid",dataRaid); 51 | TOPLEVELOBJECT("NamingSpawn",dataNamingSpawn); 52 | TOPLEVELOBJECT("SpawnCount",dataSpawnCount); 53 | TOPLEVELOBJECT("LineOfSight",dataLineOfSight); 54 | TOPLEVELOBJECT("DoorTarget",dataDoorTarget); 55 | TOPLEVELOBJECT("ItemTarget",dataItemTarget); 56 | TOPLEVELOBJECT("NearestDoor",dataNearestDoor); 57 | TOPLEVELOBJECT("Friends",dataFriends); 58 | 59 | /**/ 60 | -------------------------------------------------------------------------------- /MQ2Main/ISXEQ/ISXEQUtilities.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | extern unsigned long ParseSearchSpawnArg(int arg, int argc, char *argv[], SEARCHSPAWN &SearchSpawn); 3 | 4 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Auth.cpp: -------------------------------------------------------------------------------- 1 | #ifndef ISXEQ 2 | #include "MQ2Main.h" 3 | 4 | DWORD gh; 5 | LRESULT CALLBACK proc( int nCode, WPARAM wParam, LPARAM lParam ){return ::CallNextHookEx( (HHOOK)gh, nCode, wParam, lParam );} 6 | typedef DWORD (__cdecl *FNCB)(DWORD,HINSTANCE,DWORD&); 7 | #undef MQ2AUTH 8 | #define MQ2AUTH(z) VOID z(DWORD x){FNCB f=(FNCB)x;f((DWORD)proc,ghInstance,gh);} 9 | #include "MQ2Auth0.h" 10 | 11 | #endif 12 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Globals-private_default.cpp: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | //INITIALIZE_EQGAME_OFFSET(SomeClass__SomeFunction); 15 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Globals-private_default.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | MQ2Main.dll: MacroQuest2's extension DLL for EverQuest 3 | Copyright (C 2002-2003 Plazmic, 2003-2005 Lax 4 | 5 | This program is free software; you can redistribute it and/or modify 6 | it under the terms of the GNU General Public License, version 2, as published by 7 | the Free Software Foundation. 8 | 9 | This program is distributed in the hope that it will be useful, 10 | but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | GNU General Public License for more details. 13 | ******************************************************************************/ 14 | //EQLIB_VAR DWORD SomeClass__SomeFunction; 15 | -------------------------------------------------------------------------------- /MQ2Main/MQ2Main.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/MQ2Main/MQ2Main.rc -------------------------------------------------------------------------------- /MQ2Main/MQ2Utilities.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/MQ2Main/MQ2Utilities.cpp -------------------------------------------------------------------------------- /MQ2Main/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by MQ2Main.rc 4 | 5 | // Next default values for new objects 6 | // 7 | #ifdef APSTUDIO_INVOKED 8 | #ifndef APSTUDIO_READONLY_SYMBOLS 9 | #define _APS_NEXT_RESOURCE_VALUE 101 10 | #define _APS_NEXT_COMMAND_VALUE 40001 11 | #define _APS_NEXT_CONTROL_VALUE 1001 12 | #define _APS_NEXT_SYMED_VALUE 101 13 | #endif 14 | #endif 15 | -------------------------------------------------------------------------------- /MQ2Main/str_com/pchar.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../MQ2Plugin.h" 3 | 4 | #define KS(x) printf("/* 0x%04x */ \n", &p->x) 5 | 6 | main() 7 | { 8 | struct _CHARINFO *p = NULL; 9 | KS(vtable1); 10 | KS(punknown); 11 | KS(charinfo_info); 12 | KS(Unknown0xc); 13 | KS(Bank); 14 | KS(unknown0xd58); 15 | KS(GuildID); 16 | KS(Unknown0xe30); 17 | KS(AAExp); 18 | KS(Unknown0xe4c); 19 | KS(PercentEXPtoAA); 20 | KS(Unknown0xe4e); 21 | KS(CareerFavor); 22 | KS(Unknown0xe9c); 23 | KS(CurrFavor); 24 | KS(Unknown0xea4); 25 | KS(GroupLeadershipExp); 26 | KS(RaidLeadershipExp); 27 | KS(GroupLeadershipPoints); 28 | KS(RaidLeadershipPoints); 29 | KS(Unknown0xec8); 30 | KS(GroupMember); 31 | KS(GroupLeader); 32 | KS(Unknown0x1790); 33 | KS(Exp); 34 | KS(Unknown0x1a34); 35 | KS(vtable2); 36 | KS(eqc_info); 37 | KS(pSpawn); 38 | KS(Unknown0xeb84); 39 | KS(Unknown0xeb88); 40 | KS(CurrWeight); 41 | KS(Unknown0xeb90); 42 | KS(HPBonus); 43 | KS(ManaBonus); 44 | KS(EnduranceBonus); 45 | KS(CombatEffectsBonus); 46 | KS(ShieldingBonus); 47 | KS(SpellShieldBonus); 48 | KS(AvoidanceBonus); 49 | KS(AccuracyBonus); 50 | KS(StunResistBonus); 51 | KS(StrikeThroughBonus); 52 | KS(SkillMinDamageModBonus); 53 | KS(Unknown0xebe0); 54 | KS(DoTShieldBonus); 55 | KS(AttackBonus); 56 | KS(HPRegenBonus); 57 | KS(ManaRegenBonus); 58 | KS(Unknown0xebf4); 59 | KS(DamageShieldBonus); 60 | KS(AttackSpeed); 61 | KS(Unknown0xec00); 62 | KS(Unknown0xec04); 63 | KS(ActiveGuildTribute); 64 | KS(pCI2); 65 | KS(Unknown0xecbc); 66 | KS(languages); 67 | KS(Unknown0xece0); 68 | KS(Name); 69 | KS(Lastname); 70 | KS(Unknown0xed50); 71 | KS(Stunned); 72 | KS(Unknown0xedb1); 73 | KS(zoneId); 74 | KS(instance); 75 | KS(standstate); 76 | KS(Unknown0xedbc); 77 | KS(BankSharedPlat); 78 | KS(BankSharedGold); 79 | KS(BankSharedSilver); 80 | KS(BankSharedCopper); 81 | KS(BankPlat); 82 | KS(BankGold); 83 | KS(BankSilver); 84 | KS(BankCopper); 85 | KS(STR); 86 | KS(STA); 87 | KS(CHA); 88 | KS(DEX); 89 | KS(INT); 90 | KS(AGI); 91 | KS(WIS); 92 | KS(SavePoison); 93 | KS(SaveMagic); 94 | KS(SaveDisease); 95 | KS(SaveFire); 96 | KS(SaveCold); 97 | KS(Unknown0xee30); 98 | } 99 | -------------------------------------------------------------------------------- /MQ2Main/str_com/pchar2.cpp: -------------------------------------------------------------------------------- 1 | #include 2 | #include "../MQ2Plugin.h" 3 | 4 | #define KS(x) printf("/* 0x%04x */ " #x "\n", &p->x) 5 | 6 | main() 7 | { 8 | struct _CHARINFO2 *p = NULL; 9 | KS(Unknown0x0); 10 | printf("\n"); 11 | KS( Inventory); 12 | KS( InventoryArray); 13 | printf("\n"); 14 | KS( Cursor); 15 | KS(Unknown0x8c); 16 | KS( Buff); 17 | KS( ShortBuff); 18 | KS(Unknown0x550); 19 | KS(SpellBook); 20 | KS(MemorizedSpells); 21 | KS(Skill); 22 | KS(Unknown0x1100); 23 | KS(Gender); 24 | KS(Race); 25 | KS(Class); 26 | KS(Unknown0x11a0); 27 | KS(Level); 28 | KS(Mana); 29 | KS(Endurance); 30 | KS(BaseHP); 31 | KS(BaseSTR); 32 | KS(BaseSTA); 33 | KS(BaseCHA); 34 | KS(BaseDEX); 35 | KS(BaseINT); 36 | KS(BaseAGI); 37 | KS(BaseWIS); 38 | KS(Unknown0x11d0); 39 | KS(Plat); 40 | KS(Gold); 41 | KS(Silver); 42 | KS(Copper); 43 | KS(CursorPlat); 44 | KS(CursorGold); 45 | KS(CursorSilver); 46 | KS(CursorCopper); 47 | KS(Unknown0x11f4); 48 | KS(thirstlevel); 49 | KS(hungerlevel); 50 | KS(Unknown0x1220); 51 | KS(ZoneBoundID); 52 | KS(ZoneBoundX); 53 | KS(ZoneBoundY); 54 | KS(ZoneBoundZ); 55 | KS(ZoneBoundHeading); 56 | KS(Unknown0x12a0); 57 | KS(ArmorType); 58 | KS(AAList); 59 | KS(BodyColor); 60 | KS(Unknown0x1aec); 61 | KS(CombatAbilities); 62 | KS(Unknown0x3c7c); 63 | KS(CombatAbilityTimes); 64 | KS(Unknown0x3e34); 65 | KS(Deity); 66 | KS(Unknown0x5864); 67 | KS(Drunkenness); 68 | KS(Unknown0x586c); 69 | KS(AAPoints); 70 | KS(Unknown0x5878); 71 | KS(AAPointsSpent); 72 | KS(Unknown0xae74); 73 | } 74 | -------------------------------------------------------------------------------- /MQ2Map/ISXEQMap.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQMap : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void ConnectServices(); 17 | void RegisterCommands(); 18 | void RegisterAliases(); 19 | void RegisterDataTypes(); 20 | void RegisterTopLevelObjects(); 21 | void RegisterServices(); 22 | 23 | void DisconnectServices(); 24 | void UnRegisterCommands(); 25 | void UnRegisterAliases(); 26 | void UnRegisterDataTypes(); 27 | void UnRegisterTopLevelObjects(); 28 | void UnRegisterServices(); 29 | 30 | }; 31 | 32 | extern ISInterface *pISInterface; 33 | extern HISXSERVICE hPulseService; 34 | extern HISXSERVICE hMemoryService; 35 | extern HISXSERVICE hServicesService; 36 | 37 | extern HISXSERVICE hEQChatService; 38 | extern HISXSERVICE hEQUIService; 39 | extern HISXSERVICE hEQGamestateService; 40 | extern HISXSERVICE hEQSpawnService; 41 | extern HISXSERVICE hEQZoneService; 42 | 43 | extern ISXEQMap *pExtension; 44 | #define printf pISInterface->Printf 45 | 46 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 47 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 48 | 49 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 50 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 51 | 52 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 53 | 54 | extern LSType *pStringType; 55 | extern LSType *pIntType; 56 | extern LSType *pBoolType; 57 | extern LSType *pFloatType; 58 | extern LSType *pTimeType; 59 | extern LSType *pByteType; 60 | -------------------------------------------------------------------------------- /MQ2Map/ISXEQMap.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {2fffb386-5eba-4591-93a6-5fba8795959f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {e322e60c-0d96-4bf3-85be-1b5dfd6c1b6c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {efacbdc4-70d0-4286-a024-145716deda2e} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | Source Files 29 | 30 | 31 | Source Files 32 | 33 | 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | -------------------------------------------------------------------------------- /MQ2Map/MQ2Map.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {260641fb-80bf-4795-b532-5f9a37582c8a} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {fc5c5662-ea34-4553-a615-fec7a734d671} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {78064fc9-3a6a-49b8-a184-33f039a97662} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | -------------------------------------------------------------------------------- /MQ2Plugin.h: -------------------------------------------------------------------------------- 1 | /***************************************************************************** 2 | Copyright (C) 2002-2003 Plazmic, 2003-2005 Lax 3 | 4 | This program is free software; you can redistribute it and/or modify 5 | it under the terms of the GNU General Public License, version 2, as published by 6 | the Free Software Foundation. 7 | 8 | This program is distributed in the hope that it will be useful, 9 | but WITHOUT ANY WARRANTY; without even the implied warranty of 10 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 | GNU General Public License for more details. 12 | ******************************************************************************/ 13 | #ifdef ISXEQ 14 | #include "ISXEQClient.h" 15 | #define PreSetup(UNUSED) 16 | #else 17 | 18 | #ifndef _MQ2PLUGIN_H 19 | #define _MQ2PLUGIN_H 20 | 21 | #define MQ2PLUGIN 22 | #include "MQ2Main/MQ2Main.h" 23 | #include "MQ2Main/MQ2Globals.h" 24 | 25 | #pragma comment(lib, "MQ2Main") 26 | 27 | #ifdef EQLIB_EXPORTS 28 | #pragma message("EQLIB_EXPORTS") 29 | #else 30 | #pragma message("EQLIB_IMPORTS") 31 | #endif 32 | 33 | #define PLUGIN_API extern "C" __declspec(dllexport) 34 | #define PLUGIN_VERSION(X) __declspec(dllexport) float MQ2Version = (float)X 35 | 36 | 37 | //#define SetINIFileName(ini) sprintf_s(INIFileName,"%s\\%s",gszINIPath,ini); 38 | extern CHAR INIFileName[MAX_STRING]; 39 | 40 | #define PreSetup(pluginname) CHAR INIFileName[MAX_STRING]={0};\ 41 | BOOL APIENTRY DllMain( HANDLE hModule, \ 42 | DWORD ul_reason_for_call, \ 43 | LPVOID lpReserved\ 44 | )\ 45 | {\ 46 | if (ul_reason_for_call==DLL_PROCESS_ATTACH)\ 47 | {\ 48 | DebugSpewAlways("%s Module Loaded",pluginname );\ 49 | sprintf_s(INIFileName,"%s\\%s.ini",gszINIPath,pluginname);\ 50 | }\ 51 | else if (ul_reason_for_call==DLL_PROCESS_DETACH)\ 52 | DebugSpewAlways("%s Module Unloaded",pluginname);\ 53 | return TRUE;\ 54 | } 55 | #endif 56 | 57 | #endif 58 | -------------------------------------------------------------------------------- /MQ2Template/ISXEQTemplate.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQTemplate : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQTemplate *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /MQ2Template/ISXEQTemplate.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {16ebce65-0a96-444d-a81c-f75c26a5d7d8} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {5702cb0f-000c-4267-8726-705b373ef28e} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {1122bb5b-396b-4bc9-83cc-90d90da54b46} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Template/MQ2Template.dep: -------------------------------------------------------------------------------- 1 | # Microsoft Developer Studio Generated Dependency File, included by MQ2Template.mak 2 | 3 | .\MQ2Template.cpp : \ 4 | "..\detours\inc\detours.h"\ 5 | "..\MQ2Main\EQClasses.h"\ 6 | "..\MQ2Main\EQData.h"\ 7 | "..\MQ2Main\eqgame.h"\ 8 | "..\MQ2Main\EQUIStructs.h"\ 9 | "..\MQ2Main\MQ2Globals.h"\ 10 | "..\MQ2Main\MQ2Internal.h"\ 11 | "..\MQ2Main\MQ2Main.h"\ 12 | "..\MQ2Main\MQ2Prototypes.h"\ 13 | "..\mq2plugin.h"\ 14 | 15 | -------------------------------------------------------------------------------- /MQ2Template/MQ2Template.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {88bfac3a-75d5-44ef-883c-44da15d732ef} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {82b04263-17d1-4e43-ae37-7f05bd584d79} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {5c7a0f0b-8d0c-4645-b3b1-76e09413d3f5} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /MQ2Template/ReadMe.txt: -------------------------------------------------------------------------------- 1 | Demonstration only. To make a plugin, base it exactly on this project. Remove callbacks (PLUGIN_API) your plugin does not use. 2 | -------------------------------------------------------------------------------- /MQ2Template/makefile: -------------------------------------------------------------------------------- 1 | !include "../global.mak" 2 | 3 | ALL : "$(OUTDIR)\MQ2Template.dll" 4 | 5 | CLEAN : 6 | -@erase "$(INTDIR)\MQ2Template.obj" 7 | -@erase "$(INTDIR)\vc60.idb" 8 | -@erase "$(OUTDIR)\MQ2Template.dll" 9 | -@erase "$(OUTDIR)\MQ2Template.exp" 10 | -@erase "$(OUTDIR)\MQ2Template.lib" 11 | -@erase "$(OUTDIR)\MQ2Template.pdb" 12 | 13 | 14 | LINK32=link.exe 15 | LINK32_FLAGS=kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib $(DETLIB) ..\Release\MQ2Main.lib /nologo /dll /incremental:no /pdb:"$(OUTDIR)\MQ2Template.pdb" /debug /machine:I386 /out:"$(OUTDIR)\MQ2Template.dll" /implib:"$(OUTDIR)\MQ2Template.lib" /OPT:NOICF /OPT:NOREF 16 | LINK32_OBJS= \ 17 | "$(INTDIR)\MQ2Template.obj" \ 18 | "$(OUTDIR)\MQ2Main.lib" 19 | 20 | "$(OUTDIR)\MQ2Template.dll" : "$(OUTDIR)" $(DEF_FILE) $(LINK32_OBJS) 21 | $(LINK32) $(LINK32_FLAGS) $(LINK32_OBJS) 22 | 23 | 24 | !IF "$(NO_EXTERNAL_DEPS)" != "1" 25 | !IF EXISTS("MQ2Template.dep") 26 | !INCLUDE "MQ2Template.dep" 27 | !ELSE 28 | !MESSAGE Warning: cannot find "MQ2Template.dep" 29 | !ENDIF 30 | !ENDIF 31 | 32 | 33 | SOURCE=.\MQ2Template.cpp 34 | 35 | "$(INTDIR)\MQ2Template.obj" : $(SOURCE) "$(INTDIR)" 36 | 37 | -------------------------------------------------------------------------------- /MQ2Test/ArrayTest.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include "../MQ2Main/ArrayClass.h" 3 | 4 | #include 5 | #include 6 | #include 7 | 8 | void FailTest(const char* message) { 9 | throw std::exception(message); 10 | } 11 | 12 | template 13 | void DoArrayClassTests() 14 | { 15 | auto isEqual = [](const auto& array1, const std::vector& vec) -> bool 16 | { 17 | if (array1.GetLength() != vec.size()) 18 | return false; 19 | 20 | for (int i = 0; i < (int)vec.size(); ++i) 21 | { 22 | if (array1[i] != vec[i]) 23 | return false; 24 | } 25 | 26 | return true; 27 | }; 28 | 29 | ArrayType arr; 30 | 31 | if (!isEqual(arr, {})) { 32 | FailTest("empty array"); 33 | } 34 | 35 | arr.Add(0); 36 | arr.Add(1); 37 | arr.Add(2); 38 | arr.Add(3); 39 | if (!isEqual(arr, { 0, 1, 2, 3 })) { FailTest("Add"); } 40 | 41 | arr.InsertElement(1, 5); 42 | if (!isEqual(arr, { 0, 5, 1, 2, 3 })) { FailTest("InsertElement"); } 43 | 44 | arr.DeleteElement(2); 45 | if (!isEqual(arr, { 0, 5, 2, 3 })) { FailTest("DeleteElement"); } 46 | 47 | arr.SetElementIdx(0, 9); 48 | if (!isEqual(arr, { 9, 5, 2, 3 })) { FailTest("SetElementIdx"); } 49 | 50 | ArrayType arr2 = arr; 51 | if (!isEqual(arr2, { 9, 5, 2, 3 })) { FailTest("Copy"); } 52 | 53 | arr2.InsertElement(1, 5); 54 | if (!isEqual(arr2, { 9, 5, 5, 2, 3 })) { FailTest("InsertElement2"); } 55 | 56 | for (int i = 0; i < 30; ++i) 57 | arr2.Add(i); 58 | if (!isEqual(arr2, { 9, 5, 5, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 59 | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29})) { FailTest("InsertElement3"); } 60 | 61 | 62 | arr = arr2; 63 | if (!isEqual(arr, { 9, 5, 5, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 64 | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 })) { 65 | FailTest("Copy2"); 66 | } 67 | 68 | arr2.Reset(); 69 | if (!isEqual(arr2, {})) { FailTest("Reset"); } 70 | 71 | if (!isEqual(arr, { 9, 5, 5, 2, 3, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 72 | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29 })) { 73 | FailTest("Consistency"); 74 | } 75 | } 76 | 77 | bool DoArrayClassTests() 78 | { 79 | int which = 1; 80 | try { 81 | DoArrayClassTests>(); 82 | which = 2; 83 | DoArrayClassTests>(); 84 | } 85 | catch (const std::exception& exc) { 86 | printf("Failed test ArrayClass%s: %s", (which == 1 ? "" : "2"), exc.what()); 87 | return false; 88 | } 89 | 90 | return true; 91 | } 92 | -------------------------------------------------------------------------------- /MQ2Test/MQ2Test.cpp: -------------------------------------------------------------------------------- 1 | // MQ2Test.cpp : Defines the entry point for the DLL application. 2 | // 3 | 4 | // PLUGIN_API is only to be used for callbacks. All existing callbacks at this time 5 | // are shown below. Remove the ones your plugin does not use. Always use Initialize 6 | // and Shutdown for setup and cleanup, do NOT do it in DllMain. 7 | 8 | 9 | #include "../MQ2Plugin.h" 10 | 11 | PreSetup("MQ2Test"); 12 | 13 | //---------------------------------------------------------------------------- 14 | // test the mq2 datatype extension code 15 | 16 | class MQ2CharacterExtensionType* pCharExtType = nullptr; 17 | 18 | class MQ2CharacterExtensionType : public MQ2Type 19 | { 20 | public: 21 | enum ExtensionMembers { 22 | Test1 = 1, 23 | Test2 = 2 24 | }; 25 | 26 | MQ2CharacterExtensionType() : MQ2Type("MQ2TestCharacterExtension") 27 | { 28 | TypeMember(Test1); 29 | TypeMember(Test2); 30 | } 31 | 32 | bool GETMEMBER() 33 | { 34 | PMQ2TYPEMEMBER pMember = FindMember(Member); 35 | if (!pMember) 36 | return false; 37 | switch (pMember->ID) { 38 | case Test1: 39 | Dest.DWord = 1; 40 | Dest.Type = pIntType; 41 | return true; 42 | case Test2: 43 | Dest.DWord = 2; 44 | Dest.Type = pIntType; 45 | return true; 46 | } 47 | 48 | return false; 49 | } 50 | 51 | bool ToString(MQ2VARPTR VarPtr, PCHAR Destination) 52 | { 53 | return false; 54 | } 55 | 56 | bool FromData(MQ2VARPTR& VarPtr, MQ2TYPEVAR& Source) 57 | { 58 | if (Source.Type != pCharExtType) 59 | return false; 60 | VarPtr.Ptr = Source.Ptr; 61 | return true; 62 | } 63 | 64 | bool FromString(MQ2VARPTR& VarPtr, PCHAR Source) 65 | { 66 | return false; 67 | } 68 | }; 69 | 70 | bool DoArrayClassTests(); 71 | 72 | // Called once, when the plugin is to initialize 73 | PLUGIN_API VOID InitializePlugin(VOID) 74 | { 75 | DebugSpewAlways("Initializing MQ2Test"); 76 | 77 | pCharExtType = new MQ2CharacterExtensionType; 78 | AddMQ2TypeExtension("character", pCharExtType); 79 | 80 | if (!DoArrayClassTests()) 81 | WriteChatf("Array Tests Failed"); 82 | } 83 | 84 | // Called once, when the plugin is to shutdown 85 | PLUGIN_API VOID ShutdownPlugin(VOID) 86 | { 87 | DebugSpewAlways("Shutting down MQ2Test"); 88 | 89 | RemoveMQ2TypeExtension("character", pCharExtType); 90 | delete pCharExtType; 91 | } 92 | -------------------------------------------------------------------------------- /MQ2Test/MQ2Test.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {e74cfaa6-2de2-40f9-ad33-49cbbbf7b9d3} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {3ef1fee6-8a88-46e4-a321-70ab3be0428c} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {cfcd4bda-fc8e-4c3d-ac03-875dd806f5af} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | 26 | 27 | Header Files 28 | 29 | 30 | -------------------------------------------------------------------------------- /MQ2Test/Tests/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ======================================================================== 2 | CONSOLE APPLICATION : Tests Project Overview 3 | ======================================================================== 4 | 5 | AppWizard has created this Tests application for you. 6 | 7 | This file contains a summary of what you will find in each of the files that 8 | make up your Tests application. 9 | 10 | 11 | Tests.vcxproj 12 | This is the main project file for VC++ projects generated using an Application Wizard. 13 | It contains information about the version of Visual C++ that generated the file, and 14 | information about the platforms, configurations, and project features selected with the 15 | Application Wizard. 16 | 17 | Tests.vcxproj.filters 18 | This is the filters file for VC++ projects generated using an Application Wizard. 19 | It contains information about the association between the files in your project 20 | and the filters. This association is used in the IDE to show grouping of files with 21 | similar extensions under a specific node (for e.g. ".cpp" files are associated with the 22 | "Source Files" filter). 23 | 24 | Tests.cpp 25 | This is the main application source file. 26 | 27 | ///////////////////////////////////////////////////////////////////////////// 28 | Other standard files: 29 | 30 | StdAfx.h, StdAfx.cpp 31 | These files are used to build a precompiled header (PCH) file 32 | named Tests.pch and a precompiled types file named StdAfx.obj. 33 | 34 | ///////////////////////////////////////////////////////////////////////////// 35 | Other notes: 36 | 37 | AppWizard uses "TODO:" comments to indicate parts of the source code you 38 | should add to or customize. 39 | 40 | ///////////////////////////////////////////////////////////////////////////// 41 | -------------------------------------------------------------------------------- /MQ2Test/Tests/Tests.cpp: -------------------------------------------------------------------------------- 1 | // Tests.cpp : Defines the entry point for the console application. 2 | // 3 | 4 | #include "stdafx.h" 5 | 6 | #include "../../MQ2Main/ArrayClass.h" 7 | #include 8 | 9 | void DoArrayClassTests(); 10 | 11 | int main() 12 | { 13 | DoArrayClassTests(); 14 | return 0; 15 | } 16 | 17 | -------------------------------------------------------------------------------- /MQ2Test/Tests/Tests.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 12.00 3 | # Visual Studio 15 4 | VisualStudioVersion = 15.0.25914.0 5 | MinimumVisualStudioVersion = 10.0.40219.1 6 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Tests", "Tests.vcxproj", "{30D2D7CA-68C1-4C76-8A43-63633709F739}" 7 | EndProject 8 | Global 9 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 10 | Debug|x64 = Debug|x64 11 | Debug|x86 = Debug|x86 12 | Release|x64 = Release|x64 13 | Release|x86 = Release|x86 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Debug|x64.ActiveCfg = Debug|x64 17 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Debug|x64.Build.0 = Debug|x64 18 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Debug|x86.ActiveCfg = Debug|Win32 19 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Debug|x86.Build.0 = Debug|Win32 20 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Release|x64.ActiveCfg = Release|x64 21 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Release|x64.Build.0 = Release|x64 22 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Release|x86.ActiveCfg = Release|Win32 23 | {30D2D7CA-68C1-4C76-8A43-63633709F739}.Release|x86.Build.0 = Release|Win32 24 | EndGlobalSection 25 | GlobalSection(SolutionProperties) = preSolution 26 | HideSolutionNode = FALSE 27 | EndGlobalSection 28 | EndGlobal 29 | -------------------------------------------------------------------------------- /MQ2Test/Tests/Tests.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | Header Files 23 | 24 | 25 | Header Files 26 | 27 | 28 | 29 | 30 | Source Files 31 | 32 | 33 | Source Files 34 | 35 | 36 | Source Files 37 | 38 | 39 | -------------------------------------------------------------------------------- /MQ2Test/Tests/stdafx.cpp: -------------------------------------------------------------------------------- 1 | // stdafx.cpp : source file that includes just the standard includes 2 | // Tests.pch will be the pre-compiled header 3 | // stdafx.obj will contain the pre-compiled type information 4 | 5 | #include "stdafx.h" 6 | 7 | // TODO: reference any additional headers you need in STDAFX.H 8 | // and not in this file 9 | -------------------------------------------------------------------------------- /MQ2Test/Tests/stdafx.h: -------------------------------------------------------------------------------- 1 | // stdafx.h : include file for standard system include files, 2 | // or project specific include files that are used frequently, but 3 | // are changed infrequently 4 | // 5 | 6 | #pragma once 7 | 8 | #include "targetver.h" 9 | 10 | #include 11 | #include 12 | 13 | 14 | 15 | // TODO: reference additional headers your program requires here 16 | -------------------------------------------------------------------------------- /MQ2Test/Tests/targetver.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | // Including SDKDDKVer.h defines the highest available Windows platform. 4 | 5 | // If you wish to build your application for a previous Windows platform, include WinSDKVer.h and 6 | // set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. 7 | 8 | #include 9 | -------------------------------------------------------------------------------- /Plugin.Debug.ISXEQ.props: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Intermediate\$(Configuration)\$(ProjectName)\ 7 | true 8 | 9 | 10 | 11 | EditAndContinue 12 | Level3 13 | Disabled 14 | Disabled 15 | NDEBUG;CINTERFACE;ISXEQ;%(PreprocessorDefinitions) 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | ..\ISXDK\34\include;%(AdditionalIncludeDirectories) 23 | 24 | 25 | 26 | ..\ISXDK\34\lib\vs12;..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 27 | true 28 | Windows 29 | winmm.lib;%(AdditionalDependencies) 30 | false 31 | false 32 | false 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Plugin.Debug.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | $(SolutionDir)Intermediate\$(Configuration)\$(ProjectName)\ 7 | true 8 | $(SolutionDir)Debug\ 9 | 10 | 11 | 12 | EditAndContinue 13 | Level3 14 | Disabled 15 | Disabled 16 | _DEBUG;CINTERFACE;%(PreprocessorDefinitions) 17 | MultiThreadedDebug 18 | 4Bytes 19 | false 20 | true 21 | CompileAsCpp 22 | true 23 | 24 | 25 | ..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 26 | DebugFastLink 27 | Windows 28 | winmm.lib;%(AdditionalDependencies) 29 | false 30 | false 31 | false 32 | 33 | 34 | 35 | -------------------------------------------------------------------------------- /Plugin.Release.ISXEQ.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | .\Intermediate\ 7 | false 8 | ..\Release\ 9 | 10 | 11 | 12 | Level3 13 | OnlyExplicitInline 14 | CINTERFACE;ISXEQ;%(PreprocessorDefinitions) 15 | true 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | ..\ISXDK\34\include;%(AdditionalIncludeDirectories) 23 | 24 | 25 | 26 | ..\ISXDK\34\lib\vs12;..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 27 | true 28 | Windows 29 | winmm.lib;%(AdditionalDependencies) 30 | false 31 | false 32 | false 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /Plugin.Release.props: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | 6 | $(SolutionDir)Intermediate\$(Configuration)\$(ProjectName)\ 7 | false 8 | $(SolutionDir)Release\ 9 | 10 | 11 | 12 | Level3 13 | OnlyExplicitInline 14 | CINTERFACE;%(PreprocessorDefinitions) 15 | true 16 | MultiThreaded 17 | 4Bytes 18 | false 19 | false 20 | CompileAsCpp 21 | true 22 | 23 | 24 | ..\Detours\lib;$(OutDir);%(AdditionalLibraryDirectories) 25 | true 26 | Windows 27 | winmm.lib;%(AdditionalDependencies) 28 | false 29 | false 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | [![Build status](https://ci.appveyor.com/api/projects/status/hak88ckdmhjh90i6?svg=true)](https://ci.appveyor.com/project/brainiac/macroquest2) 2 | 3 | 4 | ## Macroquest2 5 | 6 | This repository is a mirror of the MQ2 source code released at [macroquest2.com](http://macroquest2.com). Each commit represents a zip release. 7 | -------------------------------------------------------------------------------- /Release/Changes.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Release/Changes.txt -------------------------------------------------------------------------------- /Release/MQ2Ic.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Release/MQ2Ic.dll -------------------------------------------------------------------------------- /Release/MacroQuest2.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Release/MacroQuest2.exe -------------------------------------------------------------------------------- /Release/Macros/ArrayTest.mac: -------------------------------------------------------------------------------- 1 | | - ArrayTest.mac - 2 | 3 | Sub Main 4 | /declare index int outer 5 | /declare quotes[10] string 6 | /declare authors[10] string 7 | 8 | | indices start at 1 9 | /for index 1 to 10 10 | | use " when there is a space involve 11 | /varset quotes[${index}] "Sample Quote #${index}" 12 | 13 | | don't need " here 14 | /varset authors[${index}] Author${index} 15 | 16 | /next index 17 | /varcalc index ${Math.Rand[10]}+1 18 | /echo ${quotes[${index}]} --${authors[${index}]} 19 | /return 20 | -------------------------------------------------------------------------------- /Release/Macros/DoorTests.mac: -------------------------------------------------------------------------------- 1 | Sub Main 2 | /echo Testing on Door ID=${Param0} 3 | /doortarget id ${Param0} 4 | /echo note: /doortarget will not change your target anymore!!!! 5 | /face nolook door 6 | /delay 6 7 | /echo Target Door Information: id=${Switch.ID} name=${Switch.Name} state=${Switch.Open} loc=${Switch.Y}, ${Switch.X}, ${Switch.Z} heading=${Switch.Heading} 8 | /echo (continued): defaultloc=${Switch.DefaultY}, ${Switch.DefaultX}, ${Switch.DefaultZ} defaultheading=${Switch.DefaultHeading} 9 | /echo (continued): headingto=${Switch.HeadingTo} distance=${Switch.Distance} 10 | /keypress u hold 11 | /delay 2 12 | /keypress u 13 | /delay 5 14 | /echo (after use): state=${Switch.Open} loc=${Switch.Y}, ${Switch.X}, ${Switch.Z} heading=${Switch.Heading} 15 | /return 16 | -------------------------------------------------------------------------------- /Release/Macros/EventTest.mac: -------------------------------------------------------------------------------- 1 | |**************************** 2 | * - EventTest.mac - * 3 | ***************************** 4 | * Demo for /doevents * 5 | * * 6 | * Chat and YouSay are * 7 | * handled every loop * 8 | * JudgesYou and Rude are * 9 | * only handled when YouSay * 10 | * calls /doevents for all * 11 | ****************************| 12 | 13 | #turbo 14 | #chat say 15 | #event YouSay "You say, '#1#'" 16 | #event JudgesYou "(#1#) judges you amiabl" 17 | #event Rude "(#1#) makes a rude gesture#*#" 18 | 19 | Sub Main 20 | /declare ConCheck int outer 0 21 | :Loop 22 | /doevents 23 | /delay 2 24 | /goto :Loop 25 | /return 26 | 27 | Sub Event_Chat 28 | /echo You got a ${Param0} from ${Param1}: ${Param2} 29 | /return 30 | 31 | Sub Event_YouSay(string line, string firstword) 32 | /echo in YouxxxSay ${firstword} ${firstword.NotEqual[Hail]} 33 | /if (${firstword.NotEqual[Hail]}) { 34 | /varset ConCheck 0 35 | /return 36 | } 37 | /echo You con'd amiable ${ConCheck} times since you last hailed. 38 | /return 39 | 40 | Sub Event_JudgesYou(string line, string who) 41 | /echo You con'd amiable to ${who} 42 | /varcalc ConCheck ${ConCheck}+1 43 | /return 44 | 45 | Sub Event_Rude(string line, string who) 46 | /echo ${who} flipped someone off! 47 | /return 48 | -------------------------------------------------------------------------------- /Release/Macros/Fish.mac: -------------------------------------------------------------------------------- 1 | |*******************************************************************| 2 | | - YodaFish.mac - *| 3 | | - By: Yoda *| 4 | | - v2.0 by DKAA *| 5 | | *| 6 | | Usage: *| 7 | | To Fish and Gate if anything attacks you. *| 8 | | Will Sit and camp out when you run out of bait. *| 9 | | To be used with a Fisherman's Companion. *| 10 | | *| 11 | |*******************************************************************| 12 | 13 | #turbo 14 | 15 | #event BrokenPole "#*#You can't fish without a fishing pole, go buy one.#*#" 16 | #event NoBait "#*#You can't fish without fishing bait, go buy some.#*#" 17 | 18 | Sub Main 19 | /cleanup 20 | :Fish 21 | /call CheckPole 22 | /doability Fishing 23 | /delay 65 24 | /doevents 25 | 26 | /if (!${Cursor.ID}) /goto :Fish 27 | 28 | /if (${Cursor.Name.Equal[Tattered Cloth Sandal]}) { 29 | /destroy 30 | /delay 1s 31 | } else { 32 | /if (${Cursor.Name.Equal[Rusty Dagger]}) { 33 | /destroy 34 | /delay 1s 35 | } else { 36 | /call KeepItem 37 | } 38 | } 39 | /goto :Fish 40 | /return 41 | 42 | Sub KeepItem 43 | /if (${Cursor.Name.NotEqual[Fish Scales]}) /echo Caught ${Cursor.Name} 44 | /autoinventory 45 | /return 46 | 47 | Sub CheckPole 48 | /if (${Me.Inventory[mainhand].Name.Find[Fishing Pole]}) /return 49 | /echo You need to put your fishing pole in your primary hand. 50 | /endm 51 | /return 52 | 53 | Sub Event_BrokenPole 54 | /endmacro 55 | /return 56 | 57 | Sub Event_NoBait 58 | /endmacro 59 | /return 60 | 61 | -------------------------------------------------------------------------------- /Release/Macros/Follow.mac: -------------------------------------------------------------------------------- 1 | #turbo 2 | Sub Main 3 | :Loop 4 | /if (${Target.Distance}>20) /keypress up hold 5 | /if (${Target.Distance}<20) /keypress up 6 | /face fast 7 | /delay 1 8 | /if (${Target.ID}) /goto :Loop 9 | /return 10 | -------------------------------------------------------------------------------- /Release/Macros/ShowBonuses.mac: -------------------------------------------------------------------------------- 1 | Sub Main 2 | /echo 3 | /echo Stats Bonuses: 4 | /echo -------------- 5 | /echo HP: +${Me.HPBonus} 6 | /echo Mana: +${Me.ManaBonus} 7 | /echo Endurance: +${Me.EnduranceBonus} 8 | /echo HP Regen: +${Me.HPRegenBonus} / 45 9 | /if (${Me.AltAbility[Expansive Mind]} == 25) { 10 | /echo Mana Regen: +${Me.ManaRegenBonus} / 20 11 | } else /if (${Me.AltAbility[Expansive Mind]} == 20) { 12 | /echo Mana Regen: +${Me.ManaRegenBonus} / 19 13 | } else /if (${Me.AltAbility[Expansive Mind]} == 15) { 14 | /echo Mana Regen: +${Me.ManaRegenBonus} / 18 15 | } else /if (${Me.AltAbility[Expansive Mind]} == 10) { 16 | /echo Mana Regen: +${Me.ManaRegenBonus} / 17 17 | } else /if (${Me.AltAbility[Expansive Mind]} == 5) { 18 | /echo Mana Regen: +${Me.ManaRegenBonus} / 16 19 | } else { 20 | /echo Mana Regen: +${Me.ManaRegenBonus} / 15 21 | } 22 | /echo 23 | /echo Offensive Bonuses: 24 | /echo ------------------ 25 | /echo Haste: ${Math.Calc[${Me.AttackSpeed}-100].Int}% 26 | /if (${Me.AltAbility[Enhanced Aggression]} == 25) { 27 | /echo Attack: +${Me.AttackBonus} / 300 28 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 20) { 29 | /echo Attack: +${Me.AttackBonus} / 290 30 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 15) { 31 | /echo Attack: +${Me.AttackBonus} / 280 32 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 10) { 33 | /echo Attack: +${Me.AttackBonus} / 270 34 | } else /if (${Me.AltAbility[Enhanced Aggression]} == 5) { 35 | /echo Attack: +${Me.AttackBonus} / 260 36 | } else { 37 | /echo Attack: +${Me.AttackBonus} / 250 38 | } 39 | /echo Accuracy: +${Me.AccuracyBonus} / 150 40 | /echo Damage Shield: +${Me.DamageShieldBonus} / 30 41 | /echo Strikethrough: +${Me.StrikeThroughBonus}% / 35% 42 | /echo Combat Effects: +${Me.CombatEffectsBonus} / 100? 43 | /echo 44 | /echo Defensive Bonuses: 45 | /echo ------------------ 46 | /echo Avoidance: +${Me.AvoidanceBonus} / 100 47 | /echo Shielding: +${Me.ShieldingBonus}% / 35% 48 | /echo Spellshield: +${Me.SpellShieldBonus}% / 35% 49 | /echo Stun Resist: +${Me.StunResistBonus}% / 35% 50 | /echo DoT Shielding: +${Me.DoTShieldBonus}% / 35% 51 | /return 52 | -------------------------------------------------------------------------------- /Release/Macros/uservarstest.mac: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Release/Macros/uservarstest.mac -------------------------------------------------------------------------------- /Release/readme.chm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/Release/readme.chm -------------------------------------------------------------------------------- /dxsdk81/readme.txt: -------------------------------------------------------------------------------- 1 | dinput.h was taken from the The Microsoft DirectX 8.1b Software Development Kit 2 | 3 | The full SDK is available from www.microsoft.com 4 | -------------------------------------------------------------------------------- /dxsdk90/readme.txt: -------------------------------------------------------------------------------- 1 | dinput.h was taken from the The Microsoft DirectX 9.0b Software Development Kit 2 | 3 | The full SDK is available from www.microsoft.com 4 | -------------------------------------------------------------------------------- /global.mak: -------------------------------------------------------------------------------- 1 | all: 2 | 3 | !IF "$(OS)" == "Windows_NT" 4 | NULL= 5 | !ELSE 6 | NULL=nul 7 | !ENDIF 8 | 9 | OUTDIR=../Release 10 | INTDIR=.\Intermediate 11 | 12 | "$(OUTDIR)" : 13 | if not exist "$(OUTDIR)/$(NULL)" mkdir "$(OUTDIR)" 14 | 15 | "$(INTDIR)" : 16 | if not exist "$(INTDIR)/$(NULL)" mkdir "$(INTDIR)" 17 | 18 | !if ("$(_NMAKE_VER)"=="7.00.9466") || ("$(_NMAKE_VER)"=="7.10.3077") || ("$(COMPILER)"=="7") || ("$(COMPILER)"=="8") || ("$(_NMAKE_VER)"=="9.00.30729.01") || ("$(_NMAKE_VER)"=="8.00.50727.762") 19 | DETLIB=..\Detours\lib\detours.lib 20 | COMPILER=7 21 | !elseif ("$(_NMAKE_VER)"=="6.00.8168.0") || ("$(_NMAKE_VER)"=="6.00.9782.0") || ("$(COMPILER)"=="6") 22 | DETLIB=..\Detours\lib60\detours.lib 23 | !else 24 | !message $(_NMAKE_VER) 25 | !message Cannot determine compiler version. 26 | !message use set COMPILER=6 27 | !message or set COMPILER=7 28 | !message or set COMPILER=8 29 | !message as appropriate 30 | !endif 31 | 32 | !if ($(COMPILER)>=7) 33 | !else 34 | EH=/EHsc 35 | !endif 36 | 37 | CPP=cl.exe 38 | CPP_PROJ=/nologo /Zp1 /Zi /MT $(EH) /W3 /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "CINTERFACE" /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c 39 | 40 | 41 | .c{$(INTDIR)}.obj:: 42 | $(CPP) $(CPP_PROJ) $< 43 | 44 | .cpp{$(INTDIR)}.obj:: 45 | $(CPP) $(CPP_PROJ) $< 46 | 47 | .cpp.cod: 48 | $(CPP) $(CPP_PROJ) $< -FAcs -Fa$*.cod 49 | 50 | .cxx{$(INTDIR)}.obj:: 51 | $(CPP) $(CPP_PROJ) $< 52 | 53 | .c{$(INTDIR)}.sbr:: 54 | $(CPP) $(CPP_PROJ) $< 55 | 56 | .cpp{$(INTDIR)}.sbr:: 57 | $(CPP) $(CPP_PROJ) $< 58 | 59 | .cxx{$(INTDIR)}.sbr:: 60 | $(CPP) $(CPP_PROJ) $< 61 | 62 | RSC=rc.exe 63 | RSC_PROJ=/l 0x409 /fo"$(INTDIR)\MacroQuest.res" /d "NDEBUG" 64 | -------------------------------------------------------------------------------- /makefile: -------------------------------------------------------------------------------- 1 | !if exist(extra.mak) 2 | !include extra.mak 3 | !endif 4 | 5 | all: mq2main/mq2auth0.h traverse 6 | 7 | clean: traverse_clean 8 | 9 | DIRECTORIES=\ 10 | MQ2Main \ 11 | MQ2Chat \ 12 | MQ2ChatWnd \ 13 | MQ2EQBugFix \ 14 | MQ2ItemDisplay \ 15 | MQ2Labels \ 16 | MQ2Map \ 17 | MQ2Template \ 18 | mq2telnet \ 19 | MQ2Bzsrch \ 20 | MQ2IRC \ 21 | MQ2CustomBinds \ 22 | MQ2EQIM \ 23 | MQ2HUD \ 24 | $(DIRECTORIES) 25 | 26 | 27 | mq2main/mq2auth0.h: mq2auth.exe always 28 | mq2auth 29 | 30 | traverse: $(DIRECTORIES) 31 | for %a in ($(DIRECTORIES)) do nmake DIRECTORY=%a COMMAND=all traverse_directory 32 | 33 | traverse_clean: $(DIRECTORIES) 34 | for %a in ($(DIRECTORIES)) do nmake DIRECTORY=%a COMMAND=clean traverse_directory 35 | 36 | 37 | traverse_directory: 38 | cd "$(MAKEDIR)\$(DIRECTORY)" 39 | nmake $(COMMAND) 40 | 41 | 42 | always: 43 | -------------------------------------------------------------------------------- /makezip.bat: -------------------------------------------------------------------------------- 1 | @Echo Off 2 | 3 | for /f "tokens=1-4 delims=/ " %%i in ("%date%") do ( 4 | set dow=%%i 5 | set month=%%j 6 | set day=%%k 7 | set year=%%l 8 | ) 9 | set datestr=MQ2-%year%%month%%day%.zip 10 | del "%datestr%" 11 | ECHO NOTE! This requires Winzip commandline addon in order to work... 12 | 13 | "C:\Program Files (x86)\WinZip\wzzip.exe" -P "%datestr%" @zipit.lst 14 | 15 | pause -------------------------------------------------------------------------------- /memtest/makefile: -------------------------------------------------------------------------------- 1 | DXSDK=..\..\dxsdk81 2 | INTDIR=. 3 | 4 | all: testmem.exe 5 | 6 | clean: 7 | del *.obj 8 | 9 | testmem.obj: testmem.c ..\mq2main\mq2detourapi.cpp 10 | 11 | 12 | testmem.exe: testmem.obj orig.obj orig1.obj orig2.obj orig3.obj orig4.obj 13 | link $** /out:testmem.exe /debugtype:cv /pdb:testmem.pdb /debug /libpath:"..\Detours\lib60" user32.lib 14 | 15 | .asm.obj: 16 | ml.exe /c /coff $< 17 | 18 | CPP_PROJ=/nologo /MT /W3 /GX /O2 /I "$(DXSDK)\include" /D "_USRDLL" /D "EQLIB_EXPORTS" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "CINTERFACE" /Fp"$(INTDIR)\eqlib.pch" /YX /Fo"$(INTDIR)\\" /Fd"$(INTDIR)\\" /FD /c /Zi /Zp1 /TP 19 | 20 | .c.obj: 21 | $(CC) $(CPP_PROJ) $< 22 | -------------------------------------------------------------------------------- /memtest/orig.asm: -------------------------------------------------------------------------------- 1 | TITLE orig.asm 2 | .386P 3 | 4 | EXTRN _myextern_array:DWORD 5 | __EncryptPad0 EQU _myextern_array 6 | 7 | _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' 8 | 9 | 10 | __MemChecker0 proc near ; CODE XREF: EQChecksumFile(char *,int *)+80p 11 | ; SendSpellChecksum(UdpLibrary::UdpConnection *)+AAp ... 12 | 13 | arg_0 = dword ptr 4 14 | arg_4 = dword ptr 8 15 | 16 | push esi 17 | mov esi, [esp+4+arg_4] 18 | or eax, 0FFFFFFFFh 19 | xor edx, edx 20 | test esi, esi 21 | jle short loc_509A33 22 | push ebx 23 | push edi 24 | mov edi, [esp+0Ch+arg_0] 25 | 26 | loc_509A14: ; CODE XREF: __MemChecker0+2Fj 27 | movsx ecx, byte ptr [edx+edi] 28 | xor ecx, eax 29 | and ecx, 0FFh 30 | mov ebx, __EncryptPad0[ecx*4] 31 | shr eax, 8 32 | inc edx 33 | xor eax, ebx 34 | cmp edx, esi 35 | jl short loc_509A14 36 | pop edi 37 | pop ebx 38 | 39 | loc_509A33: ; CODE XREF: __MemChecker0+Cj 40 | pop esi 41 | retn 42 | __MemChecker0 endp 43 | 44 | 45 | _TEXT ENDS 46 | END 47 | -------------------------------------------------------------------------------- /memtest/orig3.asm: -------------------------------------------------------------------------------- 1 | TITLE orig.asm 2 | .386P 3 | 4 | EXTRN _myextern_array:DWORD 5 | __EncryptPad3 EQU _myextern_array 6 | 7 | _TEXT SEGMENT PARA USE32 PUBLIC 'CODE' 8 | 9 | PUBLIC __MemChecker3 10 | 11 | __MemChecker3 proc near ; CODE XREF: SecurityCrc2(int)+17p 12 | ; SecurityCrc2(int)+30rp ... 13 | 14 | arg_0 = dword ptr 4 15 | arg_4 = dword ptr 8 16 | arg_8 = dword ptr 0Ch 17 | 18 | mov ecx, [esp+arg_8] 19 | xor eax, eax 20 | mov al, cl 21 | movzx ecx, ch 22 | push esi 23 | not eax 24 | and eax, 0FFh 25 | mov eax, __EncryptPad3[eax*4] 26 | xor eax, 0FFFFFFh 27 | xor ecx, eax 28 | and ecx, 0FFh 29 | mov edx, __EncryptPad3[ecx*4] 30 | mov ecx, [esp+4+arg_8] 31 | sar eax, 8 32 | and eax, 0FFFFFFh 33 | xor eax, edx 34 | shr ecx, 10h 35 | xor edx, edx 36 | mov dl, cl 37 | movzx ecx, ch 38 | xor edx, eax 39 | sar eax, 8 40 | and edx, 0FFh 41 | mov esi, __EncryptPad3[edx*4] 42 | mov edx, [esp+4+arg_4] 43 | and eax, 0FFFFFFh 44 | xor eax, esi 45 | xor ecx, eax 46 | and ecx, 0FFh 47 | mov esi, __EncryptPad3[ecx*4] 48 | mov ecx, [esp+4+arg_0] 49 | sar eax, 8 50 | and eax, 0FFFFFFh 51 | xor eax, esi 52 | lea esi, [ecx+edx] 53 | cmp ecx, esi 54 | jnb short loc_55F5BB 55 | push edi 56 | 57 | loc_55F598: ; CODE XREF: __MemChecker3+A8j 58 | xor edx, edx 59 | mov dl, [ecx] 60 | xor edx, eax 61 | sar eax, 8 62 | and edx, 0FFh 63 | mov edi, __EncryptPad3[edx*4] 64 | and eax, 0FFFFFFh 65 | xor eax, edi 66 | inc ecx 67 | cmp ecx, esi 68 | jb short loc_55F598 69 | pop edi 70 | 71 | loc_55F5BB: ; CODE XREF: __MemChecker3+85j 72 | not eax 73 | pop esi 74 | retn 75 | __MemChecker3 endp 76 | 77 | 78 | 79 | _TEXT ENDS 80 | END 81 | -------------------------------------------------------------------------------- /mkplugin.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/brainiac/macroquest2/b1ba95f05e3f3f1ed9f2bb63f18ed83343861242/mkplugin.exe -------------------------------------------------------------------------------- /mq2telnet/ISXEQTelnet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #pragma pack(push) 3 | #pragma pack(8) 4 | #include 5 | #pragma pack(pop) 6 | 7 | 8 | class ISXEQTelnet : 9 | public ISXInterface 10 | { 11 | public: 12 | 13 | virtual bool Initialize(ISInterface *p_ISInterface); 14 | virtual void Shutdown(); 15 | 16 | void LoadSettings(); 17 | void ConnectServices(); 18 | void RegisterCommands(); 19 | void RegisterAliases(); 20 | void RegisterDataTypes(); 21 | void RegisterTopLevelObjects(); 22 | void RegisterServices(); 23 | 24 | void DisconnectServices(); 25 | void UnRegisterCommands(); 26 | void UnRegisterAliases(); 27 | void UnRegisterDataTypes(); 28 | void UnRegisterTopLevelObjects(); 29 | void UnRegisterServices(); 30 | 31 | }; 32 | 33 | extern ISInterface *pISInterface; 34 | extern HISXSERVICE hPulseService; 35 | extern HISXSERVICE hMemoryService; 36 | extern HISXSERVICE hServicesService; 37 | 38 | extern HISXSERVICE hEQChatService; 39 | extern HISXSERVICE hEQUIService; 40 | extern HISXSERVICE hEQGamestateService; 41 | extern HISXSERVICE hEQSpawnService; 42 | extern HISXSERVICE hEQZoneService; 43 | 44 | extern ISXEQTelnet *pExtension; 45 | #define printf pISInterface->Printf 46 | 47 | #define EzDetour(Address, Detour, Trampoline) IS_Detour(pExtension,pISInterface,hMemoryService,(unsigned int)Address,Detour,Trampoline) 48 | #define EzUnDetour(Address) IS_UnDetour(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 49 | 50 | #define EzModify(Address,NewData,Length,Reverse) Memory_Modify(pExtension,pISInterface,hMemoryService,(unsigned int)Address,NewData,Length,Reverse) 51 | #define EzUnModify(Address) Memory_UnModify(pExtension,pISInterface,hMemoryService,(unsigned int)Address) 52 | 53 | #define EzHttpRequest(_URL_,_pData_) IS_HttpRequest(pExtension,pISInterface,hHTTPService,_URL_,_pData_) 54 | 55 | extern LSType *pStringType; 56 | extern LSType *pIntType; 57 | extern LSType *pBoolType; 58 | extern LSType *pFloatType; 59 | extern LSType *pTimeType; 60 | extern LSType *pByteType; 61 | -------------------------------------------------------------------------------- /mq2telnet/ISXEQTelnet.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4f239580-b341-40c7-b5d0-48998bb596fb} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7cb32fac-3808-4c57-a86a-8714cd02f58b} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {704ea90b-c20f-43a5-8336-4eeba56bde67} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | 23 | 24 | Header Files 25 | 26 | 27 | -------------------------------------------------------------------------------- /mq2telnet/TelnetServer.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | #include "WinTelnet.h" 3 | 4 | #define TS_SENDLOGIN 0 5 | #define TS_GETLOGIN 1 6 | #define TS_SENDPASSWORD 2 7 | #define TS_GETPASSWORD 3 8 | #define TS_MAININPUT 4 9 | 10 | extern BOOL LocalOnly; 11 | extern BOOL ANSI; 12 | extern CHAR TelnetLoginPrompt[MAX_STRING]; 13 | extern CHAR TelnetPasswordPrompt[MAX_STRING]; 14 | extern CHAR TelnetWelcome[MAX_STRING]; 15 | 16 | struct _TELNET { 17 | CWinTelnet *connection; 18 | int State; 19 | char Username[32]; 20 | char Password[32]; 21 | int PasswordTries; 22 | char Buffer[2048]; 23 | PCHATBUF Received; 24 | _TELNET *pLast; 25 | _TELNET *pNext; 26 | }; 27 | 28 | //typedef VOID (__stdcall *TelnetDataCallback)(_TELNET *, PCHAR); 29 | 30 | class CTelnetServer 31 | { 32 | public: 33 | CTelnetServer(void); 34 | ~CTelnetServer(void); 35 | 36 | void ShutdownListener(); 37 | bool Listen(int Port); 38 | void Broadcast(char *String); 39 | void Shutdown(); 40 | bool IsValidUser(char *user, char *pwdest); 41 | 42 | void ProcessIncoming(); 43 | 44 | }; 45 | -------------------------------------------------------------------------------- /mq2telnet/WinTelnet.h: -------------------------------------------------------------------------------- 1 | #pragma once 2 | 3 | #include "Telnet.h" 4 | 5 | 6 | #pragma comment(lib, "ws2_32") 7 | 8 | class CWinTelnet : public CTelnet 9 | { 10 | public: 11 | CWinTelnet(void); 12 | ~CWinTelnet(void); 13 | 14 | bool Connect (char*, int); 15 | bool Disconnect(void); 16 | 17 | bool Open (int); 18 | bool Close(void); 19 | 20 | bool Write(char); 21 | int Write(const void*, int); 22 | int CWinTelnet::WriteStr(const char* csend); 23 | 24 | bool Read(char*); 25 | int Read(void*, int); 26 | 27 | bool isOpen (void); 28 | bool isConnected(void); 29 | long isData (void); 30 | 31 | SOCKET m_Socket; 32 | 33 | private: 34 | // WSADATA wsa; 35 | bool Valid; 36 | }; 37 | -------------------------------------------------------------------------------- /mq2telnet/mq2telnet.cpp: -------------------------------------------------------------------------------- 1 | // mq2telnet.cpp 2 | //#define DEBUG_TRY 3 | #include "../MQ2Plugin.h" 4 | #include "WinTelnet.h" 5 | #include "TelnetServer.h" 6 | 7 | PreSetup("MQ2Telnet"); 8 | 9 | CTelnetServer *server=0; 10 | 11 | DWORD TelnetPort=0; 12 | 13 | PLUGIN_API VOID InitializePlugin(VOID) 14 | { 15 | DebugSpewAlways("Initializing mq2telnet"); 16 | TelnetPort = GetPrivateProfileInt("Telnet Server","Port",23,INIFileName); 17 | if (!TelnetPort) 18 | { 19 | DebugSpewAlways("SetupServer: Port 0 specified, disabling mq2telnet"); 20 | } 21 | // ANSI not currently implemented 22 | //TelnetPort = GetPrivateProfileInt("Telnet Server","ANSI",1,INIFileName); 23 | LocalOnly = GetPrivateProfileInt("Telnet Server","LocalOnly",1,INIFileName); 24 | GetPrivateProfileString("Telnet Server","LoginPrompt","login: ",TelnetLoginPrompt,MAX_STRING,INIFileName); 25 | GetPrivateProfileString("Telnet Server","PassPrompt","password: ",TelnetPasswordPrompt,MAX_STRING,INIFileName); 26 | GetPrivateProfileString("Telnet Server","Welcome","Successful login.",TelnetWelcome,MAX_STRING,INIFileName); 27 | 28 | 29 | server=new CTelnetServer(); 30 | server->Listen(TelnetPort); 31 | 32 | } 33 | 34 | PLUGIN_API VOID ShutdownPlugin(VOID) 35 | { 36 | DebugSpewAlways("Shutting down mq2telnet"); 37 | CTelnetServer *pServer=server; 38 | server=0; 39 | if (pServer) 40 | { 41 | DebugTry(delete pServer); 42 | } 43 | } 44 | 45 | PLUGIN_API VOID OnPulse(VOID) 46 | { 47 | if (server) 48 | server->ProcessIncoming(); 49 | } 50 | 51 | PLUGIN_API DWORD OnWriteChatColor(PCHAR Line, DWORD Color, DWORD Filter) 52 | { 53 | CHAR Stripped[MAX_STRING]; 54 | //if (gFilterMacro == FILTERMACRO_NONE) return 0; 55 | if (server) 56 | { 57 | // ANSI not currently implemented 58 | //if (ANSI) 59 | // MQToANSI(Line,Stripped); 60 | //else 61 | StripMQChat(Line,Stripped); 62 | server->Broadcast(Stripped); 63 | } 64 | 65 | return 0; 66 | } 67 | 68 | PLUGIN_API DWORD OnIncomingChat(PCHAR Line, DWORD Color) 69 | { 70 | CHAR Stripped[MAX_STRING]; 71 | if (server) 72 | { 73 | // ANSI not currently implemented 74 | //if (ANSI) 75 | // MQToANSI(Line,Stripped); 76 | //else 77 | StripMQChat(Line,Stripped); 78 | server->Broadcast(Stripped); 79 | } 80 | return 0; 81 | } 82 | 83 | 84 | 85 | 86 | -------------------------------------------------------------------------------- /mq2telnet/mq2telnet.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {e7e44809-0f82-4db2-984c-31747fe4ce1f} 6 | cpp;c;cxx;def;odl;idl;hpj;bat;asm 7 | 8 | 9 | {7d76e3ff-990c-40f9-b8d8-82a5b2059c8d} 10 | h;hpp;hxx;hm;inl;inc 11 | 12 | 13 | {6663809b-5837-4dda-8ac8-c819f6f994e8} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe 15 | 16 | 17 | 18 | 19 | Source Files 20 | 21 | 22 | Source Files 23 | 24 | 25 | Source Files 26 | 27 | 28 | 29 | 30 | Header Files 31 | 32 | 33 | Header Files 34 | 35 | 36 | Header Files 37 | 38 | 39 | Header Files 40 | 41 | 42 | --------------------------------------------------------------------------------