Files
mir_server/sdk/commonLib/def/GuildDb.h
aixianling 5c9f1dae4a init
2025-01-09 17:45:40 +08:00

229 lines
5.6 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#pragma once
#define MAX_EVENTCOUNT 50 //200 行会日志最大条数
#define MAX_GUILDDEPOTBAG 24
#define MAX_GUILDDEPOTRECOUD 100
#define MAX_GUILDTITLENUM 2000
#define GUILDDEPOT_PAGE_GRIDS 30 //行会仓库每页有42个格子
#define GUILDDEPOT_PAGE_GRIDS_CHECK 12 //需要审核行会仓库每页有12个格子
class EntityHandle;
#include "UserItem.h"
//禁止编译器对此结构进行字节对齐
#pragma pack (push, 1)
typedef struct tagActorNodeSimple
{
unsigned int nActorId;
INT64 nGuildGX; //个人的贡献值
unsigned int nVipGrade;
BYTE nSex;
BYTE nLevel;
BYTE nCircle; //转数
BYTE nJob;
BYTE nMenPai;
BYTE nType; //地位
BYTE nTK; //堂口
UINT nZzNext; //在职时间
UINT nZjNext;
int nGuildTiTle; //封号序号
int nTime; //最近登陆的时间
int nTotalGx; //在本行会的贡献值
int nIcon; //头像id
int nBattleValue; //战力
int nGuildCityPos; //皇城职位(攻城)(已经不用)
int nModelId; //模型id
int nWeaponId; //武器外观
int nSwingId; //翅膀外观
int nJoinTime; //加入行会的时间
}ActorNodeSimple;
typedef struct tagActorNode
{
tagActorNodeSimple BasicData;
ACTORNAME sActorName;
EntityHandle hActorHandle;
//bool boStatus;//这个角色是否已删号
tagActorNode()
{
ZeroMemory(this,sizeof(*this));
//boStatus = TRUE;
}
//DECLARE_OBJECT_COUNTER(tagActorNode)
}ActorCommonNode;
typedef struct tagWarGuildHistory
{
int nGid; //对方帮派的id
int nPkCount; //杀敌数
int nDieCount; //己方被杀数量
char sEndTime[20]; //下次变化状态的时间
char sGuildName[32]; //对方帮派的名称
tagWarGuildHistory()
{
sGuildName[0] = 0;
}
//DECLARE_OBJECT_COUNTER(tagWarGuildHistory)
}WarGuildHistory;
//帮派技能
typedef struct tagGuildSkill
{
int nSkillId; //帮派技能的id
int nLevel; //帮派技能的等级
tagGuildSkill()
{
memset(this,0,sizeof(*this));
}
}GUILDSKILLS,*PGUILDSKILLS;
typedef struct tagEventMsg
{
int aTime; //事件发生的时间
char nEventMsg[512]; //发生的事件
int mEventId; //事件id
int mParam1; //参数1
int mParam2; //参数2
int mParam3; //参数3
char mParam4[32]; //参数4
char mParam5[32]; //参数5
tagEventMsg()
{
memset(this,0,sizeof(*this));
}
}GUILDEVENTRECOUD;
class CGuild;
typedef struct tagGuildTitle
{
char nTitleName[32]; //行会封号
}GUIlDTITLES;
//行会沙巴克战是的命令
typedef struct tagGuildCmdStr
{
BYTE bCmdId; //1 集合 2 进攻 3 收兵
char strCmd[32]; //行会封号
}GUILDCMDSTR;
//请求成为联盟
typedef struct tagInterRelationMsg
{
unsigned int nGuildId; //行会id
}INTERRELATIONMSG;
//行会仓库
typedef struct tagGuildDepotItem
{
unsigned int nActorId; //玩家的id
int nCoinType; //存入的物品,需要取出消耗的钱的类型 1 金币 2 元宝
int nCoinNum; //取出物品需要的钱的数量
int nExitFlag; //0存在1被取出了(似乎已经不使用了)
unsigned int nExchangeActorId; //0-未被申请兑换,>0,有人申请兑换
ACTORNAME szExchangeActorName; //申请兑换的玩家Name
unsigned int nExchangeTime; //申请兑换时间
CUserItem* nUserItem;
tagGuildDepotItem()
{
memset(this,0,sizeof(*this));
}
}GUILDDEPOTITEM;
//行会仓库操作记录
typedef struct tagGuildDepotMsg
{
BYTE nType; //类型 1 存入 2 取出 3 收回
int nTime; //操作的时间
char nActorName[32]; //操作人的姓名
char nItemName[32]; //操作的物品名字
int nNum; //物品数量
int nCoinType; //钱的类型 1 金币 2 元宝
int nCoinNum; //钱的数量
tagGuildDepotMsg()
{
memset(this,0,sizeof(*this));
}
}GUILDDEPOTMSG;
typedef struct tagWarDbData
{
int nRelationShip; //0 无 1 联盟 2 敌对
int nState; //1 宣战状态 0 正常
int nPkCount; //杀敌数
int nDieCount; //己方被杀数量
int nNext; //下次可以宣战的时间
bool boSaveHistory;//是否需要保存到历史记录表中默认是false只有当状态从敌对到和平的时候才改为true保存后又改成false
tagWarDbData()
{
memset(this,0,sizeof(*this));
}
} WarDbData;
//行会之间的关系、状态处理
typedef struct tagWarRelationData
{
unsigned int nGuildId; //行会id
WarDbData m_WarData;
}WarRelationData;
typedef struct tagWarGuild
{
enum tagWarStatus
{
wsDeclareWar = 0, //宣战
wsOnWar = 1,
wsPeaceful = 2,
};
CGuild* m_pGuild;
WarDbData m_WarData;
tagWarGuild()
{
m_WarData.boSaveHistory = false;
m_pGuild = NULL;
}
/*
* Comments:检查当前时间,并且返回当前的状态
* UINT nWarTime:敌对的持续时间
* UINT nDecTime:宣战的持续时间
* bool boChange:是否有状态改变
* @Return int:
*/
int checkStatus(UINT nNow,UINT nWarTime,UINT nDecTime,bool& boChange)
{
//if (nNow > m_WarData.nNext) //可以改变状态了
// {
// m_WarData.nRelationShip = wsPeaceful;//可以宣战
// boChange = true;
// }
return m_WarData.nRelationShip;
}
VOID Declare(CGuild* pWarGuild,UINT nNow,UINT nDecTime)
{
if (pWarGuild == NULL) return;
m_pGuild = pWarGuild;
m_WarData.nPkCount = 0;
m_WarData.nDieCount = 0;
m_WarData.nNext = nNow + nDecTime;
m_WarData.nRelationShip = wsDeclareWar;
m_WarData.boSaveHistory = false;
}
}WarGuild;
//行会贡献排名列表
typedef struct tagGuildMemGxList
{
unsigned int nActorId; //成员的id
int nGx; //行会贡献
}GUILDMEMGXLIST;
#pragma pack(pop)