Files
mir_server/Gateway/common/db/rank_data.h

160 lines
4.1 KiB
C
Raw Permalink Normal View History

2025-01-09 17:45:40 +08:00
#ifndef _DB_RANK_H_
#define _DB_RANK_H_
#include "container/static_array_list.h"
#include "common/datalist.h"
#include "common/gem_def.h"
#include "item_data.h"
#include "wing_data.h"
#include "achieve_data.h"
using namespace container;
#define MAX_USER_EQUIP 19
#define MAX_PET_SKILL 16
#define MAX_PET_BASE 8
#define MAX_FIGHT 40
#define NEED_REMEMBER_PROPERTY 20
#define MAX_PET_EQUIP 4
enum RankType
{
rtNone = 0,
rtFightVal = 1, // ս<><D5BD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rtLevel = 2, // <20>ȼ<EFBFBD><C8BC><EFBFBD><EFBFBD><EFBFBD>
rtCharmWeek = 3,// ÿ<><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rtAchieve = 4, // <20>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>
rtPet = 5, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>
rtMount = 6, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rtWing = 7, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD>
rtSpirit = 8, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
rtCharm = 9, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD><EFBFBD>)
rtRoot = 10, // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>(<28><><EFBFBD>ã<EFBFBD>
rtMax,
};
#pragma pack(push, 1)
struct RankDbItem
{
ActorId actorId_;
int rankId_; // <20><><EFBFBD>а<EFBFBD><D0B0>ı<EFBFBD><C4B1><EFBFBD>
int point_; // <20><><EFBFBD>еķ<D0B5><C4B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵȼ<C7B5><C8BC><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǵȼ<C7B5><C8BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>У<EFBFBD><D0A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֵ)
int camp_; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
int level_; // <20>ȼ<EFBFBD>
int job_; // ְҵ
int sex_; // <20>Ա<EFBFBD>
int fightVal_; // ս<><D5BD><EFBFBD><EFBFBD>
int mount_id_;// <20><><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڿͻ<DABF><CDBB><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int spirit_id_; // <20><><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><E7A3AC><EFBFBD>ڿͻ<DABF><CDBB><EFBFBD>ȡ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>ע<EFBFBD><EFBFBD><E2A3AC>Щ<EFBFBD>ֶ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int wing_; // <20><><EFBFBD><EFBFBD>id
int pet_type_; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
int pet_id_; // <20><><EFBFBD><EFBFBD>id
int qq_vip_; // qqvip<69>ȼ<EFBFBD>
int weapon_; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int model_; // <20>·<EFBFBD><C2B7><EFBFBD><EFBFBD><EFBFBD>
int hair_; // ͷ<><CDB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int stone_effect_;//<2F><>ʯ<EFBFBD><CAAF>Ч
int stage_effect_;//<2F>׼<EFBFBD><D7BC><EFBFBD>Ч
int wing_model_;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int last_rank_; // <20><>һ<EFBFBD>ε<EFBFBD><CEB5><EFBFBD><EFBFBD><EFBFBD>
int like_; //<2F><><EFBFBD>޴<EFBFBD><DEB4><EFBFBD>
int srvid_; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id
char actorName_[32]; //<2F><>ɫ<EFBFBD><C9AB>
char guild_[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
char petName_[32]; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
static const int MAX_COUNT = 100;
RankDbItem() : actorId_(0), rankId_(0), point_(0), camp_(0), level_(1), job_(0), sex_(0), fightVal_(0), mount_id_(0),
spirit_id_(0), wing_(0), pet_type_(0), pet_id_(0), qq_vip_(0), weapon_(0), model_(0), hair_(0), stone_effect_(0), stage_effect_(0), wing_model_(0), last_rank_(0), like_(0), srvid_(0)
{
actorName_[0] = 0;
guild_[0] = 0;
petName_[0] = 0;
}
};
#pragma pack(pop)
#pragma pack(push, 1)
struct PetRankDbItem
{
ActorId actorId_;
int jingjie_; //<2F><><EFBFBD><EFBFBD><EFBEB3>
int nature_; //<2F><><EFBFBD><EFBFBD><EFBFBD>Ը<EFBFBD>
short pet_type_; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>idx
short skill_count_; //<2F><><EFBFBD>ܸ<EFBFBD><DCB8><EFBFBD>
int skill_list_[MAX_PET_SKILL]; //һ<><D2BB>int<6E><74><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>id<69>͵ȼ<CDB5> (<28><>16 <20><><EFBFBD><EFBFBD>id <20><>16 <20>ȼ<EFBFBD>)
StaticDataList<ItemData, MAX_PET_EQUIP> items_;//<2F><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
static const int MAX_COUNT = 100;
PetRankDbItem() : actorId_(0), jingjie_(0), nature_(0), pet_type_(0), skill_count_(0)
{
memset(skill_list_, 0, sizeof(skill_list_));
}
};
#pragma pack(pop)
typedef StaticArrayList<RankDbItem, RankDbItem::MAX_COUNT> RankList;
typedef StaticArrayList<PetRankDbItem, PetRankDbItem::MAX_COUNT> PetRankList;
typedef StaticHashTable<int, RankDbItem::MAX_COUNT> LastRankList;
typedef StaticDataList<RankList, rtMax> AllRankList;
typedef StaticDataList<LastRankList, rtMax> AllLastRankList;
#pragma pack(push, 1)
struct RankData
{
int property_[NEED_REMEMBER_PROPERTY]; //<2F><><EFBFBD><EFBFBD>ֵ
int fight_list_[MAX_FIGHT]; //ս<><D5BD><EFBFBD><EFBFBD>ֵ
RankData()
{
memset(property_, (int)0, sizeof(property_));
memset(fight_list_, (int)-1, sizeof(fight_list_));
}
};
#pragma pack(pop)
struct ActorRankData
{
ActorId actorId_; //<2F><>ɫid
int dragon_; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ(<28><><EFBFBD><EFBFBD>)
int hasMount_; //<2F>Ƿ<EFBFBD><C7B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//MountDataDb mount_data_;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
StaticDataList<ItemData, MAX_USER_EQUIP> items_;//<2F><><EFBFBD><EFBFBD>װ<EFBFBD><D7B0>
int hasWing_; //<2F>Ƿ<EFBFBD><C7B7>г<EFBFBD><D0B3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
WingRankDbData wing_data_;//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int hasSpirit_; //<2F>Ƿ<EFBFBD><C7B7>о<EFBFBD><D0BE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
SpiritRankData spirit_data_; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
AchieveRankData achieve_data_; //<2F>ɾ<EFBFBD><C9BE><EFBFBD><EFBFBD><EFBFBD>
RankData rank_data_; //<2F><><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ӱ<EFBFBD><D3B0><EFBFBD><EFBFBD><EFBFBD>
uint8_t rankNum_[rtMax]; // <20><>ÿ<EFBFBD><C3BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><C3BB><EFBFBD>ϣ<EFBFBD><CFA3><EFBFBD><EFBFBD><EFBFBD>0
ActorRankData() : actorId_(0), dragon_(0), hasMount_(0), hasWing_(0), hasSpirit_(0)
{
memset(rankNum_, 0, sizeof(rankNum_));
}
};
struct ActorRankDataEx
{
ActorRankData base_;
char guild_[32]; // <20><><EFBFBD><EFBFBD><E0A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int mount_id_; // <20><><EFBFBD><EFBFBD><EFBFBD>Ľ<EFBFBD>ֵ<EFBFBD><D6B5><EFBFBD><EFBFBD><EFBFBD>ڿͻ<DABF><CDBB><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int spirit_id_; // <20><><EFBFBD><EFBFBD><EFBFBD>ľ<EFBFBD><C4BE><EFBFBD><E7A3AC><EFBFBD>ڿͻ<DABF><CDBB><EFBFBD>ȡ<EFBFBD>÷<EFBFBD><C3B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>֣<EFBFBD>ע<EFBFBD><EFBFBD><E2A3AC>Щ<EFBFBD>ֶ<EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD>ض<EFBFBD><D8B6><EFBFBD><EFBFBD><EFBFBD><EFBFBD>а<EFBFBD><D0B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
int root_; // <20><><EFBFBD><EFBFBD><EFBFBD>ĵȼ<C4B5><C8BC><EFBFBD><EFBFBD><EFBFBD>
int wing_; // <20><><EFBFBD><EFBFBD>
ActorRankDataEx() : mount_id_(0), spirit_id_(0), root_(0), wing_(0)
{
guild_[0] = 0;
}
};
#endif