Difference between revisions of "NCScriptsObjectEventHandling"
(17 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
− | <p style="color: #DDDD88;font-size: 22px;width:60%;margin: 0 auto">Event Handler | + | <p style="width:60%;margin: 0 auto">[[NewDawnHome|[Main]]] [[NDServerIndexScriptsMain|[Lua Examples]]]</p> |
+ | <p style="color: #DDDD88;font-size: 22px;width:60%;margin: 0 auto">Event Handler & Examples</p> | ||
<center> | <center> | ||
{| class="wikitable" | style="width: 60%" | {| class="wikitable" | style="width: 60%" | ||
|- | |- | ||
− | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px"> | + | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">Arrived</p>Params<br>bool - true if mobile arrives successfully at the end location || Fires on a mobile when he arrives or fails to arrive at his path or move end point. |
|} | |} | ||
</center> | </center> | ||
− | <p style="width: 60%;margin: 0 auto">Example of | + | <p style="width: 60%;margin: 0 auto">Example</p> |
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | function OnPatrolArrived(arriveSuccess) | ||
+ | |||
+ | if( AI.StateMachine.CurState ~= "Patrol" ) then | ||
+ | -- ignore this message if we are no longer patrolling | ||
+ | return | ||
+ | end | ||
+ | |||
+ | -- TODO: Handle the case where he fails to path properly | ||
+ | -- for now we just move on to the next point in the patrol | ||
+ | if not(arriveSuccess) then | ||
+ | end | ||
+ | |||
+ | DoPatrol() | ||
+ | end | ||
+ | RegisterEventHandler(EventType.Arrived, "patrol", OnPatrolArrived) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">CharacterListRequestResult</p>Params<br>eventid - event identifier passed to the character list request<br>Returns<br>table - list of character name and associated character id || This message fires when a character list request either succeeds or fails. | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | function CharacterListRequestResult(characterlist) | ||
+ | if(characterlist) then | ||
+ | for k,v in pairs(table_name) do | ||
+ | print(k,v) | ||
+ | end | ||
+ | end | ||
+ | end | ||
+ | RegisterEventHandler(EventType.CharacterListRequestResult, "request", CharacterListRequestResult) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ClientObjectCommand</p>Params<br>(...) If arguments are specified, they are sent in a parameterized list of strings | ||
+ | || Fires on an object specified by the client with the client supplied data. Object messages are ways to execute script directly on specified object from the client. See the client specific reference NEED REF to see which commands the client can send. EventIdentifier:. | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | RegisterEventHandler(EventType.ClientObjectCommand,"arena", function (user,commandName,...) | ||
+ | if(commandName ~= nil and arenaCommandHandlers[commandName] ~= nil) then | ||
+ | --DebugMessage("command found") | ||
+ | arenaCommandHandlers[commandName](user,...) | ||
+ | end | ||
+ | end) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ClientTargetAnyObjResponse</p>Params<br>EventId - specified when RequestClientTargetAnyObj(...) is called || This is a response from the client from the RequestClientTargetAnyObj(...) function.<br>Gameobject - object user selected, nil if user cancelled | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | function HandleInteract(objRef,user) | ||
+ | print(objRef:GetName().. " was targeted by " .. user:GetName()) | ||
+ | end | ||
+ | |||
+ | RegisterEventHandler(EventType.ClientTargetAnyObjResponse, "targetObj", function (objRef,user) | ||
+ | HandleInteract(objRef,user) | ||
+ | end) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ClientTargetGameObjResponse</p>Params<br>EventId - Specified when RequestClientTargetGameObj(...) is called<br>gameobject - Object user selected. nil if user cancelled || This is a response from the client from the RequestClientTargetGameObj(...) function. | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | function HandleInteract(objRef,user) | ||
+ | print(objRef:GetName().. " was targeted by " .. user:GetName()) | ||
+ | end | ||
+ | |||
+ | RegisterEventHandler(EventType.ClientTargetGameObjResponse, "targetObj", function (objRef,user) | ||
+ | HandleInteract(objRef,user) | ||
+ | end) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ContextMenuResponse</p>Params<br>EventId - ResponseId specified when OpenCustomContextMenu() is called<br>gameobject - user the menu was sent too<br>menuid - menu option id ("" if canceled) || This is a response from the client from the OpenCustomContextMenu() function. | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | function HandleInteract(objRef,menuId) | ||
+ | print(objRef:GetName().. " used their context menu option" .. menuId) | ||
+ | end | ||
+ | |||
+ | RegisterEventHandler(EventType.ContextMenuResponse, "contextMenuUsed", function (objRef,menuId) | ||
+ | HandleInteract(objRef,menuId) | ||
+ | end) | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">CreatedObject</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">DestroyAllComplete</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">DestroyedObject</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">DynamicWindowResponse</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">EnterView</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">GetBanListResult</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">GlobalVarUpdateResult</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ItemEquipped</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ItemUnEquipped</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">LoadedFromBackup</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">LeaveView</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">CreatedObject</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">ModuleAttached</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">PathingInterrupted</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">PlayerSpeech</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">RequestEquip</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">RequestPickUp</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">StartMoving</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
<div style="width:60%;margin: 0 auto"> | <div style="width:60%;margin: 0 auto"> | ||
CODE BLOCK | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">StopMoving</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
CODE BLOCK | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">Timer</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">Use</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">UserLogin</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
+ | CODE BLOCK | ||
+ | </div> | ||
+ | |||
+ | <center> | ||
+ | {| class="wikitable" | style="width: 60%" | ||
+ | |- | ||
+ | |style="width: 40%"| <p style="color: #DDDD88;font-size: 18px">UserLogout</p> || . | ||
+ | |} | ||
+ | </center> | ||
+ | <p style="width: 60%;margin: 0 auto">Example</p> | ||
+ | <div style="width:60%;margin: 0 auto"> | ||
CODE BLOCK | CODE BLOCK | ||
</div> | </div> |
Latest revision as of 20:19, 25 November 2019
Event Handler & Examples
Arrived Paramsbool - true if mobile arrives successfully at the end location |
Fires on a mobile when he arrives or fails to arrive at his path or move end point. |
Example
function OnPatrolArrived(arriveSuccess) if( AI.StateMachine.CurState ~= "Patrol" ) then -- ignore this message if we are no longer patrolling return end -- TODO: Handle the case where he fails to path properly -- for now we just move on to the next point in the patrol if not(arriveSuccess) then end DoPatrol() end RegisterEventHandler(EventType.Arrived, "patrol", OnPatrolArrived)
CharacterListRequestResult Paramseventid - event identifier passed to the character list request Returns table - list of character name and associated character id |
This message fires when a character list request either succeeds or fails. |
Example
function CharacterListRequestResult(characterlist) if(characterlist) then for k,v in pairs(table_name) do print(k,v) end end end RegisterEventHandler(EventType.CharacterListRequestResult, "request", CharacterListRequestResult)
ClientObjectCommand Params(...) If arguments are specified, they are sent in a parameterized list of strings |
Fires on an object specified by the client with the client supplied data. Object messages are ways to execute script directly on specified object from the client. See the client specific reference NEED REF to see which commands the client can send. EventIdentifier:. |
Example
RegisterEventHandler(EventType.ClientObjectCommand,"arena", function (user,commandName,...) if(commandName ~= nil and arenaCommandHandlers[commandName] ~= nil) then --DebugMessage("command found") arenaCommandHandlers[commandName](user,...) end end)
ClientTargetAnyObjResponse ParamsEventId - specified when RequestClientTargetAnyObj(...) is called |
This is a response from the client from the RequestClientTargetAnyObj(...) function. Gameobject - object user selected, nil if user cancelled |
Example
function HandleInteract(objRef,user) print(objRef:GetName().. " was targeted by " .. user:GetName()) end RegisterEventHandler(EventType.ClientTargetAnyObjResponse, "targetObj", function (objRef,user) HandleInteract(objRef,user) end)
ClientTargetGameObjResponse ParamsEventId - Specified when RequestClientTargetGameObj(...) is called gameobject - Object user selected. nil if user cancelled |
This is a response from the client from the RequestClientTargetGameObj(...) function. |
Example
function HandleInteract(objRef,user) print(objRef:GetName().. " was targeted by " .. user:GetName()) end RegisterEventHandler(EventType.ClientTargetGameObjResponse, "targetObj", function (objRef,user) HandleInteract(objRef,user) end)
ContextMenuResponse ParamsEventId - ResponseId specified when OpenCustomContextMenu() is called gameobject - user the menu was sent too menuid - menu option id ("" if canceled) |
This is a response from the client from the OpenCustomContextMenu() function. |
Example
function HandleInteract(objRef,menuId) print(objRef:GetName().. " used their context menu option" .. menuId) end RegisterEventHandler(EventType.ContextMenuResponse, "contextMenuUsed", function (objRef,menuId) HandleInteract(objRef,menuId) end)
CreatedObject |
. |
Example
CODE BLOCK
DestroyAllComplete |
. |
Example
CODE BLOCK
DestroyedObject |
. |
Example
CODE BLOCK
DynamicWindowResponse |
. |
Example
CODE BLOCK
EnterView |
. |
Example
CODE BLOCK
GetBanListResult |
. |
Example
CODE BLOCK
GlobalVarUpdateResult |
. |
Example
CODE BLOCK
ItemEquipped |
. |
Example
CODE BLOCK
ItemUnEquipped |
. |
Example
CODE BLOCK
LoadedFromBackup |
. |
Example
CODE BLOCK
LeaveView |
. |
Example
CODE BLOCK
CreatedObject |
. |
Example
CODE BLOCK
ModuleAttached |
. |
Example
CODE BLOCK
PathingInterrupted |
. |
Example
CODE BLOCK
PlayerSpeech |
. |
Example
CODE BLOCK
RequestEquip |
. |
Example
CODE BLOCK
RequestPickUp |
. |
Example
CODE BLOCK
StartMoving |
. |
Example
CODE BLOCK
StopMoving |
. |
Example
CODE BLOCK
Timer |
. |
Example
CODE BLOCK
Use |
. |
Example
CODE BLOCK
UserLogin |
. |
Example
CODE BLOCK
UserLogout |
. |
Example
CODE BLOCK