DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено

◆ TeleportAtCursorEx()

static void DeveloperTeleport::TeleportAtCursorEx ( )
inlinestaticprotected

См. определение в файле DeveloperTeleport.c строка 45

46 {
47 PlayerBase player = PlayerBase.Cast( GetGame().GetPlayer() );
48 vector rayStart = GetGame().GetCurrentCameraPosition();
49 vector rayEnd = rayStart + GetGame().GetCurrentCameraDirection() * TELEPORT_DISTANCE_MAX_EX;
50 vector hitPos;
51 vector hitNormal;
52 float hitFraction;
53 Object hitObj;
54
55 Object ignore;
56 if (!Class.CastTo(ignore, player.GetParent()))
57 {
58 ignore = player;
59 }
60
61 int layers = 0;
62 layers |= PhxInteractionLayers.TERRAIN;
63 layers |= PhxInteractionLayers.ROADWAY;
64 layers |= PhxInteractionLayers.ITEM_LARGE;
65 layers |= PhxInteractionLayers.BUILDING;
66 layers |= PhxInteractionLayers.VEHICLE;
67 layers |= PhxInteractionLayers.RAGDOLL;
68 if (DayZPhysics.SphereCastBullet(rayStart, rayEnd, 0.01, layers, ignore, hitObj, hitPos, hitNormal, hitFraction))
69 {
70 bool breakSync = false;
71
72 #ifdef DIAG_DEVELOPER
73 breakSync = DiagMenu.GetBool(DiagMenuIDs.MISC_TELEPORT_BREAKS_SYNC);
74 #endif
75
76 SetPlayerPosition(player, hitPos, breakSync);
77
78 if (DeveloperFreeCamera.IsFreeCameraEnabled())
79 {
80 DeveloperTeleport.SetPlayerDirection( player, FreeDebugCamera.GetInstance().GetDirection() );
81 }
82 }
83 }
PhxInteractionLayers
Определения DayZPhysics.c:2
DiagMenuIDs
Определения EDiagMenuIDs.c:2
PlayerBase GetPlayer()
Определения ModifierBase.c:51
proto native vector GetCurrentCameraPosition()
proto native vector GetCurrentCameraDirection()
static const float TELEPORT_DISTANCE_MAX_EX
Определения DeveloperTeleport.c:44
static void SetPlayerPosition(PlayerBase player, vector position, bool breakSync=false)
Определения DeveloperTeleport.c:115
class LOD Object
proto native CGame GetGame()

Перекрестные ссылки Class::CastTo(), DiagMenu::GetBool(), CGame::GetCurrentCameraDirection(), CGame::GetCurrentCameraPosition(), GetGame(), GetPlayer(), DeveloperFreeCamera::IsFreeCameraEnabled(), SetPlayerDirection(), SetPlayerPosition(), DayZPhysics::SphereCastBullet() и TELEPORT_DISTANCE_MAX_EX.

Используется в DeveloperFreeCamera::DisableFreeCamera() и PluginBase::TeleportAtCursor().