This commit is contained in:
aozhiwei 2023-04-02 12:02:15 +08:00
parent f2ff2b65af
commit 4b1ec48701
5 changed files with 16 additions and 17 deletions

View File

@ -323,7 +323,8 @@ void Buff::ProcSputteringFunc(Bullet* bullet)
bullet_dir, bullet_dir,
0, 0,
0, 0,
0); 0,
nullptr);
VirtualBullet* p = new VirtualBullet(); VirtualBullet* p = new VirtualBullet();
p->bullet_uniid = bullet_uniid; p->bullet_uniid = bullet_uniid;
p->weapon_uniid = bullet->weapon_uniid; p->weapon_uniid = bullet->weapon_uniid;

View File

@ -89,7 +89,8 @@ void FrameEvent::AddBullet(int bullet_uniid,
const glm::vec3& dir, const glm::vec3& dir,
float fly_distance, float fly_distance,
int trace_target_id, int trace_target_id,
int hand) int hand,
std::shared_ptr<std::set<int>> reporter_list)
{ {
{ {
auto& tuple = a8::FastAppend(room->frame_event_data->bullets_); auto& tuple = a8::FastAppend(room->frame_event_data->bullets_);
@ -108,6 +109,11 @@ void FrameEvent::AddBullet(int bullet_uniid,
p.set_trace_target_uniid(trace_target_id); p.set_trace_target_uniid(trace_target_id);
} }
p.set_hand(hand); p.set_hand(hand);
if (reporter_list) {
for (int reporter : *reporter_list.get()) {
p.add_reporter_list(reporter);
}
}
} }
{ {
int bullet_idx = room->frame_event_data->bullets_.size() - 1; int bullet_idx = room->frame_event_data->bullets_.size() - 1;

View File

@ -25,7 +25,8 @@ public:
const glm::vec3& dir, const glm::vec3& dir,
float fly_distance, float fly_distance,
int trace_target_id, int trace_target_id,
int hand); int hand,
std::shared_ptr<std::set<int>> reporter_list);
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 AddSmoke(Bullet* bullet, int item_id, glm::vec3 pos, float time_addition); void AddSmoke(Bullet* bullet, int item_id, glm::vec3 pos, float time_addition);

View File

@ -1603,8 +1603,8 @@ void Player::UpdateThrowBomb()
bomb_dir, bomb_dir,
throw_bomb->fly_distance(), throw_bomb->fly_distance(),
0, 0,
1 1,
); nullptr);
pending_throw_bomb[throw_uniid] = throw_bomb; pending_throw_bomb[throw_uniid] = throw_bomb;
room->xtimer.SetTimeoutEx room->xtimer.SetTimeoutEx
( (

View File

@ -216,7 +216,7 @@ static void InternalCreateBullet(BulletInfo& bullet_info)
bullet_info.keep_shot_animi_timer_ptr, bullet_info.keep_shot_animi_timer_ptr,
bullet_info.shot_animi_time, bullet_info.shot_animi_time,
bullet_info.weapon_buff_id, bullet_info.weapon_buff_id,
nullptr); bullet_info.reporter_list);
#ifdef DEBUG1 #ifdef DEBUG1
if (bullet_info.c.Get()->IsPlayer()) { if (bullet_info.c.Get()->IsPlayer()) {
bullet_info.c.Get()->SendDebugMsg(a8::Format("CreateBullet id:%d", bullet_info.c.Get()->SendDebugMsg(a8::Format("CreateBullet id:%d",
@ -247,16 +247,6 @@ static void InternalCreateBullet(BulletInfo& bullet_info)
} }
#endif #endif
#ifdef DEBUG1
DebugCmd::CreateSphere(c,
glm::vec3(
bullet_info.bullet_born_pos.x,
bullet_info.bullet_born_pos.y,
bullet_info.bullet_born_pos.z),
glm::vec3(1, 1, 1),
c->room->AllocUniid());
#endif
c->room->frame_event.AddBullet c->room->frame_event.AddBullet
(bullet_uniid, (bullet_uniid,
c->GetWeakPtrRef(), c->GetWeakPtrRef(),
@ -266,7 +256,8 @@ static void InternalCreateBullet(BulletInfo& bullet_info)
bullet_info.bullet_dir, bullet_info.bullet_dir,
bullet_info.fly_distance, bullet_info.fly_distance,
bullet_info.trace_target_uniid, bullet_info.trace_target_uniid,
bullet_info.hand); bullet_info.hand,
bullet_info.reporter_list);
if (bullet_uniid && (bullet_info.trace_target_uniid || bullet_info.reporter_list)) { if (bullet_uniid && (bullet_info.trace_target_uniid || bullet_info.reporter_list)) {
c->room->AddReportBullet( c->room->AddReportBullet(
bullet_uniid bullet_uniid