forked from metin2/client
730 lines
20 KiB
C
730 lines
20 KiB
C
|
#pragma once
|
|||
|
|
|||
|
#include "../eterLib/FuncObject.h"
|
|||
|
#include "../eterlib/NetStream.h"
|
|||
|
#include "../eterLib/NetPacketHeaderMap.h"
|
|||
|
|
|||
|
#include "InsultChecker.h"
|
|||
|
|
|||
|
#include "packet.h"
|
|||
|
|
|||
|
class CInstanceBase;
|
|||
|
class CNetworkActorManager;
|
|||
|
struct SNetworkActorData;
|
|||
|
struct SNetworkUpdateActorData;
|
|||
|
|
|||
|
class CPythonNetworkStream : public CNetworkStream, public CSingleton<CPythonNetworkStream>
|
|||
|
{
|
|||
|
public:
|
|||
|
enum
|
|||
|
{
|
|||
|
SERVER_COMMAND_LOG_OUT = 0,
|
|||
|
SERVER_COMMAND_RETURN_TO_SELECT_CHARACTER = 1,
|
|||
|
SERVER_COMMAND_QUIT = 2,
|
|||
|
|
|||
|
MAX_ACCOUNT_PLAYER
|
|||
|
};
|
|||
|
|
|||
|
enum
|
|||
|
{
|
|||
|
ERROR_NONE,
|
|||
|
ERROR_UNKNOWN,
|
|||
|
ERROR_CONNECT_MARK_SERVER,
|
|||
|
ERROR_LOAD_MARK,
|
|||
|
ERROR_MARK_WIDTH,
|
|||
|
ERROR_MARK_HEIGHT,
|
|||
|
|
|||
|
// MARK_BUG_FIX
|
|||
|
ERROR_MARK_UPLOAD_NEED_RECONNECT,
|
|||
|
ERROR_MARK_CHECK_NEED_RECONNECT,
|
|||
|
// END_OF_MARK_BUG_FIX
|
|||
|
};
|
|||
|
|
|||
|
enum
|
|||
|
{
|
|||
|
ACCOUNT_CHARACTER_SLOT_ID,
|
|||
|
ACCOUNT_CHARACTER_SLOT_NAME,
|
|||
|
ACCOUNT_CHARACTER_SLOT_RACE,
|
|||
|
ACCOUNT_CHARACTER_SLOT_LEVEL,
|
|||
|
ACCOUNT_CHARACTER_SLOT_STR,
|
|||
|
ACCOUNT_CHARACTER_SLOT_DEX,
|
|||
|
ACCOUNT_CHARACTER_SLOT_HTH,
|
|||
|
ACCOUNT_CHARACTER_SLOT_INT,
|
|||
|
ACCOUNT_CHARACTER_SLOT_PLAYTIME,
|
|||
|
ACCOUNT_CHARACTER_SLOT_FORM,
|
|||
|
ACCOUNT_CHARACTER_SLOT_ADDR,
|
|||
|
ACCOUNT_CHARACTER_SLOT_PORT,
|
|||
|
ACCOUNT_CHARACTER_SLOT_GUILD_ID,
|
|||
|
ACCOUNT_CHARACTER_SLOT_GUILD_NAME,
|
|||
|
ACCOUNT_CHARACTER_SLOT_CHANGE_NAME_FLAG,
|
|||
|
ACCOUNT_CHARACTER_SLOT_HAIR,
|
|||
|
};
|
|||
|
|
|||
|
enum
|
|||
|
{
|
|||
|
PHASE_WINDOW_LOGO,
|
|||
|
PHASE_WINDOW_LOGIN,
|
|||
|
PHASE_WINDOW_SELECT,
|
|||
|
PHASE_WINDOW_CREATE,
|
|||
|
PHASE_WINDOW_LOAD,
|
|||
|
PHASE_WINDOW_GAME,
|
|||
|
PHASE_WINDOW_EMPIRE,
|
|||
|
PHASE_WINDOW_NUM,
|
|||
|
};
|
|||
|
|
|||
|
public:
|
|||
|
CPythonNetworkStream();
|
|||
|
virtual ~CPythonNetworkStream();
|
|||
|
|
|||
|
bool SendSpecial(int nLen, void * pvBuf);
|
|||
|
|
|||
|
void StartGame();
|
|||
|
void Warp(LONG lGlobalX, LONG lGlobalY);
|
|||
|
|
|||
|
void NotifyHack(const char* c_szMsg);
|
|||
|
void SetWaitFlag();
|
|||
|
|
|||
|
void SendEmoticon(UINT eEmoticon);
|
|||
|
|
|||
|
void ExitApplication();
|
|||
|
void ExitGame();
|
|||
|
void LogOutGame();
|
|||
|
void AbsoluteExitGame();
|
|||
|
void AbsoluteExitApplication();
|
|||
|
|
|||
|
void EnableChatInsultFilter(bool isEnable);
|
|||
|
bool IsChatInsultIn(const char* c_szMsg);
|
|||
|
bool IsInsultIn(const char* c_szMsg);
|
|||
|
|
|||
|
DWORD GetGuildID();
|
|||
|
|
|||
|
UINT UploadMark(const char* c_szImageFileName);
|
|||
|
UINT UploadSymbol(const char* c_szImageFileName);
|
|||
|
|
|||
|
bool LoadInsultList(const char* c_szInsultListFileName);
|
|||
|
bool LoadConvertTable(DWORD dwEmpireID, const char* c_szFileName);
|
|||
|
|
|||
|
UINT GetAccountCharacterSlotDatau(UINT iSlot, UINT eType);
|
|||
|
const char* GetAccountCharacterSlotDataz(UINT iSlot, UINT eType);
|
|||
|
|
|||
|
// SUPPORT_BGM
|
|||
|
const char* GetFieldMusicFileName();
|
|||
|
float GetFieldMusicVolume();
|
|||
|
// END_OF_SUPPORT_BGM
|
|||
|
|
|||
|
bool IsSelectedEmpire();
|
|||
|
|
|||
|
void ToggleGameDebugInfo();
|
|||
|
|
|||
|
void SetMarkServer(const char* c_szAddr, UINT uPort);
|
|||
|
void ConnectLoginServer(const char* c_szAddr, UINT uPort);
|
|||
|
void ConnectGameServer(UINT iChrSlot);
|
|||
|
|
|||
|
void SetLoginInfo(const char* c_szID, const char* c_szPassword);
|
|||
|
void SetLoginKey(DWORD dwLoginKey);
|
|||
|
void ClearLoginInfo( void );
|
|||
|
|
|||
|
void SetHandler(PyObject* poHandler);
|
|||
|
void SetPhaseWindow(UINT ePhaseWnd, PyObject* poPhaseWnd);
|
|||
|
void ClearPhaseWindow(UINT ePhaseWnd, PyObject* poPhaseWnd);
|
|||
|
void SetServerCommandParserWindow(PyObject* poPhaseWnd);
|
|||
|
|
|||
|
bool SendSyncPositionElementPacket(DWORD dwVictimVID, DWORD dwVictimX, DWORD dwVictimY);
|
|||
|
|
|||
|
bool SendAttackPacket(UINT uMotAttack, DWORD dwVIDVictim);
|
|||
|
bool SendCharacterStatePacket(const TPixelPosition& c_rkPPosDst, float fDstRot, UINT eFunc, UINT uArg);
|
|||
|
bool SendUseSkillPacket(DWORD dwSkillIndex, DWORD dwTargetVID=0);
|
|||
|
bool SendTargetPacket(DWORD dwVID);
|
|||
|
|
|||
|
// OLDCODE:
|
|||
|
bool SendCharacterStartWalkingPacket(float fRotation, long lx, long ly);
|
|||
|
bool SendCharacterEndWalkingPacket(float fRotation, long lx, long ly);
|
|||
|
bool SendCharacterCheckWalkingPacket(float fRotation, long lx, long ly);
|
|||
|
|
|||
|
bool SendCharacterPositionPacket(BYTE iPosition);
|
|||
|
|
|||
|
bool SendItemUsePacket(TItemPos pos);
|
|||
|
bool SendItemUseToItemPacket(TItemPos source_pos, TItemPos target_pos);
|
|||
|
bool SendItemDropPacket(TItemPos pos, DWORD elk);
|
|||
|
bool SendItemDropPacketNew(TItemPos pos, DWORD elk, DWORD count);
|
|||
|
bool SendItemMovePacket(TItemPos pos, TItemPos change_pos, BYTE num);
|
|||
|
bool SendItemPickUpPacket(DWORD vid);
|
|||
|
|
|||
|
bool SendQuickSlotAddPacket(BYTE wpos, BYTE type, BYTE pos);
|
|||
|
bool SendQuickSlotDelPacket(BYTE wpos);
|
|||
|
bool SendQuickSlotMovePacket(BYTE wpos, BYTE change_pos);
|
|||
|
|
|||
|
// PointReset <20><> <20>ӽ<EFBFBD>
|
|||
|
bool SendPointResetPacket();
|
|||
|
|
|||
|
// Shop
|
|||
|
bool SendShopEndPacket();
|
|||
|
bool SendShopBuyPacket(BYTE byCount);
|
|||
|
bool SendShopSellPacket(BYTE bySlot);
|
|||
|
bool SendShopSellPacketNew(BYTE bySlot, BYTE byCount);
|
|||
|
|
|||
|
// Exchange
|
|||
|
bool SendExchangeStartPacket(DWORD vid);
|
|||
|
bool SendExchangeItemAddPacket(TItemPos ItemPos, BYTE byDisplayPos);
|
|||
|
bool SendExchangeElkAddPacket(DWORD elk);
|
|||
|
bool SendExchangeItemDelPacket(BYTE pos);
|
|||
|
bool SendExchangeAcceptPacket();
|
|||
|
bool SendExchangeExitPacket();
|
|||
|
|
|||
|
// Quest
|
|||
|
bool SendScriptAnswerPacket(int iAnswer);
|
|||
|
bool SendScriptButtonPacket(unsigned int iIndex);
|
|||
|
bool SendAnswerMakeGuildPacket(const char * c_szName);
|
|||
|
bool SendQuestInputStringPacket(const char * c_szString);
|
|||
|
bool SendQuestConfirmPacket(BYTE byAnswer, DWORD dwPID);
|
|||
|
|
|||
|
// Event
|
|||
|
bool SendOnClickPacket(DWORD vid);
|
|||
|
|
|||
|
// Fly
|
|||
|
bool SendFlyTargetingPacket(DWORD dwTargetVID, const TPixelPosition& kPPosTarget);
|
|||
|
bool SendAddFlyTargetingPacket(DWORD dwTargetVID, const TPixelPosition& kPPosTarget);
|
|||
|
bool SendShootPacket(UINT uSkill);
|
|||
|
|
|||
|
// Command
|
|||
|
bool ClientCommand(const char * c_szCommand);
|
|||
|
void ServerCommand(char * c_szCommand);
|
|||
|
|
|||
|
// Emoticon
|
|||
|
void RegisterEmoticonString(const char * pcEmoticonString);
|
|||
|
|
|||
|
// Party
|
|||
|
bool SendPartyInvitePacket(DWORD dwVID);
|
|||
|
bool SendPartyInviteAnswerPacket(DWORD dwLeaderVID, BYTE byAccept);
|
|||
|
bool SendPartyRemovePacket(DWORD dwPID);
|
|||
|
bool SendPartySetStatePacket(DWORD dwVID, BYTE byState, BYTE byFlag);
|
|||
|
bool SendPartyUseSkillPacket(BYTE bySkillIndex, DWORD dwVID);
|
|||
|
bool SendPartyParameterPacket(BYTE byDistributeMode);
|
|||
|
|
|||
|
// SafeBox
|
|||
|
bool SendSafeBoxMoneyPacket(BYTE byState, DWORD dwMoney);
|
|||
|
bool SendSafeBoxCheckinPacket(TItemPos InventoryPos, BYTE bySafeBoxPos);
|
|||
|
bool SendSafeBoxCheckoutPacket(BYTE bySafeBoxPos, TItemPos InventoryPos);
|
|||
|
bool SendSafeBoxItemMovePacket(BYTE bySourcePos, BYTE byTargetPos, BYTE byCount);
|
|||
|
|
|||
|
// Mall
|
|||
|
bool SendMallCheckoutPacket(BYTE byMallPos, TItemPos InventoryPos);
|
|||
|
|
|||
|
// Guild
|
|||
|
bool SendGuildAddMemberPacket(DWORD dwVID);
|
|||
|
bool SendGuildRemoveMemberPacket(DWORD dwPID);
|
|||
|
bool SendGuildChangeGradeNamePacket(BYTE byGradeNumber, const char * c_szName);
|
|||
|
bool SendGuildChangeGradeAuthorityPacket(BYTE byGradeNumber, BYTE byAuthority);
|
|||
|
bool SendGuildOfferPacket(DWORD dwExperience);
|
|||
|
bool SendGuildPostCommentPacket(const char * c_szMessage);
|
|||
|
bool SendGuildDeleteCommentPacket(DWORD dwIndex);
|
|||
|
bool SendGuildRefreshCommentsPacket(DWORD dwHighestIndex);
|
|||
|
bool SendGuildChangeMemberGradePacket(DWORD dwPID, BYTE byGrade);
|
|||
|
bool SendGuildUseSkillPacket(DWORD dwSkillID, DWORD dwTargetVID);
|
|||
|
bool SendGuildChangeMemberGeneralPacket(DWORD dwPID, BYTE byFlag);
|
|||
|
bool SendGuildInvitePacket(DWORD dwVID);
|
|||
|
bool SendGuildInviteAnswerPacket(DWORD dwGuildID, BYTE byAnswer);
|
|||
|
bool SendGuildChargeGSPPacket(DWORD dwMoney);
|
|||
|
bool SendGuildDepositMoneyPacket(DWORD dwMoney);
|
|||
|
bool SendGuildWithdrawMoneyPacket(DWORD dwMoney);
|
|||
|
|
|||
|
// Mall
|
|||
|
bool RecvMallOpenPacket();
|
|||
|
bool RecvMallItemSetPacket();
|
|||
|
bool RecvMallItemDelPacket();
|
|||
|
|
|||
|
// Lover
|
|||
|
bool RecvLoverInfoPacket();
|
|||
|
bool RecvLovePointUpdatePacket();
|
|||
|
|
|||
|
// Dig
|
|||
|
bool RecvDigMotionPacket();
|
|||
|
|
|||
|
// Fishing
|
|||
|
bool SendFishingPacket(int iRotation);
|
|||
|
bool SendGiveItemPacket(DWORD dwTargetVID, TItemPos ItemPos, int iItemCount);
|
|||
|
|
|||
|
// Private Shop
|
|||
|
bool SendBuildPrivateShopPacket(const char * c_szName, const std::vector<TShopItemTable> & c_rSellingItemStock);
|
|||
|
|
|||
|
// Refine
|
|||
|
bool SendRefinePacket(BYTE byPos, BYTE byType);
|
|||
|
bool SendSelectItemPacket(DWORD dwItemPos);
|
|||
|
|
|||
|
// Client Version
|
|||
|
bool SendClientVersionPacket();
|
|||
|
|
|||
|
// CRC Report
|
|||
|
bool __SendCRCReportPacket();
|
|||
|
|
|||
|
// <20><>ȫ<EFBFBD><C8AB> <20><>ȭ
|
|||
|
bool SendDragonSoulRefinePacket(BYTE bRefineType, TItemPos* pos);
|
|||
|
|
|||
|
// Handshake
|
|||
|
bool RecvHandshakePacket();
|
|||
|
bool RecvHandshakeOKPacket();
|
|||
|
|
|||
|
bool RecvHybridCryptKeyPacket();
|
|||
|
bool RecvHybridCryptSDBPacket();
|
|||
|
|
|||
|
// ETC
|
|||
|
DWORD GetMainActorVID();
|
|||
|
DWORD GetMainActorRace();
|
|||
|
DWORD GetMainActorEmpire();
|
|||
|
DWORD GetMainActorSkillGroup();
|
|||
|
void SetEmpireID(DWORD dwEmpireID);
|
|||
|
DWORD GetEmpireID();
|
|||
|
void __TEST_SetSkillGroupFake(int iIndex);
|
|||
|
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
// Phase <20><><EFBFBD><EFBFBD>
|
|||
|
//////////////////////////////////////////////////////////////////////////
|
|||
|
public:
|
|||
|
void SetOffLinePhase();
|
|||
|
void SetHandShakePhase();
|
|||
|
void SetLoginPhase();
|
|||
|
void SetSelectPhase();
|
|||
|
void SetLoadingPhase();
|
|||
|
void SetGamePhase();
|
|||
|
void ClosePhase();
|
|||
|
|
|||
|
// Login Phase
|
|||
|
bool SendLoginPacket(const char * c_szName, const char * c_szPassword);
|
|||
|
bool SendLoginPacketNew(const char * c_szName, const char * c_szPassword);
|
|||
|
bool SendChinaMatrixCardPacket(const char * c_szMatrixCardString);
|
|||
|
bool SendRunupMatrixAnswerPacket(const char * c_szMatrixCardString);
|
|||
|
bool SendNEWCIBNPasspodAnswerPacket(const char * answer);
|
|||
|
bool SendDirectEnterPacket(const char * c_szName, const char * c_szPassword, UINT uChrSlot);
|
|||
|
|
|||
|
bool SendEnterGame();
|
|||
|
|
|||
|
// Select Phase
|
|||
|
bool SendSelectEmpirePacket(DWORD dwEmpireID);
|
|||
|
bool SendSelectCharacterPacket(BYTE account_Index);
|
|||
|
bool SendChangeNamePacket(BYTE index, const char *name);
|
|||
|
bool SendCreateCharacterPacket(BYTE index, const char *name, BYTE job, BYTE shape, BYTE byStat1, BYTE byStat2, BYTE byStat3, BYTE byStat4);
|
|||
|
bool SendDestroyCharacterPacket(BYTE index, const char * szPrivateCode);
|
|||
|
|
|||
|
// Main Game Phase
|
|||
|
bool SendC2CPacket(DWORD dwSize, void * pData);
|
|||
|
bool SendChatPacket(const char * c_szChat, BYTE byType = CHAT_TYPE_TALKING);
|
|||
|
bool SendWhisperPacket(const char * name, const char * c_szChat);
|
|||
|
bool SendMobileMessagePacket(const char * name, const char * c_szChat);
|
|||
|
bool SendMessengerAddByVIDPacket(DWORD vid);
|
|||
|
bool SendMessengerAddByNamePacket(const char * c_szName);
|
|||
|
bool SendMessengerRemovePacket(const char * c_szKey, const char * c_szName);
|
|||
|
|
|||
|
protected:
|
|||
|
bool OnProcess(); // State<74><65><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>Ѵ<EFBFBD>.
|
|||
|
void OffLinePhase();
|
|||
|
void HandShakePhase();
|
|||
|
void LoginPhase();
|
|||
|
void SelectPhase();
|
|||
|
void LoadingPhase();
|
|||
|
void GamePhase();
|
|||
|
|
|||
|
bool __IsNotPing();
|
|||
|
|
|||
|
void __DownloadMark();
|
|||
|
void __DownloadSymbol(const std::vector<DWORD> & c_rkVec_dwGuildID);
|
|||
|
|
|||
|
void __PlayInventoryItemUseSound(TItemPos uSlotPos);
|
|||
|
void __PlayInventoryItemDropSound(TItemPos uSlotPos);
|
|||
|
//void __PlayShopItemDropSound(UINT uSlotPos);
|
|||
|
void __PlaySafeBoxItemDropSound(UINT uSlotPos);
|
|||
|
void __PlayMallItemDropSound(UINT uSlotPos);
|
|||
|
|
|||
|
bool __CanActMainInstance();
|
|||
|
|
|||
|
enum REFRESH_WINDOW_TYPE
|
|||
|
{
|
|||
|
RefreshStatus = (1 << 0),
|
|||
|
RefreshAlignmentWindow = (1 << 1),
|
|||
|
RefreshCharacterWindow = (1 << 2),
|
|||
|
RefreshEquipmentWindow = (1 << 3),
|
|||
|
RefreshInventoryWindow = (1 << 4),
|
|||
|
RefreshExchangeWindow = (1 << 5),
|
|||
|
RefreshSkillWindow = (1 << 6),
|
|||
|
RefreshSafeboxWindow = (1 << 7),
|
|||
|
RefreshMessengerWindow = (1 << 8),
|
|||
|
RefreshGuildWindowInfoPage = (1 << 9),
|
|||
|
RefreshGuildWindowBoardPage = (1 << 10),
|
|||
|
RefreshGuildWindowMemberPage = (1 << 11),
|
|||
|
RefreshGuildWindowMemberPageGradeComboBox = (1 << 12),
|
|||
|
RefreshGuildWindowSkillPage = (1 << 13),
|
|||
|
RefreshGuildWindowGradePage = (1 << 14),
|
|||
|
RefreshTargetBoard = (1 << 15),
|
|||
|
RefreshMallWindow = (1 << 16),
|
|||
|
};
|
|||
|
|
|||
|
void __RefreshStatus();
|
|||
|
void __RefreshAlignmentWindow();
|
|||
|
void __RefreshCharacterWindow();
|
|||
|
void __RefreshEquipmentWindow();
|
|||
|
void __RefreshInventoryWindow();
|
|||
|
void __RefreshExchangeWindow();
|
|||
|
void __RefreshSkillWindow();
|
|||
|
void __RefreshSafeboxWindow();
|
|||
|
void __RefreshMessengerWindow();
|
|||
|
void __RefreshGuildWindowInfoPage();
|
|||
|
void __RefreshGuildWindowBoardPage();
|
|||
|
void __RefreshGuildWindowMemberPage();
|
|||
|
void __RefreshGuildWindowMemberPageGradeComboBox();
|
|||
|
void __RefreshGuildWindowSkillPage();
|
|||
|
void __RefreshGuildWindowGradePage();
|
|||
|
void __RefreshTargetBoardByVID(DWORD dwVID);
|
|||
|
void __RefreshTargetBoardByName(const char * c_szName);
|
|||
|
void __RefreshTargetBoard();
|
|||
|
void __RefreshMallWindow();
|
|||
|
|
|||
|
bool __SendHack(const char* c_szMsg);
|
|||
|
|
|||
|
protected:
|
|||
|
bool RecvObserverAddPacket();
|
|||
|
bool RecvObserverRemovePacket();
|
|||
|
bool RecvObserverMovePacket();
|
|||
|
|
|||
|
// Common
|
|||
|
bool RecvErrorPacket(int header);
|
|||
|
bool RecvPingPacket();
|
|||
|
bool RecvDefaultPacket(int header);
|
|||
|
bool RecvPhasePacket();
|
|||
|
|
|||
|
// Login Phase
|
|||
|
bool __RecvLoginSuccessPacket3();
|
|||
|
bool __RecvLoginSuccessPacket4();
|
|||
|
bool __RecvLoginFailurePacket();
|
|||
|
bool __RecvEmpirePacket();
|
|||
|
bool __RecvChinaMatrixCardPacket();
|
|||
|
bool __RecvRunupMatrixQuizPacket();
|
|||
|
bool __RecvNEWCIBNPasspodRequestPacket();
|
|||
|
bool __RecvNEWCIBNPasspodFailurePacket();
|
|||
|
bool __RecvLoginKeyPacket();
|
|||
|
|
|||
|
// Select Phase
|
|||
|
bool __RecvPlayerCreateSuccessPacket();
|
|||
|
bool __RecvPlayerCreateFailurePacket();
|
|||
|
bool __RecvPlayerDestroySuccessPacket();
|
|||
|
bool __RecvPlayerDestroyFailurePacket();
|
|||
|
bool __RecvPreserveItemPacket();
|
|||
|
bool __RecvPlayerPoints();
|
|||
|
bool __RecvChangeName();
|
|||
|
|
|||
|
// Loading Phase
|
|||
|
bool RecvMainCharacter();
|
|||
|
bool RecvMainCharacter2_EMPIRE();
|
|||
|
bool RecvMainCharacter3_BGM();
|
|||
|
bool RecvMainCharacter4_BGM_VOL();
|
|||
|
|
|||
|
void __SetFieldMusicFileName(const char* musicName);
|
|||
|
void __SetFieldMusicFileInfo(const char* musicName, float vol);
|
|||
|
// END_OF_SUPPORT_BGM
|
|||
|
|
|||
|
// Main Game Phase
|
|||
|
bool RecvWarpPacket();
|
|||
|
bool RecvPVPPacket();
|
|||
|
bool RecvDuelStartPacket();
|
|||
|
bool RecvGlobalTimePacket();
|
|||
|
bool RecvCharacterAppendPacket();
|
|||
|
bool RecvCharacterAdditionalInfo();
|
|||
|
bool RecvCharacterAppendPacketNew();
|
|||
|
bool RecvCharacterUpdatePacket();
|
|||
|
bool RecvCharacterUpdatePacketNew();
|
|||
|
bool RecvCharacterDeletePacket();
|
|||
|
bool RecvChatPacket();
|
|||
|
bool RecvOwnerShipPacket();
|
|||
|
bool RecvSyncPositionPacket();
|
|||
|
bool RecvWhisperPacket();
|
|||
|
bool RecvPointChange(); // Alarm to python
|
|||
|
bool RecvChangeSpeedPacket();
|
|||
|
|
|||
|
bool RecvStunPacket();
|
|||
|
bool RecvDeadPacket();
|
|||
|
bool RecvCharacterMovePacket();
|
|||
|
|
|||
|
bool RecvItemSetPacket(); // Alarm to python
|
|||
|
bool RecvItemSetPacket2(); // Alarm to python
|
|||
|
bool RecvItemUsePacket(); // Alarm to python
|
|||
|
bool RecvItemUpdatePacket(); // Alarm to python
|
|||
|
bool RecvItemGroundAddPacket();
|
|||
|
bool RecvItemGroundDelPacket();
|
|||
|
bool RecvItemOwnership();
|
|||
|
|
|||
|
bool RecvQuickSlotAddPacket(); // Alarm to python
|
|||
|
bool RecvQuickSlotDelPacket(); // Alarm to python
|
|||
|
bool RecvQuickSlotMovePacket(); // Alarm to python
|
|||
|
|
|||
|
bool RecvCharacterPositionPacket();
|
|||
|
bool RecvMotionPacket();
|
|||
|
|
|||
|
bool RecvShopPacket();
|
|||
|
bool RecvShopSignPacket();
|
|||
|
bool RecvExchangePacket();
|
|||
|
|
|||
|
// Quest
|
|||
|
bool RecvScriptPacket();
|
|||
|
bool RecvQuestInfoPacket();
|
|||
|
bool RecvQuestConfirmPacket();
|
|||
|
bool RecvRequestMakeGuild();
|
|||
|
|
|||
|
// Skill
|
|||
|
bool RecvSkillLevel();
|
|||
|
bool RecvSkillLevelNew();
|
|||
|
bool RecvSkillCoolTimeEnd();
|
|||
|
|
|||
|
// Target
|
|||
|
bool RecvTargetPacket();
|
|||
|
bool RecvViewEquipPacket();
|
|||
|
bool RecvDamageInfoPacket();
|
|||
|
|
|||
|
// Mount
|
|||
|
bool RecvMountPacket();
|
|||
|
|
|||
|
// Fly
|
|||
|
bool RecvCreateFlyPacket();
|
|||
|
bool RecvFlyTargetingPacket();
|
|||
|
bool RecvAddFlyTargetingPacket();
|
|||
|
|
|||
|
// Messenger
|
|||
|
bool RecvMessenger();
|
|||
|
|
|||
|
// Guild
|
|||
|
bool RecvGuild();
|
|||
|
|
|||
|
// Party
|
|||
|
bool RecvPartyInvite();
|
|||
|
bool RecvPartyAdd();
|
|||
|
bool RecvPartyUpdate();
|
|||
|
bool RecvPartyRemove();
|
|||
|
bool RecvPartyLink();
|
|||
|
bool RecvPartyUnlink();
|
|||
|
bool RecvPartyParameter();
|
|||
|
|
|||
|
// SafeBox
|
|||
|
bool RecvSafeBoxSetPacket();
|
|||
|
bool RecvSafeBoxDelPacket();
|
|||
|
bool RecvSafeBoxWrongPasswordPacket();
|
|||
|
bool RecvSafeBoxSizePacket();
|
|||
|
bool RecvSafeBoxMoneyChangePacket();
|
|||
|
|
|||
|
// Fishing
|
|||
|
bool RecvFishing();
|
|||
|
|
|||
|
// Dungeon
|
|||
|
bool RecvDungeon();
|
|||
|
|
|||
|
// Time
|
|||
|
bool RecvTimePacket();
|
|||
|
|
|||
|
// WalkMode
|
|||
|
bool RecvWalkModePacket();
|
|||
|
|
|||
|
// ChangeSkillGroup
|
|||
|
bool RecvChangeSkillGroupPacket();
|
|||
|
|
|||
|
// Refine
|
|||
|
bool RecvRefineInformationPacket();
|
|||
|
bool RecvRefineInformationPacketNew();
|
|||
|
|
|||
|
// Use Potion
|
|||
|
bool RecvSpecialEffect();
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>Ʈ <20>ߵ<EFBFBD> <20><>Ŷ.
|
|||
|
bool RecvSpecificEffect();
|
|||
|
|
|||
|
// <20><>ȥ<EFBFBD><C8A5> <20><><EFBFBD><EFBFBD>
|
|||
|
bool RecvDragonSoulRefine();
|
|||
|
|
|||
|
// MiniMap Info
|
|||
|
bool RecvNPCList();
|
|||
|
bool RecvLandPacket();
|
|||
|
bool RecvTargetCreatePacket();
|
|||
|
bool RecvTargetCreatePacketNew();
|
|||
|
bool RecvTargetUpdatePacket();
|
|||
|
bool RecvTargetDeletePacket();
|
|||
|
|
|||
|
// Affect
|
|||
|
bool RecvAffectAddPacket();
|
|||
|
bool RecvAffectRemovePacket();
|
|||
|
|
|||
|
// Channel
|
|||
|
bool RecvChannelPacket();
|
|||
|
|
|||
|
//Security
|
|||
|
bool RecvHSCheckRequest();
|
|||
|
bool RecvXTrapVerifyRequest();
|
|||
|
|
|||
|
protected:
|
|||
|
// <20≯<EFBFBD>Ƽ<EFBFBD><C6BC>
|
|||
|
bool ParseEmoticon(const char * pChatMsg, DWORD * pdwEmoticon);
|
|||
|
|
|||
|
// <20><><EFBFBD>̽<EFBFBD><CCBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20>ݵ<EFBFBD>
|
|||
|
void OnConnectFailure();
|
|||
|
void OnScriptEventStart(int iSkin, int iIndex);
|
|||
|
|
|||
|
void OnRemoteDisconnect();
|
|||
|
void OnDisconnect();
|
|||
|
|
|||
|
void SetGameOnline();
|
|||
|
void SetGameOffline();
|
|||
|
BOOL IsGameOnline();
|
|||
|
|
|||
|
protected:
|
|||
|
bool CheckPacket(TPacketHeader * pRetHeader);
|
|||
|
|
|||
|
void __InitializeGamePhase();
|
|||
|
void __InitializeMarkAuth();
|
|||
|
void __GlobalPositionToLocalPosition(LONG& rGlobalX, LONG& rGlobalY);
|
|||
|
void __LocalPositionToGlobalPosition(LONG& rLocalX, LONG& rLocalY);
|
|||
|
|
|||
|
bool __IsPlayerAttacking();
|
|||
|
bool __IsEquipItemInSlot(TItemPos Cell);
|
|||
|
|
|||
|
void __ShowMapName(LONG lLocalX, LONG lLocalY);
|
|||
|
|
|||
|
void __LeaveOfflinePhase() {}
|
|||
|
void __LeaveHandshakePhase() {}
|
|||
|
void __LeaveLoginPhase() {}
|
|||
|
void __LeaveSelectPhase() {}
|
|||
|
void __LeaveLoadingPhase() {}
|
|||
|
void __LeaveGamePhase();
|
|||
|
|
|||
|
void __ClearNetworkActorManager();
|
|||
|
|
|||
|
void __ClearSelectCharacterData();
|
|||
|
|
|||
|
// DELETEME
|
|||
|
//void __SendWarpPacket();
|
|||
|
|
|||
|
void __ConvertEmpireText(DWORD dwEmpireID, char* szText);
|
|||
|
|
|||
|
void __RecvCharacterAppendPacket(SNetworkActorData * pkNetActorData);
|
|||
|
void __RecvCharacterUpdatePacket(SNetworkUpdateActorData * pkNetUpdateActorData);
|
|||
|
|
|||
|
void __FilterInsult(char* szLine, UINT uLineLen);
|
|||
|
|
|||
|
void __SetGuildID(DWORD id);
|
|||
|
|
|||
|
protected:
|
|||
|
TPacketGCHandshake m_HandshakeData;
|
|||
|
DWORD m_dwChangingPhaseTime;
|
|||
|
DWORD m_dwBindupRetryCount;
|
|||
|
DWORD m_dwMainActorVID;
|
|||
|
DWORD m_dwMainActorRace;
|
|||
|
DWORD m_dwMainActorEmpire;
|
|||
|
DWORD m_dwMainActorSkillGroup;
|
|||
|
BOOL m_isGameOnline;
|
|||
|
BOOL m_isStartGame;
|
|||
|
|
|||
|
DWORD m_dwGuildID;
|
|||
|
DWORD m_dwEmpireID;
|
|||
|
|
|||
|
struct SServerTimeSync
|
|||
|
{
|
|||
|
DWORD m_dwChangeServerTime;
|
|||
|
DWORD m_dwChangeClientTime;
|
|||
|
} m_kServerTimeSync;
|
|||
|
|
|||
|
void __ServerTimeSync_Initialize();
|
|||
|
//DWORD m_dwBaseServerTime;
|
|||
|
//DWORD m_dwBaseClientTime;
|
|||
|
|
|||
|
DWORD m_dwLastGamePingTime;
|
|||
|
|
|||
|
std::string m_stID;
|
|||
|
std::string m_stPassword;
|
|||
|
std::string m_strLastCommand;
|
|||
|
std::string m_strPhase;
|
|||
|
DWORD m_dwLoginKey;
|
|||
|
BOOL m_isWaitLoginKey;
|
|||
|
|
|||
|
std::string m_stMarkIP;
|
|||
|
|
|||
|
CFuncObject<CPythonNetworkStream> m_phaseProcessFunc;
|
|||
|
CFuncObject<CPythonNetworkStream> m_phaseLeaveFunc;
|
|||
|
|
|||
|
PyObject* m_poHandler;
|
|||
|
PyObject* m_apoPhaseWnd[PHASE_WINDOW_NUM];
|
|||
|
PyObject* m_poSerCommandParserWnd;
|
|||
|
|
|||
|
TSimplePlayerInformation m_akSimplePlayerInfo[PLAYER_PER_ACCOUNT4];
|
|||
|
DWORD m_adwGuildID[PLAYER_PER_ACCOUNT4];
|
|||
|
std::string m_astrGuildName[PLAYER_PER_ACCOUNT4];
|
|||
|
bool m_bSimplePlayerInfo;
|
|||
|
|
|||
|
CRef<CNetworkActorManager> m_rokNetActorMgr;
|
|||
|
|
|||
|
bool m_isRefreshStatus;
|
|||
|
bool m_isRefreshCharacterWnd;
|
|||
|
bool m_isRefreshEquipmentWnd;
|
|||
|
bool m_isRefreshInventoryWnd;
|
|||
|
bool m_isRefreshExchangeWnd;
|
|||
|
bool m_isRefreshSkillWnd;
|
|||
|
bool m_isRefreshSafeboxWnd;
|
|||
|
bool m_isRefreshMallWnd;
|
|||
|
bool m_isRefreshMessengerWnd;
|
|||
|
bool m_isRefreshGuildWndInfoPage;
|
|||
|
bool m_isRefreshGuildWndBoardPage;
|
|||
|
bool m_isRefreshGuildWndMemberPage;
|
|||
|
bool m_isRefreshGuildWndMemberPageGradeComboBox;
|
|||
|
bool m_isRefreshGuildWndSkillPage;
|
|||
|
bool m_isRefreshGuildWndGradePage;
|
|||
|
|
|||
|
// Emoticon
|
|||
|
std::vector<std::string> m_EmoticonStringVector;
|
|||
|
|
|||
|
struct STextConvertTable
|
|||
|
{
|
|||
|
char acUpper[26];
|
|||
|
char acLower[26];
|
|||
|
BYTE aacHan[5000][2];
|
|||
|
} m_aTextConvTable[3];
|
|||
|
|
|||
|
|
|||
|
|
|||
|
struct SMarkAuth
|
|||
|
{
|
|||
|
CNetworkAddress m_kNetAddr;
|
|||
|
DWORD m_dwHandle;
|
|||
|
DWORD m_dwRandomKey;
|
|||
|
} m_kMarkAuth;
|
|||
|
|
|||
|
|
|||
|
|
|||
|
DWORD m_dwSelectedCharacterIndex;
|
|||
|
|
|||
|
CInsultChecker m_kInsultChecker;
|
|||
|
|
|||
|
bool m_isEnableChatInsultFilter;
|
|||
|
bool m_bComboSkillFlag;
|
|||
|
|
|||
|
std::deque<std::string> m_kQue_stHack;
|
|||
|
|
|||
|
private:
|
|||
|
struct SDirectEnterMode
|
|||
|
{
|
|||
|
bool m_isSet;
|
|||
|
DWORD m_dwChrSlotIndex;
|
|||
|
} m_kDirectEnterMode;
|
|||
|
|
|||
|
void __DirectEnterMode_Initialize();
|
|||
|
void __DirectEnterMode_Set(UINT uChrSlotIndex);
|
|||
|
bool __DirectEnterMode_IsSet();
|
|||
|
|
|||
|
public:
|
|||
|
DWORD EXPORT_GetBettingGuildWarValue(const char* c_szValueName);
|
|||
|
|
|||
|
private:
|
|||
|
struct SBettingGuildWar
|
|||
|
{
|
|||
|
DWORD m_dwBettingMoney;
|
|||
|
DWORD m_dwObserverCount;
|
|||
|
} m_kBettingGuildWar;
|
|||
|
|
|||
|
CInstanceBase * m_pInstTarget;
|
|||
|
|
|||
|
void __BettingGuildWar_Initialize();
|
|||
|
void __BettingGuildWar_SetObserverCount(UINT uObserverCount);
|
|||
|
void __BettingGuildWar_SetBettingMoney(UINT uBettingMoney);
|
|||
|
};
|