📄 user.h
字号:
// USER.h: interface for the USER class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_USER_H__24E85DFA_7A9E_4707_8A6A_BDEB26C34932__INCLUDED_)
#define AFX_USER_H__24E85DFA_7A9E_4707_8A6A_BDEB26C34932__INCLUDED_
#include "Define.h" // Added by ClassView
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "OV.h"
#include "Npc.h"
#include "EVENT_DATA.h"
#include "LOGIC_ELSE.h"
#include "EXEC.h"
#include "Store.h"
#include "Guild.h"
#include "GuildUSer.h"
#include "SharedMemory.h"
#include "MemUser.h"
#include "Compress.h"
#include "Cbsocket.h"
#include "IOCPSocket.h"
#include "Serverinfo.h"
#include "JvCryption.h"
#define PSI_LEN ((sizeof(short)) + (sizeof(BYTE)))
//#define _SKILL_DB 100
//#define _ITEM_DB 600
//#define _PSI_DB 100
#define _HISTORY_DB 500
#define _BHISTORY_DB 1000
//#define _CHANGE_DB 4
//#define _QUICKITEM_DB 10
#define MAX_LEVEL_DN 2000 // 饭骇寸 倾侩 家瘤陛 01_4_24
#define HEAD 0
#define BODY 1
#define RIGHT_HAND 4
#define LEFT_HAND 5
#define PANTS 8
#define SHOES 9
#define PA_MA_STATUS 1 // PA, MA 荐摹函悼 眉农
#define SKILL_STATUS 2 // 胶懦饭骇 荐摹函悼 眉农
#define POISON_TIME (60 * 1000)
#define CONFUSION_TIME (30 * 1000)
#define PARALYSIS_TIME (20 * 1000)
#define BLIND_TIME (60 * 1000)
#define LIGHT_TIME (2 * 1000)
#define FIRE_TIME (60 * 1000)
#define COLD_TIME (10 * 1000)
#define BANK_ITEM_INPUT 1
#define BANK_ITEM_OUTPUT 2
#define BANK_DN_INPUT 3
#define BANK_DN_OUTPUT 4
#define GUILD_ITEM_INPUT 1
#define GUILD_ITEM_OUTPUT 2
#define GUILD_DN_INPUT 3
#define GUILD_DN_OUTPUT 4
#define BUDDY_JOIN 1
#define BUDDY_LEAVE 2
#define BUDDY_CHANGE 3
#define USE_CLASS_TYPE 8 // DB惑俊辑 荤侩且荐 乐绰 辆幅 啊瘤荐(1 努贰胶寸 弥措 m_byClass烙)
#define MAX_BUDDY_USER_NUM 4 // 颇萍 弥措 备己盔
#define DIR_DOWN 0 // 阿 焊绊乐绰 规氢阑 沥狼茄促.
#define DIR_DOWNLEFT 1
#define DIR_LEFT 2
#define DIR_UPLEFT 3
#define DIR_UP 4
#define DIR_UPRIGHT 5
#define DIR_RIGHT 6
#define DIR_DOWNRIGHT 7
#define TOWN_POTAL_SIZE 6 // 罚待且 伎 裹困 荤捞令 (3伎 * 2)
#define SEARCH_TOWN_POTAL_COUNT 40 // 器呕 困摹甫 弥措 40锅 鳖瘤 茫阑 扁雀甫 霖促.
#define EVENT_HELP_BAND 600
#define COUNTERATTACK_MAX_NUM 8 // 弥措 8规氢俊辑 馆拜捞 老绢朝荐乐栏骨肺
#define CLIENT_WALK_TICK 500
#define CLIENT_RUN_TICK 350
#define ITEM_UPGRADE_COUNT 5 // 酒捞袍 俺炼老锭 醚 俺炼 冉荐
#define ITEM_UPGRADE_VALUE 4 // 俺炼肺 牢秦 函拳登绰 己瓷蔼
#define ADD_USER_LEVEL 70
#define TEL_MAX_COUNT 31
#define TEL_ADD_EDIT 1
#define TEL_DEL_EDIT 2
#define CORE_BUFF_SIZE 6000
#define RIPEL_TOP 798
#define RIPEL_BOTTOM 799
#define RIPEL_LEFT 800
#define RIPEL_RIGHT 801
#define RIPEL_CREST 802
#define PSI_DAMAGE_DELAY 0 // 悼矫俊 甸绢坷绰 荤捞坷葱 单固瘤甫 公矫窍绰 矫埃
#define NO_DAMAGE_TIME 7000 // GameStart, Zone Change 悼救狼 公利矫埃
#define HIEXP_TIME (3600 * 3 * 1000) // 版氰摹 2硅 瘤加矫埃 - 3 矫埃
#define MAGICFIND_TIME (3600 * 3 * 1000) // 概流颇牢靛 瘤加矫埃 - 3 矫埃
const short SID_RING_OF_LIFE = 702;
const short SID_NECKLACE_OF_SHIELD = 703;
const short SID_EARRING_OF_PROTECT = 704;
class EVENT;
class CHyper;
class COM;
class Item;
class CCircularBuffer;
class CVirtualRoom;
typedef CTypedPtrArray <CPtrArray, Item*> ItemArray;
struct SkillList
{
short sSid;
BYTE tLevel;
// BYTE tOnOff;
};
struct PsionicList
{
short sSid;
BYTE tOnOff;
};
struct ExchangeItem
{
BYTE bySlot;
ItemList changedList;
};
struct ShopItem
{
short sSlot;
DWORD dwItemPrice;
ItemList ShopList;
};
struct BuyItemList
{
short sSid;
short sNum;
};
struct BuddyList
{
int uid; // 惑措规 uid
TCHAR m_strUserID[CHAR_NAME_LENGTH + 1]; // ID
};
struct CounterAttack
{
DWORD dwLastAttackTime; // 各捞 馆拜拌魂阑 夸没茄 矫埃
int iDamage; // 馆拜 措固瘤
int iNpcUid; // 秦寸 各
long lSid; // 静饭靛俊狼茄 曼炼甫 硅力..
};
struct GuildUserList
{
TCHAR GuildUser[CHAR_NAME_LENGTH + 1]; // 辨靛盔 ID
short sLevel; // 立加吝牢 Level
};
struct TeleportList
{
int iSid;
int x;
int y;
int z;
TCHAR TelName[TEL_NAME_LENGTH + 1];
};
typedef CTypedPtrArray <CPtrArray, int*> EventNumArray;
typedef CTypedPtrArray <CPtrArray, ExchangeItem*> ExchangeArray;
typedef CTypedPtrArray <CPtrArray, ShopItem*> ShopArray;
typedef CTypedPtrArray <CPtrArray, ItemList*> ItemListArray;
typedef CTypedPtrArray <CPtrArray, ITEMLOG*> ItemLogArray;
class USER : public CBSocket
{
public:
USER();
virtual ~USER();
public:
TCHAR m_RData[CORE_BUFF_SIZE+1];
volatile DWORD m_Recv_value;
volatile DWORD m_Send_value;
T_KEY m_public_key;
CJvCryption m_cryptfn;
int m_isCryptionFlag;
void SetPublicKey();
// zi_gi Session Time
public:
BOOL m_bSessionLogOut;
int m_iDisplayType; // 皋技瘤 鸥涝
int m_iValidTime; // 蜡瓤 矫埃
int m_iTimeInterval; // 皋技瘤 埃拜
SYSTEMTIME m_validDate; // 蜡瓤 矫埃
SYSTEMTIME m_LoginTime; //
// IKING 2001.1.
public:
CString m_strZoneIP;
int m_nZonePort;
int m_iModSid;
BOOL m_UserFlag;
// long m_Recv_value;
int m_UserStatus;
CRITICAL_SECTION m_CS_ExchangeItem;
CRITICAL_SECTION m_CS_ShopItem;
long m_ConnectionSuccessTick;
public:
void DBGameStartResult( char *pBuf, int s_index, int dlength );
void DBAccountLoginResult(TCHAR *pBuf, int index, int dlength );
void DBUpdateUserData(char *temp_buffer, int &temp_index );
void LogOutWithDbServer();
void SoftClose();
int SocketDisConnect();
void ChatReq(TCHAR* pBuf);
void ChatReqWithLength(TCHAR *pBuf, int iLen); // 牢磊蔼阑 崔府霖促.
void RestartReq(TCHAR *pBuf);
void GameStart(TCHAR* pBuf);
void GuildDisperse(TCHAR *pBuf);
void GuildOff(TCHAR *pBuf);
void GuildKickOut(TCHAR *pBuf);
void GuildWharehouseOpenReq();
void GuildItemMoveReq(TCHAR *pBuf);
void BBSDelete(TCHAR* pBuf);
void BBSEdit(TCHAR *pBuf);
void BBSWrite(TCHAR *pBuf);
void BBSRead(TCHAR *pBuf);
void BBSNext(TCHAR *pBuf);
// zinee 02-11-15
void MailInfoReq( TCHAR* pBuf );
void MailSendReq( TCHAR* pBuf );
void MailListReq( TCHAR* pBuf );
void MailContentReq( TCHAR* pBuf );
void MailDeleteReq( TCHAR* pBuf );
int MailGetList( char* pBuf, int nStartIndex, int nCount, int& index );
BYTE MailGetInfo( char* pBuf, int& index );
void DeleteCharReq(TCHAR* pBuf);
// void GuildInvite(TCHAR *pBuf);
void GuildMarkAddReq(TCHAR *pBuf);
BOOL DeleteGuildUser(TCHAR *strUserID);
void NewGuild(TCHAR *pBuf);
void NewCharReq(TCHAR* pBuf);
void AccountLoginReq(TCHAR* pBuf);
// IKING 2002.1.
void ZoneLoginReq(TCHAR *pBuf);
void ZoneLogOut(int save_z, int save_x, int save_y);
//
void StopAction();
int AcceptProcess();
int SockCloseProcess(int nError=0);
// void RemoveReceivedData();
virtual void OnClose(int nErrorCode);
virtual void OnSend(int nErrorCode);
int NoEncodeSend(int length, char *pBuf);
void ProcessData(char *pBuf, int length);
//
// Member Variable
public:
COM* m_pCom;
//SOCKET m_socket;
int m_uid;
BYTE m_state;
//OV m_ovRecv;
//OV m_ovSend;
//OV m_ovClose;
// Memory DB
CSharedMemory* m_pSharedMemory;
CMemUser* m_pMD;
//
// Zone Changing
//
BOOL m_NowZoneChanging; // 促弗 粮栏肺 捞悼且锭 唱俊霸 府胶飘
// 昏力甫 舅妨临鞘夸绝澜.
//
// Cell Info
//
CPoint m_ptCell; // 泅犁 Cell 困摹
int m_nCellZone;
//
// Send, Receive Buffer
//
//TCHAR m_RecvBuf[RECV_BUF_SIZE];
//TCHAR m_SendBuf[SEND_BUF_SIZE];
TCHAR m_TempBuf[SEND_BUF_SIZE];
//
// Account Data
//
int m_iMyServer;
TCHAR m_strAccount[ACCOUNT_LENGTH + 1]; // Account
int m_nCharNum; // 窍唱狼 Account 寸 弥措 3 俺狼 character
TCHAR m_strChar[3][CHAR_NAME_LENGTH + 1]; // Character Name
//
// Game Data
//
TCHAR m_strUserID[CHAR_NAME_LENGTH + 1]; // 酒捞叼(某腐磐 捞抚)
TCHAR m_strTradeUser[CHAR_NAME_LENGTH + 1]; // 芭贰吝牢 某腐磐 捞抚
int m_iTradeUid;
// int m_iTradeSlotNum; // 酒捞袍阑 瞒肥瞒肥 棵妨初阑锭 秦寸 芭贰 浇吩锅龋 01_4_20
//
// NPC俊 措茄 蜡历率俊辑 馆拜胶懦 贸府
// // 弥措 8付府 各府胶飘甫 蜡瘤
CounterAttack m_CounterAttackList[COUNTERATTACK_MAX_NUM];
//
// Item Info Data
//
int m_ItemFieldInfoCount; //
int m_ItemFieldInfoIndex;
TCHAR m_ItemFieldInfoBuf[8192];
ExchangeArray m_arExchangeItem; // 背券且 酒捞袍 格废
ShopArray m_arShopItem; // Personal Shop Item Array
//
// UpdateUserData
//
DWORD m_dwLastUpdateTime; // 付瘤阜栏肺 诀单捞飘茄 矫埃
DWORD m_dwLastSaveTime; // Last User save time
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -