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,
int bodylen)
{
std::shared_ptr<int[]> sp1(new int[10]());
MsgNode *p = (MsgNode*) malloc(sizeof(MsgNode));
memset(p, 0, sizeof(MsgNode));
p->sockfrom = sockfrom;

View File

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

View File

@ -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();
}

View File

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

View File

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

View File

@ -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,

View File

@ -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; }

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)
{
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<GridCell*> grid_list;

View File

@ -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);

View File

@ -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();;