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

📄 ltssupport.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
字号:
#ifndef	_LTS_SUPPORT_H_
#define	_LTS_SUPPORT_H_


#define	LOCALWAR_NATION_MAX			3			// 0 : BY, 1 : ZY, 3 : YL
#define	ACTION_SITDOWN				17			// 011214 LTS
#define LOCALWAR_SEALSTONE_MAX		4			// LTS NEW LOCALWAR

enum eLF_TYPE//enum Log Fame
{
	LF_DUAL						=0,			// 掂倔家厚
	LF_LOCALWAR					=1,			// 惫瘤傈
	LF_ITEMBUY					=2,			// 惫啊绊鞭酒捞袍
	LF_DONATION					=3,			// 惫啊扁何
	LF_NATIONWAR				=4,			// 惫啊傈
	LF_SCRIPT					=5			// 胶农赋飘
};

#include <list>						// LTS DRAGONLORD
using namespace std;

struct LocalWarfield_Info			// LTS NEW LOCALWAR	
{
	int				Index;			// 硅凯俊 甸绢哎 困摹
	int				Phase;			// 甘俊辑 甘栏肺狼 困摹 
	char			MapName[20];
	int				Port;
	int				SealNo[3][4];		
};

struct SealStoneStatus
{
	char		SprNo;
	short int	ID;
	char		MapNumber;
	short int	X, Y;
	char		Status;
};

class cLocalWarfield
{
	LocalWarfield_Info	m_tLocalWarfieldInfo;

	short				m_ManCount[LOCALWAR_NATION_MAX];
//	short				m_LocalWarPoint[LOCALWAR_NATION_MAX];
	int					m_bisLocalWarActive;

	int					m_SealStoneNo[NW_NATION_COUNT][LOCALWAR_SEALSTONE_MAX];			// LTS NEW LOCALWAR
	CHARLIST*			m_SealStonePtr[NW_NATION_COUNT][LOCALWAR_SEALSTONE_MAX];		// LTS NEW LOCALWAR


public :

	cLocalWarfield();
	~cLocalWarfield() {}

	LocalWarfield_Info	GetLocalWarfieldInfo() { return m_tLocalWarfieldInfo; }
	void				SetLocalWarfieldInfo(LocalWarfield_Info LF);
	int					GetLocalWarfieldPhase() { return m_tLocalWarfieldInfo.Phase; }
	int					GetLocalWarfieldIndex()	{ return m_tLocalWarfieldInfo.Index; }

	int				ConvertNation2Index(int Nation);
	short			GetManCount(int NationIndex) { return m_ManCount[NationIndex]; }
	void			IncManCount(int NationIndex) { m_ManCount[NationIndex]++; }
	void			DecManCount(int NationIndex) { m_ManCount[NationIndex]--; }
	void			ClearManCount();

/*	short			GetPoint(int NationIndex) { return m_LocalWarPoint[NationIndex]; }
	void			IncPoint(int NationIndex,int Value) { m_LocalWarPoint[NationIndex]+=Value; }
	void			ClearPoint();*/

	int				GetLocalWarStatus() { return m_bisLocalWarActive; }
	void			SetLocalWarStatus(int Status) { m_bisLocalWarActive=Status; }

	int				CheckAllSealStonebroked(int NationIndex);						// LTS NEW LOCALWAR
	void			CheckSealStonePtr(CHARLIST* ch);								// LTS NEW LOCALWAR
	void			ClearSealStonePtr();											// LTS NEW LOCALWAR
	CHARLIST*		GetSealStonePtr( const int nNation, const int nStoneNum );		// 030506 kyo //秦寸 搬拌籍狼 器牢磐甫 府畔茄促.
	void			RecoveryAllSealStone(); // 030520 kyo
};


struct EventMapData					// 020115 LTS				// LTS BUG
{
	char			EventActive;			// 捞亥飘 风橇狼 柳青 秦力
	char			EventStartTime;			// 捞亥飘 风橇狼 柳青 矫累矫埃(概老)
	char			EventRegTime;
	char			EventMapMoveTime;
	char			EventTime;
	char			EventDelayTime;			// 捞亥飘 荤捞狼 绒侥矫埃
	unsigned short	EventUserLevelMin[3];	// 捞亥飘 1,2,3狼 炼牢饭骇 MIN
	unsigned short	EventUserLevelMax[3];	// 捞亥飘 1,2,3狼 炼牢饭骇 MAX
	POINTS			StartPoint[6];		// 唱扼喊 2俺究								// LTS BUG
	unsigned short	EventRegMax[3][3];		// 唱扼喊, 捞亥飘 锅龋喊 曼咯牢盔 力茄
	POINTS			OutPoint[3];			// 唱扼喊 窍唱究
	char			EventMessageTime;		//捞亥飘 矫累矫 皋技瘤 傈价 林扁
	POINTS			EventJoinLocation[3];	// 付阑喊 捞亥飘 立荐措 x,y
};


