1
This commit is contained in:
parent
3242244c2c
commit
7cd76949bf
@ -157,8 +157,9 @@ enum BuffEffectType_e
|
||||
kBET_Hide = 32, //隐身
|
||||
kBET_CrazyMode = 33, //暴走模式
|
||||
kBET_ShockWave = 34, //冲击波
|
||||
//kBET_Sprint = 35, //冲刺
|
||||
kBET_Sprint = 35, //冲刺
|
||||
kBET_SummonObstacle = 36, //召唤物件
|
||||
kBET_FlashMove = 37, //瞬间移动
|
||||
|
||||
kBET_ThroughWall = 50, //穿墙
|
||||
kBET_Driver = 51, //驾驶中
|
||||
@ -368,6 +369,12 @@ enum GameChannel_e
|
||||
kTouTiaoChannelId = 6006
|
||||
};
|
||||
|
||||
enum PostBuffAction_e
|
||||
{
|
||||
kRemoveBuffByIdAction = 1,
|
||||
kRemoveBuffByEffectAction = 2
|
||||
};
|
||||
|
||||
const char* const PROJ_NAME_FMT = "game%d_gameserver";
|
||||
const char* const PROJ_ROOT_FMT = "/data/logs/%s";
|
||||
|
||||
|
@ -665,13 +665,11 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff)
|
||||
if (skill) {
|
||||
MetaData::SkillPhase* phase = GetCurrSkillPhase();
|
||||
if (phase && phase->time_offset >= skill->GetPassedTime()) {
|
||||
a8::Vec2 old_move_dir = move_dir;
|
||||
if (HasBuffEffect(kBET_Car)) {
|
||||
_UpdateMove(phase->param1.GetDouble() * 1.5);
|
||||
} else {
|
||||
_UpdateMove(phase->param1);
|
||||
}
|
||||
move_dir = old_move_dir;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -853,6 +851,16 @@ void Creature::ProcBuffEffect(Creature* caster, Buff* buff)
|
||||
SummonObstacle(buff->meta->param1, GetPos());
|
||||
}
|
||||
break;
|
||||
case kBET_Sprint:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
case kBET_FlashMove:
|
||||
{
|
||||
|
||||
}
|
||||
break;
|
||||
default:
|
||||
{
|
||||
}
|
||||
|
@ -521,6 +521,39 @@ namespace MetaData
|
||||
immune_buffeffect.insert(a8::XValue(str));
|
||||
}
|
||||
}
|
||||
{
|
||||
std::vector<std::string> strings;
|
||||
a8::Split(i->buff_param2(), strings, ':');
|
||||
for (auto& str : strings) {
|
||||
param2_int_list.push_back(a8::XValue(str).GetInt());
|
||||
}
|
||||
}
|
||||
{
|
||||
std::vector<std::string> strings;
|
||||
a8::Split(i->post_remove_action(), strings, '|');
|
||||
for (auto& str : strings) {
|
||||
std::vector<std::string> strings2;
|
||||
a8::Split(str, strings2, ':');
|
||||
if (strings2.size() > 2) {
|
||||
std::vector<std::string> strings3;
|
||||
a8::Split(strings2[1], strings3, ';');
|
||||
if (strings2[0] == "remove_buff_by_id" ||
|
||||
strings2[0] == "remove_buff_by_effect") {
|
||||
auto& action = a8::FastAppend(post_remove_action);
|
||||
if (strings2[0] == "remove_buff_by_id") {
|
||||
std::get<0>(action) = kRemoveBuffByIdAction;
|
||||
} else if (strings2[0] == "remove_buff_by_effect") {
|
||||
std::get<0>(action) = kRemoveBuffByEffectAction;
|
||||
}
|
||||
for (auto& str3 : strings3) {
|
||||
if (!str3.empty()) {
|
||||
std::get<1>(action).push_back(a8::XValue(str3));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
bool Buff::EffectCanStack()
|
||||
|
@ -170,6 +170,7 @@ namespace MetaData
|
||||
float param3 = 0.0f;
|
||||
float param4 = 0.0f;
|
||||
std::vector<int> param2_int_list;
|
||||
std::vector<std::tuple<int, std::vector<int>>> post_remove_action;
|
||||
std::set<int> immune_buffeffect;
|
||||
};
|
||||
|
||||
|
@ -205,6 +205,7 @@ message Buff
|
||||
required float duration_time = 10;
|
||||
optional float buff_valueup = 11;
|
||||
required string immune_buffeffect_list = 12;
|
||||
optional string post_remove_action = 13;
|
||||
}
|
||||
|
||||
message Drop
|
||||
|
Loading…
x
Reference in New Issue
Block a user