@heyned,
Tenho quase todas para uso do GameServer comum já...
Código:
#define GS_UDP_PORT (0x00570BEF+1) // 1.00.93
#define GS_GREENBARTEXTCOLOR (0x004CB607+1) // 1.00.93
#define GS_GREENBAR (0x004CB037+1) // 1.00.93
#define GSNOME (0x00796C30) // 1.00.93
#define GUARDSAY (0x0078ACE0) // 1.00.93
#define GS_ITEM_TIME1 (0x004BF9DA+1) // 1.00.93
#define GS_ITEM_TIME2 (0x004BFB8B+1) // 1.00.93
#define RAKLION_APPEARANCE_DELAY (0x00616ED7) // 1.00.93
#define RAKLION_CLOSE_DELAY (0x00616EF9) // 1.00.93
#define RAKLION_OPEN_DELAY (0x00616F1E) // 1.00.93
#define GS_ALLIANCE_REQ (0x00469C44+2) // 1.00.93 Revisar
#define GS_LVLUP_DL (0x0051280E+2) // Default 7 // 1.00.93
#define GS_LVL_UP_DL2 (0x00589B76+2) // Default 7 // 1.00.93
#define GS_LVL_UP_DL3 (0x0059A636+2) // Default 7 // 1.00.93
#define GS_LVL_UP_DL4 (0x005C93F8+2) // Default 7 // 1.00.93
#define GS_LVL_UP_DL5 (0x005EDCC4+2) // Default 7 // 1.00.93
#define GS_LVLUP_MG (0x00512836+2) // Default 7 // 1.00.93
#define GS_LVL_UP_MG2 (0x00589B76+2) // Default 7 // 1.00.93
#define GS_LVL_UP_MG3 (0x0059A636+2) // Default 7 // 1.00.93
#define GS_LVL_UP_MG4 (0x005C93F8+2) // Default 7 // 1.00.93
#define GS_LVL_UP_MG5 (0x005EDCC4+2) // Default 7 // 1.00.93
#define GS_LVLUP_NM (0x0051284D+2) // Default 5 // 1.00.93
#define GS_LVL_UP_NORMAL2 (0x00589BA7+2) // Default 5 // 1.00.93
#define GS_LVL_UP_NORMAL3 (0x0059A667+2) // Default 5 // 1.00.93
#define GS_LVL_UP_NORMAL4 (0x005C9429+2) // Default 5 // 1.00.93
#define GS_LVL_UP_NORMAL5 (0x005EDCF4+2) // Default 5 // 1.00.93
#define GS_LVL_UP_QUEST1 (0x00512871+2) // 1.00.93
#define GS_LVL_UP_QUEST2 (0x00589BF0+2) // 1.00.93
#define GS_LVL_UP_QUEST3 (0x0059A6B0+2) // 1.00.93
#define GS_LVL_UP_QUEST4 (0x005C9472+2) // 1.00.93
#define GS_LVL_UP_QUEST5 (0x005EDD3E+2) // 1.00.93
#define GS_ML_POINTS (0x004FC5A2) // 1.00.93
#define GS_MAX_MASTERLEVEL (0x004FC3BF) // 1.00.93
#define MAX_ZEN1 (0x00545467+3) // 1.00.93
#define MAX_ZEN2 (0x00455963+3) // 1.00.93
#define MAX_ZEN3 (0x00455A59+3) // 1.00.93
#define MAX_ZEN4 (0x0045598F+2) // 1.00.93
#define GS_TRANSFORMATIONRING1 (0x004E0703+3) // Default 2 // 1.00.93 Revisar
#define GS_TRANSFORMATIONRING2 (0x004E070C+3) // Default 7 // 1.00.93 Revisar
#define GS_TRANSFORMATIONRING3 (0x004E0715+3) // Default 14 // 1.00.93 Revisar
#define GS_TRANSFORMATIONRING4 (0x004E071E+3) // Default 8 // 1.00.93 Revisar
#define GS_TRANSFORMATIONRING5 (0x004E0727+3) // Default 9 // 1.00.93 Revisar
#define GS_TRANSFORMATIONRING6 (0x004E0730+3) // Default 41 // 1.00.93 Revisar
#define GS_SUMMONORB1 (0x004DEC37+1) // Default 26 // 1.00.93
#define GS_SUMMONORB2 (0x004DEC68+1) // Default 32 // 1.00.93
#define GS_SUMMONORB3 (0x004DEC99+1) // Default 21 // 1.00.93
#define GS_SUMMONORB4 (0x004DECCA+1) // Default 20 // 1.00.93
#define GS_SUMMONORB5 (0x004DECFB+1) // Default 10 // 1.00.93
#define GS_SUMMONORB6 (0x004DED2C+1) // Default 150 // 1.00.93
#define GS_SUMMONORB7 (0x004DED60+1) // Default 151 // 1.00.93
#define GS_PARTY2EXP (0x0051CE3E+3) // 1.00.93
#define GS_PARTY3EXP (0x0051CE4D+3) // 1.00.93
#define GS_PARTY4EXP (0x0051CE5C+3) // 1.00.93
#define GS_PARTY5EXP (0x0051CE6B+3) // 1.00.93
#define GS_SETPARTY3EXP (0x0051CE08+3) // 1.00.93
#define GS_SETPARTY4EXP (0x0051CE17+3) // 1.00.93
#define GS_SETPARTY5EXP (0x0051CE26+3) // 1.00.93
#define GS_BLESS_PRICE (0x0055842E+3) // 1.00.93
#define GS_SOUL_PRICE (0x00558450+3) // 1.00.93
#define GS_CHAOS_PRICE (0x00558471+3) // 1.00.93
#define GS_LIFE_PRICE (0x00558493+3) // 1.00.93
#define GS_CREATION_PRICE (0x005584B5+3) // 1.00.93
#define GS_GUARDIAN_PRICE (0x0055858F+3) // 1.00.93
#define GS_ALLOW_EXCANC (0x00555256) // 1.00.93
#define GS_ALLOW_JOHANC (0x005CCA8A) // 1.00.93
#define GS_ALLOW_EXCSKT (0x005552FF) // 1.00.93
#define GS_WW_DROP_ID (0x00487546+1) // 1.00.93 Revisar
#define GS_WW_GROUP_ID (0x00487548+1) // 1.00.93 Revisar
#define GS_WW_ITEM_LVL (0x00487565+1) // 1.00.93 Revisar
#define GS_WW_ITEM_DUR (0x00487563+1) // 1.00.93 Revisar
#define GS_WW_ITEM_SKL (0x00487561+1) // 1.00.93 Revisar
#define GS_WW_ITEM_LCK (0x0048755F+1) // 1.00.93 Revisar
#define GS_WW_ITEM_LIF (0x0048755D+1) // 1.00.93 Revisar
#define GS_WW_ITEM_EXC (0x00487557+1) // 1.00.93 Revisar
#define GS_WW_ITEM_ANC (0x00487555+1) // 1.00.93 Revisar
#define GS_BC_DROP_ID (0x0058EE8B+1) // 1.00.93
#define GS_BC_GROUP_ID (0x0058EE8D+1) // 1.00.93
#define GS_BC_ITEM_LVL (0x0058EF32+1) // 1.00.93
#define GS_BC_ITEM_DUR (0x0058EF30+1) // 1.00.93
#define GS_BC_ITEM_SKL (0x0058EF2E+1) // 1.00.93
#define GS_BC_ITEM_LCK (0x0058EF2C+1) // 1.00.93
#define GS_BC_ITEM_LIF (0x0058EF2A+1) // 1.00.93
#define GS_BC_ITEM_EXC (0x0058EF24+1) // 1.00.93
#define GS_BC_ITEM_ANC (0x0058EF22+1) // 1.00.93
#define GS_IT_DROP_ID (0x005ED2D3+1) // 1.00.93
#define GS_IT_GROUP_ID (0x005ED2D5+1) // 1.00.93
#define GS_IT_ITEM_LVL (0x005ED2F2+1) // 1.00.93
#define GS_IT_ITEM_DUR (0x005ED2F0+1) // 1.00.93
#define GS_IT_ITEM_SKL (0x005ED2EE+1) // 1.00.93
#define GS_IT_ITEM_LCK (0x005ED2EC+1) // 1.00.93
#define GS_IT_ITEM_LIF (0x005ED2EA+1) // 1.00.93
#define GS_IT_ITEM_EXC (0x005ED2E4+1) // 1.00.93
#define GS_IT_ITEM_ANC (0x005ED2E2+1) // 1.00.93
#define FDReward1ID (0x0041F1F3+1) // PUSH 0D 13 // 1.00.93
#define FDReward1Type (0x0041F1F5+1) // PUSH 0E 14 // 1.00.93
#define FDReward2ID (0x0041F261+1) // PUSH 0E 14 // 1.00.93
#define FDReward2Type (0x0041F263+1) // PUSH 0E 14 // 1.00.93
#define GS_KUNDUN_ITEM_NUMB (0x0041EA3C+6) // Default 3 // 1.00.93 Revisar
#define GS_KUNDUN_ANC_PERCT (0x0041EC07+2) // Default 25% // 1.00.93 Revisar
#define GS_EXC_DROP_RATE (0x0041FC03+1) // 1.00.93
#define GS_EXC_SKILL_RATE (0x0042000C+6) // 1.00.93
#define GS_EXC_LUCK_RATE (0x00420016+6) // 1.00.93
#define GS_SKILL_RATE (0x00420065+6) // 1.00.93
#define GS_LUCK_RATE (0x0042006F+6) // 1.00.93
#define GS_ANCREWARD_SKILL_RATE (0x0054550F) // 6 // 1.00.93
#define GS_ANCREWARD_LUCK_RATE (0x00545516) // 4 // 1.00.93
#define GS_ANCRANDOM_SKILL_RATE (0x0054574F) // 6 // 1.00.93
#define GS_ANCRANDOM_LUCK_RATE (0x00545756) // 4 // 1.00.93
#define ShadowPhantomMaxLevel (0x005ACDD4) // 1.00.93
#define GS_SOUL_LUCKED (0x0053D22C+2) // 1.00.93
#define GS_NRSOUL_NOLUCK (0x0053D2D3+3) // 1.00.93
#define GS_EXSOUL_NOLUCK (0x0053D292+3) // 1.00.93
#define GS_SKSOUL_NOLUCK (0x0053D2C7+3) // 1.00.93
#define GS_LIFE_RATE (0x0053DAE7+3) // 1.00.93
#define PLUSMIXLUCKADD (0x005F2398+2) // 1.00.93
#define PLUSMIXNORMALITEM10 (0x005F21FF+6) // 1.00.93
#define PLUSMIX380ITEM10 (0x005F221B+6) // 1.00.93
#define PLUSMIXWINGITEM10 (0x005F2238+6) // 1.00.93
#define PLUSMIXNORMALITEM12 (0x005F228F+6) // 1.00.93
#define PLUSMIX380ITEM12 (0x005F22AC+6) // 1.00.93
#define PLUSMIXWINGITEM12 (0x005F22C9+6) // 1.00.93
#define PLUSMIXNORMALITEM13 (0x005F2321+6) // 1.00.93
#define PLUSMIX380ITEM13 (0x005F233E+6) // 1.00.93
#define PLUSMIXWINGITEM13 (0x005F235A+6) // 1.00.93
#define DEFAULTMIXRATE (0x005F2369+6) // 1.00.93
#define MAXRATE1 (0x005F23A7+6) // 1.00.93
#define MAXRATE2 (0x005F23B3+6) // 1.00.93
#define GS_WINGLVL1MIX (0x005F3EAA+6) // 1.00.93
#define GS_WINGLVL2MIX (0x005F3EB6+6) // 1.00.93
#define GS_WINGLVL3MIX11 (0x005F9370+6) // 1.00.93
#define GS_WINGLVL3MIX12 (0x005F937C+6) // 1.00.93
#define GS_WINGLVL3MIX21 (0x005F9A76+6) // 1.00.93
#define GS_WINGLVL3MIX22 (0x005F9A82+6) // 1.00.93
#define GS_SETITEMMIX1 (0x005FA83B+6) // 80% 380 lvl Mix 1.00.93
#define GS_SETITEMMIX2 (0x005FA847+6) // 80% 380 lvl Mix 1.00.93
#define GS_CC_MIN_PL (0x0059B460+3) // 1.00.93
#define GS_IT_MIN_PL (0x005E50F5+6) // 1.00.93
#define GS_DARK_HORSE (0x005F4A5C+6) // Default 60% // 1.00.93
#define GS_DARK_HORSE_PRICE (0x005F4A7B+3) // Default 5,000,000 // 1.00.93
#define GS_DARK_SPIRIT (0x005F515D+6) // Default 60% // 1.00.93
#define GS_DARK_SPIRIT_PRICE (0x005F517C+3) // Default 1,000,000 // 1.00.93
#define GS_TWISTINGSLASH_USELV (0x004AC77B+7) // 1.00.93
#define GS_RAGEFULBLOW_USELV (0x004AC794+7) // 1.00.93
#define GS_DEATHSTAB_USELV (0x004AC7AD+7) // 1.00.93
#define GS_IMPALE_USELV (0x004AC7C6+7) // 1.00.93
#define GS_INNERSTRENGTH_USELV (0x004AC7DF+7) // 1.00.93
#define GS_PENETRATION_USELV (0x004AC7F8+7) // 1.00.93
#define GS_MSNORMAL01 (0x004DF9DD+1) // 1.00.93
#define GS_MSNORMAL02 (0x004DF9FD+1) // 1.00.93
#define GS_MSNORMALTIME (0x004DFA22+1) // 1.00.93
#define GS_MSMASTER01 (0x004FF6BA+1) // 1.00.93
#define GS_MSMASTER02 (0x004FF6DA+1) // 1.00.93
#define GS_MSMASTERTIME (0x004FF735+1) // 1.00.93
#define GS_GFNORMAL01 (0x004DF707+1) // 1.00.93
#define GS_GFNORMAL02 (0x004DF727+1) // 1.00.93
#define GS_GFNORMALTIME (0x004DF751+1) // 1.00.93
#define GS_GFMASTER01 (0x00500025+1) // 1.00.93
#define GS_GFMASTER02 (0x00500045+1) // 1.00.93
#define GS_GFMASTERTIME (0x00500072+1) // 1.00.93
#define GS_BERSERKER_DIV1 (0x004EA657) // 1.00.93
#define GS_BERSERKER_DIV2 (0x004EA66F) // 1.00.93
#define GS_BERSERKER_DIV3 (0x004EA684) // 1.00.93
#define GS_SUM_REFLECT_01 (0x004E8E53+1) // default 2A // 1.00.93
#define GS_SUM_REFLECT_02 (0x004E8E5A+2) // default 1E // 1.00.93
#define SLEEP_PVP_OFFSET1 (0x004D5893+1) // /250 // 1.00.93
#define SLEEP_PVP_OFFSET2 (0x004D58B3+1) // /100 // 1.00.93
#define GS_CRITICALDMG_COMMAND (0x004E4584) // 1.00.93
#define GS_CRITICALDMG_ENERGY (0x004E45A4) // 1.00.93
#define GS_CRITICALDMG_TIME (0x004E45C7) // 1.00.93
Código:
#define j_gObjViewportListProtocolCreate ((void(*)(OBJECTSTRUCT* tObj))0x00535870) // 1.00.93
#define DataSend ((void(*)(DWORD PlayerID,PBYTE Packet,DWORD Size)) 0x004B7AB0) // 1.00.93
#define DataRecv ((void(*)(BYTE,PBYTE,DWORD,...))0x004383F0) // 1.00.93
#define GCServerMsgStringSend ((void(*)(char*Texto,DWORD PlayerID,int tipo))0x0040692E) // 1.00.93
#define NPCTalk ((void(*)(DWORD dwNpcID,char*Texto,DWORD PlayerID))0x005AA0A0) // 1.00.93 Revisar
#define ChatTargetSend ((DWORD(*)(DWORD *, char*, DWORD))0x0043B140) // 1.00.93
#define GCMoneySend ((void(*)(DWORD,int))0x00407919) // 1.00.93
#define CGLevelUpPointAdd ((int(*)(PBYTE Arg1,DWORD PlayerID))0x0043E010) // 1.00.93
#define ItemSerialCreateSend ((int(*)(DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD))0x004072E8) // 1.00.93
#define ChaosBoxInit ((void(*)(DWORD))0x0040506A) // 1.00.93
#define GCPkLevelSend ((void(*)(DWORD aIndex,BYTE PkLevel)) 0x00405411) // 1.00.93
#define gObjMoveGate ((void(*)(int aIndex, int Gate))0x00405EB6) // 1.00.93
#define gObjGetIndex ((int(*)(const char*))0x00401E42) // 1.00.93
#define DataSendAll ((void(*)(PBYTE lpMsg, int iMsgSize)) 0x004075A4) // 1.00.93
#define CloseClient ((void(*)(DWORD))0x00407BEE) // 1.00.93
#define GameMonsterAllCloseAndReload ((void(*)()) 0x004078CE) // 1.00.93
#define pShopDataLoad ((void(*)()) 0x00406E2E) // 1.00.93
#define GCLevelUpMsgSend ((void(*)(int, unsigned char)) 0x0043DDC0) // 1.00.93
#define j_gObjCalCharacter ((void(*)(int)) 0x004ED5E0) // 1.00.93
#define gObjInventoryDeleteItem ((void(*)(int,int)) 0x0051FF50) // 1.00.93
#define GCInventoryItemDeleteSend ((void(*)(int,int,unsigned char)) 0x00403B66) // 1.00.93
#define gObjGetItemCountInIventory ((int(*)(int,WORD))0x0040295A) // 1.00.93
#define gEventMonsterItemDrop ((void(*)(DWORD *, OBJECTSTRUCT *)) 0x00420F10) // 1.00.93
#define gObjMonsterDieGiveItem ((int(*) ( LPOBJ , LPOBJ )) 0x0040528B) // 1.00.93
#define CGInventoryItemMove ((void(*)(PBYTE pRecvBuff,DWORD PlayerID))0x004452D0) // 1.00.93
#define gObjAttackOriginal ((int(*)(OBJECTSTRUCT* lpObj, OBJECTSTRUCT* lpTargetObj,void*lpMagic, BOOL magicsend, BYTE MSBFlag, int AttackDamage, BOOL bCombo))0x0051C2E0) // 1.00.93
#define GCKillPlayerExpSend ((void(*)(int aIndex, int TargetIndex, int exp, int AttackDamage, BOOL MSBFlag)) 0x00458900) // 1.00.93
#define GCEquipmentSend ((void(*)(int)) 0x0043E7D0) // 1.00.93
#define GCItemListSend ((void(*)(int)) 0x0042F410) // 1.00.93
#define GCSendEffectInfo ((void(*)(int aIndex,BYTE btType)) 0x004042FA) // 1.00.93
#define gObjMakePreviewCharSet ((void(*)(int aIndex)) 0x00403BDE) // 1.00.93
#define GCSendQuestPrize ((void(*)(int aIndex,BYTE Type,BYTE Count)) 0x00403486) // 1.00.93
#define gObjCloseSet ((void(*)(DWORD aIndex, int))0x00504AC0) // 1.00.93
#define gObjNextExpCal ((void(*)(OBJECTSTRUCT* lpObj))0x00513F60) // 1.00.93
#define gItemDropPer 0x7C1B14 // 1.00.93
#define GCBuffStateInfoSend ((int(*) (int, int, int)) 0x00459BF0) // 1.00.93
#define gObjTeleport ((void(*)(int, int, int, int))0x0040338C) // 1.00.93
#define gObjSetBP ((void(*)(DWORD))0x00401EBF) // 1.00.93
#define GCReFillSend ((void(*)(int, WORD, BYTE, unsigned char, WORD))0x00404B4C) // 1.00.93
#define GCManaSend ((void(*)(DWORD, DWORD, DWORD, DWORD, DWORD))0x00402FA9) // 1.00.93
#define gObjAddBuffEffect ((void(*) (LPOBJ lpObj,int BuffId, int BuffType1,int BuffType2,int Increase1, int Increase2,int Duration))0x00405394) // 1.00.93
#define gObjSetMonsters ((void(*)(int,int))0x0050BBB0) // 004063B6 1.00.93
#define gObjAddMonsters ((int(*)(unsigned char))0x004045ED) // 1.00.93
#define gObjDel ((void (*)(int)) 0x00403B61) // 1.00.93
#define GCMagicAttackNumberSend ((void(*)(OBJECTSTRUCT*, unsigned char, int, unsigned char))0x00406D48) // 1.00.93
#define MIN_PLAYERID 8000
#define MAX_PLAYERID 9000
#define GET_USER_INDEX(aIndex) ( 9000 - aIndex )
#define OBJ_MAXMONSTER 7400
#define gObjOffset (*(CHAR**)0x7A77894) // 1.00.93
#define gObjSize 0x2250 // 1.00.93 Revisar
#define gObjMaxUsr 0x2350 // Revisar Totalmente
Fixes:
Código:
//=======================================//
// Drop Ring Of Warrior Lv.40 //
//=======================================//
BYTE ring40[5] = {0xE8, 0xD9, 0x23, 0xFC, 0xFF};
memcpy((int*)0x00443AC4,ring40,sizeof(ring40));
//=======================================//
// Outros Fixes //
//=======================================//
SetRRetn(0x00403233); // Destroy Giocp = Função -> 004B5A70
SetRRetn(0x00406C49); // Serial 0x00000000 = Função -> 0061A630
SetRRetn(0x00404683); // HACK TOOL DC Fix = Função -> 004B5810
SetByte(0x004384C7,0xEB); // Socket Serial = Função -> 004384C7
SetByte(0x0043A6EE,0x90); // Hack reporting = Função -> 0043A6EE
SetByte(0x0043A6EF,0x90); // 1.00.93
SetByte(0x0043A710,0xE9); // 1.00.93
SetByte(0x0043A711,0x74); // 1.00.93
SetByte(0x0043A712,0x01); // 1.00.93
SetByte(0x0043A713,0x00); // 1.00.93
SetByte(0x0043A715,0x90); // 1.00.93
SetNop(0x0045B092,27); // Protocol Error -> 1.00.93
SetByte(0x00463156,0xEB); // DevilSquare Master -> 1.00.93
SetNop(0x004B7B1E,6); // error-L2 : Index(%d) %x %x %x -> 1.00.93
SetByte(0x004B87DF,0x90); // Invalid Socket -> 1.00.93
SetByte(0x004B87E0,0x90); // 1.00.93
SetByte(0x004B8812,0xEB); // 1.00.93 -> Talvez não precise
SetNop(0x00574153,5); // ggauth.dll Unload
SetByte(0x00574168,0xEB); // -> 1.00.93
SetByte(0x00586B33,0x33); // BC Master Enter FIX
SetByte(0x00586B34,0xC0); // 1.00.93
SetByte(0x00586B35,0x90); // 1.00.93
SetByte(0x00586BED,0x33); // 1.00.93
SetByte(0x00586BEE,0xC0); // 1.00.93
SetByte(0x00586BED,0x90); // 1.00.93
SetByte(0x005AE56C,0xFF); // AiElement Error -> 1.00.93
SetByte(0x005E02B1,0xEB); // Illusion Temple enter -> 1.00.93
SetNop(0x00512AE3,5); // Crash/DataServer - CalExperienceSaveTime -> 1.00.93
SetNop(0x004FC69F,5); // CalExperienceSaveTime -> 1.00.93
SetByte(0x0060AB76,0x75); // Reload Lost Connection 1.00.93
SetByte(0x0060AB76+1,0x60); // Reload Lost Connection 1.00.93
SetNop(0x004A58C0,7); // Drop W/ luck Fix 1.00.93
SetByte(0x004DB4C6,0x3F); // Arena Não Pode PVP 1.00.93
//=======================================// 1.00.93
// Packet Por Segundo //
//=======================================//
BYTE cFixPacketPerSecond[6] = {0xE9,0x42,0x01,0x00,0x00,0x90};
memcpy((int*)0x004B583B,cFixPacketPerSecond,sizeof(cFixPacketPerSecond));
//=======================================// 1.00.93
// Ignorar MonsterSkill.txt Max Monstro //
//=======================================//
SetByte(0x005B160C,0x58);
SetByte(0x005B160D,0x02);
//=======================================// 1.00.93
// GM Transformação Ring //
//=======================================//
BYTE JumpGMCode[] = {0xE9,0x3E,0x08,0x00,0x00,0x90,0x90,0x90};
memcpy((int*)0x00535AB8,JumpGMCode,sizeof(JumpGMCode));
BYTE PachtGMCode[] = {0x83,0xC2,0x2E,0x89,0x95,0x6C,0xEC,0xFF,0xFF,0xE9,0xB7,0xF7,0xFF,0xFF};
memcpy((int*)0x005362FB,PachtGMCode,sizeof(PachtGMCode));
//=======================================// 1.00.93
// Personal Shop Delete Items //
//=======================================//
SetByte(0x005099E1,0xE9);
SetByte(0x005099E1+1,0xBB);
SetByte(0x005099E1+2,0x02);
SetByte(0x005099E1+3,0x00);
SetByte(0x005099E1+4,0x00);
SetByte(0x005099E1+5,0x90);
//=======================================// 1.00.93
// Salve Quest Marlon (Combo) //
//=======================================//
SetByte(0x0050933D,0xEB);
SetByte(0x0050939E,0xEB);
//=======================================// 1.00.93
// Blue Feather //
//=======================================//
SetByte(0x0041FEE7,0xEB);
SetByte(0x0041FEF7,0xEB);
//=======================================// 1.00.93
// Dump File / Crash //
//=======================================//
SetByte(0x004CB7E1,0xE9);
SetByte(0x004CB7E2,0x2E);
SetByte(0x004CB7E3,0x01);
SetByte(0x004CB7E4,0x00);
SetByte(0x004CB7E6,0x90);
//=======================================//
// 3ª Wings Fix / Crash //
//=======================================//
*(BYTE*)(0x005F9376) = 0x64; // 1.00.93
*(BYTE*)(0x005F9377) = 0xEB; // 1.00.93
*(BYTE*)(0x005F9A7D) = 0xEB; // 1.00.93
*(BYTE*)(0x005F9A7F) = 0x8B; // 1.00.93
*(BYTE*)(0x005F9A80) = 0x4D; // 1.00.93
*(BYTE*)(0x005F9A81) = 0x08; // 1.00.93
*(BYTE*)(0x005F9A82) = 0xC7; // 1.00.93
*(BYTE*)(0x005F9A83) = 0x81; // 1.00.93
*(BYTE*)(0x005F9A84) = 0xD8; // 1.00.93
*(BYTE*)(0x005F9A85) = 0x0E; // 1.00.93
*(BYTE*)(0x005F9A86) = 0x00; // 1.00.93
*(BYTE*)(0x005F9A87) = 0x00; // 1.00.93
*(BYTE*)(0x005F9A88) = 0x28; // 1.00.93
*(BYTE*)(0x005F9A89) = 0x00; // 1.00.93
*(BYTE*)(0x005F9A8A) = 0x00; // 1.00.93
*(BYTE*)(0x005F9A8B) = 0x00; // 1.00.93
*(BYTE*)(0x005F9379) = 0x8B; // 1.00.93
*(BYTE*)(0x005F937A) = 0x4D; // 1.00.93
*(BYTE*)(0x005F937B) = 0x08; // 1.00.93
*(BYTE*)(0x005F937C) = 0xC7; // 1.00.93
*(BYTE*)(0x005F937D) = 0x81; // 1.00.93
*(BYTE*)(0x005F937E) = 0xD8; // 1.00.93
*(BYTE*)(0x005F937F) = 0x0E; // 1.00.93
*(BYTE*)(0x005F9380) = 0x00; // 1.00.93
*(BYTE*)(0x005F9381) = 0x00; // 1.00.93
*(BYTE*)(0x005F9382) = 0x3C; // 1.00.93
*(BYTE*)(0x005F9383) = 0x00; // 1.00.93
*(BYTE*)(0x005F9384) = 0x00; // 1.00.93
*(BYTE*)(0x005F9385) = 0x00; // 1.00.93
//=======================================//
// Liberar Skills CastleSiege //
//=======================================//
if(SkillCS == 1)
{
SetByte(0x004E5849,0xEB); // 1.00.93
SetByte(0x004E5859,0xEB); // 1.00.93
SetByte(0x004E5749,0xEB); // 1.00.93
SetByte(0x004E5759,0xEB); // 1.00.93
SetByte(0x004E5966,0xEB); // 1.00.93
SetByte(0x004E5976,0xEB); // 1.00.93
SetByte(0x004E5A59,0xEB); // 1.00.93
SetByte(0x004E5A69,0xEB); // 1.00.93
SetByte(0x004E5B79,0xEB); // 1.00.93
SetByte(0x004E5B89,0xEB); // 1.00.93
SetByte(0x004E5C76,0xEB); // 1.00.93
SetByte(0x004E5C86,0xEB); // 1.00.93
}
//=======================================// 1.00.93
// Skills SM 233 Enhance //
//=======================================//
BYTE Enhance[6] = {0xD8, 0x0D, 0xB3, 0xF3, 0x54, 0x00};
memcpy((int*)0x004EBD8E,Enhance,sizeof(Enhance));
//=======================================//
// Battle Soccer //
//=======================================//
*(BYTE*)(0x00567519) = 0x45; // Revisar
*(BYTE*)(0x0056751A) = 0x10;
*(BYTE*)(0x005675D2) = 0x8C;
*(BYTE*)(0x005675D3) = 0x0F;
//=======================================// 1.00.93
// GM Windows 7 e Windows Vista // Creio que não precisa do Fix
//=======================================//
BYTE GMVista[2] = {0xEB, 0x42};
memcpy((int*)0x00509FDC,GMVista,sizeof(GMVista));
Algums Hooks:
Código:
HookThis((DWORD)&gObjCalCharacter,0x0040319D); // 1.00.93
HookThis((DWORD)&GCEquipmentSendNew, 0x00407838); // 1.00.93
HookThis((DWORD)>SocketSystem,0x00402E6E); // 1.00.93
HookThis((DWORD)&gObjAttackNew,0x00403D3C); // 1.00.93
void HooksInAsm()
{
SetProtocol();
_asm
{
pushad
mov eax, 0x00403922+1
mov ecx, offset ProtocolCore
sub ecx, 0x00403922+5
mov [eax], ecx
mov eax, 0x004057A9+1
mov ecx, offset ProtocolCoreSend
sub ecx, 0x004057A9+5
mov [eax], ecx
mov eax, 0x00447180 // 00447180 Revisar
mov ecx, offset NpcRecvTalk
sub ecx, 0x00447180+4
mov [eax], ecx
mov eax, 0x004471B1 // 004471B1 Revisar
mov ecx, offset NpcRecvTalk
sub ecx, 0x004471B1+4
mov [eax], ecx
mov eax,0x00402A9A+1
mov ecx,offset MyGEventMonsterItemDrop
sub ecx,0x00402A9A+5
mov [eax],ecx
mov eax,0x00405DE9+1
mov ecx,offset MyCGInventoryItemMove
sub ecx,0x00405DE9+5
mov [eax],ecx
mov eax,0x004076F3+1
mov ecx,offset MyCGLevelUpPointAdd
sub ecx,0x004076F3+5
mov [eax],ecx
mov eax,0x004035CB+1
mov ecx,offset gObjViewportListProtocolCreate
sub ecx,0x004035CB+5
mov [eax],ecx
popad
}
}
Shops Exc:
Código:
__declspec(naked) void ExcShop()
{
Exc=0;
_asm
{
MOV EDI,CWzMemScript::GetNumber
CALL EDI
MOV DWORD PTR SS:[EBP-0xBC],EAX
LEA ECX,DWORD PTR SS:[EBP-0x9C]
MOV EDI,CWzMemScript::GetToken
CALL EDI
MOV DWORD PTR SS:[EBP-0xA0],EAX
LEA ECX,DWORD PTR SS:[EBP-0x9C]
MOV EDI,CWzMemScript::GetNumber
CALL EDI
MOV Exc,EAX
MOV EDI,ShopExcellentMod_Exit1
JMP EDI
}
}
__declspec(naked) void ExcShopAdd()
{
_asm
{
PUSH Exc
MOV AL,BYTE PTR SS:[EBP+0x20]
MOV EDI,ShopExcellentMod_Exit2
JMP EDI
}
}
void AssemblyExcShops()
{
*(DWORD*)((ShopExcellentMod_Hook1+ 1)) = (DWORD)&ExcShop - (ShopExcellentMod_Hook1+ 5);
*(BYTE*)(ShopExcellentMod_Hook1) = 0xE9;
*(DWORD*)((ShopExcellentMod_Hook2+ 1)) = (DWORD)&ExcShopAdd - (ShopExcellentMod_Hook2+ 5);
*(BYTE*)(ShopExcellentMod_Hook2) = 0xE9;
}
Header:
#define ShopExcellentMod_Hook1 0x00562964 // 1.00.93
#define ShopExcellentMod_Exit1 0x0056296F // 1.00.93
#define ShopExcellentMod_Hook2 0x00561E95 // 1.00.93
#define ShopExcellentMod_Exit2 0x00561E9A // 1.00.93
void AssemblyExcShops();
Observações: GameServer Não Precisa de Fix Para Panda Pet, Gambling System Original Funcionando, NewPVP (Seria o Novo Duelo) mais não consegui fazer funcionar ainda, da erro de "data move request" tô ficando doido já T_T...
Foi 3 Dias Grudados no GameServer Então Espero Que Mantenham os Creditos:
Creditos:
- João Neto * GTeam
Atenciosamente,
João Neto.
Marcadores