Да, конечно. Везде его пробовал, даже запускал вручную через runcode. Итог один - onPlayerModInfo не срабатывает. Ладно, раз этот способ не работает, есть ли какие-либо ещё способы не пускать игроков с другими модами?
Почему onPlayerModInfo может не срабатывать? Я разрешил моды и отметил, что моя GTA модифицирована, в настройках MTA. Мы используем модифицированную GTA:SA и хотели бы, чтобы игроки могли играть только с нашим модом. Что можно сделать?
Тут понадобится проверка на то, что в машине есть водитель. Её можно осуществить с помощью функции getVehicleOccupant
Получится что-то вроде этого:
if getVehicleOccupant(source, 0) then
Такого способа нет (или я упустил). Но можешь сам в каждом таком ресурсе, который требует проверки готовности клиента, вызывать своё событие на сервере (например, onClientReady) в onClientResourceStart. Уже на сервере помечаешь этот клиент как готовый (ready[client] = true) и проверяешь где нужно.
Если ты имеешь ввиду под движением камеры плавное перемещение, то тебе понадобятся эти функции:
setCameraMatrix
interpolateBetween
И это событие: onClientPreRender
Искать не пробовали?
executeCommandHandler
Искать пробовал, и эту функцию я тоже рассматривал. Но она выполняет команду игрока, а я хочу выполнить серверную команду ("debugdb 2", например).
Внимательно пересмотрев все функции на вики, я не нашёл подходящей. Возможно, её нет из-за соображений безопасности.
Решил сделать просто:
local dependence = getResourceFromName("dep")
if dependence then
dependenceRoot = getResourceRootElement(dependence)
if dependenceRoot then
addEventHandler("onResourceStop", dependenceRoot,
function ()
-- some code
end
)
end
end
Если своя система - тогда сами и придумывайте, как сделать в ней зависимости ресурсов.
Я всё давно уже придумал. Вопрос был в том, как остановить зависимые ресурсы до полной остановки основного ресурса. Я надеялся, что это можно сделать функцией stopResource в событии onResourceStop, но результат оказался другим: ресурс вставал в очередь и останавливался после основного ресурса. Добавление опции немедленной остановки ресурса должно решить эту задачу.
У меня есть один ресурс - ядро, который запускает все остальные ресурсы - компоненты. У компонентов в meta.xml указываются другие компоненты, от которых они зависят. Перед запуском компонента, запускаются его зависимости.
Если останавливать зависимые компоненты в событии onResourceStop, то они остановятся только после того, как ресурс уже остановился. Это мне не подходит.