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

📄 nationsys.h

📁 国内著名网络游戏dragon的服务端完整源码 内附完整数据库结构
💻 H
📖 第 1 页 / 共 3 页
字号:
	}

	int GetSecretOpenedWarfieldNo()
	{
		if (Warfield[0].CheckSecretPlaceOpen()) return 0;
		if (Warfield[1].CheckSecretPlaceOpen()) return 1;
		if (Warfield[2].CheckSecretPlaceOpen()) return 2;
		if (m_NewWarfieldStatus[0]==NW_SOPEN) return 3;
		return -1;
	}
	void SetRemainTime(int WarfieldNo,DWORD RemainTime) 
	{
		if (WarfieldNo>=0&&WarfieldNo<=2)
			Warfield[WarfieldNo].SetRemainTime(RemainTime); 
		else
		if (WarfieldNo>=3)
			m_NewWarfieldRemainTime[WarfieldNo-3]=RemainTime;
	}
	DWORD GetRemainTime(int WarfieldNo) 
	{ 
		switch(WarfieldNo)//030116 lsw 况醋 力芭
		{
		case 0:
		case 1:
		case 2:
			{
				return Warfield[WarfieldNo].GetRemainTime(); 
			}break;
		case 3:
		default:
			{
				return m_NewWarfieldRemainTime[WarfieldNo-3];
			}break;
		}
		return 0;
	}

	void GetWarRemainTime(char* ReturnStr);
	void GetNewWarRemainTime(char* ReturnStr);

	void SetSecretOpen(int WarfieldNo,bool isActive) { Warfield[WarfieldNo].SetSecretOpen(isActive); }	// 011025 LTS

	void SetLocalWarStatus(int isStart);
	void SetLocalWarStatus2(int isStart);				// LTS NEW LOCALWAR
	int	 GetLocalWarStatus()			{ return m_LocalWarStart; }

	//LocalWarfield_Info	GetLocalWarfieldInfo(int Index) { return LocalWarfield[Index].GetLocalWarfieldInfo(); }
	//void				SetLocalWarfieldInfo(int Index, LocalWarfield_Info LF) { LocalWarfield[Index].SetLocalWarfieldInfo(LocalWarfield_Info LF); }

	int				ConvertNation2Index(int Nation) { return LocalWarfield[0].ConvertNation2Index(Nation); }
	short			GetLocalWarfieldManCount(int NationIndex);
	short			GetLocalWarfieldManCount(int Index,int NationIndex) {return LocalWarfield[Index].GetManCount(NationIndex); }
	void			IncLocalWarfieldManCount(int Index,int NationIndex);
	void			DecLocalWarfieldManCount(int Index,int NationIndex);
	void			ClearLocalWarfieldManCount();

	/*short 			GetLocalWarfieldPoint(int NationIndex);
	short			GetLocalWarfieldPoint(int Index,int NationIndex) { return LocalWarfield[Index].GetPoint(NationIndex); }
	void			IncLocalWarfieldPoint(int Index,int NationIndex,int Value) { LocalWarfield[Index].IncPoint(NationIndex,Value); }
	void			ClearLocalWarfieldPoint();*/

	short 			GetLocalWarPoint(int NationIndex) { return m_LocalWarPoint[NationIndex]; }
	void			IncLocalWarPoint(int NationIndex,int Value) { m_LocalWarPoint[NationIndex]+=Value; }
	void			ClearLocalWarPoint() { m_LocalWarPoint[0]=0;m_LocalWarPoint[1]=0;m_LocalWarPoint[2]=0; }
	void			ClearLocalWarDefencePoint() {m_LocalWarDefencePoint[0]=100;m_LocalWarDefencePoint[1]=100;m_LocalWarDefencePoint[2]=100;}
	void			ClearLocalWarRemainTime() { g_LocalWarRemainTime=0; }
	__int64			GetLocalWarRemainTime()	{ return g_LocalWarRemainTime; }	// 020115 LTS

	void			SetSealStoneStatus(int NationIndex,int SealNo,int Status, int nHP);// 030516 kyo // LTS NEW LOCALWAR	
	void			CheckSealStoneStatus();												// LTS NEW LOCALWAR	
	inline int		CheckAllSealStoneBroked(int NationIndex);							// LTS NEW LOCALWAR	
	void			ClearLocalWarResult();												// LTS NEW LOCALWAR	
	inline void		SetLocalWarResult(int NationIndex,int Result);						// LTS NEW LOCALWAR	
	void			CalcDefencePoint(int NationIndex);									// LTS NEW LOCALWAR	
	int				CheckWinNation();													// LTS NEW LOCALWAR	
	int				CheckLocalWarResult();												// LTS NEW LOCALWAR	
	void			ClearSealStoneStatus();												// LTS NEW LOCALWAR
	int				GetLocalWarDefencePoint(int NationIndex);							// LTS NEW LOCALWAR		

	cWarfield*		GetWarfield(int WarfieldNo);										// LTS NEW_NATION_WAR
	void			UpdateStatus();														// LTS NEW_NATION_WAR
	bool			LoadWarStartupData();												// LTS NEW_NATION_WAR
	bool			LoadNewWarStartupData();
	void			LoadWarNo();														// LTS NEW_NATION_WAR	
	void			SaveWarNo();														// LTS NEW_NATION_WAR
	bool			CheckWarStart();													// LTS NEW_NATION_WAR
	int				GetNewWarfieldStatus(int Index);												// LTS NEW_NATION_WAR
	void			SetNewWarfieldStatus(int Index,int Status);												// LTS NEW_NATION_WAR	
	bool			InitNewWarfield();

	void			CheckAndSendWarStart(t_packet* p);

	void			ClearAllLocalSealStoneHP();			//030506 kyo // m_nAllLocalWarSealStoneHP檬扁拳
	void			GetAllLocalSealStoneHP();			//030506 kyo // 惫瘤傈俊辑 葛电 搬拌籍狼 HP樊

	unsigned long	GetLocalWarAllSealStoneHP(const int nNationIndex) const { return m_nAllLocalWarSealStoneHP[nNationIndex]; };
	
