RU/Client side scripts: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
TEDERIs (talk | contribs)
No edit summary
TEDERIs (talk | contribs)
No edit summary
Line 16: Line 16:
</syntaxhighlight>
</syntaxhighlight>


Если требуется вызвать событие на стороне клиента с сервера, вы должны зарегистрировать событие с помощью [[addEvent]] на клиентской стороне. Then, you can attach a handler to the event as you would in a server side script. Then in the server side script, you'll be able to call [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ) which will trigger the event client side. The same can be done in reverse using [[triggerServerEvent]].
Если требуется вызвать событие на стороне клиента с сервера, вы должны зарегистрировать клиентское событие с помощью [[addEvent]]. После этого, вы можете прикрепить обработчик события так же, как в скрипте на стороне сервера. Теперь на сервероной стороне используя [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ) вы сможете вызывать дополнительные события. Соответственно [[triggerServerEvent]] работает также, но вызывает уже события на сервере.


For example:
For example:

Revision as of 06:42, 1 January 2011

This page requires local translation. If page will remain not translated in reasonable period of time it would be deleted.
After translating the page completely, please remove the ‎{{translate}}‎ tag from the page.

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

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

Как это работает?

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

К примеру:

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

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

For example:

Client-side:

function showObjectBrowser(id)
   -- code here
end

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

Server-side:

triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )