⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serverdlg.h

📁 决战帝王1.5武神降临对喜爱决战的玩家共享研究用
💻 H
字号:
///////////////////////////////////////////////////////////////////
//	ServerDlg.h : header file for the CServerDlg class
//  Copyright (C) 2000,  Jin-Soo Jeon
//
//	If this code works, it was written by JinSoo Jeon.
//	If not, I don't know who wrote it.
//

#if !defined(AFX_SERVERDLG_H__AAE3FDA5_0147_46D1_837F_A6D48525B731__INCLUDED_)
#define AFX_SERVERDLG_H__AAE3FDA5_0147_46D1_837F_A6D48525B731__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

#include "COM.h"
#include "SharedMemory.h"
#include "MemUser.h"

#include "SInstance.h"
#include "Iocpbase.h"
#include "SockDataList.h"
#include "SSocket.h"

#include "GuildFortress.h"
#include "resource.h"
#include "EventItemNew.h"

#define	WM_CLOSE_PROCESS		(WM_USER + 10)

/////////////////////////////////////////////////////////////////////////////
// CServerDlg dialog

class CServerDlg : public CDialog
{
// IKING 2001.1.
public:
	COM			m_Com;
	CIOCPBASE	m_ServerBase;
	CIOCPBASE	m_UserBase;
	int			m_nThreadCount;
	int			m_bLogOutExit;
	int			m_CurUserCount;			// 泅犁 荤侩磊 
	HANDLE		m_amThread[AUTOMATA_THREAD+1];
	HANDLE		m_ctThread[AUTOMATA_THREAD+1];
	int			m_ThreadNo[AUTOMATA_THREAD+1];
	
	char		m_strBridgeIP[20];
	int			m_nBridgePort;

	DWORD		m_dwBSAlive;

	// IKING 2002.1.
	CWinThread	*m_hLoginThread;
	CWinThread	*m_hLogoutThread;
	CWinThread	*m_hSqlThread;
	CWinThread	*m_hFortressThread;

//	HANDLE		m_hLoginThread;
//	HANDLE		m_hLogoutThread;
//	HANDLE		m_hSqlThread;

	CSSocket	*m_pDBSocket;
	char		m_DBAddr[100];
	int			m_nDBPort;
	//

	// JJS	2002.02.28
	CSSocket*	m_pBridgeSocket;
	TCHAR		m_strZoneAddr[256];
	//

public:
	void Send2DBsvr( TCHAR *pBuf, int length );
	BOOL InitEnv();
	void InitThreads();

	int MakeThreadSafeUserMessage( int cmd_code, int wparam, long lparam );
	int MakeThreadSafeMessage( int cmd_code, int wparam, long lparam );
	void ServerCloseMessage(int wparam, long lparam);
	void UserCloseMessage(int wparam, long lparam); 

	LRESULT OnStartAutomata( WPARAM wparam, LPARAM lparam );
	BOOL AutoMataAppCmd(WAIT_RECV_DATA *wrd);
	void UserFree(int uid);
	COM *GetCOM() { return &m_Com; }
	void SetAliveSignalFill();

	CSSocket* GetServerSocket( CIOCPBASE *pIocpBase );

	//-------------------------------------------------------------------------
	// DB PART...
	void DBGameStartResult( char *pBuf, int index, int length );
	void DBAccountLoginResult(char *pBuf, int index, int length );
	BOOL DBSocketConnect();
	void DBjobPhasor( CSSocket* pServerSock, char *pTBuf, int length );

