diff --git a/server/gameserver/mt/SkillNumber.cc b/server/gameserver/mt/SkillNumber.cc index 8f8e7cb6..eed4baa0 100644 --- a/server/gameserver/mt/SkillNumber.cc +++ b/server/gameserver/mt/SkillNumber.cc @@ -52,6 +52,14 @@ namespace mt _float_range2 = a8::XValue(tmp_str).GetDouble() / 100; } + _int_range3 = a8::XValue(range3()); + _float_range3 = a8::XValue(range3()).GetDouble(); + if (range3().find('%') != std::string::npos) { + std::string tmp_str = range3(); + a8::ReplaceString(tmp_str, "%", ""); + _float_range3 = a8::XValue(tmp_str).GetDouble() / 100; + } + _int_probability = a8::XValue(probability()); _float_probability = a8::XValue(probability()).GetDouble(); if (probability().find('%') != std::string::npos) { diff --git a/server/gameserver/mt/SkillNumber.h b/server/gameserver/mt/SkillNumber.h index a663db84..a8bebd31 100644 --- a/server/gameserver/mt/SkillNumber.h +++ b/server/gameserver/mt/SkillNumber.h @@ -26,6 +26,9 @@ namespace mt int _int_range2 = 0; float _float_range2 = 0; + int _int_range3 = 0; + float _float_range3 = 0; + int _int_probability = 0; float _float_probability = 0; diff --git a/server/gameserver/mtb/SkillNumber.h b/server/gameserver/mtb/SkillNumber.h index 2ef75ee2..146a9491 100644 --- a/server/gameserver/mtb/SkillNumber.h +++ b/server/gameserver/mtb/SkillNumber.h @@ -23,6 +23,7 @@ namespace mtb const std::string speed() const { return speed_; }; const std::string range() const { return range_; }; const std::string range2() const { return range2_; }; + const std::string range3() const { return range3_; }; const std::string time() const { return time_; }; const std::string cd() const { return cd_; }; int buff_id() const { return buff_id_; }; @@ -44,13 +45,14 @@ namespace mtb bool has_speed() const { return __flags__.test(10);}; bool has_range() const { return __flags__.test(11);}; bool has_range2() const { return __flags__.test(12);}; - bool has_time() const { return __flags__.test(13);}; - bool has_cd() const { return __flags__.test(14);}; - bool has_buff_id() const { return __flags__.test(15);}; - bool has_buff_time() const { return __flags__.test(16);}; - bool has_probability() const { return __flags__.test(17);}; - bool has_explosion_effect() const { return __flags__.test(18);}; - bool has_effect_list() const { return __flags__.test(19);}; + bool has_range3() const { return __flags__.test(13);}; + bool has_time() const { return __flags__.test(14);}; + bool has_cd() const { return __flags__.test(15);}; + bool has_buff_id() const { return __flags__.test(16);}; + bool has_buff_time() const { return __flags__.test(17);}; + bool has_probability() const { return __flags__.test(18);}; + bool has_explosion_effect() const { return __flags__.test(19);}; + bool has_effect_list() const { return __flags__.test(20);}; protected: @@ -67,6 +69,7 @@ namespace mtb std::string speed_; std::string range_; std::string range2_; + std::string range3_; std::string time_; std::string cd_; int buff_id_ = 0; @@ -76,7 +79,7 @@ namespace mtb std::string effect_list_; public: - std::bitset<20> __flags__; + std::bitset<21> __flags__; }; }; diff --git a/server/gameserver/mtb/mtb.all.cc b/server/gameserver/mtb/mtb.all.cc index 3e2f6fb6..d50d0cd1 100644 --- a/server/gameserver/mtb/mtb.all.cc +++ b/server/gameserver/mtb/mtb.all.cc @@ -398,7 +398,7 @@ namespace mtb { a8::reflect::Class* meta_class = nullptr; if (!meta_class) { - meta_class = new a8::reflect::Class("SkillNumber", 20, 0); + meta_class = new a8::reflect::Class("SkillNumber", 21, 0); meta_class->SetSimpleField(0, "skill_id", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, skill_id_)); meta_class->SetSimpleField(1, "skill_type", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, skill_type_)); meta_class->SetSimpleField(2, "number", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, number_)); @@ -412,13 +412,14 @@ namespace mtb meta_class->SetSimpleField(10, "speed", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, speed_)); meta_class->SetSimpleField(11, "range", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, range_)); meta_class->SetSimpleField(12, "range2", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, range2_)); - meta_class->SetSimpleField(13, "time", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time_)); - meta_class->SetSimpleField(14, "cd", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, cd_)); - meta_class->SetSimpleField(15, "buff_id", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, buff_id_)); - meta_class->SetSimpleField(16, "buff_time", a8::reflect::ET_FLOAT, my_offsetof2(SkillNumber, buff_time_)); - meta_class->SetSimpleField(17, "probability", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, probability_)); - meta_class->SetSimpleField(18, "explosion_effect", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, explosion_effect_)); - meta_class->SetSimpleField(19, "effect_list", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, effect_list_)); + meta_class->SetSimpleField(13, "range3", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, range3_)); + meta_class->SetSimpleField(14, "time", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time_)); + meta_class->SetSimpleField(15, "cd", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, cd_)); + meta_class->SetSimpleField(16, "buff_id", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, buff_id_)); + meta_class->SetSimpleField(17, "buff_time", a8::reflect::ET_FLOAT, my_offsetof2(SkillNumber, buff_time_)); + meta_class->SetSimpleField(18, "probability", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, probability_)); + meta_class->SetSimpleField(19, "explosion_effect", a8::reflect::ET_INT32, my_offsetof2(SkillNumber, explosion_effect_)); + meta_class->SetSimpleField(20, "effect_list", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, effect_list_)); } return meta_class; } diff --git a/server/tools/protobuild/mt.proto b/server/tools/protobuild/mt.proto index a69e95cc..c2b82e22 100755 --- a/server/tools/protobuild/mt.proto +++ b/server/tools/protobuild/mt.proto @@ -324,6 +324,7 @@ message SkillNumber optional string speed = 11; optional string range = 12; optional string range2 = 13; + optional string range3 = 21; optional string time = 14; optional string cd = 15; optional int32 buff_id = 16;