From d47fdbb9fb6337739607a2ba6d0c104304f525b1 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Thu, 26 Mar 2020 16:02:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E6=97=A0=E6=95=8C=E7=8A=B6?= =?UTF-8?q?=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/gameserver/bullet.cc | 3 +++ server/gameserver/constant.h | 1 + server/gameserver/player.cc | 8 ++++++++ 3 files changed, 12 insertions(+) diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index dbcc10f..575c0e9 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -51,6 +51,9 @@ void Bullet::OnHit(std::set& objects) return; } Human* hum = (Human*)target; + if (hum->HasBuffEffect(kBET_Invincible)) { + continue; + } #if 1 if (!hum->dead && (IsBomb() || player->team_id != hum->team_id)) { #else diff --git a/server/gameserver/constant.h b/server/gameserver/constant.h index 60d3fda..eb075d9 100755 --- a/server/gameserver/constant.h +++ b/server/gameserver/constant.h @@ -111,6 +111,7 @@ enum BuffEffectType_e kBET_ChgAttr = 1, //改变属性 kBET_Jump = 2, //翻滚 kBET_Car = 3, //骑乘 + kBET_Invincible = 4, //无敌 kBET_OnceChgAttr = 11, //一次性buff kBET_End }; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index e0d1e09..ab7db5b 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -15,6 +15,8 @@ #include "collider.h" #include "typeconvert.h" +const int kREVIVE_BUFF_ID = 1005; + Player::Player():Human() { entity_type = ET_Player; @@ -1146,6 +1148,12 @@ void Player::_CMRevive(f8::MsgHdr& hdr, const cs::CMRevive& msg) ResetTankSkin(); SyncAroundPlayers(__FILE__, __LINE__, __func__); FreeReviveTimer(); + { + MetaData::Buff* buff_meta = MetaMgr::Instance()->GetBuff(kREVIVE_BUFF_ID); + if (buff_meta) { + AddBuff(buff_meta, 1); + } + } } }