From ee3faa6f610041fe2a9bf15aff1efc65507a61fa Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Wed, 10 Jan 2024 15:55:32 +0800 Subject: [PATCH] 1 --- server/gameserver/buff/callfunc.cc | 8 ++++++-- server/gameserver/buff/dive.cc | 4 +++- server/gameserver/car.cc | 10 +++++++--- server/gameserver/car.h | 4 +++- server/gameserver/commands.cc | 8 ++++++-- server/gameserver/creature.cc | 4 +++- server/gameserver/creature.h | 4 +++- server/gameserver/hero.cc | 12 +++++++++--- server/gameserver/hero.h | 4 +++- server/gameserver/human.cc | 20 +++++++++++++++----- server/gameserver/human.h | 4 +++- server/gameserver/player.cc | 4 +++- server/gameserver/roomobstacle.cc | 4 +++- 13 files changed, 67 insertions(+), 23 deletions(-) diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 4b35307e..fef7de05 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -58,7 +58,9 @@ void CallFuncBuff::Activate() VP_Buff, GetCaster().Get()->GetUniId(), GetCaster().Get()->GetName(), - dmg_out + dmg_out, + 0, + 0 ); owner->GetTrigger()->Attacked(GetCaster().Get()); } @@ -219,7 +221,9 @@ void CallFuncBuff::Activate() VP_Buff, GetCaster().Get()->GetUniId(), GetCaster().Get()->GetName(), - dmg_out + dmg_out, + 0, + 0 ); owner->GetTrigger()->Attacked(GetCaster().Get()); } diff --git a/server/gameserver/buff/dive.cc b/server/gameserver/buff/dive.cc index d3de081a..53c7f8c9 100644 --- a/server/gameserver/buff/dive.cc +++ b/server/gameserver/buff/dive.cc @@ -38,7 +38,9 @@ void DiveBuff::Activate() 0, 0, "water", - dmg_out); + dmg_out, + 0, + 0); } }, &xtimer_attacher diff --git a/server/gameserver/car.cc b/server/gameserver/car.cc index a52184cd..62cdcafc 100644 --- a/server/gameserver/car.cc +++ b/server/gameserver/car.cc @@ -309,7 +309,9 @@ void Car::OnBulletHit(IBullet* bullet) bullet->GetGunMeta()->id(), bullet->GetSender().Get()->GetUniId(), bullet->GetSender().Get()->GetName(), - dmg_out); + dmg_out, + 0, + 0); if (bullet->GetSender().Get() && !bullet->GetSender().Get()->dead && dmg_out > 0.0f && @@ -377,12 +379,14 @@ void Car::OnExplosionHit(Explosion* e) e->GetExplosionEffect(), real_killer_id, real_killer_name, - dmg_out); + dmg_out, + 0, + 0); } void Car::DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) + float& real_dmg_out, int dmg_type, int dmg_bp) { real_dmg_out = 0.0f; if (dec_hp < 0.001f) { diff --git a/server/gameserver/car.h b/server/gameserver/car.h index 6dcd8219..b2eb14f6 100644 --- a/server/gameserver/car.h +++ b/server/gameserver/car.h @@ -43,7 +43,9 @@ class Car : public Creature virtual void DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) override; + float& real_dmg_out, + int dmg_type, + int dmg_bp) override; virtual void SendDebugMsg(const std::string& debug_msg) override; virtual void SetAttackDir(const glm::vec3& attack_dir) override; virtual void DropItems(Obstacle* obstacle) override; diff --git a/server/gameserver/commands.cc b/server/gameserver/commands.cc index 773d4cce..b28d20e3 100644 --- a/server/gameserver/commands.cc +++ b/server/gameserver/commands.cc @@ -78,7 +78,9 @@ void Player::_CMExecCommand(f8::MsgHdr* hdr, const cs::CMExecCommand& msg) DecHP(dmg, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), VW_Gas, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), - dmg_out); + dmg_out, + 0, + 0); } else if (cmd == "stop_world") { room->stop_world = true; } else if (cmd == "start_world") { @@ -121,7 +123,9 @@ void Player::_CMExecCommand(f8::MsgHdr* hdr, const cs::CMExecCommand& msg) DecHP(dmg, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), VW_Gas, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), - dmg_out); + dmg_out, + 0, + 0); } } else if (cmd == "add_shield") { if (cmds.size() > 1) { diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index e8de4d6f..b81b1e88 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -1382,7 +1382,9 @@ void Creature::UpdatePoisoning() DecHP(dmg, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), VW_Gas, VP_Gas, TEXT("battle_server_killer_gas", "毒圈"), - dmg_out); + dmg_out, + 0, + 0); if (IsPlayer()) { int eliminate_time = std::min(30.0f, GetHP() / std::max(1.0f, dmg_out)); room->frame_event.AddPropChg(GetWeakPtrRef(), diff --git a/server/gameserver/creature.h b/server/gameserver/creature.h index ed659a1b..ae3f47be 100644 --- a/server/gameserver/creature.h +++ b/server/gameserver/creature.h @@ -262,7 +262,9 @@ class Creature : public MoveableEntity virtual void DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) {}; + float& real_dmg_out, + int dmg_type, + int dmg_bp) {}; void AddHp(float hp); void SetHP(float hp); void SetMaxHP(float max_hp); diff --git a/server/gameserver/hero.cc b/server/gameserver/hero.cc index 114ce20f..dcbcd86d 100644 --- a/server/gameserver/hero.cc +++ b/server/gameserver/hero.cc @@ -163,7 +163,9 @@ void Hero::OnExplosionHit(Explosion* e) e->GetExplosionEffect(), real_killer_id, real_killer_name, - dmg_out); + dmg_out, + 0, + 0); } void Hero::OnBulletHit(IBullet* bullet) @@ -195,7 +197,9 @@ void Hero::OnBulletHit(IBullet* bullet) bullet->GetGunMeta()->id(), bullet->GetSender().Get()->GetUniId(), bullet->GetSender().Get()->GetName(), - dmg_out); + dmg_out, + 0, + 0); if (bullet->GetSender().Get() && !bullet->GetSender().Get()->dead && dmg_out > 0.0f && @@ -265,7 +269,9 @@ void Hero::DetachFromMaster() void Hero::DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) + float& real_dmg_out, + int dmg_type, + int dmg_bp) { real_dmg_out = 0.0f; if (!room->BattleStarted()) { diff --git a/server/gameserver/hero.h b/server/gameserver/hero.h index b34bb0e6..6e5cbc3f 100644 --- a/server/gameserver/hero.h +++ b/server/gameserver/hero.h @@ -28,7 +28,9 @@ public: virtual void DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) override; + float& real_dmg_out, + int dmg_type, + int dmg_bp) override; virtual std::string GetName() override; virtual void DropItems(Obstacle* obstacle) override; virtual const mt::Hero* GetHeroMeta() override { return meta; }; diff --git a/server/gameserver/human.cc b/server/gameserver/human.cc index 852e6120..56883e7b 100644 --- a/server/gameserver/human.cc +++ b/server/gameserver/human.cc @@ -217,7 +217,9 @@ void Human::BeKill(int killer_id, const std::string& killer_name, int weapon_id, void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) + float& real_dmg_out, + int dmg_type, + int dmg_bp) { real_dmg_out = 0.0f; if (!room->BattleStarted()) { @@ -346,7 +348,9 @@ void Human::DecHP(float dec_hp, int killer_id, const std::string killer_name, in std::min(1.0f, (float)mt::Param::GetFloatParam("downed_dec_hp")); DecHP(dec_hp, info->killer_id, info->killer_name, info->weapon_id, info->real_killer_id, info->real_killer_name, - dmg_out); + dmg_out, + 0, + 0); } }, &xtimer_attacher); @@ -2350,7 +2354,9 @@ void Human::OnBulletHit(IBullet* bullet) bullet->GetGunMeta()->id(), bullet->GetPassenger().Get()->GetUniId(), bullet->GetPassenger().Get()->GetName(), - dmg_out); + dmg_out, + 0, + 0); bullet->GetSender().Get()->GetTrigger()->DmgOut(this, dmg_out); if (bullet->GetSender().Get() && !bullet->GetSender().Get()->dead && @@ -2396,7 +2402,9 @@ void Human::OnBulletHit(IBullet* bullet) bullet->GetGunMeta()->id(), bullet->GetSender().Get()->GetUniId(), bullet->GetSender().Get()->GetName(), - dmg_out); + dmg_out, + 0, + 0); #if 0 if (bullet->GetSender().Get()->IsEntityType(ET_Hero)) { a8::XPrintf("被炮塔打出血 %f %f %f\n", {GetHP(), GetMaxHP(), dmg_out}); @@ -2493,7 +2501,9 @@ void Human::OnExplosionHit(Explosion* e) e->GetExplosionEffect(), real_killer_id, real_killer_name, - dmg_out); + dmg_out, + 0, + 0); } } diff --git a/server/gameserver/human.h b/server/gameserver/human.h index 1883e703..8104ac05 100644 --- a/server/gameserver/human.h +++ b/server/gameserver/human.h @@ -169,7 +169,9 @@ class Human : public Creature virtual void DecHP(float dec_hp, int killer_id, const std::string killer_name, int weapon_id, int real_killer_id, const std::string real_killer_name, - float& real_dmg_out) override; + float& real_dmg_out, + int dmg_type, + int dmg_bp) override; virtual void AddToNewObjects(Entity* entity) override; virtual void AddToPartObjects(Entity* entity) override; virtual void AddToImageObjects(Creature* c) override; diff --git a/server/gameserver/player.cc b/server/gameserver/player.cc index 7c11c0e1..df812307 100644 --- a/server/gameserver/player.cc +++ b/server/gameserver/player.cc @@ -1806,7 +1806,9 @@ void Player::_CMReportSpecShotHitPos(f8::MsgHdr* hdr, const cs::CMReportSpecShot if (target->GetPos().Distance2D2(pos) < 200) { float real_dmg_out = 0.0f; target->DecHP(100, GetUniId(), GetName(), VW_Weapon, - GetUniId(), GetName(), real_dmg_out); + GetUniId(), GetName(), real_dmg_out, + 0, + 0); } } } diff --git a/server/gameserver/roomobstacle.cc b/server/gameserver/roomobstacle.cc index f6d344ec..1245a311 100644 --- a/server/gameserver/roomobstacle.cc +++ b/server/gameserver/roomobstacle.cc @@ -868,7 +868,9 @@ void RoomObstacle::ActiveMedicalStation() VP_Buff, master.Get()->GetUniId(), master.Get()->GetName(), - dmg_out); + dmg_out, + 0, + 0); if (meta->_int_param1) { c->TryAddBuff(master.Get(),