Skip to content

Commit 13c35f8

Browse files
authored
Fix and extend new event onPlayerTeleport (PR #4001)
1 parent c2b7948 commit 13c35f8

File tree

3 files changed

+13
-1
lines changed

3 files changed

+13
-1
lines changed

Server/mods/deathmatch/logic/CGame.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1641,7 +1641,7 @@ void CGame::AddBuiltInEvents()
16411641
m_Events.AddEvent("onPlayerTriggerInvalidEvent", "eventName, isAdded, isRemote", nullptr, false);
16421642
m_Events.AddEvent("onPlayerChangesProtectedData", "element, key, value", nullptr, false);
16431643
m_Events.AddEvent("onPlayerChangesWorldSpecialProperty", "property, enabled", nullptr, false);
1644-
m_Events.AddEvent("onPlayerTeleport", "", nullptr, false);
1644+
m_Events.AddEvent("onPlayerTeleport", "previousX, previousY, previousZ, currentX, currentY, currentZ", nullptr, false);
16451645

16461646
// Ped events
16471647
m_Events.AddEvent("onPedVehicleEnter", "vehicle, seat, jacked", NULL, false);

Server/mods/deathmatch/logic/CStaticFunctionDefinitions.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1477,6 +1477,12 @@ bool CStaticFunctionDefinitions::SetElementInterior(CElement* pElement, unsigned
14771477
BitStream.pBitStream->Write(static_cast<unsigned char>((bSetPosition) ? 1 : 0));
14781478
if (bSetPosition)
14791479
{
1480+
if (IS_PLAYER(pElement))
1481+
{
1482+
CPlayer* player = static_cast<CPlayer*>(pElement);
1483+
player->SetTeleported(true);
1484+
}
1485+
14801486
BitStream.pBitStream->Write(vecPosition.fX);
14811487
BitStream.pBitStream->Write(vecPosition.fY);
14821488
BitStream.pBitStream->Write(vecPosition.fZ);

Server/mods/deathmatch/logic/packets/CPlayerPuresyncPacket.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,12 @@ bool CPlayerPuresyncPacket::Read(NetBitStreamInterface& BitStream)
141141
if (!pSourcePlayer->GetTeleported())
142142
{
143143
CLuaArguments arguments;
144+
arguments.PushNumber(playerPosition.fX);
145+
arguments.PushNumber(playerPosition.fY);
146+
arguments.PushNumber(playerPosition.fZ);
147+
arguments.PushNumber(position.data.vecPosition.fX);
148+
arguments.PushNumber(position.data.vecPosition.fY);
149+
arguments.PushNumber(position.data.vecPosition.fZ);
144150
pSourcePlayer->CallEvent("onPlayerTeleport", arguments, nullptr);
145151
}
146152

0 commit comments

Comments
 (0)