Events::addDataHandler: Difference between revisions

From RAGE Multiplayer Wiki
(Created page with "This Function is used to alert client-side with entity's data change for a specified variable ==Syntax== <pre> mp.events.addDataHandler("syncedVariable", function (entity, va...")
 
(Merged from old page https://wiki.rage.mp/index.php?title=AddDataHandler)
Line 1: Line 1:
This Function is used to alert client-side with entity's data change for a specified variable
This Function is used to alert client-side with entity's data change for a specified variable


==Syntax==
{{ClientsideCsJsFunction}}
 
{{CSharpContainer|
<pre>
<pre>
mp.events.addDataHandler("syncedVariable", function (entity, value) {
RAGE.events.AddDataHandler(string name, OnEntityDataChangeDelegate handler);
  // do something...
});
</pre>
</pre>


==Example==
{{Parameters}}
* '''name'''
* '''handler'''
}}


This example sets nickname for player and triggers players' clientside data handler
{{JSContainer|
<pre>
mp.events.addDataHandler(key, handlerFunction);
</pre>
{{Parameters}}
* '''key''': {{RageType|String}} - Shared data key's name.
* '''handlerFunction''': Handler function with parameters:
** '''entity''': {{RageType|Entity}} - The [[:Category:Entity API|entity]] that had the data change.
** '''value''': {{RageType|Any}} - The new value of the data key.


{{ClientsideCode|
{{Example}}
<pre>
<pre>
mp.events.addDataHandler('newNick', function (entity, value) {
/*
  if (entity.type === 'player') mp.gui.chat.push(`${player.getVariable('oldNick')} has changed nickname to ${value}`)
    Handles testVar change.
})
    Do "player.data.testVar = 1234;" on server-side to trigger this.
*/
 
mp.events.addDataHandler("testVar", (entity, value) => {
    mp.gui.chat.push(`testVar changed to ${value} on entity ${entity.handle}.`);
});
</pre>
</pre>
}}
 
<br>
{{Example}}
This example sets nickname for player and triggers players' clientside data handler
 
{{ServersideCode|
{{ServersideCode|
<pre>
<pre>
Line 28: Line 46:
});
});
</pre>
</pre>
}}
{{ClientsideCode|
<pre>
mp.events.addDataHandler('newNick', function (entity, value) {
  if (entity.type === 'player') mp.gui.chat.push(`${player.getVariable('oldNick')} has changed nickname to ${value}`)
})
</pre>
}}
}}
}}


==See Also==
==See Also==
* [[EntityDataChangeByKey]]
{{Event_functions}}
{{Event_functions}}
[[Category:Entity API]]
[[Category:Shared Property]]
[[Category:Client-side Function]]

Revision as of 13:37, 24 May 2019

This Function is used to alert client-side with entity's data change for a specified variable

Client-Side Function

 C#  JavaScript



C# Syntax

RAGE.events.AddDataHandler(string name, OnEntityDataChangeDelegate handler);

Parameters

  • name
  • handler


JavaScript Syntax

mp.events.addDataHandler(key, handlerFunction);

Parameters

  • key: String - Shared data key's name.
  • handlerFunction: Handler function with parameters:
    • entity: Entity - The entity that had the data change.
    • value: Any - The new value of the data key.

Example

/*
    Handles testVar change.
    Do "player.data.testVar = 1234;" on server-side to trigger this.
*/

mp.events.addDataHandler("testVar", (entity, value) => {
    mp.gui.chat.push(`testVar changed to ${value} on entity ${entity.handle}.`);
});

Example

This example sets nickname for player and triggers players' clientside data handler

Server-Side
mp.events.addCommand('setNick', (player, nickname) => {
  player.setVariable('oldNick', player.name);
  player.name = nickname;
  player.setVariable('newNick', nickname);
});


Client-Side
mp.events.addDataHandler('newNick', function (entity, value) {
  if (entity.type === 'player') mp.gui.chat.push(`${player.getVariable('oldNick')} has changed nickname to ${value}`)
})


See Also