entities {#lua_entities}
Introduction
See also: StendhalAPI#Entities for public methods that can be performed on Entity
objects.
Methods
entities:create
entities:create(name) - Creates a new entity. - Parameters: - def: Entity definition table. - Returns: games.stendhal.server.entity.Entity New entity instance. - See also: @ref games.stendhal.server.core.scripting.lua.LuaEntityHelper#create
Options for def
table:
General:
Key | Type | Description |
---|---|---|
type | string | "SpeakerNPC", "SilentNPC", "Sign", "ShopSign", or "Reader". |
pos | table | Entity position relative to zone ({x, y}). |
description | string | Information for "look" command. |
class | string | |
subclass | string | |
resistance | int | |
size | table | {w, h} |
cursor | string | |
visibility | int | |
menu | string |
SpeakerNPC & SilentNPC types:
Key | Type | Description |
---|---|---|
dir | Direction | Entity's initial facing direction. |
ignoresCollision | boolean | |
path | table | |
path.nodes | table | |
path.loop | boolean | |
path.retrace | boolean | |
path.collisionAction | CollisionAction | |
speed | double | |
basehp | int | |
hp | int | |
outfit | table | |
outfit.layers | string | |
outfit.colors | table | |
idea | string | |
sounds | table |
|
teleports | boolean |
SpeakerNPC type:
Key | Type | Description |
---|---|---|
name | string | |
idleDir | Direction | |
chatTimeout | long | |
perceptionRange | int | |
currentState | ConversationStates | |
greeting | table | |
greeting.text | string | |
greeting.action | ChatAction | |
replies | table | |
replies.quest | string | Reply to "quest"/"task". |
replies.job | string | Reply to "job". |
replies.help | string | Reply to "help". |
replies.offer | string | Reply to "offer". |
replies.bye | string | Reply to "bye"/"goodbye". |
alternativeImage | string | Image that will be displayed on NPCs webpage. |
Sign type:
Key | Type | Description |
---|---|---|
text | string | |
visible | boolean |
ShopSign type:
Key | Type | Description |
---|---|---|
name | string | |
title | string | |
caption | string | |
seller | boolean |
entities:getPlayer
entities:getPlayer(name)
- Retrieves a logged in Player.
- Parameters:
- name: (string
) Name of player.
- Returns:
- Logged in {@link games.stendhal.server.entity.player.Player} or nil
.
- Usage:
local player = entities:getPlayer("foo")
entities:getNPC
entities:getNPC(name)
- Retrieves an existing SpeakerNPC.
- Parameters:
- name: (String
) Name of NPC.
- Returns:
- {@link games.stendhal.server.entity.npc.SpeakerNPC} instance or null
.
entities:getItem
entities:getItem(name)
- Retrieves a registered Item.
- Parameters:
- name: (String
) Name of the item.
- Returns:
- {@link games.stendhal.server.entity.item.Item} instance or null
if not a registered item.
entities:getStackableItem
entities:getStackableItem(name)
- Retrieves a registered StackableItem.
- Parameters:
- name: (String
) Name of the item.
- Returns:
- {@link games.stendhal.server.entity.item.StackableItem} instance or null
if not a registered stackable item.
entities:createSpeakerNPC
entities:createSpeakerNPC(name)
- DEPRECATED: Use entities:create.
- Creates an interactive NPC.
- name: (String
) Name of new NPC.
- Returns:
- New {@link games.stendhal.server.core.scripting.lua.LuaEntityHelper#LuaSpeakerNPC} instance.
entities:createSilentNPC
entities:createSilentNPC() - DEPRECATED: Use entities:create. - Creates a non-interactive NPC. - Returns: - New {@link games.stendhal.server.core.scripting.lua.LuaEntityHelper#LuaSilentNPC} instance.
entities:setPath
entities:setPath(entity, table, loop)
- DEPRECATED: path can now be set by directly calling the NPC's setPath
method
- Helper method for setting an NPC's path.
- Parameters:
- entity: (RPEntity
) Then entity whose path is being set.
- table: (LuaTable
) Table with list of coordinates representing nodes.
- loop: (boolean
) If true
, the entity's path should loop.
entities:setPathAndPosition
entities:setPathAndPosition(entity, table, loop)
- DEPRECATED: path can now be set by directly by calling the NPC's setPath
method
- Helper function for setting an NPC's path & starting position.
- Parameters:
- entity: (RPEntity
) The entity whose path is being set.
- table: (LuaTable
) Table with list of coordinates representing nodes.
- loop: (boolean
) If true
, the entity's path should loop.
entities:createSign
entities:createSign(visible)
- DEPRECATED: Use entities:create.
- Creates a new {@link games.stendhal.server.entity.sign.Sign} entity.
- Parameters:
- visible: (boolean
) (optional) If false
, the sign will not have a visual representation (default: true
).
- Returns:
- New {@link games.stendhal.server.entities.mapstuff.Sign} instance or {@link games.stendhal.server.entities.mapstuff.Reader} (visible=false).
entities:createShopSign
entities:createShopSign(name, title, caption, seller)
- DEPRECATED: Use entities:create.
- Creates a new {@link games.stendhal.server.entity.sign.ShopSign} entity.
- Parameters:
- name: (String
) The shop name.
- title: (String
) The sign title.
- caption: (String
) The caption above the table.
- seller: (boolean
) true
, if this sign is for items sold by an NPC (default: true
).
- Returns:
- New {@link games.stendhal.server.entity.mapstuff.sign.ShopSign} instance.
entities:summonCreature
entities:summonCreature(table)
- Summons a creature into the area.
- Parameters:
- table: Key-value table containing parameters for summoning creature.
- keys:
- name: (string
) Name of creature to be summoned.
- zone: (string
) Name of zone where creature should be summoned.
- x: (int
) Horizontal position of summon location.
- y: (int
) Vertical position of summon location.
- summoner: (string
) (optional) Name of entity doing the summoning (used for logging game events).
- raid: (bool
) (optional) Whether or not the creature should be a {@link games.stendhal.server.entity.creature.RaidCreature} instance (default: true).
Members:
entities.manager
This is simply the {@link games.stendhal.server.core.rule.defaultruleset.DefaultEntityManager entity manager} instance.
LuaSpeakerNPC
- Inherits: {@link games.stendhal.server.entity.npc.SpeakerNPC}
Public methods:
LuaSpeakerNPC:add
LuaSpeakerNPC:add(states, triggers, conditions, nextState, reply, actions)
- Additional method to support passing Lua data types as parameters.
- Parameters:
- states: The conversation state(s) the entity should be in to trigger response. Can be ConversationStates enum value or LuaTable
of ConversationStates.
- triggers: String
or LuaTable
of strings to trigger response.
- conditions: Conditions to check for this response. Can be [[StendhalAPI#ChatCondition|ChatCondition instance]], a LuaTable
of ChatCondition instances, or a function.
- nextState: (ConversationState
) Conversation state to set entity to after response.
- reply: (string
) The NPC's response or null
.
- actions: Actions to execute. Can be ChatAction instance, a LuaTable
of ChatAction instances, or a function.
LuaSpeakerNPC:setPath
entities:setPath(table, loop)
- Set a path for this entity to follow.
- Parameters:
- table: (table
) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}}
- loop: (boolean
) (optional) If true
, entity should loop around to restart path when reaching the end.
LuaSpeakerNPC:setPathAndPosition
entities:setPathAndPosition(table, loop)
- Set path & starting position for entity. The starting position is the first node in the path.
- Parameters:
- table: (table
) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}}
- loop: (boolean
) (optional) If true
, entity should loop around to restart path when reaching the end.
LuaSilentNPC
- Inherits: {@link games.stendhal.server.entity.npc.SilentNPC}
Public methods:
LuaSilentNPC:setPath
entities:setPath(table, loop)
- Set a path for this entity to follow.
- Parameters:
- table: (table
) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}}
- loop: (boolean
) (optional) If true
, entity should loop around to restart path when reaching the end.
LuaSilentNPC:setPathAndPosition
entities:setPathAndPosition(table, loop)
- Set path & starting position for entity. The starting position is the first node in the path.
- Parameters:
- table: (table
) Table of coordinates to set as path. Example: {{35, 79}, {35, 89}, {40, 89}}
- loop: (boolean
) (optional) If true
, entity should loop around to restart path when reaching the end.