RU/Client side scripts в Multi Theft Auto (MTA)

#1 2014.07.20 14:41:28

0

Клиентские скрипты - такие скрипты, которые исполняются непосредственно клиентской стороной MTA (то есть на компьютере игрока). Это значит, что есть доступ к большему объему информации об игровом мире, но чуть меньше о других игроках в целом.

Это полезно для действий, которые нужно выполнить на клиентской стороне, например, визуальных эффектов, создания и манипуляций с GUI.

Как это работает?
Скрипты клиентской стороны придерживаются практически той же схемы, что и скрипты серверной стороны. Мы постараемся обеспечить необходимую функциональность для скриптов клиентской стороны. Взаимодействие между серверными и клиентскими скриптами осуществляется через использование одних тех же системных событий, которые мы имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые должны быть указаны в метафайле ресурса с помощью тэга <script> (атрибут type).

Например:
<!-- GUI (клиент) тестовый скрипт -->
<meta>
<script src="guitest.lua" type="client" />
<info author="IJs" />
</meta>


Если требуется вызвать событие на стороне клиента с сервера, для начала вы должны зарегистрировать клиентское событие с помощью addEvent. После этого вы сможете прикрепить к нему обработчик события так же, как это делаете с серверными. Используя triggerClientEvent ( player, "eventName", fromElement, args ... ), вы сможете вызывать клиентское событие с серверной стороны. Соответственно, triggerServerEvent работает так же, но вызывает уже серверные события с клиентской стороны.

Например:

Клиентская сторона:
function showObjectBrowser(id)
-- Код
end

addEvent("doShowObjectBrowser", true)
addEventHandler("doShowObjectBrowser", getRootElement(), showObjectBrowser)


Серверная сторона:
triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )