Fixed PlugYInstaller Project

This commit is contained in:
ChaosMarc 2020-11-01 12:52:36 +01:00
parent 1657f9ca6c
commit e0472480c4
No known key found for this signature in database
GPG Key ID: E1116DF82FEF02EC
10 changed files with 75 additions and 73 deletions

3
.gitignore vendored
View File

@ -26,10 +26,11 @@
*.exe
*.out
*.app
**/*.zip
.idea
**/.vs
/**/Release/
**/Release/
**/*.vcxproj
**/*.vcxproj.filters
**/*.vcxproj.user

View File

@ -21,7 +21,7 @@
//D2S(D2Common,11068, DWORD, D2InvAddItem, (Inventory* ptInventory, Unit* ptItem, DWORD posX, DWORD posY, DWORD vValueC, DWORD bIsClient, BYTE page));//ONLY 1.11b result : boolean 0=echec ; vValueC = 0 for Game.dll, 1 for Clientdll
//D2S(D2Common,10250, DWORD, D2Common10250, (const char* file, DWORD line, Inventory* ptInventory, DWORD posX, DWORD posY, DWORD vValueC, DWORD bIsClient, BYTE page));// result : boolean 0=echec ; vValueC = 0 for Game.dll, 1 for Clientdll
////D2S(D2Common,10257, Unit*, D2GetItemFromBodyLoc, (Inventory* ptInventory, DWORD bodyloc));
//D2S(D2Common,10273, DWORD, D2Common10273, (Inventory* ptInventory, void* unknow));
//D2S(D2Common,10273, DWORD, D2Common10273, (Inventory* ptInventory, void* unknown));
//D2S(D2Common,10535, Unit*, D2InventoryGetFirstItem, (Inventory* ptInventory));//ONLY 1.11b
//D2S(D2Common,11140, Unit*, D2UnitGetNextItem, (Unit* ptItem));//ONLY 1.11b
//D2S(D2Common,10748, Unit*, D2GetRealItem, (Unit* ptUnit));//ONLY 1.11b
@ -160,7 +160,7 @@ F8(STD, D2Common,10243,10243,10243,10461,10827,10936,10646,10490, 23AD90, Unit*
F8(STD, D2Common,10249,10249,10249,10880,11068,10436,11107,10963, 23BCC0, DWORD, D2InvAddItem, (Inventory* ptInventory, Unit* ptItem, DWORD posX, DWORD posY, DWORD vValueC, DWORD bIsClient, BYTE page));//result : boolean 0=echec ; vValueC = 0 for Game.dll, 1 for Clientdll
F8(STD, D2Common,10250,10250,10250,00000,00000,00000,00000,00000, 00000, DWORD, D2Common10250, (const char* file, DWORD line, Inventory* ptInventory, DWORD posX, DWORD posY, DWORD vValueC, DWORD bIsClient, BYTE page));// result : boolean 0=echec ; vValueC = 0 for Game.dll, 1 for Clientdll
//F7(STD, D2Common,10257,10257,10257,00000,00000,00000,00000,00000, Unit*, D2GetItemFromBodyLoc, (Inventory* ptInventory, DWORD bodyloc));
F8(STD, D2Common,10273,10273,10273,00000,00000,00000,00000,00000, 00000, DWORD, D2Common10273, (Inventory* ptInventory, void* unknow));
F8(STD, D2Common,10273,10273,10273,00000,00000,00000,00000,00000, 00000, DWORD, D2Common10273, (Inventory* ptInventory, void* unknown));
F8(STD, D2Common,10277,10277,10277,10402,10535,11151,10460,11040, 23B2C0, Unit*, D2InventoryGetFirstItem, (Inventory* ptInventory));
F8(STD, D2Common,10304,10304,10304,10934,11140,10770,10464,10879, 23DFA0, Unit*, D2UnitGetNextItem, (Unit* ptItem));
F8(STD, D2Common,10305,10305,10305,11095,10748,10852,11147,10897, 23DFD0, Unit*, D2GetRealItem, (Unit* ptUnit));
@ -438,7 +438,7 @@ F8(STD, D2Net, 10006,10006,10006,10018,10018,10015,10002,10012, 12B330, DWORD,
////D2S(Fog,10127, DWORD, D2GetBitFieldSize, (saveBitField* data));//6FF536C0
////D2S(Fog,10128, void, D2EncodeValue, (saveBitField* data, DWORD value, DWORD bitSize));//6FF536C0
////D2S(Fog,10130, DWORD, D2DecodeValue, (saveBitField* data,DWORD readingSize));//6FF53840
//D2S(Fog,10212, void, D2Fog10212, (DWORD unknow));//1.11b
//D2S(Fog,10212, void, D2Fog10212, (DWORD unknown));//1.11b
////D2S(Fog,10217, int, D2GetIDFromLookUpTable, (void* table, char* string, bool));//6FF53840
//D2S(Fog,10265, int, D2GetInstructionPointer, ());//ONLY 1.11/1.11b NOT 1.10
@ -458,7 +458,7 @@ F8(FAST, Fog, 10116,10116,10116,10116,10116,10116,10116,10116, 6BA0, void, D2Fo
//F7(STD, Fog, 10127,10127,10127,10127,10127,10127,10127,10127, DWORD, D2GetBitFieldSize, (saveBitField* data));//6FF536C0
//F7(STD, Fog, 10128,10128,10128,10128,10128,10128,10128,10128, void, D2EncodeValue, (saveBitField* data, DWORD value, DWORD bitSize));//6FF536C0
//F7(STD, Fog, 10130,10130,10130,10130,10130,10130,10130,10130, DWORD, D2DecodeValue, (saveBitField* data,DWORD readingSize));//6FF53840
F8(STD, Fog, 10212,10212,10212,10212,10212,10212,10212,10212, 2BD0B0, void, D2Fog10212, (DWORD unknow));
F8(STD, Fog, 10212,10212,10212,10212,10212,10212,10212,10212, 2BD0B0, void, D2Fog10212, (DWORD unknown));
//F7(STD, Fog, 10217,10217,10217,10217,10217,10217,10217,10217, int, D2GetIDFromLookUpTable, (void* table, char* string, bool));//6FF53840
F8(STD, Fog, 00000,00000,00000,10265,10265,10265,10265,10265, 8090, int, D2GetInstructionPointer, ());
//Fog10213 getIndexFromLookupTable (&table,code,bool)

View File

@ -132,7 +132,7 @@ struct Path //(8 dword)
struct Inventory
{ //Offset from Code. Size: 30 à 40
{ //Offset from Code. Size: 30 <EFBFBD> 40
DWORD tag; //+00 = 0x01020304
BYTE uk1[0x04]; //+04 =? 0
Unit* ptChar; //+08
@ -274,16 +274,16 @@ ITEMFLAG_TAGETING = 0x00000004,
ITEMFLAG_UNIDENTIFIED = 0x00000010,
ITEMFLAG_QUANTITY = 0x00000020,
ITEMFLAG_Durability = 0x00000100,
ITEMFLAG_UNKNOWN2 = 0x00000400,
ITEMFLAG_UNKNOWN2 = 0x00000400,
ITEMFLAG_SOCKETED = 0x00000800,
ITEMFLAG_NON_SELLABLE = 0x00001000,
ITEMFLAG_NEWITEM2 = 0x00002000,
ITEMFLAG_UNKNOWN3 = 0x00004000,
ITEMFLAG_UNKNOWN3 = 0x00004000,
ITEMFLAG_CHECKSECPRICE = 0x00010000,
ITEMFLAG_CHECKGAMBLEPRICE = 0x00020000,
ITEMFLAG_UNKNOWN4 = 0x00080000,
ITEMFLAG_UNKNOWN4 = 0x00080000,
ITEMFLAG_INDESTRUCTIBLE(ETHERAL) = 0x00400000,
ITEMFLAG_UNKNOWN5 = 0x00800000,
ITEMFLAG_UNKNOWN5 = 0x00800000,
ITEMFLAG_FROMPLAYER = 0x01000000,
ITEMFLAG_RUNEWORD = 0x04000000
*/
@ -300,7 +300,7 @@ ITEMFLAG_RUNEWORD = 0x04000000
WORD prefix[3]; //+38
WORD suffix[3]; //+3E
BYTE equipLoc; //+44
/* emplacement si équipé
/* emplacement si <EFBFBD>quip<EFBFBD>
* 00 = noequip/inBelt
* 01 = head
* 02 = neck

View File

@ -15,21 +15,21 @@ const char* VersionStrings[16] = { "1.00","1.07","1.08","1.09","1.09b","1.09d","
const char* GetVersionString(int version)
{
if (version < 0 || version >= sizeof(VersionStrings))
return "UNKNOW";
return "UNKNOWN";
return VersionStrings[version];
}
eGameVersion GetD2Version(LPCVOID pVersionResource)
{
if (!pVersionResource) return UNKNOW;
if (!pVersionResource) return UNKNOWN;
UINT uLen;
VS_FIXEDFILEINFO* ptFixedFileInfo;
if (!VerQueryValue(pVersionResource, "\\", (LPVOID*)&ptFixedFileInfo, &uLen))
return UNKNOW;
return UNKNOWN;
if (uLen == 0)
return UNKNOW;
return UNKNOWN;
WORD major = HIWORD(ptFixedFileInfo->dwFileVersionMS);
WORD minor = LOWORD(ptFixedFileInfo->dwFileVersionMS);
@ -37,7 +37,7 @@ eGameVersion GetD2Version(LPCVOID pVersionResource)
WORD subrevision = LOWORD(ptFixedFileInfo->dwFileVersionLS);
if (major != 1)
return UNKNOW;
return UNKNOWN;
if (minor == 0 && revision == 7 && subrevision == 0) return V107;
if (minor == 0 && revision == 8 && subrevision == 28) return V108;
if (minor == 0 && revision == 9 && subrevision == 19) return V109;
@ -53,14 +53,14 @@ eGameVersion GetD2Version(LPCVOID pVersionResource)
if (minor == 14 && revision == 1 && subrevision == 68) return V114b;
if (minor == 14 && revision == 2 && subrevision == 70) return V114c;
if (minor == 14 && revision == 3 && subrevision == 71) return V114d;
return UNKNOW;
return UNKNOWN;
}
eGameVersion GetD2Version(char* gameExe)
{
DWORD len = GetFileVersionInfoSize(gameExe, NULL);
if (len == 0)
return UNKNOW;
return UNKNOWN;
BYTE* pVersionResource = new BYTE[len];
GetFileVersionInfo(gameExe, NULL, len, pVersionResource);
@ -73,9 +73,9 @@ eGameVersion GetD2Version(char* gameExe)
eGameVersion GetD2Version(HMODULE hModule)
{
HRSRC hResInfo = FindResource(hModule, MAKEINTRESOURCE(VS_VERSION_INFO), RT_VERSION);
if (!hResInfo) return UNKNOW;
if (!hResInfo) return UNKNOWN;
HGLOBAL hResData = LoadResource(hModule, hResInfo);
if (!hResData) return UNKNOW;
if (!hResData) return UNKNOWN;
LPVOID pVersionResource = LockResource(hResData);
eGameVersion version = GetD2Version(pVersionResource);
FreeResource(hResData);

View File

@ -10,7 +10,7 @@
enum eGameVersion
{
UNKNOW = -1,
UNKNOWN = -1,
V100 = 0,
V107,
V108,

View File

@ -32,29 +32,29 @@
#include "interface_Stash.h"
int version_Game = UNKNOW;
//int version_binkw32 = UNKNOW;
//int version_Bnclient = UNKNOW;
int version_D2Client = UNKNOW;
int version_D2CMP = UNKNOW;
int version_D2Common = UNKNOW;
//int version_D2DDraw = UNKNOW;
//int version_D2Direct3D = UNKNOW;
int version_D2Game = UNKNOW;
//int version_D2Gdi = UNKNOW;
int version_D2gfx = UNKNOW;
//int version_D2Glide = UNKNOW;
int version_D2Lang = UNKNOW;
int version_D2Launch = UNKNOW;
//int version_D2MCPClient = UNKNOW;
//int version_D2Multi = UNKNOW;
int version_D2Net = UNKNOW;
//int version_D2sound = UNKNOW;
int version_D2Win = UNKNOW;
int version_Fog = UNKNOW;
//int version_ijl11 = UNKNOW;
//int version_SmackW32 = UNKNOW;
int version_Storm = UNKNOW;
int version_Game = UNKNOWN;
//int version_binkw32 = UNKNOWN;
//int version_Bnclient = UNKNOWN;
int version_D2Client = UNKNOWN;
int version_D2CMP = UNKNOWN;
int version_D2Common = UNKNOWN;
//int version_D2DDraw = UNKNOWN;
//int version_D2Direct3D = UNKNOWN;
int version_D2Game = UNKNOWN;
//int version_D2Gdi = UNKNOWN;
int version_D2gfx = UNKNOWN;
//int version_D2Glide = UNKNOWN;
int version_D2Lang = UNKNOWN;
int version_D2Launch = UNKNOWN;
//int version_D2MCPClient = UNKNOWN;
//int version_D2Multi = UNKNOWN;
int version_D2Net = UNKNOWN;
//int version_D2sound = UNKNOWN;
int version_D2Win = UNKNOWN;
int version_Fog = UNKNOWN;
//int version_ijl11 = UNKNOWN;
//int version_SmackW32 = UNKNOWN;
int version_Storm = UNKNOWN;
DWORD offset_Game = NULL;
//DWORD offset_binkw32 = NULL;
@ -299,7 +299,7 @@ void loadLibrary(LPCSTR libName, int* libVersion, DWORD* libOffset, int shift, D
log_msg("%s loaded at:\t%08X (", libName, *libOffset);
DWORD addr = *(DWORD*)(*libOffset + shift);
if (version_Game != UNKNOW && (version_Game <= V108 || version_Game >= V113d))
if (version_Game != UNKNOWN && (version_Game <= V108 || version_Game >= V113d))
*libVersion = version_Game;
else if (addr==v109b)
*libVersion = V109b;
@ -316,8 +316,8 @@ void loadLibrary(LPCSTR libName, int* libVersion, DWORD* libOffset, int shift, D
else if (addr==v113c)
*libVersion = V113c;
else {
*libVersion = version_Game != UNKNOW ? version_Game : V113d;
log_msg("unknow, try with ");
*libVersion = version_Game != UNKNOWN ? version_Game : V113d;
log_msg("unknown, try with ");
}
log_msg("%s)\n", GetVersionString(*libVersion));
}
@ -374,7 +374,7 @@ void initD2modules()
GET_VERSION(D2Win, 1699, 88686F8C, 84686F8C, D094686F, F0030000, 001435E8, 8B088F44, 0013F5E8); //0x19000 0x6F8A0000 Already Loaded 0x1C000
GET_VERSION(Fog, 102, D0000006, 10000001, 00000006, 000042E6, 00004302, 0000483C, 00004B95); //0x20000 0x6FF50000 Already Loaded 0x1F000
GET_VERSION(Storm, 1190, 19E85082, 59E85082, 13C103F6, 0474F685, 8B000321, 3B1074C9, 0D896404); //0x30000 0x6FFB0000 Already Loaded -
if (version_Game == UNKNOW)
if (version_Game == UNKNOWN)
version_Game = version_D2gfx;
}
// GET_VERSION(binkw32 000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000, 00000000); //

View File

@ -107,12 +107,12 @@ return value :
13:Unable to enter game, a normal character cannot join a game create an harcore character.
14:Unable to enter game, an harcore character cannot join a game create by a normal character.
15:A dead character cannot join or create any game
16:unknow failure
16:unknown failure
17:Unable to enter game. A D2 Character cannot join an expansion character
18:Expansion cannot join D2
19:Failures to join game
1A:Unable to enter game
1B:unknow failure
1B:unknown failure
*/
enum {
TS_SAVE_PERSONAL=0,

View File

@ -265,7 +265,7 @@ int main(int argc, char * argv[])
{
msgBox(boxName, MB_OK | MB_ICONEXCLAMATION,
"Current version of LoD (%s) isn't compatible with PlugY.\n\n"
"Please, install a patch between 1.09 and 1.13d.",
"Please, install a patch between 1.09 and 1.13d or 1.14.",
GetVersionString(version));
exit(0);
}

View File

@ -1,11 +1,11 @@
//Script de ressources généré par Microsoft Visual C++.
//Script de ressources g<EFBFBD>n<EFBFBD>r<EFBFBD> par Microsoft Visual C++.
//
#include "resource.h"
#define APSTUDIO_READONLY_SYMBOLS
/////////////////////////////////////////////////////////////////////////////
//
// Généré à partir de la ressource TEXTINCLUDE 2.
// G<EFBFBD>n<EFBFBD>r<EFBFBD> <20> partir de la ressource TEXTINCLUDE 2.
//
#ifndef APSTUDIO_INVOKED
#include "targetver.h"
@ -28,8 +28,8 @@ LANGUAGE LANG_FRENCH, SUBLANG_FRENCH
//
VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,0,5,0
PRODUCTVERSION 1,0,5,0
FILEVERSION 1,0,6,0
PRODUCTVERSION 1,0,6,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
@ -46,11 +46,11 @@ BEGIN
BEGIN
VALUE "CompanyName", "Yohann Nicolas"
VALUE "FileDescription", "PlugY patcher"
VALUE "FileVersion", "1.0.5.0"
VALUE "FileVersion", "1.0.6.0"
VALUE "LegalCopyright", "Copyright (C) 2017"
VALUE "OriginalFilename", "PlugYInstall.exe"
VALUE "ProductName", "PlugY, The Survival Kit"
VALUE "ProductVersion", "11.02"
VALUE "ProductVersion", "12.00"
END
END
BLOCK "VarFileInfo"

View File

@ -66,10 +66,10 @@ LangString DESC_UNINSTALLER ${LANG_ENGLISH} "Create a Windows uninstall program.
LangString DESC_UNINSTALLER ${LANG_GERMAN} "Erzeugt ein Deinstallationsprogramm.$\nWindows Registrierungseinträge werden erstellt."
LangString DESC_UNINSTALLER ${LANG_FRENCH} "Crée un programme Windows de désinstallation.$\nAjoute des clés de registres dans Windows."
LangString DESC_UNINSTALLER ${LANG_RUSSIAN} "Создать в Windows деинстллятор программы.$\nДобавляет ключи реестра в Windows."
;LangString DESC_PATCH_FILE ${LANG_ENGLISH} "Patcher to run PlugY without PlugY.exe. Before use it, you MUST read the readme."
;LangString DESC_PATCH_FILE ${LANG_ENGLISH} "Patcher um PlugY ohne PlugY.exe zu starten. Die LiesMich Datei MUSS vor benutzung gelesen werden."
;LangString DESC_PATCH_FILE ${LANG_FRENCH} "D2gfx.dll patcheur pour lancer PlugY sans PlugY.exe. Avant de l'utiliser, vous DEVEZ lire le LISEZ-MOI."
;LangString DESC_PATCH_FILE ${LANG_RUSSIAN} "Применить патч для запуска PlugY без PlugY.exe. Подробнее смотреть в файле Readme."
LangString DESC_PATCH_FILE ${LANG_ENGLISH} "Patcher to run PlugY without PlugY.exe. Before use it, you MUST read the readme."
LangString DESC_PATCH_FILE ${LANG_GERMAN} "Patcher um PlugY ohne PlugY.exe zu starten.$\nDie LiesMich-Datei MUSS vor Benutzung gelesen werden."
LangString DESC_PATCH_FILE ${LANG_FRENCH} "D2gfx.dll patcheur pour lancer PlugY sans PlugY.exe. Avant de l'utiliser, vous DEVEZ lire le LISEZ-MOI."
LangString DESC_PATCH_FILE ${LANG_RUSSIAN} "Применить патч для запуска PlugY без PlugY.exe. Подробнее смотреть в файле Readme."
LangString SECTION_NAME_CORE ${LANG_ENGLISH} "${NAME} (required)"
LangString SECTION_NAME_CORE ${LANG_GERMAN} "${NAME} (benötigt)"
LangString SECTION_NAME_CORE ${LANG_FRENCH} "${NAME} (nécessaire)"
@ -86,10 +86,10 @@ LangString SECTION_NAME_UNINSTALLER ${LANG_ENGLISH} "Uninstaller (add keys regis
LangString SECTION_NAME_UNINSTALLER ${LANG_GERMAN} "Deinstallationsprogramm (Fügt Windows Registrierungseinträge hinzu)"
LangString SECTION_NAME_UNINSTALLER ${LANG_FRENCH} "Dé-installeur (ajoute clés de registre)"
LangString SECTION_NAME_UNINSTALLER ${LANG_RUSSIAN} "Деинсталлятор (добавляет ключи реестра)"
;LangString SECTION_PATCH_FILE ${LANG_ENGLISH} "File Patcher (advanced user only)"
;LangString SECTION_PATCH_FILE ${LANG_GERMAN} "Datei Patcher (Für erfahrene Nutzer)"
;LangString SECTION_PATCH_FILE ${LANG_FRENCH} "Patcheur de D2gfx.dll (utilisateur avancé uniquement)"
;LangString SECTION_PATCH_FILE ${LANG_RUSSIAN} "Патч для Patcher (для опытных пользователей)"
LangString SECTION_PATCH_FILE ${LANG_ENGLISH} "File Patcher (advanced user only)"
LangString SECTION_PATCH_FILE ${LANG_GERMAN} "Datei Patcher (Für erfahrene Nutzer)"
LangString SECTION_PATCH_FILE ${LANG_FRENCH} "Patcheur de D2gfx.dll (utilisateur avancé uniquement)"
LangString SECTION_PATCH_FILE ${LANG_RUSSIAN} "Патч для Patcher (для опытных пользователей)"
LangString README_FILENAME ${LANG_ENGLISH} "PlugY_The_Survival_Kit_-_Readme.txt"
LangString README_FILENAME ${LANG_GERMAN} "PlugY_The_Survival_Kit_-_Liesmich.txt"
@ -203,11 +203,12 @@ Section $(SECTION_NAME_UNINSTALLER) Uninstaller
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${NAME}" "NoRepair" 1
SectionEnd
;Section $(SECTION_PATCH_FILE) PatchFile
; SetOutPath $D2Path
; File "${D2FILES}\PatchD2File.exe"
; File "${D2FILES}\RestoreD2File.exe"
;SectionEnd
Section $(SECTION_PATCH_FILE) PatchFile
SectionIn 1
SetOutPath $D2Path
File "${D2FILES}\PatchD2File.exe"
File "${D2FILES}\RestoreD2File.exe"
SectionEnd
;--------------------------------
; Uninstall
@ -223,8 +224,8 @@ Section "Uninstall" Uninstall
; Remove files and uninstaller
Delete "$D2Path\PlugY.dll"
; Delete "$D2Path\PatchD2File.exe"
; Delete "$D2Path\RestoreD2File.exe"
Delete "$D2Path\PatchD2File.exe"
Delete "$D2Path\RestoreD2File.exe"
Delete "$INSTDIR\PlugY.exe"
Delete "$INSTDIR\PlugY.log"
Delete "$INSTDIR\BnetLog.txt"
@ -252,7 +253,7 @@ SectionEnd
!insertmacro MUI_DESCRIPTION_TEXT "${Core}" $(DESC_CORE)
!insertmacro MUI_DESCRIPTION_TEXT "${DesktopShortcuts}" $(DESC_DESKTOP_SHORTCUTS)
!insertmacro MUI_DESCRIPTION_TEXT "${MenuShortcuts}" $(DESC_MENU_SHORTCUTS)
; !insertmacro MUI_DESCRIPTION_TEXT "${PatchFile}" $(DESC_PATCH_FILE)
!insertmacro MUI_DESCRIPTION_TEXT "${PatchFile}" $(DESC_PATCH_FILE)
!insertmacro MUI_DESCRIPTION_TEXT "${Uninstaller}" $(DESC_UNINSTALLER)
!insertmacro MUI_FUNCTION_DESCRIPTION_END