diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 967e9fde..06b23f42 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -869,17 +869,19 @@ void Bullet::ProcFlyHook(Entity* target) room->frame_event.AddPropChg(c->GetWeakPtrRef(), kPropBeHook, 0, sender.Get()->GetUniId()); std::vector buff_uniids; for (int buff_id : gun_meta->hit_buff_list) { - int buff_uniid = c->TryAddBuff(c, gun_meta->hit_buff_list[0]); + int buff_uniid = c->TryAddBuff(c, buff_id); if (buff_uniid) { buff_uniids.push_back(buff_uniid); } } + int ok_buff_id = gun_meta->int_param1; c->AutoNavigation(born_pos, gun_meta->i->bullet_speed() * 2, - [buff_uniids] (Creature* c) + [buff_uniids, ok_buff_id] (Creature* c) { for (int buff_uniid : buff_uniids) { c->RemoveBuffByUniId(buff_uniid); } + int buff_uniid = c->TryAddBuff(c, ok_buff_id); } ); } else { diff --git a/server/gameserver/human.h b/server/gameserver/human.h index d7ee4995..3484084a 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -108,6 +108,8 @@ struct PlayerStats OverReward over_reward; + bool is_run_away = false; + int statemented = false; double ranked_topx = 0; double kills_topx = 0;