diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index 60500d58..6ecef603 100644 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -39,6 +39,8 @@ #include "tracemgr.h" #include "matchmgr.h" +#include "skillhelper.h" + struct MsgNode { SocketFrom_e sockfrom; @@ -202,6 +204,7 @@ bool App::Init(int argc, char* argv[]) f8::MsgQueue::Instance()->Init(); f8::TGLog::Instance()->Init(a8::Format(PROJ_NAME_FMT, {GAME_ID}), false); f8::HttpClientPool::Instance()->Init(MAX_ALL_HTTP_NUM, MAX_SYS_HTTP_NUM, MAX_USER_HTTP_NUM); + SkillHelper::Init(); JsonDataMgr::Instance()->Init(); MetaMgr::Instance()->Init(); EntityFactory::Instance()->Init(); diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 2734d81c..056a2834 100644 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -476,6 +476,7 @@ enum MagicType_e MAGIC_WLFB = 8, //20601 威力翻倍 MAGIC_YLZ = 9, //20301 医疗站 MAGIC_YS = 10, //20501 隐身 + MAGIC_END }; const char* const PROJ_NAME_FMT = "game%d_gameserver"; diff --git a/server/gameserver/skillhelper.cc b/server/gameserver/skillhelper.cc index 590e7781..713f13ee 100644 --- a/server/gameserver/skillhelper.cc +++ b/server/gameserver/skillhelper.cc @@ -2,3 +2,95 @@ #include "skillhelper.h" +std::map SkillHelper::magic_skill_hash_; +std::map SkillHelper::skill_magic_hash_; + +void SkillHelper::Init() +{ + for (int i = MAGIC_NONE; i < MAGIC_END; ++i) { + if (i != 0) { + int skill_id = GetMagicBaseSkillId(i); + if (skill_id != 0) { + abort(); + } + magic_skill_hash_[i] = skill_id; + skill_magic_hash_[skill_id] = i; + } + } +} + +int SkillHelper::GetMagicBaseSkillId(int magic_id) +{ + switch (magic_id) { + case MAGIC_AXXF: + { + return 20101; + } + break; + case MAGIC_SJYDHX: + { + return 20701; + } + break; + case MAGIC_HLYZ: + { + return 20801; + } + break; + case MAGIC_YMCZ: + { + return 20901; + } + break; + case MAGIC_LDFY: + { + return 21001; + } + break; + case MAGIC_HJHX: + { + return 20201; + } + break; + case MAGIC_FG: + { + return 20401; + } + break; + case MAGIC_WLFB: + { + return 20601; + } + break; + case MAGIC_YLZ: + { + return 20301; + } + break; + case MAGIC_YS: + { + return 20501; + } + break; + default: + { + return 0; + } + break; + } +} + +int SkillHelper::GetActiveSkill(int magic_id, int skill_lv) +{ + return 0; +} + +int SkillHelper::GetPassiveSkill(int magic_id, int skill_lv) +{ + return 0; +} + +int SkillHelper::GetMagicId(int skill_id) +{ + return 0; +} diff --git a/server/gameserver/skillhelper.h b/server/gameserver/skillhelper.h index 497d21a4..85328df0 100644 --- a/server/gameserver/skillhelper.h +++ b/server/gameserver/skillhelper.h @@ -4,7 +4,17 @@ class SkillHelper { public: + static void Init(); + + static int GetMagicBaseSkillId(int magic_id); + static int GetActiveSkill(int magic_id, int skill_lv); static int GetPassiveSkill(int magic_id, int skill_lv); + static int GetMagicId(int skill_id); + +private: + + static std::map magic_skill_hash_; + static std::map skill_magic_hash_; };