11 KiB
entities
[TOC]
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.
- name: (
-
Returns:
- Logged in {@link games.stendhal.server.entity.player.Player} or
nil.
- Logged in {@link games.stendhal.server.entity.player.Player} or
-
Usage:
local player = entities:getPlayer("foo")
entities:getNPC
entities:getNPC(name)
- Retrieves an existing SpeakerNPC.
- Parameters:
- name: (
String) Name of NPC.
- name: (
- Returns:
- {@link games.stendhal.server.entity.npc.SpeakerNPC} instance or
null.
- {@link games.stendhal.server.entity.npc.SpeakerNPC} instance or
entities:getItem
entities:getItem(name)
- Retrieves a registered Item.
- Parameters:
- name: (
String) Name of the item.
- name: (
- Returns:
- {@link games.stendhal.server.entity.item.Item} instance or
nullif not a registered item.
- {@link games.stendhal.server.entity.item.Item} instance or
entities:getStackableItem
entities:getStackableItem(name)
- Retrieves a registered StackableItem.
- Parameters:
- name: (
String) Name of the item.
- name: (
- Returns:
- {@link games.stendhal.server.entity.item.StackableItem} instance or
nullif not a registered stackable item.
- {@link games.stendhal.server.entity.item.StackableItem} instance or
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
setPathmethod - 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) Iftrue, the entity's path should loop.
- entity: (
entities:setPathAndPosition
entities:setPathAndPosition(entity, table, loop)
- DEPRECATED: path can now be set by directly by calling the NPC's
setPathmethod - 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) Iftrue, the entity's path should loop.
- entity: (
entities:createSign
entities:createSign(visible)
- DEPRECATED: Use entities:create.
- Creates a new {@link games.stendhal.server.entity.sign.Sign} entity.
- Parameters:
- visible: (
boolean) (optional) Iffalse, the sign will not have a visual representation (default:true).
- visible: (
- 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).
- name: (
- 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).
- name: (
- keys:
- table: Key-value table containing parameters for summoning creature.
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
LuaTableof ConversationStates. - triggers:
StringorLuaTableof strings to trigger response. - conditions: Conditions to check for this response. Can be StendhalAPI#ChatCondition, a
LuaTableof ChatCondition instances, or a function. - nextState: (
ConversationState) Conversation state to set entity to after response. - reply: (
string) The NPC's response ornull. - actions: Actions to execute. Can be ChatAction instance, a
LuaTableof ChatAction instances, or a function.
- states: The conversation state(s) the entity should be in to trigger response. Can be ConversationStates enum value or
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) Iftrue, entity should loop around to restart path when reaching the end.
- table: (
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) Iftrue, entity should loop around to restart path when reaching the end.
- table: (
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) Iftrue, entity should loop around to restart path when reaching the end.
- table: (
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) Iftrue, entity should loop around to restart path when reaching the end.
- table: (