RU/Client side scripts: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
No edit summary
Line 9: Line 9:
К примеру:
К примеру:
<syntaxhighlight lang="xml">
<syntaxhighlight lang="xml">
<!-- GUI (client) testing script -->
<!-- GUI (клиент) тестовый скрипт -->
<meta>
<meta>
<script src="guitest.lua" type="client" />
<script src="guitest.lua" type="client" />
Line 16: Line 16:
</syntaxhighlight>
</syntaxhighlight>


If you wanted to trigger a client side event from the server, you would first have to register the client side event using [[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]] на клиентской стороне. 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]].


For example:
For example:

Revision as of 06:30, 1 January 2011

Warning.png 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 на клиентской стороне. 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.

For example:

Client-side:

function showObjectBrowser(id)
   -- code here
end

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

Server-side:

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