Указано, что
// These return values for the local players camera only...
constant native GetCameraField takes camerafield whichField returns real
Поэтому использую с проверкой на игрока:
local real cam1 = 0
if GetLocalPlayer() == GetTriggerPlayer() then
set cam1 = GetCameraField(CAMERA_FIELD_TARGET_DISTANCE)
endif
Логика такая, что код будет исполняться только для одного игрока, который ввёл команду, а для остальных не будет исполняться эта "локальная" нативка
Но с этим кодом в LAN сразу вылетает после исполнения кода (В одиночной игре работает нормально)
Но с этим кодом в LAN сразу вылетает после исполнения кода (В одиночной игре работает нормально)
Убираю проверку:
local real cam1 = 0
set cam1 = GetCameraField(CAMERA_FIELD_TARGET_DISTANCE)
И в LAN вроде не вылетает.
Объясните противоречивую логику
Принятый ответ
да, проблема в том что у одного игрока объект есть а у остальных нет. расходится контрольная сумма хендлов и игра выдает десинк
все что вы делаете в блоке локального игрока происходит только на его машине. магическим образом оно у остальных не появится
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован ValdionWorld
))Можно. И не только реал, а любые.
))вот именно. Он, по моему, где-то эту переменную использует глобально (вне локал плеера). Больше причин десинхронизации не вижу.
Отредактирован PT153
Отредактирован host_pi
Хотя логику не понял, почему GetForceOfPlayer(GetTriggerPlayer()) не работает с GetLocalPlayer()
даже GetForceOfPlayer(Player(0)) не работает с if GetLocalPlayer()