From b92d5ccd8c034f58209a5fd16983b5d306a4e110 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Sun, 9 Oct 2022 14:27:00 +0800 Subject: [PATCH] 1 --- server/gameserver/battledatacontext.cc | 3 +++ server/gameserver/bullet.cc | 19 +++++++++++++++++++ server/gameserver/bullet.h | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/server/gameserver/battledatacontext.cc b/server/gameserver/battledatacontext.cc index 9c3a34ca..14682e0a 100644 --- a/server/gameserver/battledatacontext.cc +++ b/server/gameserver/battledatacontext.cc @@ -497,6 +497,9 @@ float BattleDataContext::CalcDmg(Creature* target, Bullet* bullet) float crit = IsCrit(bullet) ? GetCritRate(bullet) : 0; float dodge = IsDodge(bullet) ? GetDodgeRuduce(bullet) : 0; float finaly_dmg = normal_dmg * (1.0f + crit + dodge); +#if 1 + finaly_dmg *= (1 + bullet->strengthen_wall); +#endif #ifdef DEBUG if (owner_.Get()->IsPlayer()) { std::string data = a8::Format diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index 1621e363..42a4cb75 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -798,7 +798,26 @@ void Bullet::OnKillTarget(Entity* target) void Bullet::OnStrengthen(Obstacle* ob) { + if (ob->IsRoomObstacle()) { + RoomObstacle* room_ob = ob->AsRoomObstacle(); + if (room_ob->skill_meta) { + MetaData::Skill* skill_meta = room_ob->skill_meta; + if (skill_meta && skill_meta->number_meta) { + switch (skill_meta->GetMagicId()) { + case MAGIC_WLFB: + { + strengthen_wall = skill_meta->number_meta->float_ratio2; + } + break; + default: + { + } + break; + } + } + } + } } void Bullet::ClearBuffList() diff --git a/server/gameserver/bullet.h b/server/gameserver/bullet.h index 6ad10db8..146bc017 100644 --- a/server/gameserver/bullet.h +++ b/server/gameserver/bullet.h @@ -33,7 +33,7 @@ class Bullet : public MoveableEntity float fly_distance = 0.0f; MovementComponent* movement = nullptr; int trace_target_id = 0; - int strengthen_wall = 0; + float strengthen_wall = 0; int hand = 0; std::weak_ptr keep_shot_animi_timer_ptr;