|
|
| Line 1: |
Line 1: |
| Клиентские скрипты - такие скрипты, которые исполняются непосредственно клиентской стороной MTA (то есть на компьютере игрока). Это значит, что есть доступ к большему объему информации об игровом мире, но чуть меньше о других игроках вцелом.
| |
|
| |
|
| Это полезно для действий, которые нужно выполнить на клиентской стороне, например, визуальных эффектов, создания и манипуляций с GUI.
| |
|
| |
| ==Как это работает?==
| |
| Скрипты клиентской стороны придерживаются практически той же схемы, что и скрипты серверной стороны. Мы постараемся обеспечить необходимую функциональность для скриптов клиентской стороны. Взаимодействие между серверными и клиентскими скриптами осуществляется через использование одних тех же системных событий, которые мы имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые должны быть указаны в метафайле ресурса с помощью тэга <script> (атрибут type).
| |
|
| |
| Например:
| |
| <syntaxhighlight lang="xml">
| |
| <!-- GUI (клиент) тестовый скрипт -->
| |
| <meta>
| |
| <script src="guitest.lua" type="client" />
| |
| <info author="IJs" />
| |
| </meta>
| |
| </syntaxhighlight>
| |
|
| |
| Если требуется вызвать событие на стороне клиента с сервера, для начала вы должны зарегистрировать клиентское событие с помощью [[addEvent]]. После этого вы сможете прикрепить к нему обработчик события так же, как это делаете с серверными. Используя [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ), вы сможете вызывать клиентское событие с серверной стороны. Соответственно, [[triggerServerEvent]] работает так же, но вызывает уже серверные события с клиентской стороны.
| |
|
| |
| Например:
| |
|
| |
| '''Клиентская сторона:'''
| |
| <syntaxhighlight lang="lua">
| |
| function showObjectBrowser(id)
| |
| -- Код
| |
| end
| |
|
| |
| addEvent("doShowObjectBrowser", true)
| |
| addEventHandler("doShowObjectBrowser", getRootElement(), showObjectBrowser)
| |
| </syntaxhighlight>
| |
|
| |
| '''Серверная сторона:'''
| |
| <syntaxhighlight lang="lua">
| |
| triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )
| |
| </syntaxhighlight>
| |
|
| |
| [[en:Client side scripts]]
| |
| [[it:Script client-side]]
| |
| [[es:Scripts de Cliente]]
| |
| [[ru:Клиентские скрипты]]
| |