Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

Decompiled GameServer 1.00.90 Files

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 o_O 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:

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:
- 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:thumbup:: 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:
Custom Title Activated
Loyal Member
Joined
Dec 5, 2009
Messages
2,657
Reaction score
1,178
just O.M.G

nice work dude thanks alot
 
Newbie Spellweaver
Joined
May 14, 2007
Messages
36
Reaction score
2
good job, HermeX, and the new team MSC is the best.

My master...rsrs
 
Junior Spellweaver
Joined
Aug 5, 2008
Messages
149
Reaction score
38
That is a great release, i think with this teams like enc,scf and others can get more info about original things from muonline just for make a emulator or gs like scf :) thanks and great job for new coders can understand more about muonline original sources :thumbup1:
 
Joined
Oct 29, 2007
Messages
1,267
Reaction score
1,284
Now we just need a decompiled version of Webzen main.exe as: 1.03k (JPN), modifications to our custom graphics and added directly into the main, and so have our own servers mu, with unique features!

ps: Someone you think this a good idea (decompile a main.exe)?
 
Last edited:
Newbie Spellweaver
Joined
Aug 18, 2008
Messages
45
Reaction score
29
Now we just need a decompiled version of Webzen main.exe as: 1.03k (JPN), modifications to our custom graphics and added directly into the main, and so have our own servers mu, with unique features!

ps: Someone you think this a good idea (decompile a main.exe)?

not possible to decompile main.exe, its compiled in release, and release has code optimization... with this optimization is impossible to decompile.

gameserver of webzen is compiled in debug mode, with this is possible to decompile.

[]'s
 
Newbie Spellweaver
Joined
Feb 21, 2011
Messages
55
Reaction score
74
Now we just need a decompiled version of Webzen main.exe as: 1.03k (JPN), modifications to our custom graphics and added directly into the main, and so have our own servers mu, with unique features!

ps: Someone you think this a good idea (decompile a main.exe)?

I think you do not know what you are talking about..

Easier and better to code it from 0, what would take max 1 year of normal not work..


P.S. even if it would be possible to decompile (what is almost not) what for to

decompile poop? and remake it? Mu Client uses very restricted OpenGL version 1.0..

they uses technology from before 10 years.. they have done loads of code technic issues..

They even do not use STL and there is no exceptions support.. why so the client likes

to crash so often and works with "no crash" under Olly only, as it uses then the

debuger's exceptions support.. could anybody see the synchronization of critical

section in main.exe? :D it has several threads.. if few of them will try to one

something with one things in the same time == client crash //epic fail by webzen xD

e.g. one will try to do erase() of the vector and another thread will try to read

from it ^^ resuming: client is full of such shits..


Better start from scratch.. use OGL 3.2 == DX 11 or code it under DX11 and implement

support for DX9/10. Remember it will still not bring the required effect everybody

would looking for (even if it would be 10000% better) because of isometric camera, it

would need to be changed.. but the models are bad for that? isn't it? still would look

poop.. then what we need? few 3d Designers to remake all the mu models ^^ do them

medium Polly (high Polly would be useless for mmo).. then use for the game visual

loads of kicks butt shaderz :D I know a guy who is coding

Mu Client alone and I would say its going quiet good :)


PERSONALLY: I would better like to code own game than recode somebody's one :p
 
Last edited:
Newbie Spellweaver
Joined
Jan 20, 2005
Messages
57
Reaction score
23
Congrats Hermex, you have done it :D! Its a hard job, I remember when u was doing it... since last year I think... Cya! GL!
 
Experienced Elementalist
Joined
Oct 18, 2008
Messages
206
Reaction score
19
Mauro... go learn please, please, stop post with "please share xxx or zzzzz"

hermexjohn, great work
maybe someone have PDB to help u in this dev
i am sorry to Disappoint you bro but mauro 07 will always ask for sources :thumbup1: thats why he wont learn a damm thing cya and hermex good job:eek:tt1:
 
Back
Top