This commit is contained in:
aozhiwei 2023-11-06 19:13:25 +08:00
parent d28ebf1009
commit 2cbc78c1d1
10 changed files with 14 additions and 5 deletions

View File

@ -286,6 +286,7 @@ void App::AddSocketMsg(SocketFrom_e sockfrom,
const char *msgbody, const char *msgbody,
int bodylen) int bodylen)
{ {
std::shared_ptr<int[]> sp1(new int[10]());
MsgNode *p = (MsgNode*) malloc(sizeof(MsgNode)); MsgNode *p = (MsgNode*) malloc(sizeof(MsgNode));
memset(p, 0, sizeof(MsgNode)); memset(p, 0, sizeof(MsgNode));
p->sockfrom = sockfrom; p->sockfrom = sockfrom;

View File

@ -436,6 +436,7 @@ void CallFuncBuff::ProcFlashMoveToPos()
void CallFuncBuff::ProcLightCircle() void CallFuncBuff::ProcLightCircle()
{ {
return;
if (!skill_meta) { if (!skill_meta) {
return; return;
} }

View File

@ -267,7 +267,8 @@ void Bullet::ProcBomb()
room->frame_event.AddExplosionEx(sender, room->frame_event.AddExplosionEx(sender,
meta->id(), meta->id(),
bomb_pos, bomb_pos,
gun_meta->explosion_effect()); gun_meta->explosion_effect(),
GetUniId());
OnHit(objects); OnHit(objects);
AddGunBuff(); AddGunBuff();
} }

View File

@ -169,7 +169,8 @@ void Explosion::InternalAttack()
(sender_, (sender_,
0, 0,
center_, center_,
explosion_effect_); explosion_effect_,
bullet_uniid);
} }
if (explosion_damage_delay_ <= 0) { if (explosion_damage_delay_ <= 0) {

View File

@ -9,6 +9,7 @@ class Explosion : public std::enable_shared_from_this<Explosion>
public: public:
~Explosion(); ~Explosion();
int exclude_uniid = 0; int exclude_uniid = 0;
int bullet_uniid = 0;
Room* GetRoom() { return room_; }; Room* GetRoom() { return room_; };
CreatureWeakPtr GetSender() { return sender_; }; CreatureWeakPtr GetSender() { return sender_; };

View File

@ -23,6 +23,7 @@ void FragMiTask::Done()
if (force_target.Get()) { if (force_target.Get()) {
explosion->AddForceTarget(force_target); explosion->AddForceTarget(force_target);
} }
explosion->bullet_uniid = bullet_uniid;
explosion->EnemyAndObstacleAttack(sender, explosion->EnemyAndObstacleAttack(sender,
center, center,
explosion_range, explosion_range,

View File

@ -15,6 +15,7 @@ class FragMiTask : public MicroTask
const mt::Equip* meta = nullptr; const mt::Equip* meta = nullptr;
float explosion_range = 1; float explosion_range = 1;
float atk = 0; float atk = 0;
int bullet_uniid = 0;
void Done(); void Done();
float GetAtk() { return atk; } float GetAtk() { return atk; }

View File

@ -160,10 +160,10 @@ void FrameEvent::RemoveBullet(glm::vec3 pos, int bullet_uniid)
void FrameEvent::AddExplosion(Bullet* bullet, int item_id, Position bomb_pos) 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 0
if (!sender.Get()) { if (!sender.Get()) {
@ -183,6 +183,7 @@ void FrameEvent::AddExplosionEx(CreatureWeakPtr& sender, int item_id, Position b
p.set_player_id(sender.Get()->GetUniId()); p.set_player_id(sender.Get()->GetUniId());
#endif #endif
p.set_effect(effect); p.set_effect(effect);
p.set_effect(bullet_uniid);
} }
{ {
std::set<GridCell*> grid_list; std::set<GridCell*> grid_list;

View File

@ -30,7 +30,7 @@ public:
void RemoveBullet(glm::vec3 pos, int bullet_uniid); void RemoveBullet(glm::vec3 pos, int bullet_uniid);
void AddExplosion(Bullet* bullet, int item_id, Position bomb_pos); void AddExplosion(Bullet* bullet, int item_id, Position bomb_pos);
void AddPlaySkill(CreatureWeakPtr& sender, int skill_id); 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 AddBulletNumChg(CreatureWeakPtr& sender);
void AddHpChg(CreatureWeakPtr& sender); void AddHpChg(CreatureWeakPtr& sender);
void AddWeaponAmmoChg(CreatureWeakPtr& sender); void AddWeaponAmmoChg(CreatureWeakPtr& sender);

View File

@ -1299,6 +1299,7 @@ void Human::ProcThrowDmg(int throw_uniid)
task->gun_meta = equip_meta; task->gun_meta = equip_meta;
task->meta = equip_meta; task->meta = equip_meta;
task->atk = equip_meta->_atk; task->atk = equip_meta->_atk;
task->bullet_uniid = context->throw_uniid();
task->explosion_range = equip_meta->explosion_range(); task->explosion_range = equip_meta->explosion_range();
task->Initialize(); task->Initialize();
int delay_time = equip_meta->missiles_time();; int delay_time = equip_meta->missiles_time();;