diff --git a/server/gameserver/bullet.h b/server/gameserver/bullet.h index ca6f578f..88e6fcb4 100644 --- a/server/gameserver/bullet.h +++ b/server/gameserver/bullet.h @@ -7,7 +7,7 @@ namespace MetaData { struct Player; struct Equip; - struct EquipUpgrade; + struct Skill; } class Human; @@ -23,8 +23,8 @@ class Bullet : public MoveableEntity long long weapon_uniid = 0; int gun_lv = 0; MetaData::Equip* gun_meta = nullptr; - MetaData::EquipUpgrade* gun_upgrade_meta = nullptr; MetaData::Equip* meta = nullptr; + MetaData::Skill* skill_meta = nullptr; CreatureWeakPtr sender; CreatureWeakPtr passenger; a8::Vec2 dir; diff --git a/server/gameserver/creature.cc b/server/gameserver/creature.cc index 7754f902..c06500d2 100644 --- a/server/gameserver/creature.cc +++ b/server/gameserver/creature.cc @@ -30,6 +30,7 @@ struct BulletInfo long long weapon_uniid = 0; MetaData::Equip* weapon_meta = nullptr; MetaData::Equip* bullet_meta = nullptr; + MetaData::Skill* skill_meta = nullptr; a8::Vec2 bullet_born_pos; a8::Vec2 bullet_dir; float fly_distance = 0; @@ -82,6 +83,7 @@ static void InternalCreateBullet(BulletInfo& bullet_info) c->shot_passenger, bullet_info.weapon_meta, bullet_info.bullet_meta, + bullet_info.skill_meta, bullet_info.bullet_born_pos, bullet_info.bullet_dir, bullet_info.fly_distance, @@ -340,6 +342,7 @@ void InternalShot(Creature* c, bullet_info.c = c->GetWeakPtrRef(); bullet_info.weapon_uniid = weapon_uniid; bullet_info.weapon_meta = weapon_meta; + bullet_info.skill_meta = skill_meta; bullet_info.bullet_meta = bullet_meta; bullet_info.bullet_born_pos = bullet_born_pos; bullet_info.bullet_dir = bullet_dir; diff --git a/server/gameserver/room.cc b/server/gameserver/room.cc index 1abef425..29c8b281 100644 --- a/server/gameserver/room.cc +++ b/server/gameserver/room.cc @@ -591,6 +591,7 @@ int Room::CreateBullet(Creature* sender, Creature* passenger, MetaData::Equip* weapon_meta, MetaData::Equip* bullet_meta, + MetaData::Skill* skill_meta, a8::Vec2 pos, a8::Vec2 dir, float fly_distance, @@ -608,6 +609,7 @@ int Room::CreateBullet(Creature* sender, bullet->weapon_uniid = weapon_uniid; bullet->gun_meta = weapon_meta; bullet->meta = bullet_meta; + bullet->skill_meta = skill_meta; bullet->SetPos(pos); bullet->dir = dir; bullet->born_pos = pos; diff --git a/server/gameserver/room.h b/server/gameserver/room.h index 43e9f162..1e538537 100644 --- a/server/gameserver/room.h +++ b/server/gameserver/room.h @@ -20,6 +20,7 @@ namespace MetaData struct Player; struct PveGeminiMode; struct PveGemini; + struct Skill; } namespace metatable @@ -165,6 +166,7 @@ public: Creature* passenger, MetaData::Equip* weapon_meta, MetaData::Equip* bullet_meta, + MetaData::Skill* skill_meta, a8::Vec2 pos, a8::Vec2 dir, float fly_distance,