	//-------------------------------------------------------------------------
	// Zone Server PART...
	BOOL ZoneSocketConnect();

//
// Construction
public:
	BOOL LoadGuildFortressUserData(CGuildFortress *pFort);
	void UpdateFortressMem2DB(CMemFortress *pMDFortress);
	BOOL UpdateBankMem2DB(CMemUser *pMD);
	BOOL LoadGuildStoreAttackList(CStore *pStore, CMemStore* pData);
	void UpdateStoreMem2DB(CMemStore *pMDStore);
	BOOL GetGuildMapInfoTable();
	BOOL GetGuildStoreTable();
	BOOL GetEBodyStoreTable();
	BOOL GetEBodyTable();
	BOOL GetEBodyUpgradeTable();
	BOOL GetEBodyIdentifyTable();
	BOOL GetGuildUserData();
	BOOL GetGuildTable();
	BOOL GetValItemTable();
	BOOL GetMonHaveDNTable();
	BOOL GetCityNpcTableData();
	BOOL GetUserRecoverRateTable();
	BOOL GetUserRecoverTable();
	void AddSkillTable();
	BOOL GetMagicItemTable();
	BOOL GetIntiItemTable();
	BOOL GetZoneInfoData();
	BOOL GetPsiStoreTable();
	void SetClientWorldTime(CString strTime);
	void SetWeatherZone(int iZone);
	void OnAnnounce(void);
	BOOL GetDBItemData();
	CServerDlg(CWnd* pParent = NULL);	// standard constructor

// Dialog Data
	//{{AFX_DATA(CServerDlg)
	enum { IDD = IDD_SERVER_DIALOG };
	CStatic	m_staticZone;
	CStatic	m_staticPort;
	CStatic	m_staticIndex;
	CStatic	m_staticClientVer;
	CString	m_editCtrl;
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CServerDlg)
	public:
	virtual BOOL DestroyWindow();
	virtual BOOL PreTranslateMessage(MSG* pMsg);
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
public:
	BOOL GetEventBlockData();
	void BridgeRemoveGuildMasterOfPowerReq(int muid, char *strMasterID, int guildnum);
	void BridgeDeputeGuildMasterOfPowerReq(int muid, int guid, char *strMasterID, char *strSubMasterID, int guildnum);
	void BridgeDeputeGuildMasterOfPowerResult(TCHAR *pBuf);
	void BridgeRemoveGuildMasterOfPowerResult(TCHAR *pBuf);
	void BridgeServerArkWinnerChangeResult(TCHAR* pBuf);
	void AnnounceZone(TCHAR* pBuf, BYTE sysType, int iZone);
	void BridgeServerAnnounce(TCHAR* pBuf);
	void AnnounceAllServer(TCHAR* pBuf, BYTE sysType);
	BOOL GetRoyalRumbleData();
	void Announce(TCHAR* pBuf, BYTE sysType);
	void BridgeServerUserZoneLogOutResult(TCHAR* pBuf);
	void BridgeServerUserZoneLogOut(int uid, char* strUserID, int z, int x, int y);
	void BridgeServerUserRestartResult(TCHAR* pBuf);
	void BridgeServerGuildMarkResult(TCHAR* pBuf);
	void BridgeServerGuildMarkReq(int uid, char* strUserID, int guildnum, char* pGuildMark);
	void BridgeServerGuildOffResult(TCHAR* pBuf);
	void BridgeServerGuildOffReq(int uid, char* strUserID, char* strOffID, int guildnum);
	void BridgeServerGuildInviteResult(TCHAR* pBuf);
	void BridgeServerGuildInviteReq(int muid, int guid, char* strMasterID, char* strGuestID, int guildnum);
	void BridgeServerGuildDisperseResult(TCHAR* pBuf);
	void BridgeServerGuildDisperseReq(int uid, char* strUserID, int guildnum);
	void BridgeServerGuildNewResult(TCHAR* pBuf);
	void BridgeServerGuildNewReq(int uid, char* strUserID, int guildnum, char* strGuildName);
	void BridgeServerUserGuildChatResult(TCHAR* pBuf);
	void BridgeServerUserGuildChatReq(int uid, int guildnum, char* strUserID, char* strMsg);
	void BridgeServerUserWhisperResult(TCHAR* pBuf);
	void BridgeServerUserWhisperReq(TCHAR* pBuf);
	void BridgeServerUserWhisperOnOff(int uid, BYTE onoff);
	void BridgeServerDoubleIDClose(TCHAR* pBuf);
	void BridgeServerDoubleAccountClose(TCHAR* pBuf);
	void BridgeServerUserZoneLoginResult(TCHAR* pBuf);
	void BridgeServerUserZoneLogIn(int uid, char* strAccount, char* strUserID);
	void BridgeServerUserLogOut(int uid, char* strUserID);
	void BridgeServerUserRestart(int uid, char *strUserID);
	void BridgeServerUserLoginResult(TCHAR* pBuf);
	void BridgeServerUserLogIn(int uid, char* strAccount, char* strUserID);
	void BridgeServerWhisperChatReq(int uid, char* pSendID, char* pRecvID, char* strMsg);
	void BridgeServerLoginResult(TCHAR* pBuf);
	void BridgeServerPhasor(CSSocket* pServerSock, char* pTBuf, int length);
	BOOL InitBridgeServerConnection();
	BOOL UpdateEventItemNew(CEventItemNew* pEventItem);
	void SetEventItemNew();
	BOOL GetEventItemNewTable();
	BOOL RemoveSessionCurrentUser();
	BOOL GetLocalIPAddress();
	BOOL UpdateAccountBankMem2DB(CMemUser* pMD);
	BOOL GetDressingTable();
	void CloseGuildWhareHouse();
	BOOL GetMonsterPsiTable();
	BOOL GetAddEventItemTable();
	BOOL GetTownPotalTable();
	int m_iUserCountCount;
	BOOL LoadGuildFortressList(CGuildFortress *pFort);
	void LoadDynamicMap();
	void SetStoreTaxForGuildFortress();
	BOOL GetGuildFortressTaxTable();
	BOOL LoadGuildFortressList(CGuildFortress *pFort, CMemFortress* pData);
	BOOL GetGuildFortressTable();
	BOOL GetNpcSayEventTable();
	BOOL GetEventItemTable();
	BOOL GetUserLevelUpTable();
	BOOL CheckGuildHouseData();
	BOOL GetGuildHouseTable();
	void UpdateGuildHouseMem2DB(CMemGuildHouseRank *pMD);
	BOOL GetVirtualRoomTable();
	BOOL GetGuildHouseRankTable();
	CInstanceChecker m_InstanceChecker;