public:
	void SetWarStartInfo(CWarStartInfo* pWarStartInfo)
	{	//< CSD-030723
		Dbg_Assert(pWarStartInfo != NULL);
		m_pWarStartInfo = pWarStartInfo;
	}	//> CSD-030723

	CWarStartInfo* GetWarStartInfo()
	{	//< CSD-030723
		return m_pWarStartInfo;
	}	//> CSD-030723

private:
	CWarStartInfo* m_pWarStartInfo; // CSD-030723
};	


typedef void	*LPVOID,**LP2VOID;
typedef class CTeam															// Team Class 绰 盒府...
{
	typedef list<SquadMember*>		TeamList;				
	typedef TeamList::iterator		TeamItor;

	TeamList						m_TeamList;

	int								m_iTeamNo;							// A or B Team
	int								m_iTeamMemberCount;	// 030509 kyo 	// m_TeamList.Size();
	int								m_iDeathCount;

	POINT							m_LivePoint;

	int								m_NationMember[3];


public :

	CTeam();
	~CTeam();

	void	Clear();
	void	InsertTeamMember(int cn);
	void	DeleteMember(int cn);
	void	SendMessage(t_packet* p);
	int		GetTeamCount();
	int		GetTeamNo();
	void	SetTeamNo(int TeamNo);
	bool	CheckTeam(int cn);
	void	KickTeamAll();
	void	KickUser(int ID);
	void	GiveFame(LPCHARLIST pCaster,LPCHARLIST pTarget,int Range,int AddFame);
	void	GiveFame2All(int AddFame);
	int		GetNationCount(int Nation);
	void	AddDesthCount();
	int		GetDeathCount();

	void	RemoveArmor();

	void	SetLivePoint(POINT lPoint);
	POINT	GetLivePoint();
	int		GetNationMemberCount(int Nation);

} *LPTEAM;


typedef struct GDATA
{
	int			NPCType;
	int			NpcIndex;
	int			GenPosX;
	int			GenPosY;
	int			NPC_ID;
	int			Status;
	int			DontNo;
}*LPGDATA;

typedef class CGuardStone
{
	int				m_iWarfieldNo;
	int				m_iTeamNo;

	LPGDATA			m_pGData;
	int				m_iGDataCount;

	int				m_iTypeCount[3];					// 0 : 焊胶, 1 : 啊靛, 2 己巩

public :

	CGuardStone();
	~CGuardStone();

	void			Clear();
	void			SetWarfieldNo(int WarfieldNo);
	int				GetWarfieldNo();
	void			SetTeamNo(int TeamNo);
	int				GetTeamNo();

	int				SetGDataSize();								// private,protected  Calc Data Size From DB
	bool			LoadGData();

	bool			LoadData();
	void			FirstMakeNPCPtr();
	void			MakeNPCPtr();
	bool			MakeGuardStone(const int iIndex, const int iCallType);//030102 lsw //FirstMakeNPCPtr() MakeNPCPtr() 俊辑父 龋免 钦聪促.

	void			SetDontData();
	// XXX			GetDontData();
	//int			GetDontSize(int No)

	bool			CheckTypeAllBroke(int Type);
	int				GetBrokeStatus();							// 3->1 己巩 肚绰 啊靛胶沛... 焊胶胶沛..
	bool			CheckNPC(int NpcNo);
	bool			CheckAndUpdateStatus(LPCHARLIST lpChar);

	void			MakeDontTable();
	void			GetTileDont(DONT_DATA* lpDontData);
	void			GetStatus(char* lpStatus);

	void			SendBrokeBBS(int Team,int Type,int No,LPCHARLIST pTarget);

	LPGDATA			GetGData(const int nIndex); // 030506 kyo
	int				GetCount(){return m_iGDataCount;};	// 030506 kyo

}*LPGUARDSTONE;

struct WarTimeData
{
	DWORD			WarTime;
	DWORD			SOpenTime;
};

#define		WARFIELD_PEACE						0
#define		WARFIELD_BATTLE						1
#define		WARFIELD_SOPEN						2


class CNewWarfield
{
	LPTEAM			m_pTeam;
	LPGUARDSTONE	m_pGuard;
	int				m_iTeamCount;
	int				m_iWarfieldNo; 
	
	WarTimeData		m_Time;
	int				m_iStatus;						// 0 : PEACE, 1:WAR, 2 : SOPEN

	__int64			m_64LoopTime;

	int				m_iWinTeam;

	int				MemberMAX[3];

	MonsterList		m_MonsterList;					// 老矫利栏肺 积己登绰 阁胶飘狼 府胶飘 焊呈胶 鸥烙俊..

	long			m_nFinalGStoneHP[2];			// 030506 kyo
	long			m_nAllNormalGStoneHP[2];		// 030506 kyo
	long			m_nAllGatelHP[2];				// 030506 kyo

public :

	CNewWarfield();
	~CNewWarfield();

	bool			InitWarfield();
	bool			LoadWarfieldData();
	bool			LoadSMonster(WORD WarfieldNo);
	void			TeamClear();
	void			GuardClear();
	void			SetTeamCount(int Count);

	DWORD			GetRemainTime();

	int				GetWarfieldStatus();

	void			LoadTimeData();
	LPTEAM			GetTeam(int TeamNo);
	LPGUARDSTONE	GetGuard(int TeamNo);

	void			SetWarfieldStatus(int Status);

	void			Update();
	void			UpdatePeace();
	void			UpdateWar();
	void			UpdateSOpen();

	bool			isMyTeam(LPCHARLIST lpChar,int NPCNo);
	int				GetTeamNo(LPCHARLIST lpChar);

	bool			CanAttackGuard(LPCHARLIST pCaster,LPCHARLIST pTarget);

	void			KickAllUser2Home();

	void			SetWinTeam(int TeamNo);
	int				GetWinTeam();

	void			UpdateGuardStatus(LPCHARLIST pCaster,LPCHARLIST pTarget);
	void			GiveFame(int TeamNo,LPCHARLIST pCaster,LPCHARLIST pTarget);
	void			SendWarResult();

	void			CountDeath(LPCHARLIST lpChar);
	void			CheckAndKickUser(int cn);

	void			GetTileDont(DONT_DATA* lpDontData);

	void			DeleteMember(int cn);
	void			LoopTimeChange(t_packet* p);

	void			SendSquadChat(LPCHARLIST lpChar,t_packet* p);
	POINT			GetLivePoint(LPCHARLIST lpChar);

	int				GetNationMemberMax(int Nation);
	int				GetNationMemberCount(int Nation);

	void			InsertMonsterData(t_WeaponStruct Monster);
	void			DeleteAllMonsterData();
	void			MakeMonster();

	//<< 030506 kyo
	long			GetAllGDataTypeHP(const int nTeamNum , const int nType); // 030506 kyo
	void			GetAllGuardsHP(); // 030506 kyo
	void			CheckWinTeam(); //030506 kyo //拌魂秦辑 捞变评捞 绢凋瘤 舅酒焊备.. 搬苞档 汲沥茄促.

	
	long			GetFinalGStoneHP(const int nTeamNum );			
	long			GetAllNormalGStoneHP(const int nTeamNum );		
	long			GetAllGatelHP(const int nTeamNum );		
	void			SetFinalGStoneHP(const int nTeamNum, long lAllHP );
	void			SetAllNormalGStoneHP(const int nTeamNum, long lAllHP );
	void			SetAllGatelHP(const int nTeamNum, long lAllHP );
	void			ClearFinalGStoneHP();
	void			ClearAllNormalGStoneHP();
	void			ClearAllGatelHP();
	//>> 030506 kyo
};


 
 
#endif

⌨️ 快捷键说明

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