#define				EVENT_NOTHING		0
#define				EVENT_JOIN			1
#define				EVENT_MOVE			2
#define				EVENT_DOING			3
#define				EVENT_REST			4

#define				EVENT_1				0
#define				EVENT_2				1
#define				EVENT_3				2

class cEventLocalWarfield			// 020115 LTS
{
	int				m_EventStep;			// 1锅捞亥飘, 2锅捞亥飘, 3锅捞亥飘 
	int				m_EventStatus;				// 0 : 荤侩救窃 // 1 :曼咯 2 : 捞悼 // 3 : 矫累 //4 :绒侥
	__int64			m_EventEndTime;			// TimeUpdate 矫埃 
	EventMapData	m_tData;					// 捞亥飘 甘单捞鸥
	int				m_CheckLoadData;			// 单捞磐 肺爹 捞惑绝唱 眉农
	WORD			m_ManCount[3];				
public :
	cEventLocalWarfield();
	~cEventLocalWarfield();

	void			InitEventLocalWarfield();
	void			LoadEventLocalWarfieldData();
	inline int		CheckLoadData()				{ return m_CheckLoadData; }
	void			InitEvent();

	void			ClearUserCloth();
	void			SetEventLocalWarStatus(int Status);
	void			UpdateEventLocalWarTime();

	void			EventLocalWarMessage();
	void			SendEvent1Message(int Status);
	void			SendEvent2Message(int Status);
	void			SendEvent3Message(int Status);
	void			SendEventDoingMessage();

	void			ClearUserALL();
	void			LogJoinUser();
	void			LogVictoryUser();
	int				GetNationIndex(int Nation);
	inline int		GetEventStatus()			{ return m_EventStatus; }		

	inline bool		CheckLevel(int Level);
	inline bool		IncManCount(int Nation);
	inline void		ClearManCount()				{ m_ManCount[0]=0;m_ManCount[1]=0;m_ManCount[2]=0; }
};

typedef list<int>					MemberList;
typedef MemberList::iterator		MemberListItor;	

#define BLUETEAM				0
#define REDTEAM					1

#define NONE_ARMOR				0
#define	BLUE_ARMOR				1
#define RED_ARMOR				2

#define	WAR_NOT_END				-2
#define WAR_RESULT_LOOSE_ALL	-1
#define	WAR_RESULT_BLUE_WIN		0
#define WAR_RESULT_RED_WIN		1

class cDragonLordWar													// LTS DRAGONLORD
{
	__int64			m_64Timer;
	DWORD			MessageTime;

	bool			m_bisActive;
	char			m_cResult;

	int				TeamCount[2];

	MemberList		TeamMemberList[2];

	POINT			KickPoint[3];

	void			(*DeActiveFunc)();
	void			(*MessageFunc)();
	
	void			SetTimer(DWORD	WarTime);
	void			SetMessageTime(DWORD MsgTime);
	void			PushMember(int Type,int ID);
	void			ClearMemberList();
	void			ClearMemberCount();
	void			SetReturnFunc(void(*pFunc)());
	void			SetMessageFunc(void(*pMsgFunc)());
	void			CheckMemberCount();
	void			SetKickPoint(POINT* kPoint);
	void			SetWarResult(char Result);
	int				GetTeamMemberCount(int Type);
	void			PutArmor();
	void			RemoveArmor();
	void			KickTeamAll();
	void			KickTeam(int Type);
	void			KickUser(int ID);
	void			SendTeamChange(int ID,int TeamNo);
	void			CheckRemainTime();

public :

	cDragonLordWar();
	~cDragonLordWar();

	DWORD			GetRemainTime();
	void			ActiveWar(DWORD WarTime,void(*pFunc)(),DWORD MessageTime,void(*pMsgFunc)(),POINT* kPoint,int RedTeamCount,int* RedTeam,int BlueTeamCount,int* BlueTeam);
	void			DeActiveWar();
	void			SetTeamList(int Type,int Count,int* Member);	// Type RED:0,BLUE:1
	void			FindAndDeleteMember(int ID,bool Kick=true);
	void			UpdateWarTimer();
	bool			GetWarStatus();
	int				ReturnWinMemberCount();
	int				GetWarResult();
	void			ReturnWinMemerList(int* Member);
};

extern cDragonLordWar		g_pDragonLordWar;					// LTS DRAGONLORD
extern void SaveChangeClassStep(CHARLIST* pTarget, int nPrevStep, int nNextStep); // CSD-TW-030606
extern void SaveChangeClassQuest(CHARLIST* pTarget, const char* pMsg, int nQuestNo, int nQcount, int nStart); // CSD-TW-030618
extern void SaveChangeFame( CHARLIST *ch, int old_fame, int new_fame, eLF_TYPE type );
extern void SaveScriptLog( CHARLIST *ch, const int nQuestNo, const int nQuestStep, const char* msg); // 030826 kyo
#endif 

⌨️ 快捷键说明

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