protected:
	BOOL CheckSummonException(short sSid);
	BOOL GetBoxEventTable(void);
	BOOL GetRemodelingTable(void);
	void UpdateMem2DB(CMemUser* pMD);
	void CheckRollBack(void);
	BOOL OpenRollBack(void);
	BOOL OpenMemoryDB(void);
	BOOL OpenMailQueue(void);
	BOOL CloseMailQueue(void);
	BOOL GetStoreTable();
	BOOL GetNpcChatTable();
	void ResumeAI();
	BOOL GetPAMAExpTable();
	BOOL GetLevelUpTable();
	BOOL GetPsiTable();
	BOOL GetSkillTable();
	BOOL GetItemTable();
	BOOL GetNpcItemTable();
	BOOL CreateNpcThread();
	BOOL GetNpcTableData();
	void SetZoneText(CString szList);
	void SetPortText(int nPort);
	void SetIndexText(int nIndex);
	BOOL GetServerInfoData();
	void DefaultInit();

	CSharedMemory	m_MemRollBack;
	UINT			m_nTimerID;
	UINT			m_nEventItemTimerID;
	UINT			m_nBridgeTimerID;
	UINT			m_nAliveTimerID;
	HICON			m_hIcon;

	// Generated message map functions
	//{{AFX_MSG(CServerDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnRefresh();
	afx_msg void OnTimer(UINT nIDEvent);
	virtual void OnCancel();
	afx_msg void OnNewAnnounce();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()	
	LONG OnCloseProcess(UINT wParam, LONG lParam);
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.

#endif // !defined(AFX_SERVERDLG_H__AAE3FDA5_0147_46D1_837F_A6D48525B731__INCLUDED_)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -