📄 nationsys.h
字号:
#ifndef _NATION_SYS_H_
#define _NATION_SYS_H_
#include "NationSys_Define.h"
#include "LTSSupport.h"
#include "WarStartInfo.h"
#define MAX_WARTIME_COUNT 30
#define GIVE_FAME_RANGE 15
typedef struct MonPoint
{
int MonsterIndex;
int Size;
POINTS* Points;
} t_MonPoint;
// Structure Squad Infomation
typedef struct SquadInformation_P
{
char SquadNo;
int CO_ID;
char CO_Name[NW_NAME_MAX];
int SoliderCount;
char Sok[NW_SQUAD_RARE_MAX];
char LoadingPoint;
} t_SquadInformation;
// Structure Commander or Commander Candidate
typedef struct CommanderInformation_P
{
char VoteNo;
int CO_ID;
char CO_Name[NW_NAME_MAX];
BYTE btLevel; // CSD-030806
short Fame;
short int Face;
short int Gender;
short int Class;
__int8 nDual; // 011020 LTS
__int8 nStep; // 011020 LTS
DWORD LadderScore;
WORD VoteCount;
} t_CommanderInformation;
typedef struct WeaponStruct_P
{
int NPC_ID;
int MonPointIndex;
int NPC_Index;
int Phase; // 011022 LTS
int Locationx;
int Locationy;
int EventNo;
int GenerationPos;
int GenerationType;
int Status;
} t_WeaponStruct;
typedef struct MWarfield
{
char Status;
int Possession;
} t_Warfield;
typedef struct DeadWeapon_P
{
char NPCCount;
int* NPC_ID;
} t_DeadWeapon;
class SquadMember
{
int m_iData;
char m_cStatus;
public :
SquadMember(){}
SquadMember(int i) { m_iData=i;}
SquadMember(int i,int Status) {m_iData=i; m_cStatus=Status; }
~SquadMember() {}
void SetData(int i) { m_iData=i;}
int GetData() { return m_iData; }
void SetStatus(int i) { m_cStatus=i; }
int GetStatus() { return m_cStatus; }
};
class cKiller
{
char m_sUserName[20];
WORD m_wKillSprNo;
public :
cKiller(){}
cKiller(char* Name,int SprNo) { strcpy(m_sUserName,Name); m_wKillSprNo=SprNo; }
~cKiller() {}
void SetUserName(char* Name) { strcpy(m_sUserName,Name); }
void SetKillSprNo(int SprNo) { m_wKillSprNo=SprNo; }
const char* GetUserName() { return m_sUserName; }
int GetKillSprNo() { return m_wKillSprNo; }
};
class cMonster
{
t_WeaponStruct Data;
public :
cMonster(){}
cMonster(t_WeaponStruct Monster)
{
Data.NPC_ID=Monster.NPC_ID;
Data.MonPointIndex=Monster.MonPointIndex;
Data.NPC_Index=Monster.NPC_Index;
Data.Locationx=Monster.Locationx;
Data.Locationy=Monster.Locationy;
Data.EventNo=Monster.EventNo;
Data.GenerationPos=Monster.GenerationPos;
Data.GenerationType=Monster.GenerationType;
Data.Status=Monster.Status;
}
~cMonster(){}
int GetMonsterID() { return Data.NPC_ID; }
void SetMonsterID(int ID) { Data.NPC_ID=ID; }
t_WeaponStruct GetMonsterData() { return Data; }
};
// Class cWarfield
typedef struct Squad_P
{
t_CommanderInformation Commander; // Commander
t_CommanderInformation Candidater[NW_CANDIDATE_MAX]; // Candidater
t_SquadInformation SquadInfo[NW_SQUAD_MAX]; // Squad Information
SquadMember* SquadDataLink[NW_SQUAD_MAX]; // Squad Hash
} t_Squad;
struct MonPoint2
{
int Size;
POINTS* MPoint;
};
struct MonsterPoints2
{
int CastleGateWayNo;
int MonsterIndex;
int locationX;
int LocationY;
MonPoint2* MonsterPoint;
MonPoint2* EMonsterPoint;
};
using namespace std;
typedef list<SquadMember*> SquadList;
typedef list<cKiller*> KillerList;
typedef list<cMonster*> MonsterList;
typedef SquadList::iterator SquadListItor; // STL List
typedef KillerList::iterator KillerListItor;
typedef MonsterList::iterator MonsterListItor;
struct LoopTimeDefine // 011101 LTS
{
DWORD NWPeaceTime1; // 傈里饶狼 乞拳矫埃
DWORD NWPeaceTime2; // 魂吝傈里磐狼 弥檬 傈里风橇 矫累矫埃
DWORD NWPeaceTime3; // 乞盔傈里磐狼 弥檬 傈里风橇 矫累矫埃
DWORD NWPeaceTime4; // 级 傈里磐狼 弥檬 傈里风橇 矫累矫埃
DWORD NWVoteTime; // 傈里 捧钎 矫埃
DWORD NWPrepareTime; // 傈里 霖厚 矫埃
DWORD NWWarTime; // 傈里 矫埃
DWORD NWBonusTime; // 厚剐瘤开 坷锹矫埃
DWORD NWVoteMin; // 捧钎 弥家牢盔 // LTS LOCALWAR
WORD NWBYJoinMAX; // 傈里磐 曼咯牢盔 官捞 钙胶
WORD NWZYJoinMAX; // 傈里磐 曼咯牢盔 磊捞 钙胶
WORD NWYLJoinMAX; // 傈里磐 曼咯牢盔 老胶 钙胶
};
typedef struct StartWarTime
{
int DayofWeek;
int DHour;
}* LP_START_WAR_TIME;
class cWarfield
{
// Lopp Concern
char m_cLoopActive; //傈里狼 风橇甫 牧飘费 茄促.
__int64 m_LoopTime; // 傈里狼 林风橇 鸥烙
char m_Status; // 傈里磐狼 惑怕
bool m_bRequestCommanderVotingResult; // 荤飞包 捧钎 搬苞甫 夸没沁唱?
bool m_bBonusActive; // 焊呈胶甘狼 咀飘宏 惑怕
__int64 m_dBonusLoopTime; // 焊呈胶 甘狼 风橇鸥烙
DWORD m_dRemainTime;
LoopTimeDefine m_LoopTimeDefine; // 傈里风橇狼 沥狼 MapServer.ini俊 沥狼 // 011101 LTS
// Data Concern //肺爹矫 DB俊辑 佬绢坷绰 何盒捞促.
int m_WarfieldCode; // 傈里磐 锅龋
int m_MapPortNum; // 器飘锅龋
char m_pWarfieldName[NW_NAME_MAX]; // 傈里磐 捞抚
int m_NationCode; // 家蜡 惫啊
DWORD m_dwStartDateTime; // 傈里矫累矫埃
DWORD m_dwEndDateTime; // 傈里辆丰矫埃
DWORD m_dwNextDateTime; // 促澜 傈里矫累矫埃
char m_cNpcCount; // 己巩, 荐龋籍狼 墨款飘
char m_cGuardStoneCount; // 荐龋籍 墨款飘
char m_cCastleDoorCount; // 己巩墨款飘
char m_cGuardStoneBossCount; // 空荐龋籍 墨款飘
char m_cGuardStoneBrokenCount; // 何辑柳 荐龋籍 墨款飘
char m_cCastleDoorBrokenCount; // 何辑柳 己巩 墨款飘
bool m_bAttackerWin; // 傍拜磊啊 捞板绰啊?
bool m_bFirstMakeMonster; // 阁胶磐啊 傈俊 父甸绢 脸绰啊?
POINTS m_LivePoints[NW_SQUAD_KIND]; // 傍拜磊 规绢磊狼 蜡飞 混酒唱绰 器牢飘 // 011015 LTS
// Squad Concern
t_Squad m_tSquad[NW_SQUAD_KIND]; // NW_ATTACKER, NW_DEFENCER, NW_REINFORCE // 何措包访
t_WeaponStruct m_tWeaponData[NW_MAX_NPC]; // 己巩,荐龋籍 包访
t_MonPoint m_tMonsterPoint[MAX_MONSTER_POINT]; // 己巩狼 困摹 棺 捣飘狼 困摹
SquadList g_AttackSquadList[NW_SQUAD_MAX]; // 泅犁 甘俊 乐绰 傍拜磊 府胶飘
SquadList g_DefenceSquadList[NW_SQUAD_MAX]; // 规绢磊 府胶飘
SquadList g_ReinforceSquadList[NW_SQUAD_MAX]; // 瘤盔焙 府胶飘
SquadList g_CommanderList[NW_SQUAD_KIND]; // 何措厘 , 荤飞包 府胶飘
KillerList g_KillerList; // 己巩, 荐龋籍阑 何鉴 荤恩 府胶飘
MonsterList m_MonsterList; // 老矫利栏肺 积己登绰 阁胶飘狼 府胶飘 焊呈胶 鸥烙俊..
int g_SquadCount[NW_SQUAD_KIND][NW_SQUAD_MAX]; // 何措喊 甘 牢盔 墨款飘
int m_JoinSquadCount[NW_SQUAD_KIND]; // 老胶狼 何措 墨款飘 // 011016 LTS
MonsterPoints2 m_MonsterPoint2; //阁胶磐 器牢飘 犬厘侩
bool m_bCommanderExist[NW_SQUAD_KIND]; // 傈里磐俊 何措厘捞 粮犁
bool m_bSquadLeaderExist[NW_SQUAD_KIND][NW_SQUAD_MAX]; // 傈里磐俊 荤飞包捞 粮犁 困酒贰 官柴
DWORD m_KilledCount[NW_SQUAD_KIND];
WORD m_NationMemberCount[3]; // 官捞 磊捞 老胶狼 糕滚墨款飘 // 011218 LTS
public :
cWarfield();
~cWarfield();
bool InitWarfield();
bool LoadWarfieldData(WORD PortNum);
bool LoadWarfieldWeaponData(WORD PortNum);
bool LoadWarfieldMonsterData(WORD PortNum);
bool LoadMonsterPoint(); //颇老肚绰 单捞磐 海捞胶..
// bool LoadNationWar_Exp(); // LTS NEW LOCALWAR
void InitWarLoop();
void Destroy();
void UpdateWarfieldStatus(); // OLD LoopTime
void WarUpdate();
void ClearCommander();
void ClearCommander(int Kind);
void ClearSquadCount();
inline int GetLoopActive() { return m_cLoopActive; }
inline void SetLoopActive(bool Active) { m_cLoopActive=Active; }
inline DWORD GetLoopTime() { return m_LoopTime; }
inline int GetNationCode() { return m_NationCode; }
inline void SetNationCode(int Code) { m_NationCode=Code; }
inline int GetWarfieldCode() { return m_WarfieldCode; }
inline void SetTileDont(int MonNo,int type);
void CheckCastleGateWay();
void CheckGroup(SquadList* g_SquadList);
void CheckCommanderGroup();
void SendTileDont(t_packet *p, t_connection c[], int cn );
void SendAllTileDont(int type);
void SendTileDontChange(int MonNo,int type);
void KickDefeatUser2Home();
void SetStatus(char Status);
char GetStatus() { return m_Status; }
inline int GetGuardStoneCount() { return m_cGuardStoneCount; }
inline int GetCastleDoorCount() { return m_cCastleDoorCount; }
inline int GetNpcCount() { return m_cNpcCount; }
inline int GetWeaponIndex(int No) { return m_tWeaponData[No].NPC_Index; }
inline int GetWeaponStatus(int No) { return m_tWeaponData[No].Status; }
inline int GetAllSquadCurrentMemberCount(int Kind)
{
int temp=0;
temp+=g_SquadCount[Kind][0]; // LOOP UNROLL
temp+=g_SquadCount[Kind][1]; // NW_SQUAD
temp+=g_SquadCount[Kind][2];
temp+=g_SquadCount[Kind][3];
temp+=g_SquadCount[Kind][4];
temp+=m_JoinSquadCount[Kind];
return temp;
}
inline int GetSquadCurrentMemberCount(int Kind,int SquadNo)
{return g_SquadCount[Kind][SquadNo];}
t_SquadInformation* GetSquadInfo(int Kind,int SquadNo); // Kind : 0 : Attack, 1: Defence, 2:Reinforce
void InitSquad();
inline void IncSquadMemberCount(int Kind, int SquadNo) // 何措祈己矫 (傈里惑炔捞 酒匆锭..) 祈己牢盔 刘啊
{m_tSquad[Kind].SquadInfo[SquadNo].SoliderCount++;}
inline void DecSquadMemberCount(int Kind, int SquadNo) // 何措祈己矫 (傈里惑炔捞 酒匆锭..) 祈己牢盔 皑家
{m_tSquad[Kind].SquadInfo[SquadNo].SoliderCount--;}
inline int GetSquadMemberCount(int Kind,int SquadNo)
{ return m_tSquad[Kind].SquadInfo[SquadNo].SoliderCount; }
inline void SetSquadLoadingPoint(int Kind,int SquadNo,int LoadingPoint)
{m_tSquad[Kind].SquadInfo[SquadNo].LoadingPoint=LoadingPoint;}
void SetSquadLeader(int Kind,int SqaudNo,t_CommanderInformation* SquadLeaderInfo);
void SetCommander(int Kind,int CandidaterNo);
void SetCommander(int Kind,t_CommanderInformation* Commander);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -