Introduction | About goal for operator hierarchy |
Browsing hierarchy | How to find operations server supports |
op | Base operator for all operators |
action | Base operator for operations that might have effects |
create | Create new things from nothing. |
combine | Combine existing objects into new objects |
divide | Divide existing object into pieces |
spell | Optional tag |
communicate | Base operator for all kind of communication |
talk | Talking |
set | Sets all attributes for existing entity |
change | Change existing attributes and/or create new attributes |
move | Change position |
attack | Generic attack operation |
use | Use something |
skill | Use some skill |
get | Generic operation for getting info about things |
perceive | Generic base operation for perceiving things by eyes, ears, etc... |
look | Looking at something |
listen | Listen something |
sniff | Sniff something |
touch | Touch something |
login | Logging into server |
delete | Delete something |
info | Info about something |
perception | Character perceives something |
sight | Character sees something |
appear | Something appears |
disappear | Something disappears |
sound | Character hears something |
smell | Character hears something |
sense | Character senses something (with fingers usually) |
imaginary | Placeholder for perceptions of unimplemented actions |
error | Something went wrong |
Base operator for operations that might have effects.
Create new things from nothing using this operator. Map editor is main user for this.
Parameters: entity describing object that is being created.
Example:
<op><id>create</id> <from>map-editor</from> <ent> <attr name="name">Axe</attr> <attr name="attack" type="int">3</attr> </ent> </op>
Combine existing objects into new objects. This is how normal characters create objects.
Parameters: entity describing object that is being created and list of entities that are used as raw material.
<op><id>combine</id> <ent> <type><id>axe</id></type> <attr name="name">Bjorn's axe</attr> </ent> <id>Wood_8898</id> <id>Iron_6578</id> </op>
Divide existing object into pieces. One of the pieces might be original object modified.
Parameters: id of original object and entities describing pieces.
<op><id>divide</id> <id>money12345</> <ent> <id href="money12345"/> <attr name="amount" type="int">10</attr> </ent> <ent> <attr name="amount" type="int">110</attr> </ent> </op>
Parameters: communication entity.
Example: see talk
Parameters: sentence(s) entity.
Example:
<op> <id>talk</id> <ent> <attr name="say">What has happened there?</attr> </ent> </op>Talking out of game is same, except you use player id instead of character id.
Sets all attributes for existing entity.
Parameters: entity with id and new attributes.
Example:
<op><id>set</id> <ent> <id>9899</id> <attr name="HP" type="int">50</attr> <attr name="height" type="float">1.8</attr> <attr name="width" type="float">0.3</attr> </ent> </op>
Change existing attributes and/or create new attributes. Difference with set is that anything previously defined attribute not touched here remain intact.
Parameters: entity with id and changed/new attributes.
Example:
<op><id>change</id> <ent> <id>9899</id> <attr name="HP" type="int">30</attr> </ent> </op>
Change position.
Parameters: entity with id and new position.
Example:
<op><id>move</id> <ent> <id>9899</id> <loc><id>11</id><coords>12.3,3,0</coords></loc> </ent> </op>More about movement here.
Derived from move.
Generic attack operation. Base operation for game specific attack operations (like swing, etc...).
Parameters: entity with id, new position and maybe some other attributes.
Example:
<op><id>attack</id> <ent> <id>Sword_99</id> <loc><id>Opponent_11</id><coords>0.2,0.2,1.5</coords></loc> </ent> </op>
Use something (tool, skill etc..)
Parameters: id for entity to be used.
Example:
<op><id>use</id> <id>magic_wand_24</id> </op>
Use some skill.
Parameters: id of skill and optionally target id's.
Example:
<op><id>skill</id> <id>woodworking</id> <id>target_wood_24903</id> </op>
Generic operation for getting info about things.
Parameters: id of target entity.
Example:
<op><id>get</id> <id>elf_type_id_45</id> </op>Browsing operator hierarchy example:
First start from operator hierarchy root (see op):
<op> <id>get</id> <id>op</id> </op>Answer might be:
<op> <id>info</id> <ent> <id>op</id> <instance> <id>action</id> <id>info</id> </instance> <attr name="description">Base operator for all operators</attr> </ent> </op>Then you can ask about action and info:
<op> <id>get</id> <id>action</id> </op> <op> <id>get</id> <id>info</id> </op>Etc...
Generic base operation for perceiving things by eyes, ears, etc...
Parameters: id of target entity.
Example:
<op><id>perceive</id> <id>elf_3545</id> </op>
Looking at something.
Parameters: id of target entity (optional).
Example:
<op><id>look</id> <id>elf_3545</id> </op>
Listen (something).
Parameters: id of target entity (optional).
Example:
<op><id>listen</id> <id>elf_3545</id> </op>
Sniff something.
Parameters: id of target entity (optional).
Example:
<op><id>sniff</id> <id>flower_3545</id> </op>
Touch something.
Parameters: id of target entity.
Example:
<op><id>touch</id> <id>cloth_3545</id> </op>
Operation for logging into server.
Parameters: entity with player name and password attribute.
Example:
<op><id>login</id> <ent> <id>JoeBlatz</id> <attr name="password">Rqv67.%</attr> </ent> </op>
Delete something.
Parameters: id of entity to be deleted.
Example:
<op><id>delete</id> <id>foo_bar_344</id> </op>
Info about something.
Parameters: info entity.
Example:
<op><id>info</id> <ent> <attr name="msg">Here is some info</attr> </ent> </op>
Character perceives something.
Parameters: perceived thing. Base operator for all kind of perceptions.
Example:
<op><id>perception</id> <id>tree_8374</id> </op>
Character sees something.
Parameters: object or event character sees.
Common example:
<op><id>sight</id> <ent> <id>grass1</id> <stamp>989.24</stamp> </ent> </op>Reply for looking at 'grass1':
<op><id>sight</id> <ent> <id>grass1</id> <type><id>terrain</id></type> <contains> <id>path1</id> <id>tree1</id> </contains> <attr name="description">Grass plains</attr> <attr name="polygon" type="coords"> <coords>0,0</coords><coords>10,0</coords><coords>10,10</coords> <coords>0,10</coords><coords>0,0</coords> </attr> </ent> </op>Event example:
<op><id>sight</id> <op><id>move</id> <ent> <id>orc_23498</id> <loc><id>grass1</id><coords>0.5,3.0,0.0</coords></loc> </ent> </op> </op>
Character sees something appearing: it literally appears or has it come in visible range.
Parameters: object or event character sees.
Example:
<op><id>appear</id> <ent> <id>grass1</id> <stamp>989.24</stamp> </ent> </op>
Character sees something disappearing: it literally disappears or has it gone too far to be visible.
Parameters: object or event character sees.
Example:
<op><id>disappear</id> <ent> <id>grass1</id> <stamp>989.24</stamp> </ent> </op>
Character hears something.
Parameters: thing character heard.
Example (every operation might have from, to and time tags, not only this operation):
<op><id>sound</id> <from>sentry_34</from> <ent> <attr name="say">What has happened there?</attr> </ent> </op>
Character smells something.
Parameters: thing character smells.
Example (every operation might have from, to and time tags, not only this operation):
<op><id>sound</id> <from>flower_34</from> <ent> <attr name="smell">sweet</attr> </ent> </op>
Character senses something (with fingers usually).
Parameters: thing character senses.
<op><id>sound</id> <ent> <id>cloth_34</id> <attr name="surface type">rough</attr> </ent> </op>
When something is not yet implemented in server, then character can pretend to do something ;-)
Parameters: event that is supposed to happen.
Example:
<op><id>imaginary</id> <id>some_unimplemented_action</id> </op>
Something went wrong.
Parameters: entity describing what went wrong.
Example:
<op><id>error</id> <ent> <attr name="op" type="id">foo</attr> <attr name="msg">Unknown operation</attr> </ent> </op>