RU/Client side scripts: Difference between revisions

From Multi Theft Auto: Wiki
Jump to navigation Jump to search
No edit summary
m (Reverted edits by Bonzo (talk) to last revision by Vincent)
 
(15 intermediate revisions by 9 users not shown)
Line 1: Line 1:
{{translate}}
Клиентские скрипты - такие скрипты, которые исполняются непосредственно клиентской стороной MTA (то есть на компьютере игрока). Это значит, что есть доступ к большему объему информации об игровом мире, но чуть меньше о других игроках вцелом.
lient side scripts are scripts that run inside the deathmatch mod client side. This means that have access to more information about the game world, but slightly less information about the rest of the players in the game.


This is useful for things that need to be done client-side, such as visual effects, creation and manipulation of GUI elements.
Это полезно для действий, которые нужно выполнить на клиентской стороне, например, визуальных эффектов, создания и манипуляций с GUI.


==How does it work?==
==Как это работает?==
Client-side scripts follow the same pattern as server-side scripts. We will try to provide the necessary functionality for client-side scripts. Interfacing between a server-side and client-side script is done by using the same event system as we already have. The server-side and client-side scripts will need to be in two different files, which are included from the resource (in the metafile) by using a <script> tag (and type attribute).
Скрипты клиентской стороны придерживаются практически той же схемы, что и скрипты серверной стороны. Мы постараемся обеспечить необходимую функциональность для скриптов клиентской стороны. Взаимодействие между серверными и клиентскими скриптами осуществляется через использование одних тех же системных событий, которые мы имеем. Серверные и клиентские скрипты должны находиться в двух разных файлах, которые должны быть указаны в метафайле ресурса с помощью тэга <script> (атрибут type).


For example:
Например:
<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 15:
</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]]. После этого вы сможете прикрепить к нему обработчик события так же, как это делаете с серверными. Используя [[triggerClientEvent]] ( player, "eventName", fromElement, args ... ), вы сможете вызывать клиентское событие с серверной стороны. Соответственно, [[triggerServerEvent]] работает так же, но вызывает уже серверные события с клиентской стороны.


For example:
Например:


'''Client-side:'''
'''Клиентская сторона:'''
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
function showObjectBrowser(id)
function showObjectBrowser(id)
   -- code here
   -- Код
end
end


Line 30: Line 29:
</syntaxhighlight>
</syntaxhighlight>


'''Server-side:'''
'''Серверная сторона:'''
<syntaxhighlight lang="lua">
<syntaxhighlight lang="lua">
triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )
triggerClientEvent ( somePlayer, "doShowObjectBrowser", getRootElement(), 1034 )
</syntaxhighlight>
</syntaxhighlight>


[[en:Client side scripts]]
[[it:Script client-side]]
[[it:Script client-side]]
[[es:Scripts de Cliente]]
[[ru:Клиентские скрипты]]

Latest revision as of 03:05, 1 April 2016

Клиентские скрипты - такие скрипты, которые исполняются непосредственно клиентской стороной 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 )