Технический форум Помогите с камерой и рандомным спавном.
FinnFInnovich 21.11.2017 в 20:34

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

Вообщем только начинаю изучать LUA и у меня возникли вопросы. Как сделать рандомный спавн, в несколько рандомных точках? Читал статьи, но до конца так и не понял. И ещё, при респавне или выходе из интерьеров камера смотрит в том положении в каком она была до смерти/выхода из игры/выхода из интерьера, но хотелось бы, что б она глядела в затылок игрока.
Seven 22.11.2017 в 11:44

Проверенный

Репутация: 68 бал.

Замечания: 1 бал.

FinnFInnovich, посмотри функцию связанную с камерой , называется setCameraTarget, а с респавном немного сложнее, создай таблицу спавна к примеру
spawn = {
{x, y, z}
{x, y, z}
}


потом берем данные, и начинаем делать рандом, то есть
local random_row = math.random(1, #spawn)
--#spawn выведет кол-во строк в таблице

Теперь возьмем и напишем взятие координат из рандомной строки

local x, y, z = unpack(spawn [random_row ])
--unpack() расспакует данные
--x, y, z наши рандомные координаты спавна
FinnFInnovich 22.11.2017 в 19:37

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

Seven,
Вот по поводу камеры, что не так то с сетКамерой?
addEventHandler( "onPlayerWasted", getRootElement( ),
function()
setTimer( spawnPlayer, 4000, 1, source, 1310.18, -1371.52, 13.58, 180,getElementModel(source))
setCameraTarget( source )
end
)
Seven 23.11.2017 в 13:33

Проверенный

Репутация: 68 бал.

Замечания: 1 бал.

FinnFInnovich,

твой игрок, спавнится через 4 секунды, а камера ставится сразу, установи таймер на камеру тоже
FinnFInnovich 30.11.2017 в 21:43

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

Seven,
Так-с, проблемы тольком исправить не могу.
Спавн:

local spawn = {

{1735.89, -1177.04, 23.84},

{1247.21, -1561.56, 13.56},

{1310.18, -1371.52, 13.58},

{784.47, -1464.5, 13.54}
}

local random_s = math.random(4, #spawn)
local x, y, z = unpack(spawn [random_s])
local rotation = 180
function joinHandler()
spawnPlayer(source, x, y, z, rotation)
fadeCamera(source, true)
setCameraTarget(source, source)
end
addEventHandler("onPlayerJoin", getRootElement(), joinHandler)

Камера при респавне:
addEventHandler( "onPlayerWasted", getRootElement( ),
function()
setTimer( spawnPlayer, 4000, 1, source, x, y, z, 180,getElementModel(source))
setTimer( setCameraTarget, 4001, 1, source )
end
)


Ничего из этого не работает, в первом случае игрок просто спавнится в первых прописанных координатах.
И ещё возник вопрос, как примерно сделать, что б при заходе на маркер появлялось ---

Что б появлялось, вот такое https://imgur.com/a/zjSX8

Поможет кто?
Seven 01.12.2017 в 11:29

Проверенный

Репутация: 68 бал.

Замечания: 1 бал.

FinnFInnovich, а ты сам изучать вики не пробывал?

FinnFInnovich, отрисовываешь меню с помощью dxDrawRectangle и dxDrawText, создаешь маркер createMarker, и с помощью ивента onClientMarkerHit ты отрисовываешь меню
FinnFInnovich 01.12.2017 в 19:57

Пользователь

Репутация: 0 бал.

Замечания: 1 бал.

Seven, изучал я вики различные, но не всё понятно и ясно.
Войдие или зарегистрируйтесь что бы написать сообщение