mirror of
https://github.com/Jous99/F4MP.git
synced 2026-01-12 17:10:54 +01:00
56 lines
1.8 KiB
C++
56 lines
1.8 KiB
C++
#include <Services/CombatService.h>
|
|
#include <Components.h>
|
|
#include <GameServer.h>
|
|
#include <World.h>
|
|
|
|
#include <Messages/ProjectileLaunchRequest.h>
|
|
#include <Messages/NotifyProjectileLaunch.h>
|
|
|
|
CombatService::CombatService(World& aWorld, entt::dispatcher& aDispatcher) noexcept
|
|
: m_world(aWorld)
|
|
{
|
|
m_projectileLaunchConnection = aDispatcher.sink<PacketEvent<ProjectileLaunchRequest>>().connect<&CombatService::OnProjectileLaunchRequest>(this);
|
|
}
|
|
|
|
void CombatService::OnProjectileLaunchRequest(const PacketEvent<ProjectileLaunchRequest>& acMessage) const noexcept
|
|
{
|
|
auto& packet = acMessage.Packet;
|
|
|
|
NotifyProjectileLaunch notify{};
|
|
|
|
notify.ShooterID = packet.ShooterID;
|
|
|
|
notify.OriginX = packet.OriginX;
|
|
notify.OriginY = packet.OriginY;
|
|
notify.OriginZ = packet.OriginZ;
|
|
|
|
notify.ProjectileBaseID = packet.ProjectileBaseID;
|
|
notify.WeaponID = packet.WeaponID;
|
|
notify.AmmoID = packet.AmmoID;
|
|
|
|
notify.ZAngle = packet.ZAngle;
|
|
notify.XAngle = packet.XAngle;
|
|
notify.YAngle = packet.YAngle;
|
|
|
|
notify.ParentCellID = packet.ParentCellID;
|
|
|
|
notify.SpellID = packet.SpellID;
|
|
notify.CastingSource = packet.CastingSource;
|
|
|
|
notify.Area = packet.Area;
|
|
notify.Power = packet.Power;
|
|
notify.Scale = packet.Scale;
|
|
|
|
notify.AlwaysHit = packet.AlwaysHit;
|
|
notify.NoDamageOutsideCombat = packet.NoDamageOutsideCombat;
|
|
notify.AutoAim = packet.AutoAim;
|
|
notify.DeferInitialization = packet.DeferInitialization;
|
|
notify.ForceConeOfFire = packet.ForceConeOfFire;
|
|
|
|
notify.UnkBool1 = packet.UnkBool1;
|
|
notify.UnkBool2 = packet.UnkBool2;
|
|
|
|
const auto cShooterEntity = static_cast<entt::entity>(packet.ShooterID);
|
|
if (!GameServer::Get()->SendToPlayersInRange(notify, cShooterEntity, acMessage.GetSender()))
|
|
spdlog::error("{}: SendToPlayersInRange failed", __FUNCTION__);
|
|
}
|