Restructure repository to include all source folders
Move git root from Client/ to src/ to track all source code: - Client: Game client source (moved to Client/Client/) - Server: Game server source - GameTools: Development tools - CryptoSource: Encryption utilities - database: Database scripts - Script: Game scripts - rylCoder_16.02.2008_src: Legacy coder tools - GMFont, Game: Additional resources 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
239
GameTools/NeoRylClient/Network.h
Normal file
239
GameTools/NeoRylClient/Network.h
Normal file
@@ -0,0 +1,239 @@
|
||||
// Network.h: interface for the CNetwork class.
|
||||
//
|
||||
//////////////////////////////////////////////////////////////////////
|
||||
|
||||
#if !defined(AFX_NETWORK_H__5F5E9AA4_BFC5_40A0_8FCB_58D2BF51EEB0__INCLUDED_)
|
||||
#define AFX_NETWORK_H__5F5E9AA4_BFC5_40A0_8FCB_58D2BF51EEB0__INCLUDED_
|
||||
|
||||
#if _MSC_VER > 1000
|
||||
#pragma once
|
||||
#endif // _MSC_VER > 1000
|
||||
|
||||
#include "Network\ClientSocket\ClientSocket.h"
|
||||
#include "ItemInstance.h"
|
||||
#include <vector.h>
|
||||
#include <list>
|
||||
|
||||
enum NetworkState
|
||||
{
|
||||
NS_NOWAITING = 0,
|
||||
NS_CONNECTGAMESERVER,
|
||||
NS_SERVERMOVE,
|
||||
NS_CHARLOGIN,
|
||||
NS_CHARSELECT,
|
||||
NS_USERLOGIN,
|
||||
NS_UPDATEADDRESS,
|
||||
NS_CREATECHAR,
|
||||
NS_DELETECHAR,
|
||||
NS_TAKEITEM,
|
||||
NS_TRADEITEM,
|
||||
NS_RESPAWN,
|
||||
NS_UPGRADECLASS,
|
||||
NS_USEITEM,
|
||||
NS_SKILLERASE,
|
||||
NS_TAKEGOLD,
|
||||
NS_CASTOBJECT,
|
||||
NS_CONNECTAUTHSERVER,
|
||||
NS_SKILLUNLOCK,
|
||||
NS_ZONEMOVE,
|
||||
NS_RESPAWNSELECT,
|
||||
NS_STALLREGISTERITEM,
|
||||
};
|
||||
|
||||
enum NetworkError
|
||||
{
|
||||
NE_NOERROR = 0,
|
||||
NE_VERSION,
|
||||
NE_USERID,
|
||||
NE_USERPW,
|
||||
NE_LOGINSERVER, //Ŀ<><C4BF><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
||||
NE_AGENTSERVER,
|
||||
NE_LOGINCHRINFO,
|
||||
NE_SELECTCHR,
|
||||
NE_CHRCREATE,
|
||||
NE_CHRDELETE,
|
||||
NE_CHRMOVE,
|
||||
NE_CHRSELECT,
|
||||
NE_CHRSHAPE,
|
||||
NE_CHRATT,
|
||||
NE_LOGOUT,
|
||||
NE_CHAT,
|
||||
NE_DEAD,
|
||||
NE_RESP,
|
||||
NE_LEVELUP,
|
||||
NE_TRADE,
|
||||
NE_MOTION,
|
||||
|
||||
NE_TAKEOUT,
|
||||
NE_TAKEIN,
|
||||
NE_ALREADY, //<2F>̹<EFBFBD> <20><><EFBFBD>ӵǾ<D3B5><C7BE><EFBFBD><EFBFBD><EFBFBD>,
|
||||
NE_DBCONNECTION,
|
||||
NE_UNIDENTYUSER,
|
||||
NE_USERDATA,
|
||||
NE_LOCATION,
|
||||
NE_DBFAIL
|
||||
};
|
||||
|
||||
using namespace std;
|
||||
|
||||
const unsigned int BUFFERSIZE = 10000;
|
||||
|
||||
class CNetwork
|
||||
{
|
||||
private:
|
||||
char m_aryBuffer[BUFFERSIZE];
|
||||
char m_cNetworkPacketCommand;
|
||||
|
||||
BOOL ParseUserLogin(char *aryBuffer);
|
||||
BOOL ParseCharSelect(char *aryBuffer);
|
||||
BOOL ParseCharLogin(char *aryBuffer);
|
||||
BOOL ParseCharCreate(char *aryBuffer);
|
||||
BOOL ParseCharDelete(char *aryBuffer);
|
||||
BOOL ParseCharUpdateAddress(char *aryBuffer);
|
||||
BOOL ParseCharMove(char *aryBuffer);
|
||||
BOOL ParseCharCellLogin(char *aryBuffer);
|
||||
BOOL ParseCharCellLogout(char *aryBuffer);
|
||||
BOOL ParseCharAddressInfo(char *aryBuffer);
|
||||
BOOL ParseCharChat(char *aryBuffer);
|
||||
BOOL ParseMonMove(char *aryBuffer);
|
||||
BOOL ParseCharAttack(char *aryBuffer);
|
||||
BOOL ParseCharRespawn(char *aryBuffer);
|
||||
BOOL ParseCharAttackInfo(char *aryBuffer);
|
||||
BOOL ParseGameCellInfo(char *aryBuffer);
|
||||
BOOL ParseCharPullDown(char *aryBuffer);
|
||||
BOOL ParseCharPullDownInfo(char *aryBuffer); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
BOOL ParseCharPickUp(char *aryBuffer);
|
||||
BOOL ParseCharPickUpInfo(char *aryBuffer); // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>ؼ<EFBFBD> <20><><EFBFBD><EFBFBD>.
|
||||
BOOL ParseCharAttacked(char *aryBuffer);
|
||||
BOOL ParseCharTakeItem(char *aryBuffer);
|
||||
BOOL ParseCharSwapItem(char *aryBuffer);
|
||||
BOOL ParseCharTradeItem(char *aryBuffer);
|
||||
BOOL ParseCharShapeInfo(char *aryBuffer);
|
||||
BOOL ParseCharPartyCmd(char *aryBuffer);
|
||||
BOOL ParseCharPartyInfo(char *aryBuffer);
|
||||
BOOL ParseCharUseItem(char *aryBuffer);
|
||||
BOOL ParseCharSkillLock(char *aryBuffer);
|
||||
BOOL ParseCharSkillErase(char *aryBuffer);
|
||||
BOOL ParseCharSkillCreate(char *aryBuffer);
|
||||
BOOL ParseCharRepairItem(char *aryBuffer);
|
||||
BOOL ParseCharInstallSocket(char *aryBuffer);
|
||||
BOOL ParseCharSplitItem(char *aryBuffer);
|
||||
BOOL ParseCharUpgradeItem(char *aryBuffer);
|
||||
BOOL ParseCharAward(char *aryBuffer);
|
||||
BOOL ParseCharLevelUp(char *aryBuffer);
|
||||
BOOL ParseCharLevelUpInfo(char *aryBuffer);
|
||||
BOOL ParseCharIncreasePoint(char *aryBuffer);
|
||||
BOOL ParseCharHPRegen(char *aryBuffer);
|
||||
BOOL ParseCharBindPos(char *aryBuffer);
|
||||
BOOL ParseCharQuickSlotMove(char *aryBuffer);
|
||||
BOOL ParseCharPartyMemInfo(char *aryBuffer);
|
||||
BOOL ParseCharClassUpgrade(char *aryBuffer);
|
||||
BOOL ParseCellBroadCasting(char *aryBuffer);
|
||||
BOOL ParseCharCastObjectInfo(char *aryBuffer);
|
||||
BOOL ParseCharPartyCmdInfo(char *aryBuffer);
|
||||
BOOL ParseCharRequireInfo(char *aryBuffer);
|
||||
BOOL ParseCharWhisper(char *aryBuffer);
|
||||
BOOL ParseCharExchangeCmd(char *aryBuffer);
|
||||
BOOL ParseCharExchangeItem(char *aryBuffer);
|
||||
BOOL ParseCharTakeGold(char *aryBuffer);
|
||||
BOOL ParseCharDuelCmd(char *aryBuffer);
|
||||
BOOL ParseCharFameInfo(char *aryBuffer);
|
||||
BOOL ParseCharPartyFind(char *aryBuffer);
|
||||
BOOL ParseCharSpellInfo(char *aryBuffer);
|
||||
BOOL ParseControlOption(char *aryBuffer);
|
||||
BOOL ParseCharSkillUnLock(char *aryBuffer);
|
||||
BOOL ParseServerZone(char *aryBuffer);
|
||||
BOOL ParseCharMoveZone(char *aryBuffer);
|
||||
BOOL ParseDepositUpdate(char *aryBuffer);
|
||||
BOOL ParseDeposit(char *aryBuffer);
|
||||
BOOL ParseCharStallOpen(char *aryBuffer);
|
||||
BOOL ParseCharStallEnter(char *aryBuffer);
|
||||
BOOL ParseCharStallRegisterItem(char *aryBuffer);
|
||||
BOOL ParseCharStallItemInfo(char *aryBuffer);
|
||||
BOOL ParseCharTeamBattleInfo(char *aryBuffer);
|
||||
BOOL ParseCharEliteBonus(char *aryBuffer);
|
||||
BOOL ParseCharStartQuest(char *aryBuffer);
|
||||
BOOL ParseCharOperateTrigger(char *aryBuffer);
|
||||
BOOL ParseCharDisappearItme(char *aryBuffer);
|
||||
BOOL ParseCharFriendDB(char *aryBuffer);
|
||||
BOOL ParseCharFriendAck(char *aryBuffer);
|
||||
BOOL ParseCharFriendRegistered(char *aryBuffer);
|
||||
BOOL ParseCharQuestInfo(char *aryBuffer);
|
||||
BOOL ParseCharEndQuest(char *aryBuffer);
|
||||
BOOL ParseCharPeaceMode(char *aryBuffer);
|
||||
BOOL ParseCharAuthorizePanel(char *aryBuffer);
|
||||
|
||||
void ProcessError(void);
|
||||
|
||||
public:
|
||||
void SetChant(CItemInstance *lpChantSkill);
|
||||
static ClientSocket *m_pSocket;
|
||||
BOOL m_bLoginSuccess;
|
||||
BOOL m_bUpdateAddressPacket;
|
||||
BOOL m_bCompleteDeposit;
|
||||
BOOL m_bCharLoginSuccess;
|
||||
|
||||
static NetworkState m_nsNetworkStateforCastObject;
|
||||
static NetworkState m_nsNetworkState;
|
||||
static unsigned long m_dwNetworkError;
|
||||
|
||||
static long m_lShoutCounter;
|
||||
static long m_lFameInfoCounter;
|
||||
static long m_lPartyFindCounter;
|
||||
static long m_lPartyCmdCounter;
|
||||
static long m_lSetSkillCounter;
|
||||
|
||||
long m_lUDPPacketTotalByte, m_lUDPPAcketPerSecond, m_lUDPPacketOldByte;
|
||||
long m_lTCPPacketTotalByte, m_lTCPPAcketPerSecond, m_lTCPPacketOldByte;
|
||||
|
||||
list<unsigned long> m_lstSendShape;
|
||||
list<unsigned long> m_lstRecvShape;
|
||||
|
||||
CNetwork();
|
||||
~CNetwork();
|
||||
|
||||
BOOL Create(HWND hWnd);
|
||||
|
||||
BOOL ConnectToGameServer(char *strServerIP);
|
||||
BOOL ConnectToAuthServer(char *strServerIP);
|
||||
BOOL Login(void);
|
||||
BOOL CharSelect(unsigned long dwChrID);
|
||||
|
||||
void PacketProcess(LPARAM lParam, BOOL bUDP);
|
||||
void PacketProcess(BOOL bUDP);
|
||||
|
||||
static void SetState(NetworkState nsState) { m_nsNetworkState = nsState; }
|
||||
static NetworkState GetState(void) { return m_nsNetworkState; }
|
||||
static void SetError(unsigned long dwError) { m_dwNetworkError = dwError; }
|
||||
static unsigned long GetError(void) { return m_dwNetworkError; }
|
||||
|
||||
static bool IsExistToList(unsigned short List_In, unsigned long CharID_In);
|
||||
static bool CharAddressRequireInfo(unsigned long SenderID_In, unsigned long CharID_In);
|
||||
static BOOL SendDeleteChar(unsigned long dwSlot, unsigned long dwUID);
|
||||
static BOOL SendCreateChar(unsigned long dwSlot, CHAR_CREATE &pCreateChar);
|
||||
static BOOL SendChatMessage(const char *strName, const char *strMessage, unsigned long dwCommand);
|
||||
static BOOL SendMovingPacket(unsigned long dwUpperAni, unsigned long dwLowerAni, float fDir, vector3 &vecMove);
|
||||
static BOOL SendMoveUpdatePacket(float fDir, vector3 &vecPosition);
|
||||
static BOOL SendCharAttack(vector3 &vecPos, float fDir, unsigned short wType, unsigned char cSkillLock, unsigned char cSkillLevel, unsigned char cAtCount, unsigned short wDefenserNum, unsigned long dwDefenser[10]);
|
||||
static BOOL SendCharRespawn(unsigned long dwChrID);
|
||||
static BOOL SendFieldObjectPickUp(unsigned long dwFieldID, Item::ItemPos &pItemIndex);
|
||||
static BOOL SendTakeItem(CItemInstance *lpTakeItem, Item::ItemPos *lpTakeIndex, unsigned char cNum);
|
||||
static BOOL SendSplitItem(CItemInstance *lpTakeItem, Item::ItemPos *lpTakeIndex, unsigned char cNum);
|
||||
static BOOL SendSwapItem(CItemInstance *lpSrcItem, Item::ItemPos *lpSrcIndex, CItemInstance *lpDstItem);
|
||||
static BOOL SendFieldObjectPullDown(unsigned long dwNum, Item::ItemPos &pItemIndex);
|
||||
static BOOL SendTradeItem(unsigned long dwNPCID, unsigned short wTypeID, unsigned long dwNum, Item::ItemPos &pSrcPos, Item::ItemPos &pDstPos);
|
||||
static BOOL SendCharShape(unsigned long dwChrID = 0xFFFFFFFF);
|
||||
static BOOL SendQuickSlotMove(CItemInstance *lpTakeItem, unsigned char cPos, unsigned char cIndex, unsigned char cNum = 1);
|
||||
static BOOL SendCharSwitchHand(void);
|
||||
static BOOL SendMyInfoforParty(void);
|
||||
static BOOL SendFameInfo(unsigned short wCmd);
|
||||
static long SendPartyFind(void);
|
||||
static long SendPartyCmd(unsigned long dwReferenceID, unsigned short wCmd);
|
||||
static void SendChant(CItemInstance *lpChantSkill);
|
||||
static BOOL SendExchangeCmd(unsigned long dwSendID, unsigned short wCmd);
|
||||
static void SendClientLog(unsigned short wCmd, char *strString, char *strString2 = NULL);
|
||||
static BOOL SendStallEnter(unsigned long dwStallChrID);
|
||||
static BOOL SendStallLeave(void);
|
||||
};
|
||||
|
||||
#endif // !defined(AFX_NETWORK_H__5F5E9AA4_BFC5_40A0_8FCB_58D2BF51EEB0__INCLUDED_)
|
||||
Reference in New Issue
Block a user