From 2cbc78c1d1146811b9dcf59269dad07c6a7ab939 Mon Sep 17 00:00:00 2001 From: aozhiwei Date: Mon, 6 Nov 2023 19:13:25 +0800 Subject: [PATCH] 1 --- server/gameserver/app.cc | 1 + server/gameserver/buff/callfunc.cc | 1 + server/gameserver/bullet.cc | 3 ++- server/gameserver/explosion.cc | 3 ++- server/gameserver/explosion.h | 1 + server/gameserver/frag_mitask.cc | 1 + server/gameserver/frag_mitask.h | 1 + server/gameserver/frameevent.cc | 5 +++-- server/gameserver/frameevent.h | 2 +- server/gameserver/pbutils.cc | 1 + 10 files changed, 14 insertions(+), 5 deletions(-) diff --git a/server/gameserver/app.cc b/server/gameserver/app.cc index f6c9072a..5cb05b04 100644 --- a/server/gameserver/app.cc +++ b/server/gameserver/app.cc @@ -286,6 +286,7 @@ void App::AddSocketMsg(SocketFrom_e sockfrom, const char *msgbody, int bodylen) { + std::shared_ptr sp1(new int[10]()); MsgNode *p = (MsgNode*) malloc(sizeof(MsgNode)); memset(p, 0, sizeof(MsgNode)); p->sockfrom = sockfrom; diff --git a/server/gameserver/buff/callfunc.cc b/server/gameserver/buff/callfunc.cc index 898b1900..1132b623 100644 --- a/server/gameserver/buff/callfunc.cc +++ b/server/gameserver/buff/callfunc.cc @@ -436,6 +436,7 @@ void CallFuncBuff::ProcFlashMoveToPos() void CallFuncBuff::ProcLightCircle() { + return; if (!skill_meta) { return; } diff --git a/server/gameserver/bullet.cc b/server/gameserver/bullet.cc index cfc67cc2..59c7edb6 100644 --- a/server/gameserver/bullet.cc +++ b/server/gameserver/bullet.cc @@ -267,7 +267,8 @@ void Bullet::ProcBomb() room->frame_event.AddExplosionEx(sender, meta->id(), bomb_pos, - gun_meta->explosion_effect()); + gun_meta->explosion_effect(), + GetUniId()); OnHit(objects); AddGunBuff(); } diff --git a/server/gameserver/explosion.cc b/server/gameserver/explosion.cc index ea4d7654..28192f7b 100644 --- a/server/gameserver/explosion.cc +++ b/server/gameserver/explosion.cc @@ -169,7 +169,8 @@ void Explosion::InternalAttack() (sender_, 0, center_, - explosion_effect_); + explosion_effect_, + bullet_uniid); } if (explosion_damage_delay_ <= 0) { diff --git a/server/gameserver/explosion.h b/server/gameserver/explosion.h index 9f009ee9..6dbcc153 100644 --- a/server/gameserver/explosion.h +++ b/server/gameserver/explosion.h @@ -9,6 +9,7 @@ class Explosion : public std::enable_shared_from_this public: ~Explosion(); int exclude_uniid = 0; + int bullet_uniid = 0; Room* GetRoom() { return room_; }; CreatureWeakPtr GetSender() { return sender_; }; diff --git a/server/gameserver/frag_mitask.cc b/server/gameserver/frag_mitask.cc index b571d784..50c68baf 100644 --- a/server/gameserver/frag_mitask.cc +++ b/server/gameserver/frag_mitask.cc @@ -23,6 +23,7 @@ void FragMiTask::Done() if (force_target.Get()) { explosion->AddForceTarget(force_target); } + explosion->bullet_uniid = bullet_uniid; explosion->EnemyAndObstacleAttack(sender, center, explosion_range, diff --git a/server/gameserver/frag_mitask.h b/server/gameserver/frag_mitask.h index a99ae928..260c521e 100644 --- a/server/gameserver/frag_mitask.h +++ b/server/gameserver/frag_mitask.h @@ -15,6 +15,7 @@ class FragMiTask : public MicroTask const mt::Equip* meta = nullptr; float explosion_range = 1; float atk = 0; + int bullet_uniid = 0; void Done(); float GetAtk() { return atk; } diff --git a/server/gameserver/frameevent.cc b/server/gameserver/frameevent.cc index 8ceb52d2..e18b55f4 100644 --- a/server/gameserver/frameevent.cc +++ b/server/gameserver/frameevent.cc @@ -160,10 +160,10 @@ void FrameEvent::RemoveBullet(glm::vec3 pos, int bullet_uniid) void FrameEvent::AddExplosion(Bullet* bullet, int item_id, Position bomb_pos) { - AddExplosionEx(bullet->sender, item_id, bomb_pos, 0); + AddExplosionEx(bullet->sender, item_id, bomb_pos, 0, 0); } -void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position bomb_pos, int effect) +void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position bomb_pos, int effect, int bullet_uniid) { #if 0 if (!sender.Get()) { @@ -183,6 +183,7 @@ void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position b p.set_player_id(sender.Get()->GetUniId()); #endif p.set_effect(effect); + p.set_effect(bullet_uniid); } { std::set grid_list; diff --git a/server/gameserver/frameevent.h b/server/gameserver/frameevent.h index deb6cc30..d9d0099d 100644 --- a/server/gameserver/frameevent.h +++ b/server/gameserver/frameevent.h @@ -30,7 +30,7 @@ public: void RemoveBullet(glm::vec3 pos, int bullet_uniid); void AddExplosion(Bullet* bullet, int item_id, Position bomb_pos); void AddPlaySkill(CreatureWeakPtr& sender, int skill_id); - void AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position bomb_pos, int effect); + void AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position bomb_pos, int effect, int bullet_uniid); void AddBulletNumChg(CreatureWeakPtr& sender); void AddHpChg(CreatureWeakPtr& sender); void AddWeaponAmmoChg(CreatureWeakPtr& sender); diff --git a/server/gameserver/pbutils.cc b/server/gameserver/pbutils.cc index c1e89a76..0a6bc8c9 100644 --- a/server/gameserver/pbutils.cc +++ b/server/gameserver/pbutils.cc @@ -1299,6 +1299,7 @@ void Human::ProcThrowDmg(int throw_uniid) task->gun_meta = equip_meta; task->meta = equip_meta; task->atk = equip_meta->_atk; + task->bullet_uniid = context->throw_uniid(); task->explosion_range = equip_meta->explosion_range(); task->Initialize(); int delay_time = equip_meta->missiles_time();;