Newbie Spellweaver
- Joined
- Jul 19, 2005
- Messages
- 22
- Reaction score
- 53
Hey Guys, it is with great pleasure to announce and release a "decompiled" version of GameServer 1.00.90 JPN.
Since May 2011 i offered Crazzy (Russian guy) my help to make this project get finished since i also finished
GameServer 1.00.77 JPN, and all went very well. I will be releasing GS_N and GS_CS without any "cracks" with
full .map file only cuz PDB is very helpful for decompilation which I don't want to happen for now
PS. All the functions names are "emulated" because we don't have any PDB . The most interesting thing is that
webzen fixed all bugs since all past gameservers, formulas changed, BuffEffect changed, MixSystem changed again 3 times,
etc. Also my GS_CS has SAME OFFSETS until castledeep code but GS_N don't have same offsets I think it's because
of the bad header or supposed virus on the original one... Check this link:
About the .exe size, differ because webzen uses old service packs for visual 6.0 maybe SP3 cuz tested with SP4, 5
and 6 and same size ~4,47MB(Siege)
So here I leave the full change log:
GameServer Download Link (Almost all protocol compiled, exclude CHS, KOR)
(July-17th)*Links updated due to Bug Fix of Golden Mobs Drop Bad Decompilation.
(August-4th)*Links updated due to Bug Fix of MG EvilSpirit Damage (no damage before due to CLASS_ELF instead of CLASS_MAGUMSA) and fixed Jewel Mix Interface State (old: 12/new: 20).
(August-5th)*Links updated due to Bug Fix of BK Swell Life Buff (no party effect before due to lpObj instead of lpPartyObj).
No offsets were changed since first release :
- Link JPN GS_N:
- Link JPN GS_CS:
- Link ENG GS_N:
- Link ENG GS_CS:
- Link TAI GS_N:
- Link TAI GS_CS:
- Link PHI GS_N:
- Link PHI GS_CS:
- Link VTM GS_N:
- Link VTM GS_CS:
I would like to announce too our new team called MSC (Mu Season Coder) and we will be starting developing a Season 4.6
full and free release using this source and maybe other projects too
(July-20th)*Full Objectstruct Release: Ps. Use #define GS_CASTLE 1 for gs_cs objectstruct
Att,
HermeX
Since May 2011 i offered Crazzy (Russian guy) my help to make this project get finished since i also finished
GameServer 1.00.77 JPN, and all went very well. I will be releasing GS_N and GS_CS without any "cracks" with
full .map file only cuz PDB is very helpful for decompilation which I don't want to happen for now
PS. All the functions names are "emulated" because we don't have any PDB . The most interesting thing is that
webzen fixed all bugs since all past gameservers, formulas changed, BuffEffect changed, MixSystem changed again 3 times,
etc. Also my GS_CS has SAME OFFSETS until castledeep code but GS_N don't have same offsets I think it's because
of the bad header or supposed virus on the original one... Check this link:
You must be registered to see links
About the .exe size, differ because webzen uses old service packs for visual 6.0 maybe SP3 cuz tested with SP4, 5
and 6 and same size ~4,47MB(Siege)
So here I leave the full change log:
Code:
GameServer: - 1.00.90 JPN
Members: - HermeX / Crazzy
Special Thanks - SirMaster / Prody / Willerson and ofc Deathway and eRRoR for the great GameServer 1.00.18 source :)
:: Project started - 5.05.2011
//ALL DATA
OBJECTSTRUCT :: 100% ::
COMPARING CPP's :
MonsterHerd.cpp :: 100% ::
KalimaGate.cpp :: 100% ::
gObjMonster.cpp :: 100% ::
MonsterAttr.cpp :: 100% ::
MonsterItemMng.cpp :: 100% ::
MonsterSetBase.cpp :: 100% ::
DbSave.cpp :: 100% ::
DBSockMng.cpp :: 100% ::
DSProtocol.cpp :: 100% ::
SProtocol.cpp :: 100% ::
protocol.cpp :: 100% ::
EDSProtocol.cpp :: 100% ::
MultiAttackHackCheck.cpp :: 100% :: - have news checks
NSerialCheck.cpp :: 100% ::
PacketCheckSum.cpp :: 100% ::
HackToolPacket.cpp :: 100% ::
TDurMagicKeyChecker.cpp :: 100% ::
ChinaHackUserKick.cpp :: 100% :: - non-coded
SendHackLog.cpp :: 100% ::
DevilSquare.cpp :: 100% ::
DevilSquareGround.cpp :: 100% ::
BattleGround.cpp :: 100% ::
BattleSoccer.cpp :: 100% ::
BattleSoccerManager.cpp :: 100% ::
DragonEvent.cpp :: 100% :: - void CDragonEvent::Start() - changed
AttackEvent.cpp :: 100% ::
EledoradoEvent.cpp :: 100% ::
RingAttackEvent.cpp :: 100% ::
WTEventItemList.cpp :: 100% :: - non code
CastleDeepEvent.cpp :: 100% :: - same as 77
PCBangPointSystem.cpp :: 100% ::
GambleSystem.cpp :: 100% :: - Moss Merchant system fully coded *-*
XMasAttackEventData.cpp :: 100% :: - can't fix position for virtual functions
Event.cpp :: 100% :: - need correct packets vars names cuz is all Unk_X
EventManagement.cpp :: 100% ::
ItemBag.cpp :: 100% ::
ItemBagEx.cpp :: 100% ::
ProbabilityItemBag.cpp :: 100% ::
XMasAttackEvent.cpp :: 100% ::
MagicDamage.cpp :: 100% ::
MagicInf.cpp :: 100% ::
SkillAdditionInfo.cpp :: 100% ::
SkillDelay.cpp :: 100% ::
SkillHitBox.cpp :: 100% ::
QuestInfo.cpp :: 100% :: - void CQuestInfo::QuestSuccessCommand - fixed added in 4.5
QuestUtil.cpp :: 100% :: - same
wsGameServer.cpp :: 100% :: - same
WzMultiCastSock.cpp :: 100% :: - same
giocp.cpp :: 100% ::
\common\MyWinsockBase.cpp :: 100% :: - same
wsJoinServerCli.cpp :: 100% :: - same
WzQueue.cpp :: 100% :: - same
WzUdp.cpp :: 100% :: - same
MapClass.cpp :: 100% :: - new func and some addons for socketsystem
MapItem.cpp :: 100% :: - some addons for socketsystem
AcceptIp.cpp :: 100% :: - same
CLoginCount.cpp :: 100% :: - same
ClosePlayer.cpp :: 100% :: - same
ConMember.cpp :: 100% :: - same
IpCache.cpp :: 100% :: - same
DirPath.cpp :: 100% :: - same
logproc.cpp :: 100% :: - same
LogToFile.cpp :: 100% :: - same
MoveCheck.cpp :: 100% :: - same
\common\winutil.cpp :: 100% :: - same
WhisperCash.cpp :: 100% :: - same
zzzmathlib.cpp :: 100% :: - changed
\common\WZScriptEncode.cpp :: 100% :: - same
CWhatsUpDummyServer.cpp :: 100% :: - same
TNotice.cpp :: 100% :: - same
TStatistics.cpp :: 100% :: - same
CallStackTrace.cpp :: 100% :: - same
TServerAlertManager.cpp :: 100% :: - macro
TServerInfoDisplayer.cpp :: 100% :: - same
MiniDump.cpp :: 100% :: - same
PartyClass.cpp :: 100% :: - same
GuildClass.cpp :: 100% :: - same
ViewportGuild.cpp :: 100% :: - same
ObjAttack.cpp :: 100% ::
ObjBaseAttack.cpp :: 100% ::
ObjUseSkill.cpp :: 100% ::
\common\classdef.cpp :: 100% :: - same
StatMng.cpp :: 100% :: - changed formulas
ComboAttack.cpp :: 100% ::
ObjCalCharacter.cpp :: 100% ::
DarkSpirit.cpp :: 100% ::
TUnion.cpp :: 100% :: - same
TUnionInfo.cpp :: 100% :: - same
MasterLevelSystem.cpp :: 100% :: - few fixes
MasterSkillSystem.cpp :: 100% ::
user.cpp :: 100% ::
SocketData.cpp :: 100% ::
SocketOption.cpp :: 100% ::
SocketSphere.cpp :: 100% ::
ItemAddOption.cpp :: 100% :: - one new func
JewelMixSystem.cpp :: 100% :: - dupe fix in both mix and unmix
\common\SetItemOption.cpp :: 100% :: - same
\common\zzzitem.cpp :: 100% ::
Shop.cpp :: 100% ::
CCastleEventItemList.cpp :: 100% :: - macro
GMMng.cpp :: 100% ::
MoveCommand.cpp :: 100% :: - new checks
SetItemMacro.cpp :: 100% ::
GameMain.cpp :: 100% ::
GameServer.cpp :: 100% ::
Gate.cpp :: 100% ::
BloodCastle.cpp :: 100% ::
ChaosCastle.cpp :: 100% ::
ChaosCastleSetItemDrop.cpp :: 100% :: - macro
CannonTower.cpp :: 100% ::
CastleCrown.cpp :: 100% ::
CastleCrownSwitch.cpp :: 100% ::
Guardian.cpp :: 100% ::
GuardianStatue.cpp :: 100% ::
LifeStone.cpp :: 100% :: - fix added on 4.5
Mercenary.cpp :: 100% ::
Weapon.cpp :: 100% :: - same as 77
CastleSiege.cpp :: 100% ::
CastleSiegeSync.cpp :: 100% ::
MapServerManager.cpp :: 100% ::
NpcTalk.cpp :: 100% ::
TMonsterSkillElement.cpp :: 100% ::
TMonsterSkillElementInfo.cpp :: 100% ::
TMonsterSkillManager.cpp :: 100% ::
TMonsterSkillUnit.cpp :: 100% :: - completed but TMonsterSkillElement::GetElementName() i cant fix position for this func :(
TMonsterAI.cpp :: 100% ::
TMonsterAIAgro.cpp :: 100% :: - completed but cant fix position for .h extra class
TMonsterAIAutomata.cpp :: 100% ::
TMonsterAIElement.cpp :: 100% ::
TMonsterAIGroup.cpp :: 100% ::
TMonsterAIGroupMember.cpp :: 100% ::
TMonsterAIMovePath.cpp :: 100% :: - completed but cant fix position for .h extra class
TMonsterAIRule.cpp :: 100% ::
TMonsterAIRuleInfo.cpp :: 100% ::
TMonsterAIUnit.cpp :: 100% ::
TMonsterAIUtil.cpp :: 100% ::
CrywolfAltar.cpp :: 100% ::
CrywolfStatue.cpp :: 100% ::
CrywolfDarkElf.cpp :: 100% ::
CrywolfMonster.cpp :: 100% ::
CrywolfTanker.cpp :: 100% ::
Crywolf.cpp :: 100% :: - completed but cant fix position for .h extra class
CrywolfStateTimeInfo.cpp :: 100% ::
CrywolfSync.cpp :: 100% ::
CrywolfUtil.cpp :: 100% ::
ItemSystemFor380.cpp :: 100% :: - cant fix position for DebugLog func
JewelOfHarmonySystem.cpp :: 100% ::
TRandomPoolMgr.cpp :: 100% ::
KanturuMaya.cpp :: 100% ::
KanturuMonsterMng.cpp :: 100% ::
KanturuNightmare.cpp :: 100% ::
KanturuBattleOfMaya.cpp :: 100% ::
KanturuBattleOfNightmare.cpp :: 100% ::
KanturuBattleStanby.cpp :: 100% ::
KanturuTowerOfRefinement.cpp :: 100% ::
KanturuBattleUserMng.cpp :: 100% ::
KanturuEntranceNPC.cpp :: 100% ::
Kanturu.cpp :: 100% :: - m_iKanturuBattleCounter and int m_iKanturuBattleDate may be deleted, and func void SetKanturuTimeAttackEventInfo() has deleted
KanturuStateInfo.cpp :: 100% ::
KanturuUtil.cpp :: 100% :: - SendDataKanturuTimeAttackEvent - deleted from 4.5
IllusionTempleEvent.cpp :: 100% ::
IllusionTempleProcess.cpp :: 100% ::
MixSystem.cpp :: 100% ::
CashShop.cpp :: 100% ::
wsShopServerCli.cpp :: 100% ::
CashItemPeriodSystem.cpp :: 100% ::
CashLotterySystem.cpp :: 100% ::
ViewportSkillState.cpp :: 100% :: - webzen remade Add and Clear. Now is "Prev" and "Next" BuffLastEffect for CalCharacter and one master function to Clear all :)
BuffManager.cpp :: 100% ::
BuffEffect.cpp :: 100% ::
RaklionSelupan.cpp :: 100% ::
RaklionBattleOfSelupan.cpp :: 100% ::
RaklionBattleUserMng.cpp :: 100% ::
Raklion.cpp :: 100% ::
RaklionUtil.cpp :: 100% ::
ChaosCard.cpp :: 100% ::
GameEvent.cpp :: 100% ::
GameServerAuth.cpp :: 100% ::
LargeRand.cpp :: 100% ::
MultiCheckSum.cpp :: 100% ::
TSync.cpp :: 100% ::
\common\WzMemScript.cpp :: 100% ::
GameServer Download Link (Almost all protocol compiled, exclude CHS, KOR)
(July-17th)*Links updated due to Bug Fix of Golden Mobs Drop Bad Decompilation.
(August-4th)*Links updated due to Bug Fix of MG EvilSpirit Damage (no damage before due to CLASS_ELF instead of CLASS_MAGUMSA) and fixed Jewel Mix Interface State (old: 12/new: 20).
(August-5th)*Links updated due to Bug Fix of BK Swell Life Buff (no party effect before due to lpObj instead of lpPartyObj).
No offsets were changed since first release :
- Link JPN GS_N:
You must be registered to see links
- Link JPN GS_CS:
You must be registered to see links
- Link ENG GS_N:
You must be registered to see links
- Link ENG GS_CS:
You must be registered to see links
- Link TAI GS_N:
You must be registered to see links
- Link TAI GS_CS:
You must be registered to see links
- Link PHI GS_N:
You must be registered to see links
- Link PHI GS_CS:
You must be registered to see links
- Link VTM GS_N:
You must be registered to see links
- Link VTM GS_CS:
You must be registered to see links
I would like to announce too our new team called MSC (Mu Season Coder) and we will be starting developing a Season 4.6
full and free release using this source and maybe other projects too
(July-20th)*Full Objectstruct Release: Ps. Use #define GS_CASTLE 1 for gs_cs objectstruct
Code:
typedef void * LPGGAUTH;
struct _GG_AUTH_DATA
{
DWORD dwIndex; // 0
DWORD dwValue1; // 4
DWORD dwValue2; // 8
DWORD dwValue3; // C
};
struct _GG_AUTH_PROTOCOL
{
HINSTANCE hDllHinstance; // 0
DWORD dwPtrcVersion; // 4
DWORD dwQueryCount; // 8
DWORD unkC;
DWORD (*PtrcGetAuthQuery)(int, LPGGAUTH, _GG_AUTH_DATA*, _GG_AUTH_DATA*); // 10
DWORD (*PtrcCheckAuthAnswer)(int, LPGGAUTH, _GG_AUTH_DATA*, _GG_AUTH_DATA*); // 14
_GG_AUTH_PROTOCOL * lpPrevProtocol; // 18
};
class CCSAuth2
{
public:
CCSAuth2(){}
~CCSAuth2(){}
_GG_AUTH_PROTOCOL* m_pProtocol; // 0
unsigned long m_bPrtcRef; // 4
DWORD m_dwUserFlag; // 8
_GG_AUTH_DATA m_AuthQuery; // C
_GG_AUTH_DATA m_AuthAnswer; // 1C
};
struct ComboSkillData
{
public:
void Init();
DWORD dwTime; //
short Skill[3]; //
int ProgressIndex; //
};
typedef struct tagActionState
{
DWORD Rest:1; // 0
DWORD Attack:1; // 1
DWORD Move:1; // 2
DWORD Escape:1; // 3
DWORD Emotion:4; // 4
DWORD EmotionCount:8; // 8
} ACTION_STATE, * LPACTION_STATE;
struct HITDAMAGE_STRUCT
{
short number; // 0
int HitDamage; // 4
DWORD LastHitTime; // 8
};
struct VIEWPORT_STRUCT
{
char state; // 0
short number; // 2
BYTE type; // 4
short index; // 6
int dis; // 8
};
struct VIEWPORT_PLAYER_STRUCT
{
char state; // 0
short number; // 2
BYTE type; // 4
short index; // 6
int dis; // 8
};
typedef struct tagInterfaceState
{
DWORD use : 2;
DWORD state : 4;
DWORD type : 10;
} INTERFACE_STATE, * LPINTERFACE_STATE;
class TDurMagicKeyChecker
{
private:
DWORD m_dwDurationTime[60]; // 0
BYTE m_btValidCount[60]; // F0
};
class CSkillDelay
{
public:
CSkillDelay(){}
virtual ~CSkillDelay(){}
private:
DWORD LastSkillUseTime[600];
};
class TMonsterSkillElementInfo
{
public:
static void CheckSkillElementInfoProc(struct OBJECTSTRUCT * lpObj);
public:
int m_iSkillElementDefense; // 0
int m_iSkillElementDefenseTime; // 4
int m_iSkillElementAttack; // 8
int m_iSkillElementAttackTime; // C
int m_iSkillElementAutoHP; // 10
int m_iSkillElementAutoHPCycle; // 14
int m_iSkillElementAutoHPTime; // 18
int m_iSkillElementAutoMP; // 1C
int m_iSkillElementAutoMPCycle; // 20
int m_iSkillElementAutoMPTime; // 24
int m_iSkillElementAutoAG; // 28
int m_iSkillElementAutoAGCycle; // 2C
int m_iSkillElementAutoAGTime; // 30
int m_iSkillElementImmuneNumber; // 34
int m_iSkillElementImmuneTime; // 38
int m_iSkillElementResistNumber; // 3C
int m_iSkillElementResistTime; // 40
int m_iSkillElementModifyStat; // 44
int m_iSkillElementModifyStatType; // 48
int m_iSkillElementModifyStatTime; // 4C
int m_iSkillElementBerserkTime; //50
};
struct TMonsterAIAgroInfo
{
private:
int m_iUserIndex; // 0
int m_iAgroValue; // 4
};
class TMonsterAIAgro
{
public:
TMonsterAIAgro(){}
virtual ~TMonsterAIAgro(){}
private:
TMonsterAIAgroInfo m_Agro[100]; // 4
};
struct JEWELOFHARMONY_ITEM_EFFECT
{
short HJOpAddMinAttackDamage; // 0
short HJOpAddMaxAttackDamage; // 2
short HJOpRequireStr; // 4
short HJOpRequireDex; // 6
short HJOpAddAttackDamage; // 8
short HJOpAddCriticalDamage; // A
short HJOpAddSkillAttack; // C
short HJOpAddAttackSuccessRatePVP; // E
short HJOpDecreaseSDRate; // 10
short HJOpAddIgnoreSDRate; // 12
short HJOpAddMagicPower; // 14
short HJOpAddDefense; // 16
short HJOpAddMaxAG; // 18
short HJOpAddMaxHP; // 1A
short HJOpAddRefillHP; // 1C
short HJOpAddRefillMP; // 1E
short HJOpAddDefenseSuccessRatePvP; // 20
short HJOpAddDamageDecrease; // 22
short HJOpAddSDRate; // 24
};
struct ITEMOPTION_FOR380ITEM_EFFECT
{
short OpAddAttackSuccessRatePVP; // 0
short OpAddDamage; // 2
short OpAddDefenseSuccessRatePvP; // 4
short OpAddDefense; // 6
short OpAddMaxHP; // 8
short OpAddMaxSD; // A
short OpRefillOn; // C
short OpAddRefillSD; // E
};
struct PCBANG_POINT_SYSTEM
{
//PcBang Control
BOOL m_bPcBangPointEnable;
//PcBang Common Settings
BYTE m_bPcBangCommonRule; //0x20A8
short m_sPcBangCommonRuleTime; //0x20AA
//PcBang Point Storage
short m_sPcBangGainPoint; //0x20AC
int m_iPcBangAccumulatedPoint; //0x20B0
//PcBang Set Info
BOOL m_bPcBangInfoSet; //0x20B4
//PcBang Timer Point Tick
DWORD m_dwPcBangPointTick; //0x20B8
//PcBang Reset Point Time Control (Eventserver Send)
short m_sPcBangResetYear; //0x20BC
short m_sPcBangResetMonth; //0x20BE
short m_sPcBangResetDay; //0x20C0
short m_sPcBangResetHour; //0x20C2
};
class CPCBangPointTimeCondition //completed identical
{
public:
CPCBangPointTimeCondition(){}
virtual ~CPCBangPointTimeCondition(){}
};
class CPCBangPointTimer : public CPCBangPointTimeCondition //completed identical
{
public:
CPCBangPointTimer(){}
virtual ~CPCBangPointTimer(){}
typedef void (*TUserIndex)(CPCBangPointTimer*,int);
public:
int m_iUSR_ResetYear; //0x4
int m_iUSR_ResetMonth; //0x8
int m_iUSR_ResetDay; //0xC
int m_iUSR_ResetHour; //0x10
int m_iSVR_ResetDayOfWeek; //0x14
int m_iSVR_ResetHour; //0x18
TUserIndex m_iTUserIndex; //0x1C
BOOL m_bSetTimer; //(size 0x4) //0x20
SYSTEMTIME m_tmPcBangResetTime; //(size 0x10) //0x24
int m_iUserIndex; //0x34
};
struct SOCKET_ITEM
{
BYTE m_btEffectType;
BYTE m_btOptionType;
WORD m_wOptionValue;
BYTE m_btOptionCount;
};
class CHackToolPacket
{
public:
CHackToolPacket(){}
~CHackToolPacket(){}
DWORD m_dwTick; //0
bool bLoad; //4
BYTE bSetTick; //5
DWORD unk_8; //8
int m_iPacketCount; //C
DWORD unk_10; //10
DWORD unk_14; //14
};
struct MONSTERKILLINFO
{
int MonIndex;
int KillCount;
};
struct BUFF_MANAGER
{
BYTE btBuffIndex; //210
BYTE btVpIndex; //211
BYTE btEffectType1; //212
BYTE btEffectType2; //213
int iValue1; //214
int iValue2; //218
DWORD dwBuffTickCount; //21C
int iDuration; //220
};
struct ML_PassiveSkill //S4 Updated
{
int m_iML_IncreaseAttackSuccessRate; //4C8
int m_iML_AttackRate; //4CC
int m_iML_IncreasePvPDefenceRate; //4D0
int m_iML_DurationReduction1; //4D4
BYTE m_btML_DurationReduction1; //4D8
int m_iML_DurationReduction2; //4DC
int m_iML_ResistanceIncrease_Poison; //4E0
int m_iML_ResistanceIncrease_Lightning; //4E4
int m_iML_ResistanceIncrease_Ice; //4E8
int m_iML_HPAutoIncrement; //4EC
int m_iML_ZenIncrease; //4F0
int m_iML_DefenseIncrease; //4F4
int m_iML_MaximumLifeIncrease; //4F8
int m_iML_MaximumAGIncrease; //4FC
int m_iML_MonsterAttackManaIncrement; //500
int m_iML_MonsterAttackLifeIncrement; //504
int m_iML_MonsterAttackSDIncrement; //508
int m_iML_IncreaseExpRate; //50C
//Season 4 Add-on
int m_iML_IncreaseMaxSD; //510
int m_iML_IncreaseSDRecovery; //514
int m_iML_IncreaseMaxDamage; //518
int m_iML_IncreaseMinDamage; //51C
int m_iML_IncreaseManaReduction; //520
int m_iML_IncreaseMaxWizardry; //524
int m_iML_IncreaseMinWizardry; //528
int m_iML_DecreasePetDurReduction; //52C
int m_iML_IncreaseMaxDmgWzdry; //530
int m_iML_IncreaseMinDmgWzdry; //534
};
//size 2238 for GS-CS
struct OBJECTSTRUCT
{
int m_Index;
int Connected;
char LoginMsgSnd;
char LoginMsgCount;
char CloseCount;
char CloseType;
BOOL bEnableDelCharacter;
struct _PER_SOCKET_CONTEXT* PerSocketContext;
SOCKET m_socket;
char Ip_addr[16];
int UserNumber;
int DBNumber;
DWORD ukn_30; //
BYTE Magumsa;
DWORD AutoSaveTime;
DWORD ConnectCheckTime;
DWORD CheckTick;
BYTE CheckSpeedHack;
DWORD CheckTick2;
BYTE CheckTickCount;
DWORD SaveTimeForStatics;
int iPingTime;
BYTE m_TimeCount;
DWORD m_dwPKTimer;
short CheckSumTableNum;
DWORD CheckSumTime;
WORD Type;
BYTE Live;
char CharacterPos;
char AccountID[11];
char Name[11];
char LastJoominNumber[14];
bool PlusStatQuestClear;
bool ComboSkillquestClear;
struct ComboSkillData comboSkill;
WORD Class;
BYTE DbClass;
BYTE ChangeUP;
BYTE ChangeUP3rd;
short Level;
int LevelUpPoint;
int iFruitPoint;
DWORD Experience;
DWORD NextExp;
short MLevel;
__int64 MLExp;
__int64 MLNextExp;
int MLPoint;
int MLInfoLoad;
int Money;
short Strength;
short Dexterity;
short Vitality;
short Energy;
float Life;
float MaxLife;
int m_iScriptMaxLife;
float FillLife;
float FillLifeMax;
float Mana;
float MaxMana;
WORD Leadership;
WORD AddLeadership;
WORD ChatLitmitTime;
BYTE ChatLimitTimeSec;
BYTE FillLifeCount;
short AddStrength;
short AddDexterity;
short AddVitality;
short AddEnergy;
int BP;
int MaxBP;
int AddBP;
float VitalityToLife;
float EnergyToMana;
char m_PK_Count;
char m_PK_Level;
int m_PK_Time;
short X;
short Y;
BYTE Dir;
BYTE MapNumber;
int AddLife;
int AddMana;
int iShield;
int iMaxShield;
int iAddShield;
int iFillShieldMax;
int iFillShield;
int iFillShieldCount;
DWORD dwShieldAutoRefillTimer;
BYTE DamageMinus;
BYTE DamageReflect;
short MonsterDieGetMoney;
BYTE MonsterDieGetLife;
BYTE MonsterDieGetMana;
BYTE StartX;
BYTE StartY;
short m_OldX;
short m_OldY;
short TX;
short TY;
short MTX;
short MTY;
int PathCount;
int PathCur;
char PathStartEnd;
short PathOri[15];
short PathX[15];
short PathY[15];
char PathDir[15];
DWORD PathTime;
BYTE m_MoveGateNumber;
//GS 90
short m_wRaiseTalismanSaveX;
short m_wRaiseTalismanSaveY;
short m_wRaiseTalismanSaveMap;
short m_wTeleportTalismanSaveX;
short m_wTeleportTalismanSaveY;
short m_wTeleportTalismanSaveMap;
DWORD Authority;
DWORD Penalty;
BYTE m_cAccountItemBlock;
struct tagActionState m_ActState;
BYTE m_ActionNumber;
DWORD m_State;
char m_StateSub;
BYTE m_Rest;
char m_ViewState;
BYTE m_btViewStateCount;
struct BUFF_MANAGER m_BuffEffectState[16];
DWORD m_LastMoveTime;
DWORD m_LastAttackTime;
BYTE m_FriendServerOnline;
int m_DetectSpeedHackTime;
DWORD m_SumLastAttackTime;
DWORD m_DetectCount;
int m_DetectedHackKickCount;
int m_SpeedHackPenalty;
BYTE m_AttackSpeedHackDetectedCount;
DWORD m_PacketCheckTime;
BYTE m_ShopTime;
DWORD m_TotalAttackTime;
int m_TotalAttackCount;
DWORD TeleportTime;
char Teleport;
char KillerType;
char DieRegen;
char RegenOk;
BYTE RegenMapNumber;
BYTE RegenMapX;
BYTE RegenMapY;
DWORD RegenTime;
DWORD MaxRegenTime;
short m_PosNum;
DWORD LifeRefillTimer;
DWORD CurActionTime;
DWORD NextActionTime;
DWORD DelayActionTime;
char DelayLevel;
char m_PoisonType;
char m_IceType;
//#unused ??
char m_iMonsterStunDelay; //0x39F unused
char m_iMonsterSleepDelay; //0x3A0 unused
char m_iMonsterBattleDelay;
char m_cKalimaGateExist;
int m_iKalimaGateIndex;
char m_cKalimaGateEnterCount;
struct OBJECTSTRUCT* lpAttackObj;
short m_SkillNumber;
DWORD m_SkillTime;
bool m_bAttackerKilled;
char m_ManaFillCount;
char m_LifeFillCount;
int SelfDefense[7];
DWORD SelfDefenseTime[7];
DWORD MySelfDefenseTime;
char m_Drink;
int m_SkillAttack;
char m_SkillAttackTime;
int PartyNumber;
int PartyTargetUser;
int GuildNumber;
struct _GUILD_INFO_STRUCT* lpGuild;
char GuildName[11];
int GuildStatus;
int iGuildUnionTimeStamp;
int m_RecallMon;
int m_Change;
short TargetNumber;
short TargetShopNumber;
short ShopNumber;
short LastAttackerID;
int m_AttackDamageMin;
int m_AttackDamageMax;
int m_MagicDamageMin;
int m_MagicDamageMax;
int m_AttackDamageLeft;
int m_AttackDamageRight;
int m_AttackDamageMaxLeft;
int m_AttackDamageMinLeft;
int m_AttackDamageMaxRight;
int m_AttackDamageMinRight;
int m_AttackRating;
int m_AttackSpeed;
int m_MagicSpeed;
int m_Defense;
int m_MagicDefense;
int m_SuccessfulBlocking;
int m_iSummonerBookSpell;
int m_iSummonerBookSpellDamageMin;
int m_iSummonerBookSpellDamageMax;
short m_MoveSpeed;
short m_MoveRange;
short m_AttackRange;
short m_AttackType;
short m_ViewRange;
short m_Attribute;
short m_ItemRate;
short m_MoneyRate;
int m_CriticalDamage;
int m_ExcelentDamage;
class CMagicInf* m_lpMagicBack;
class CMagicInf* Magic;
char MagicCount;
BYTE UseMagicNumber;
DWORD UseMagicTime;
char UseMagicCount;
short OSAttackSerial;
BYTE SASCount;
DWORD SkillAttackTime;
struct ML_PassiveSkill m_MLPassiveSkill; //Season 4 Master Skill System Updated
int m_iSoulBarrierDefense; //Season 3 BuffEffect for Soul Barrier Skill
short m_sSoulBarrierDuration; //Season 3 BuffEffect for Soul Barrier Skill
BYTE CharSet[18];
char m_Resistance[7];
char m_AddResistance[7];
int FrustrumX[4];
int FrustrumY[4];
struct VIEWPORT_STRUCT VpPlayer[75];
struct VIEWPORT_PLAYER_STRUCT VpPlayer2[75];
int VPCount;
int VPCount2;
struct HITDAMAGE_STRUCT sHD[40];
short sHDCount;
struct tagInterfaceState m_IfState;
DWORD m_InterfaceTime;
class CItem* pInventory;
LPBYTE pInventoryMap;
char* pInventoryCount;
char pTransaction;
class CItem* Inventory1;
LPBYTE InventoryMap1;
char InventoryCount1;
class CItem* Inventory2;
LPBYTE InventoryMap2;
char InventoryCount2;
class CItem* Trade;
LPBYTE TradeMap;
int TradeMoney;
bool TradeOk;
class CItem* pWarehouse;
LPBYTE pWarehouseMap;
char WarehouseCount;
short WarehousePW;
BYTE WarehouseLock;
BYTE WarehouseUnfailLock;
int WarehouseMoney;
int WarehouseSave;
class CItem* pChaosBox;
LPBYTE pChaosBoxMap;
int ChaosMoney;
int ChaosSuccessRate;
BOOL ChaosLock;
DWORD m_Option;
int m_nEventScore;
int m_nEventExp;
int m_nEventMoney;
BYTE m_bDevilSquareIndex;
bool m_bDevilSquareAuth;
char m_cBloodCastleIndex;
char m_cBloodCastleSubIndex;
int m_iBloodCastleEXP;
bool m_bBloodCastleComplete;
char m_cChaosCastleIndex;
char m_cChaosCastleSubIndex;
int m_iChaosCastleBlowTime;
char m_cKillUserCount;
char m_cKillMonsterCount;
int m_iDuelUserReserved;
int m_iDuelUserRequested;
int m_iDuelUser;
BYTE m_btDuelScore;
int m_iDuelTickCount;
bool m_bPShopOpen;
bool m_bPShopTransaction;
bool m_bPShopItemChange;
bool m_bPShopRedrawAbs;
char m_szPShopText[36];
bool m_bPShopWantDeal;
int m_iPShopDealerIndex;
char m_szPShopDealerName[10];
struct _RTL_CRITICAL_SECTION m_critPShopTrade;
int m_iVpPShopPlayer[75];
WORD m_wVpPShopPlayerCount;
bool IsInBattleGround;
bool HaveWeaponInHand;
short EventChipCount;
int MutoNumber;
BOOL UseEventServer;
bool LoadWareHouseInfo;
int iStoneCount;
int m_i3rdQuestState;
int m_i3rdQuestIndex;
MONSTERKILLINFO MonsterKillInfo[5];
BYTE m_Quest[50];
bool m_SendQuestInfo;
int m_SkyBossMonSheildLinkIndex;
int m_SkyBossMonSheild;
int m_SkyBossMonSheildTime;
int m_MaxLifePower;
int m_PacketChecksumTime;
int m_CheckLifeTime;
BYTE m_MoveOtherServer;
char BackName[11];
char m_BossGoldDerconMapNumber;
bool m_InWebzen;
char m_LastTeleportTime;
BYTE m_ClientHackLogCount;
BOOL m_bIsInMonsterHerd;
BOOL m_bIsMonsterAttackFirst;
class MonsterHerd* m_lpMonsterHerd;
class CCSAuth2 NPggCSAuth;
bool m_bSentGGAuth;
DWORD m_NPggCheckSumSendTime;
int fSkillFrustrumX[4];
int fSkillFrustrumY[4];
BYTE SkillHellFire2State;
BYTE SkillHellFire2Count;
DWORD SkillHellFire2Time;
BYTE m_ReqWarehouseOpen;
int m_NotAttackAreaCount;
short SetOpAddSkillAttack;
short SetOpAddExDamage;
short SetOpAddExDamageSuccessRate;
short SetOpAddCriticalDamage;
short SetOpAddCriticalDamageSuccessRate;
short SetOpIncAGValue;
short SetOpAddDamage;
short SetOpAddMinAttackDamage;
short SetOpAddMaxAttackDamage;
short SetOpAddAttackDamage;
short SetOpAddDefence;
short SetOpAddDefenceRate;
short SetOpAddMagicPower;
BYTE SetOpIgnoreDefense;
BYTE SetOpDoubleDamage;
BYTE SetOpTwoHandSwordImproveDamage;
BYTE SetOpImproveSuccessAttackRate;
BYTE SetOpReflectionDamage;
BYTE SetOpImproveSheldDefence;
BYTE SetOpDecreaseAG;
BYTE SetOpImproveItemDropRate;
bool IsFullSetItem;
class TDurMagicKeyChecker DurMagicKeyChecker;
WORD SkillRecallParty_Time;
BYTE SkillRecallParty_MapNumber;
BYTE SkillRecallParty_X;
BYTE SkillRecallParty_Y;
bool bIsChaosMixCompleted;
bool SkillLongSpearChange;
class CSkillDelay SkillDelay;
int iObjectSecTimer;
bool m_bMapSvrMoveQuit;
bool m_bMapSvrMoveReq;
DWORD m_dwMapSvrQuitTick;
short m_sPrevMapSvrCode;
short m_sDestMapNumber;
BYTE m_btDestX;
BYTE m_btDestY;
#if(GS_CASTLE==1)
union
{
struct
{
BYTE m_btCsNpcExistVal1;
BYTE m_btCsNpcExistVal2;
BYTE m_btCsNpcExistVal3;
BYTE m_btCsNpcExistVal4;
};
int m_iCsNpcExistVal;
};
BYTE m_btCsNpcType;
BYTE m_btCsGateOpen;
int m_iCsGateLeverLinkIndex;
BYTE m_btCsNpcDfLevel;
BYTE m_btCsNpcRgLevel;
BYTE m_btCsJoinSide;
bool m_bCsGuildInvolved;
#endif
bool m_bIsCastleNPCUpgradeCompleted;
BYTE m_btWeaponState;
int m_iWeaponUser;
BYTE m_btKillCount;
int m_iAccumulatedDamage;
#if(GS_CASTLE==1)
BYTE m_btLifeStoneCount;
BYTE m_btCreationState;
int m_iCreatedActivationTime;
#endif
int m_iAccumulatedCrownAccessTime;
class TMonsterSkillElementInfo m_MonsterSkillElementInfo;
int m_iBasicAI;
int m_iCurrentAI;
int m_iCurrentAIState;
int m_iLastAIRunTime;
int m_iGroupNumber;
int m_iSubGroupNumber;
int m_iGroupMemberGuid;
int m_iRegenType;
class TMonsterAIAgro m_Agro;
int m_iLastAutomataRuntime;
int m_iLastAutomataDelay;
int m_iCrywolfMVPScore;
int m_iPcBangRoom; //2030 (new) confirmed thru illusion
DWORD m_dwLastCheckTick;
int m_iAutoRecuperationTime;
int m_iSkillDistanceErrorCount;
DWORD m_dwSkillDistanceErrorTick;
struct JEWELOFHARMONY_ITEM_EFFECT m_JewelOfHarmonyEffect;
struct ITEMOPTION_FOR380ITEM_EFFECT m_ItemOptionExFor380;
#if(GS_CASTLE==0)
BOOL m_bKanturuEntranceByNPC;
#endif
WORD m_wItemEffectType;
int m_iItemEffectValidTime;
WORD m_wCashPoint; //0x209C
//PcBang Variables #START#
//PcBang EventServer Control
int m_iPcBangConnectionType; // 0x20A0
//PcBang
PCBANG_POINT_SYSTEM m_PcBangPointSystem; // 0x20A4
//PcBang Class Timer
CPCBangPointTimer m_PCBangPointTimer; //0x20C4
//PcBang Variables #END#
int m_iIllusionTempleIndex; //20FC
BOOL m_bSkillKeyRecv; //0x2100
int m_iPeriodItemEffectIndex; //0x2104
BYTE Summoner; //0x2108
//Season4 add-on size 0x108
SOCKET_ITEM m_SocketSet[35]; //0x210A
SOCKET_ITEM m_SocketWeapon[7]; //0x21DC
SOCKET_ITEM m_SocketBonus[2]; //0x2206
///////////////////
WORD m_wSocketOpIncLifePower; //0x2212
WORD m_wSocketOpIncMaxMana; //0x2214
WORD m_wSocketOpAddLife; //0x2216
WORD m_wSocketOpAddMana; //0x2218
BYTE m_btSocketOpDecreaseAG; //0x221A
///////////////////
class CHackToolPacket m_HackToolCheck; //0x221C
BYTE m_btSummonedbyGM; //0x2234
};
typedef OBJECTSTRUCT * LPOBJ;
Att,
HermeX
Last edited: