RU/Client side scripts: Difference between revisions
No edit summary |
No edit summary |
||
Line 7: | Line 7: | ||
Скрипты клиентской стороны следуют практически той же схемы, что и серверной стороны. Мы постараемся обеспечить необходимую функциональность для клиентской стороны скриптов. Взаимодействие между серверными и клиентскими скриптами осуществляется с использованием тех же системных событий, которые мы уже имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые включены в ресурсах (в метафайл) с помощью тэга <script> (типа атрибут). | Скрипты клиентской стороны следуют практически той же схемы, что и серверной стороны. Мы постараемся обеспечить необходимую функциональность для клиентской стороны скриптов. Взаимодействие между серверными и клиентскими скриптами осуществляется с использованием тех же системных событий, которые мы уже имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые включены в ресурсах (в метафайл) с помощью тэга <script> (типа атрибут). | ||
Например: | |||
<syntaxhighlight lang="xml"> | <syntaxhighlight lang="xml"> | ||
<!-- GUI (клиент) тестовый скрипт --> | <!-- GUI (клиент) тестовый скрипт --> | ||
Line 18: | Line 18: | ||
Если требуется вызвать событие на стороне клиента с сервера, для начала вы должны зарегистрировать клиентское событие с помощью [[addEvent]]. После этого, вы можете прикрепить обработчик события так же, как в скрипте на стороне сервера. Используя [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ) вы сможете вызывать дополнительные события. Соответственно [[triggerServerEvent]] работает также, но вызывает уже события на сервере. | Если требуется вызвать событие на стороне клиента с сервера, для начала вы должны зарегистрировать клиентское событие с помощью [[addEvent]]. После этого, вы можете прикрепить обработчик события так же, как в скрипте на стороне сервера. Используя [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ) вы сможете вызывать дополнительные события. Соответственно [[triggerServerEvent]] работает также, но вызывает уже события на сервере. | ||
Например: | |||
'''Client-side:''' | '''Client-side:''' |
Revision as of 06:48, 1 January 2011
Клиентские скрипты - это те скрипты, которые исполняются непосредственно клиентской стороной мода. А значит, есть доступ к большому объему информации о игровом мире, но почти нет информации о других игроках в игре.
Это полезно для действий, которые нужно выполнить на клиентской стороне, например визуальные эффекты, создание и манипуляции с GUI.
Как это работает?
Скрипты клиентской стороны следуют практически той же схемы, что и серверной стороны. Мы постараемся обеспечить необходимую функциональность для клиентской стороны скриптов. Взаимодействие между серверными и клиентскими скриптами осуществляется с использованием тех же системных событий, которые мы уже имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые включены в ресурсах (в метафайл) с помощью тэга <script> (типа атрибут).
Например:
<!-- GUI (клиент) тестовый скрипт --> <meta> <script src="guitest.lua" type="client" /> <info author="IJs" /> </meta>
Если требуется вызвать событие на стороне клиента с сервера, для начала вы должны зарегистрировать клиентское событие с помощью addEvent. После этого, вы можете прикрепить обработчик события так же, как в скрипте на стороне сервера. Используя triggerClientEvent ( player, "eventName", fromElement, args ... ) вы сможете вызывать дополнительные события. Соответственно triggerServerEvent работает также, но вызывает уже события на сервере.
Например:
Client-side:
function showObjectBrowser(id) -- code here end addEvent("doShowObjectBrowser", true) addEventHandler("doShowObjectBrowser", getRootElement(), showObjectBrowser)
Server-side:
triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )