From 8dcc7f6bc5cd4aaeb0f6d1289547be491d8f0c87 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Tue, 21 Feb 2023 15:15:30 +0800 Subject: [PATCH] 1 --- server/gameserver/mt/GraspBuff.cc | 52 ++++++++++++++++++++++++++++++- server/gameserver/mt/GraspBuff.h | 3 ++ 2 files changed, 54 insertions(+), 1 deletion(-) diff --git a/server/gameserver/mt/GraspBuff.cc b/server/gameserver/mt/GraspBuff.cc index b8b96ce7..8ab06d3f 100644 --- a/server/gameserver/mt/GraspBuff.cc +++ b/server/gameserver/mt/GraspBuff.cc @@ -9,7 +9,57 @@ namespace mt void GraspBuff::Init1() { - + { + std::vector strings; + a8::Split(graspbuff_trigger(), strings, '|'); + if (strings.size() > 2) { + abort(); + } + if (strings.empty()) { + abort(); + } + std::vector strings2; + a8::Split(strings[0], strings2, ','); + int type = a8::XValue(strings2[0]); + switch ((GraspBuffTrigger_e)type) { + case GraspBuffTrigger_e::kHit: + { + _trigger_type = type; + } + break; + case GraspBuffTrigger_e::kKill: + { + _trigger_type = type; + } + break; + case GraspBuffTrigger_e::kTakeOn: + { + _trigger_type = type; + } + break; + case GraspBuffTrigger_e::kCond: + { + _trigger_type = type; + _trigger_subtype = a8::XValue(strings2.at(1)); + if (_trigger_subtype != (int)GraspBuffTriggerCond_e::kImprint) { + abort(); + } + _trigger_cond.push_back(a8::XValue(strings2.at(2))); + _trigger_cond.push_back(a8::XValue(strings.at(1))); + } + break; + case GraspBuffTrigger_e::kHitAndEnd: + { + _trigger_type = type; + } + break; + default: + { + abort(); + } + break; + } + } } void GraspBuff::Init2() diff --git a/server/gameserver/mt/GraspBuff.h b/server/gameserver/mt/GraspBuff.h index 4c201db5..9c468b36 100644 --- a/server/gameserver/mt/GraspBuff.h +++ b/server/gameserver/mt/GraspBuff.h @@ -14,6 +14,9 @@ namespace mt void Init1(); void Init2(); + int _trigger_type = 0; + int _trigger_subtype = 0; + std::vector _trigger_cond; }; }