?? 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 + -