From 87fa593a36103df8c80af10fc66fbce67194bf91 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 26 Dec 2022 16:34:48 +0800 Subject: [PATCH] 1 --- server/gameserver/mt/Hero.cc | 4 ++-- server/gameserver/mt/Map.cc | 7 +++---- server/gameserver/mt/MetaMgr.h | 15 +++++++++++++-- server/gameserver/mtb/AI.h | 2 +- server/gameserver/mtb/AirLine.h | 2 +- server/gameserver/mtb/AirRaid.h | 2 +- server/gameserver/mtb/Buff.h | 4 ++-- server/gameserver/mtb/Equip.h | 18 +++++++++--------- server/gameserver/mtb/FormulaPvp.h | 12 ++++++------ server/gameserver/mtb/KillReward.h | 2 +- server/gameserver/mtb/Map.h | 6 +++--- server/gameserver/mtb/MapThing.h | 4 ++-- server/gameserver/mtb/Player.h | 26 +++++++++++++------------- server/gameserver/mtb/RankReward.h | 2 +- server/gameserver/mtb/SafeArea.h | 2 +- server/gameserver/mtb/Skill.h | 2 +- server/gameserver/mtb/SkillNumber.h | 2 +- third_party/a8 | 2 +- 18 files changed, 62 insertions(+), 52 deletions(-) diff --git a/server/gameserver/mt/Hero.cc b/server/gameserver/mt/Hero.cc index df11aef5..000420f7 100644 --- a/server/gameserver/mt/Hero.cc +++ b/server/gameserver/mt/Hero.cc @@ -94,8 +94,8 @@ namespace mt shot_speed_ /= 20.0f; aiming_speed_ /= 20.0f; move_speed4_ /= 20.0f; - reload_speed_ / 20.0f; - useitem_speed_ / 20.0f; + reload_speed_ /= 20.0f; + useitem_speed_ /= 20.0f; } } } diff --git a/server/gameserver/mt/Map.cc b/server/gameserver/mt/Map.cc index e2ad25a9..bd36ddfe 100644 --- a/server/gameserver/mt/Map.cc +++ b/server/gameserver/mt/Map.cc @@ -1,6 +1,7 @@ #include "precompile.h" #include "mt/Map.h" +#include "mt/SafeArea.h" IMPL_TABLE(mt::Map) @@ -124,12 +125,10 @@ namespace mt if (!IsPveMap() && safearea_list.empty()) { A8_ABORT(); } - for (int area_type : safearea_list) { - #if 0 - if (!MetaMgr::Instance()->GetSafeAreaByType(area_type)) { + for (const int area_type : safearea_list) { + if (!mt::SafeArea::GetByType(area_type)) { A8_ABORT(); } - #endif } } } diff --git a/server/gameserver/mt/MetaMgr.h b/server/gameserver/mt/MetaMgr.h index 82da3249..3d534f0c 100644 --- a/server/gameserver/mt/MetaMgr.h +++ b/server/gameserver/mt/MetaMgr.h @@ -91,6 +91,9 @@ namespace mt [dir] () { f8::ReadCsvMetaFile(dir + T::table_name, T::raw_list); + T dummy; + a8::reflect::Class* cls = dummy.GetClass(); + a8::reflect::Field* pk_field = cls->GetFieldByName(T::prim_key); int id = 0; for (auto item : T::raw_list) { switch (T::table_type) { @@ -101,13 +104,21 @@ namespace mt break; case 1: { - long long key = 0.0f; + long long key = cls->GetFieldValueAsInt64 + ( + pk_field, + (((char*)item)) + pk_field->offset + ); T::id_hash[key] = item; } break; case 2: { - std::string key = ""; + std::string key = cls->GetFieldValueAsString + ( + pk_field, + (((char*)item)) + pk_field->offset + ); T::name_hash[key] = item; } break; diff --git a/server/gameserver/mtb/AI.h b/server/gameserver/mtb/AI.h index 305487a0..01bd2fed 100644 --- a/server/gameserver/mtb/AI.h +++ b/server/gameserver/mtb/AI.h @@ -59,7 +59,7 @@ namespace mtb std::string random_move_idle_time_; std::string random_move_time_; int attack_range_ = 0; - int attack_rate_ = 0.0f; + float attack_rate_ = 0.0f; int ai_mode_ = 0; int ai_kind_ = 0; std::string param1_; diff --git a/server/gameserver/mtb/AirLine.h b/server/gameserver/mtb/AirLine.h index b7460574..5b0468d5 100644 --- a/server/gameserver/mtb/AirLine.h +++ b/server/gameserver/mtb/AirLine.h @@ -29,7 +29,7 @@ namespace mtb int id_ = 0; std::string start_point_; std::string end_point_; - int plane_speed_ = 0.0f; + float plane_speed_ = 0.0f; int weight_ = 0; int map_id_ = 0; diff --git a/server/gameserver/mtb/AirRaid.h b/server/gameserver/mtb/AirRaid.h index 51d20ca4..e9956e5c 100644 --- a/server/gameserver/mtb/AirRaid.h +++ b/server/gameserver/mtb/AirRaid.h @@ -31,7 +31,7 @@ namespace mtb int appear_time_ = 0; std::string bomb_id_; std::string raid_wave_; - int rad_ = 0.0f; + float rad_ = 0.0f; public: std::bitset<6> __flags__; diff --git a/server/gameserver/mtb/Buff.h b/server/gameserver/mtb/Buff.h index 4ff3b219..1dfefe45 100644 --- a/server/gameserver/mtb/Buff.h +++ b/server/gameserver/mtb/Buff.h @@ -86,8 +86,8 @@ namespace mtb std::string buff_param3_; std::string buff_param4_; std::string buff_param5_; - int duration_time_ = 0.0f; - int buff_valueup_ = 0.0f; + float duration_time_ = 0.0f; + float buff_valueup_ = 0.0f; std::string immune_buffeffect_list_; std::string post_remove_action_; int only_server_ = 0; diff --git a/server/gameserver/mtb/Equip.h b/server/gameserver/mtb/Equip.h index ef52ff2a..8b2b4224 100644 --- a/server/gameserver/mtb/Equip.h +++ b/server/gameserver/mtb/Equip.h @@ -167,17 +167,17 @@ namespace mtb int group_num_ = 0; int is_luck_ = 0; std::string bullet_born_offset_; - int bullet_angle_ = 0.0f; + float bullet_angle_ = 0.0f; std::string name_; - int rad_ = 0.0f; - int rad2_ = 0.0f; + float rad_ = 0.0f; + float rad2_ = 0.0f; int buffid_ = 0; int drop_id_ = 0; int explosion_effect_ = 0; std::string param1_; std::string param2_; int reloadtype_ = 0; - int recoil_force_ = 0.0f; + float recoil_force_ = 0.0f; int missiles_time_ = 0; int heroid_ = 0; std::string launch_dev_; @@ -187,9 +187,9 @@ namespace mtb int through_teammate_ = 0; std::string text_icon_; std::string special_damage_type_; - int max_oil_ = 0.0f; - int average_oil_ = 0.0f; - int atk_mech_ = 0.0f; + float max_oil_ = 0.0f; + float average_oil_ = 0.0f; + float atk_mech_ = 0.0f; int use_scene_ = 0; int ispenetrate_ = 0; int is_penetrate_thing_ = 0; @@ -202,8 +202,8 @@ namespace mtb int bullet_consume_type_ = 0; std::string inventory_slot_; int _inventory_slot_ = 0; - int critical_ = 0.0f; - int cri_damage_ = 0.0f; + float critical_ = 0.0f; + float cri_damage_ = 0.0f; int shootfire_ = 0; std::string hit_buff_; int auto_trace_ = 0; diff --git a/server/gameserver/mtb/FormulaPvp.h b/server/gameserver/mtb/FormulaPvp.h index 37e11b1a..519007b2 100644 --- a/server/gameserver/mtb/FormulaPvp.h +++ b/server/gameserver/mtb/FormulaPvp.h @@ -26,12 +26,12 @@ namespace mtb protected: - int top_ = 0.0f; - int ranked_topx_ = 0.0f; - int kills_topx_ = 0.0f; - int hero_topx_ = 0.0f; - int weapon_topx_ = 0.0f; - int survival_topx_ = 0.0f; + float top_ = 0.0f; + float ranked_topx_ = 0.0f; + float kills_topx_ = 0.0f; + float hero_topx_ = 0.0f; + float weapon_topx_ = 0.0f; + float survival_topx_ = 0.0f; public: std::bitset<6> __flags__; diff --git a/server/gameserver/mtb/KillReward.h b/server/gameserver/mtb/KillReward.h index bc9b9015..58493501 100644 --- a/server/gameserver/mtb/KillReward.h +++ b/server/gameserver/mtb/KillReward.h @@ -19,7 +19,7 @@ namespace mtb protected: int kill_num_ = 0; - int parameter_ = 0.0f; + float parameter_ = 0.0f; public: std::bitset<2> __flags__; diff --git a/server/gameserver/mtb/Map.h b/server/gameserver/mtb/Map.h index 48b8c577..1b007f44 100644 --- a/server/gameserver/mtb/Map.h +++ b/server/gameserver/mtb/Map.h @@ -53,8 +53,8 @@ namespace mtb int map_id_ = 0; std::string template_list_; std::string map_name_; - int map_width_ = 0.0f; - int map_height_ = 0.0f; + float map_width_ = 0.0f; + float map_height_ = 0.0f; std::string airdrops_; int terminator_airdrop_ = 0; int player_ = 0; @@ -67,7 +67,7 @@ namespace mtb int init_gas_ring_ = 0; std::string airraids_; std::string car_num_limit_; - int scale_ = 0.0f; + float scale_ = 0.0f; public: std::bitset<18> __flags__; diff --git a/server/gameserver/mtb/MapThing.h b/server/gameserver/mtb/MapThing.h index 8e966582..f507cec3 100644 --- a/server/gameserver/mtb/MapThing.h +++ b/server/gameserver/mtb/MapThing.h @@ -93,8 +93,8 @@ namespace mtb int height_ = 0; int width_ = 0; int hp_ = 0; - int damage_ = 0.0f; - int damage_dia_ = 0.0f; + float damage_ = 0.0f; + float damage_dia_ = 0.0f; std::string drop_; int is_door_ = 0; int is_house_ = 0; diff --git a/server/gameserver/mtb/Player.h b/server/gameserver/mtb/Player.h index 2b644994..debb1c86 100644 --- a/server/gameserver/mtb/Player.h +++ b/server/gameserver/mtb/Player.h @@ -113,9 +113,9 @@ namespace mtb protected: int id_ = 0; - int move_offset_x_ = 0.0f; - int move_offset_y_ = 0.0f; - int radius_ = 0.0f; + float move_offset_x_ = 0.0f; + float move_offset_y_ = 0.0f; + float radius_ = 0.0f; int move_speed_ = 0; int jump_speed_ = 0; int move_speed3_ = 0; @@ -135,9 +135,9 @@ namespace mtb int revive_time_ = 0; std::string name_; int normal_skill_ = 0; - int hit_offset_x_ = 0.0f; - int hit_offset_y_ = 0.0f; - int hit_radius_ = 0.0f; + float hit_offset_x_ = 0.0f; + float hit_offset_y_ = 0.0f; + float hit_radius_ = 0.0f; std::string ai_script_; std::string init_buffs_; int default_weapon_ = 0; @@ -151,16 +151,16 @@ namespace mtb int hp_ = 0; int damage_ = 0; int defence_ = 0; - int crit_atk_ = 0.0f; - int crit_atk_ratio_ = 0.0f; - int miss_ = 0.0f; - int miss_damage_ruduce_ = 0.0f; + float crit_atk_ = 0.0f; + float crit_atk_ratio_ = 0.0f; + float miss_ = 0.0f; + float miss_damage_ruduce_ = 0.0f; int skill1list_ = 0; int skill2list_ = 0; int skill3list_ = 0; - int hp_ratio_ = 0.0f; - int damage_ratio_ = 0.0f; - int defence_ratio_ = 0.0f; + float hp_ratio_ = 0.0f; + float damage_ratio_ = 0.0f; + float defence_ratio_ = 0.0f; public: std::bitset<49> __flags__; diff --git a/server/gameserver/mtb/RankReward.h b/server/gameserver/mtb/RankReward.h index ef73fb71..88fa3b2c 100644 --- a/server/gameserver/mtb/RankReward.h +++ b/server/gameserver/mtb/RankReward.h @@ -21,7 +21,7 @@ namespace mtb protected: int rank_ = 0; - int parameter_ = 0.0f; + float parameter_ = 0.0f; int drop_ = 0; public: diff --git a/server/gameserver/mtb/SafeArea.h b/server/gameserver/mtb/SafeArea.h index 32b84d4d..26e89cdd 100644 --- a/server/gameserver/mtb/SafeArea.h +++ b/server/gameserver/mtb/SafeArea.h @@ -37,7 +37,7 @@ namespace mtb int rad_ = 0; int wait_time_ = 0; int shrink_speed_ = 0; - int hurt_ = 0.0f; + float hurt_ = 0.0f; int type_ = 0; int x1_ = 0; int y1_ = 0; diff --git a/server/gameserver/mtb/Skill.h b/server/gameserver/mtb/Skill.h index 8f0508d3..e4dcb049 100644 --- a/server/gameserver/mtb/Skill.h +++ b/server/gameserver/mtb/Skill.h @@ -76,7 +76,7 @@ namespace mtb int skill_cd_ = 0; int skill_target_ = 0; std::string buff_list_; - int skill_distance_ = 0.0f; + float skill_distance_ = 0.0f; int cold_time_up_ = 0; int max_times_ = 0; int phase1_time_offset_ = 0; diff --git a/server/gameserver/mtb/SkillNumber.h b/server/gameserver/mtb/SkillNumber.h index 90bf4cde..ae1dd104 100644 --- a/server/gameserver/mtb/SkillNumber.h +++ b/server/gameserver/mtb/SkillNumber.h @@ -51,7 +51,7 @@ namespace mtb std::string time_; std::string cd_; int buff_id_ = 0; - int buff_time_ = 0.0f; + float buff_time_ = 0.0f; int explosion_effect_ = 0; public: diff --git a/third_party/a8 b/third_party/a8 index 36d83c33..11f2866a 160000 --- a/third_party/a8 +++ b/third_party/a8 @@ -1 +1 @@ -Subproject commit 36d83c3303f5b4a9c1c389c1a5b7f95ac8d858dd +Subproject commit 11f2866aded2d25354dc35d2cf091b0da01ae724