diff --git a/server/gameserver/buff.cc b/server/gameserver/buff.cc index 0a2ee91c..401c8a86 100644 --- a/server/gameserver/buff.cc +++ b/server/gameserver/buff.cc @@ -1267,7 +1267,25 @@ void Buff::ProcCallFunc() switch (meta->int_param1) { case 1: { - + MetaData::Equip* weapon_meta = MetaMgr::Instance()->GetEquip(meta->int_param2); + if (weapon_meta) { + for (int i = 0; i < 6; ++i) { + a8::Vec2 bullet_dir = a8::Vec2::UP; + bullet_dir.Rotate(60 * i); + a8::Vec2 bullet_born_pos = owner->GetPos() + bullet_dir * 20; + int bullet_uniid = owner->room->AllocUniid(); + owner->room->frame_event.AddBullet + (bullet_uniid, + owner->GetWeakPtrRef(), + weapon_meta, + 1, + bullet_born_pos, + bullet_dir, + 0, + 0, + 0); + } + } } break; default: