Files
DarkflameServer/dScripts/02_server/Map/njhub/LightningOrbServer.cpp
Aaron Kimbrell e5d61ee90e fix(scripts): lightning garden orbs knock players back again (issue 1352)
As L_LIGHTNING_ORB_SERVER: knockback (dx*2.5, 15, dz*2.5) and the orb's knockback effect; it was off while platforms didn't run on the server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-01 04:55:03 -05:00

20 lines
878 B
C++

#include "LightningOrbServer.h"
#include "CombatMessages.h"
#include "EffectsMessages.h"
void LightningOrbServer::OnCollisionPhantom(Entity* self, Entity* target) {
GameMessages::GetPosition playerPos;
playerPos.Send(target->GetObjectID());
GameMessages::GetPosition selfPos;
selfPos.Send(self->GetObjectID());
const NiPoint3 newVec((playerPos.pos.x - selfPos.pos.x) * 2.5, 15, (playerPos.pos.z - selfPos.pos.z) * 2.5);
// L_LIGHTNING_ORB_SERVER (issue 1352): it was off while the platforms didn't move with the server
GameMessages::Knockback knockback;
knockback.target = target->GetObjectID();
knockback.Caster = self->GetObjectID();
knockback.Originator = self->GetObjectID();
knockback.vector = newVec;
knockback.Send(UNASSIGNED_SYSTEM_ADDRESS);
GameMessages::PlayFXEffect(self->GetObjectID(), -1, u"knockback", "knockback").Send(UNASSIGNED_SYSTEM_ADDRESS);
}