From cbc5256960c5b7c5474b5e9ee8e47c6b5e80ef61 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Fri, 20 Aug 2021 20:37:42 +0800 Subject: [PATCH 1/3] 1 --- server/gameserver/player.cc | 2 ++ 1 file changed, 2 insertions(+) diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 03b7f9e..8391921 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1252,7 +1252,9 @@ void Player::_CMExecCommand(f8::MsgHdr& hdr, const cs::CMExecCommand& msg) } else if (cmd == "bufflist") { SendDebugMsg(DebugOutBuffList()); } else if (cmd == "set_inactive_time" && cmds.size() >= 2) { + #if DEBUG App::Instance()->debug_params[1] = a8::XValue(cmds[1]); + #endif } else if (cmd == "reset_skill" && cmds.size() >= 2) { int skill_id = a8::XValue(cmds[1]); Skill* skill = GetSkill(skill_id); From 1169bc8bb9cff6acb65de97705f5980856445e76 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 23 Aug 2021 11:00:29 +0800 Subject: [PATCH 2/3] 1 --- server/gameserver/trigger.cc | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/server/gameserver/trigger.cc b/server/gameserver/trigger.cc index 09bbf93..d0c2db4 100644 --- a/server/gameserver/trigger.cc +++ b/server/gameserver/trigger.cc @@ -6,6 +6,7 @@ #include "creature.h" #include "metamgr.h" #include "skill.h" +#include "room.h" void Trigger::Init() { @@ -192,6 +193,9 @@ void Trigger::TraverseCondBuffs(int cond, std::function fun if (!IsValidCondBuff(cond)) { abort(); } + if (!owner_->room->BattleStarted()) { + return; + } list_head* pos = nullptr; list_head* next = nullptr; @@ -218,6 +222,10 @@ void Trigger::TraverseCondBuffs(int cond, std::function fun void Trigger::TriggeCondBuffAll(int cond) { + if (!owner_->room->BattleStarted()) { + return; + } + std::shared_ptr old_context_ability = owner_->context_ability; a8::Vec2 old_context_dir = owner_->context_dir; a8::Vec2 old_context_pos = owner_->context_pos; From 45d64b6ced0497a4342de95ca4136cf5673a9618 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 23 Aug 2021 13:05:41 +0800 Subject: [PATCH 3/3] 1 --- server/gameserver/bullet.cc | 2 +- server/gameserver/creature.cc | 4 +++- server/gameserver/explosion.cc | 2 +- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index c2084f7..3d506d6 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -592,5 +592,5 @@ void Bullet::AddGunBuff() bool Bullet::IsPreBattleBullet() { - return create_frameno_ <= room->GetBattleStartFrameNo(); + return create_frameno_ <= room->GetBattleStartFrameNo() || room->GetBattleStartFrameNo() == 0; } diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index a25b5bb..3f62d38 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -2764,7 +2764,9 @@ void Creature::OnBattleStart(Room* room) del_buffs.reserve(buff_list_.size()); for (auto& buff : buff_list_) { if (!buff.meta->i->post_battle_valid()) { - del_buffs.push_back(buff.buff_uniid); + if (!buff.skill_meta || buff.skill_meta->i->skill_type() != kPassiveSkill) { + del_buffs.push_back(buff.buff_uniid); + } } } for (auto itr = del_buffs.rbegin(); itr != del_buffs.rend(); ++itr) { diff --git a/server/gameserver/explosion.cc b/server/gameserver/explosion.cc index ae259d0..9693ba3 100644 --- a/server/gameserver/explosion.cc +++ b/server/gameserver/explosion.cc @@ -127,5 +127,5 @@ void Explosion::InternalAttack() bool Explosion::IsPreBattleExplosion() { - return create_frameno_ <= room_->GetBattleStartFrameNo(); + return create_frameno_ <= room_->GetBattleStartFrameNo() || room_->GetBattleStartFrameNo() == 0; }