diff --git a/server/gameserver/mt/SkillNumber.cc b/server/gameserver/mt/SkillNumber.cc index 4e0439e2..794cc5cb 100644 --- a/server/gameserver/mt/SkillNumber.cc +++ b/server/gameserver/mt/SkillNumber.cc @@ -30,7 +30,8 @@ A8_DECLARE_CLASS_ENUM(SkillNumberLispField_e, int, time2, time3, time4, - time5 + time5, + time6 ); namespace mt @@ -160,6 +161,14 @@ namespace mt _float_time5 = a8::XValue(tmp_str).GetDouble() / 100; } + _int_time6 = a8::XValue(time6()); + _float_time6 = a8::XValue(time6()).GetDouble(); + if (time6().find('%') != std::string::npos) { + std::string tmp_str = time6(); + a8::ReplaceString(tmp_str, "%", ""); + _float_time6 = a8::XValue(tmp_str).GetDouble() / 100; + } + _int_cd = a8::XValue(cd()); _float_cd = a8::XValue(cd()).GetDouble(); if (cd().find('%') != std::string::npos) { @@ -300,6 +309,11 @@ namespace mt return _float_time5; } break; + case SkillNumberLispField_e::time6: + { + return _float_time6; + } + break; default: { abort(); @@ -352,6 +366,8 @@ namespace mt return (int)SkillNumberLispField_e::time4; } else if (name == "${skillNumber.time5}") { return (int)SkillNumberLispField_e::time5; + } else if (name == "${skillNumber.time6}") { + return (int)SkillNumberLispField_e::time6; } return -1; } diff --git a/server/gameserver/mt/SkillNumber.h b/server/gameserver/mt/SkillNumber.h index e9539678..aef7e7ed 100644 --- a/server/gameserver/mt/SkillNumber.h +++ b/server/gameserver/mt/SkillNumber.h @@ -56,6 +56,9 @@ namespace mt int _int_time5 = 0; float _float_time5 = 0; + int _int_time6 = 0; + float _float_time6 = 0; + int _int_cd = 0; float _float_cd = 0; diff --git a/server/gameserver/mtb/SkillNumber.h b/server/gameserver/mtb/SkillNumber.h index b51c3526..1dc285f3 100644 --- a/server/gameserver/mtb/SkillNumber.h +++ b/server/gameserver/mtb/SkillNumber.h @@ -38,6 +38,7 @@ namespace mtb const std::string time3() const { return time3_; }; const std::string time4() const { return time4_; }; const std::string time5() const { return time5_; }; + const std::string time6() const { return time6_; }; bool has_skill_id() const { return __flags__.test(0);}; bool has_skill_type() const { return __flags__.test(1);}; @@ -67,6 +68,7 @@ namespace mtb bool has_time3() const { return __flags__.test(25);}; bool has_time4() const { return __flags__.test(26);}; bool has_time5() const { return __flags__.test(27);}; + bool has_time6() const { return __flags__.test(28);}; protected: @@ -98,9 +100,10 @@ namespace mtb std::string time3_; std::string time4_; std::string time5_; + std::string time6_; public: - std::bitset<28> __flags__; + std::bitset<29> __flags__; }; }; diff --git a/server/gameserver/mtb/mtb.all.cc b/server/gameserver/mtb/mtb.all.cc index 0aee0aac..1ee43a53 100644 --- a/server/gameserver/mtb/mtb.all.cc +++ b/server/gameserver/mtb/mtb.all.cc @@ -420,7 +420,7 @@ namespace mtb { a8::reflect::Class* meta_class = nullptr; if (!meta_class) { - meta_class = new a8::reflect::Class("SkillNumber", 28, 0); + meta_class = new a8::reflect::Class("SkillNumber", 29, 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_FLOAT, my_offsetof2(SkillNumber, number_)); @@ -449,6 +449,7 @@ namespace mtb meta_class->SetSimpleField(25, "time3", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time3_)); meta_class->SetSimpleField(26, "time4", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time4_)); meta_class->SetSimpleField(27, "time5", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time5_)); + meta_class->SetSimpleField(28, "time5", a8::reflect::ET_STRING, my_offsetof2(SkillNumber, time6_)); } return meta_class; } diff --git a/server/tools/protobuild/mt.proto b/server/tools/protobuild/mt.proto index 48fdd6bc..797db751 100755 --- a/server/tools/protobuild/mt.proto +++ b/server/tools/protobuild/mt.proto @@ -370,6 +370,7 @@ message SkillNumber optional string time3 = 40; optional string time4 = 41; optional string time5 = 42; + optional string time6 = 43; } message NpcStandard