Operations
There are two different type of operations:
Basic level (create,delete,set,get,info) and game specific
operations (summon,forge, etc...)
Server should send info operations in both format. Clients can
always interpret info about create,etc.. operations and if they
know more complex ones they can play suitable animation or NPC
can remember somebody stealing etc...
When client wants to do something or get info about something,
it sends some operation derived from action. Server usually
replies with some operation derived from info, which might embed
original action.
Example:
client: forge("jewel_sword","jewels","iron")
server: sight(forge("jewel_sword","jewels","iron")
server: info(create("jewel_sword",length=1.2, etc...))
server: info(set("iron",amount=current-something))
server: info(destroy("jewels"))
When sending operations use parent:"move" instead of id:"move"
Reason: so we can distinguish between operation and object that
tells what operation is about and all operations when used are
temporary objects anyway (maybe "magical_crunchy_voice_stepping" is not ;-)
Operation tree
- root_operation: This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
- action: -"-
- create: Map editor is main user for this in client side. Server uses this inside "info" operation to tell client about new things.
- combine: This is how normal characters create objects.
- divide: One of the pieces might be original object modified.
- communicate: -"-
- talk: need to relook at that 'Magic voice that steps on something crunchy and makes magic voice which...' -IRC log
- delete: -"-
- set: -"-
- get: -"-
- imaginary: -"-
- info: -"-
root_operation
Attribute list:
- arg (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_names (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['action', 'info'] C equivalent: char *[], void *[]
- description (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- from (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: root_operation C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['root'] C equivalent: char *[], void *[]
- refid (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Base operation for all operators
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg: {},
arg_names: ["arg"],
children: ["action", "info"],
description: "This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.",
from: "",
future_seconds: 0.0,
id: "root_operation",
objtype: "op_definition",
parents: ["root"],
refid: "",
refno: 0,
seconds: 0.0,
serialno: 0,
summary: "Base operation for all operators",
time_string: "",
to: ""
}
action
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['create', 'delete', 'set', 'get', 'imaginary'] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: action C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['root_operation'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
This is base operator for operations that might have effects.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
children: ["create", "delete", "set", "get", "imaginary"],
id: "action",
parents: ["root_operation"],
summary: "This is base operator for operations that might have effects."
}
create
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
entity describing object that is being created
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['combine', 'divide', 'communicate'] C equivalent: char *[], void *[]
- description (encoding:string): Value:
Map editor is main user for this in client side. Server uses this inside "info" operation to tell client about new things.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Creating axe instance
{
arg: {
e_attack: 3,
name: "Ordinary axe",
parents: ["axe"]
},
from: "map-editor",
objtype: "op",
parents: ["create"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: create C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['action'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Create new things from nothing using this operator.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "entity describing object that is being created",
children: ["combine", "divide", "communicate"],
description: "Map editor is main user for this in client side. Server uses this inside \"info\" operation to tell client about new things.",
example: [
"Creating axe instance",
{
arg: {
e_attack: 3,
name: "Ordinary axe",
parents: ["axe"]
},
from: "map-editor",
objtype: "op",
parents: ["create"]
}
],
id: "create",
parents: ["action"],
summary: "Create new things from nothing using this operator."
}
combine
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
first argument is entity describing object that is being created and rest argument(s) are entities that are used as raw material.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (encoding:list): Value: ['arg', 'args_source'] C equivalent: void *[]
- args_source (encoding:list): Value: [] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (encoding:string): Value:
This is how normal characters create objects.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Creating axe from wood and iron
{
arg: {
name: "Bjorn's axe",
parents: ["axe"]
},
args_source: [
{
id: "Wood_8898"
},
{
id: "Iron_6578"
}
],
objtype: "op",
parents: ["combine"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: combine C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['create'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Combine existing objects into new objects.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "first argument is entity describing object that is being created and rest argument(s) are entities that are used as raw material.",
arg_names: ["arg", "args_source"],
args_source: [],
children: [],
description: "This is how normal characters create objects.",
example: [
"Creating axe from wood and iron",
{
arg: {
name: "Bjorn's axe",
parents: ["axe"]
},
args_source: [
{
id: "Wood_8898"
},
{
id: "Iron_6578"
}
],
objtype: "op",
parents: ["combine"]
}
],
id: "combine",
parents: ["create"],
specification: "atlas_game",
summary: "Combine existing objects into new objects."
}
divide
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
id of original object and entities describing pieces.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (encoding:list): Value: ['arg', 'args_source'] C equivalent: void *[]
- args_destination (encoding:list): Value: [] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (encoding:string): Value:
One of the pieces might be original object modified.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
taking money from pile
{
arg: {
id: "money12345"
},
args_destination: [
{
e_amount: 10,
id: "money12345"
},
{
e_amount: 110
}
],
objtype: "op",
parents: ["divide"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: divide C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['create'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Divide existing object into pieces.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "id of original object and entities describing pieces.",
arg_names: ["arg", "args_source"],
args_destination: [],
children: [],
description: "One of the pieces might be original object modified.",
example: [
"taking money from pile",
{
arg: {
id: "money12345"
},
args_destination: [
{
e_amount: 10,
id: "money12345"
},
{
e_amount: 110
}
],
objtype: "op",
parents: ["divide"]
}
],
id: "divide",
parents: ["create"],
specification: "atlas_game",
summary: "Divide existing object into pieces."
}
communicate
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
communication entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['talk'] C equivalent: char *[], void *[]
- description (inherited from create) (encoding:string): Value:
Map editor is main user for this in client side. Server uses this inside "info" operation to tell client about new things.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
see talk
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: communicate C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['create'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Base operator for all kind of communication.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "communication entity",
children: ["talk"],
example: ["see talk"],
id: "communicate",
parents: ["create"],
specification: "atlas_game",
summary: "Base operator for all kind of communication."
}
talk
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
sentence(s) entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (encoding:string): Value:
need to relook at that 'Magic voice that steps on something crunchy and makes magic voice which...' -IRC log
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
say: "What has happened there?"
},
objtype: "op",
parents: ["talk"]
}
Talking out of game is same,
except you use player id instead of character id.
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: talk C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['communicate'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from communicate) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
used for talking
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "sentence(s) entity",
children: [],
description: "need to relook at that 'Magic voice that steps on something crunchy and makes magic voice which...' -IRC log",
example: [
{
arg: {
say: "What has happened there?"
},
objtype: "op",
parents: ["talk"]
},
"Talking out of game is same,
except you use player id instead of character id."
],
id: "talk",
parents: ["communicate"],
summary: "used for talking"
}
delete
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
id of entity to be deleted
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "foo_bar_344"
},
objtype: "op",
parents: ["delete"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: delete C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['action'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Delete something.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "id of entity to be deleted",
children: [],
example: [
{
arg: {
id: "foo_bar_344"
},
objtype: "op",
parents: ["delete"]
}
],
id: "delete",
parents: ["action"],
summary: "Delete something."
}
set
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['move'] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
This one sets HP=50, height=1.8, width=0.3 for object "9899"
{
arg: {
e_HP: 50,
e_height: 1.8,
e_width: 0.3,
id: "9899"
},
objtype: "op",
parents: ["set"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: set C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['action'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Sets attributes for existing entity.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
children: ["move"],
example: [
"This one sets HP=50, height=1.8, width=0.3 for object \"9899\"",
{
arg: {
e_HP: 50,
e_height: 1.8,
e_width: 0.3,
id: "9899"
},
objtype: "op",
parents: ["set"]
}
],
id: "set",
parents: ["action"],
summary: "Sets attributes for existing entity."
}
move
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
entity with id and new position
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (encoding:string): Value:
More about movement here
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Movement conversation example:
{
arg: {
id: "9899",
loc: "11",
pos: [12.3, 3.0, 0.0]
},
from: "9899",
objtype: "op",
parents: ["move"],
serialno: 123
}
Reply from server
{
arg: {
arg: {
id: "9899",
loc: "11",
pos: [12.3, 3.0, 0.0]
},
from: "9899",
objtype: "op",
parents: ["set", "move"],
refno: 123,
seconds: 19036033149.3,
serialno: 1230,
time_string: "0612-01-05 10:59:09.3"
},
from: "9899",
objtype: "op",
parents: ["info", "sight"],
refno: 123,
seconds: 19036033149.3,
serialno: 1231,
time_string: "0612-01-05 10:59:09.3",
to: "9899"
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: move C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['set'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Change position
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "entity with id and new position",
children: [],
description: "More about <a href=\"move.html\">movement here</a>",
example: [
"Movement conversation example:",
{
arg: {
id: "9899",
loc: "11",
pos: [12.3, 3.0, 0.0]
},
from: "9899",
objtype: "op",
parents: ["move"],
serialno: 123
},
"Reply from server",
{
arg: {
arg: {
id: "9899",
loc: "11",
pos: [12.3, 3.0, 0.0]
},
from: "9899",
objtype: "op",
parents: ["set", "move"],
refno: 123,
seconds: 19036033149.3,
serialno: 1230,
time_string: "0612-01-05 10:59:09.3"
},
from: "9899",
objtype: "op",
parents: ["info", "sight"],
refno: 123,
seconds: 19036033149.3,
serialno: 1231,
time_string: "0612-01-05 10:59:09.3",
to: "9899"
}
],
id: "move",
parents: ["set"],
specification: "atlas_game",
summary: "Change position"
}
get
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
id of target entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['perceive', 'login'] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "elf_type_id_45"
},
objtype: "op",
parents: ["get"]
}
Browsing operator hierarchy example:
First start from operator hierarchy root (root_operation):
{
arg: {
id: "root_operation"
},
objtype: "op",
parents: ["get"]
}
Answer might be:
{
arg: {
children: ["action", "info"],
id: "root_operation",
summary: "Base operator for all operatios"
},
objtype: "op",
parents: ["info"]
}
Then you can ask about action and info:
{
arg: {
id: "action"
},
objtype: "op",
parents: ["get"]
}
{
arg: {
id: "info"
},
objtype: "op",
parents: ["get"]
}
Etc...
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: get C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['action'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Generic operation for getting info about things.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "id of target entity",
children: ["perceive", "login"],
example: [
{
arg: {
id: "elf_type_id_45"
},
objtype: "op",
parents: ["get"]
},
"<h4>Browsing operator hierarchy example:</h4>
<p>
First start from operator hierarchy root (root_operation):",
{
arg: {
id: "root_operation"
},
objtype: "op",
parents: ["get"]
},
"Answer might be:",
{
arg: {
children: ["action", "info"],
id: "root_operation",
summary: "Base operator for all operatios"
},
objtype: "op",
parents: ["info"]
},
"Then you can ask about action and info:",
{
arg: {
id: "action"
},
objtype: "op",
parents: ["get"]
},
{
arg: {
id: "info"
},
objtype: "op",
parents: ["get"]
},
"Etc..."
],
id: "get",
parents: ["action"],
summary: "Generic operation for getting info about things."
}
perceive
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
object to be perceived
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['look', 'listen', 'sniff', 'touch'] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["perceive"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: perceive C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['get'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Generic base operation for perceiving things by eyes, ears, etc...
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "object to be perceived",
children: ["look", "listen", "sniff", "touch"],
example: [
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["perceive"]
}
],
id: "perceive",
parents: ["get"],
specification: "atlas_game",
summary: "Generic base operation for perceiving things by eyes, ears, etc..."
}
look
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
target entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["look"]
}
Conversation examples:
When you connect to
server you need to look to see things. Server sends all new
things that appear and all changes that you see (like
movement). But it's clients responsibility to make first
update of what it sees. Reason is that only client knows what
it has cached.
First look can leave argument out (it's by default empty): then server sends
appropriate top level object for current scheme.
{
from: "Bjorn_10",
objtype: "op",
parents: ["look"],
serialno: 5
}
Server reply:
{
arg: {
contains: ["tavern_2", "market_3", "home_4", "axe_5", "Nisuf_6", "Miyora_7", "home_8", "smithy_9", "Bjorn_10"],
id: "world_0",
parents: ["world"],
pos: [0.0, 0.0, 0.0],
stamp: 19035660000.0
},
from: "Bjorn_10",
objtype: "op",
parents: ["set", "sight"],
refno: 5,
seconds: 19035667864.4,
serialno: 100,
time_string: "0612-01-01 05:31:04.4",
to: "Bjorn_10"
}
Client looks at contains attribute of above object
and then looks for those objects in turn:
{
arg: {
id: "Nisuf_6"
},
from: "Bjorn_10",
objtype: "op",
parents: ["look"],
serialno: 6
}
And then server tells you more about it:
{
arg: {
e_drunkness: 0.0,
e_status: 1.0,
id: "Nisuf_6",
loc: "world_0",
name: "Nisuf",
parents: ["farmer"],
pos: [20.0, 50.0, 300.0],
stamp: 19035650000.0,
summary: "ordinary farmer"
},
from: "Nisuf_6",
objtype: "op",
parents: ["set", "sight"],
refno: 6,
seconds: 19035667864.4,
serialno: 105,
time_string: "0612-01-01 05:31:04.4",
to: "Bjorn_10"
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: look C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perceive'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perceive) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Looking at something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "target entity",
children: [],
example: [
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["look"]
},
"Conversation examples:<br> When you connect to
server you need to look to see things. Server sends all new
things that appear and all changes that you see (like
movement). But it's clients responsibility to make first
update of what it sees. Reason is that only client knows what
it has cached.
<p>First look can leave argument out (it's by default empty): then server sends
appropriate top level object for current scheme.",
{
from: "Bjorn_10",
objtype: "op",
parents: ["look"],
serialno: 5
},
"Server reply:",
{
arg: {
contains: ["tavern_2", "market_3", "home_4", "axe_5", "Nisuf_6", "Miyora_7", "home_8", "smithy_9", "Bjorn_10"],
id: "world_0",
parents: ["world"],
pos: [0.0, 0.0, 0.0],
stamp: 19035660000.0
},
from: "Bjorn_10",
objtype: "op",
parents: ["set", "sight"],
refno: 5,
seconds: 19035667864.4,
serialno: 100,
time_string: "0612-01-01 05:31:04.4",
to: "Bjorn_10"
},
"Client looks at contains attribute of above object
and then looks for those objects in turn:",
{
arg: {
id: "Nisuf_6"
},
from: "Bjorn_10",
objtype: "op",
parents: ["look"],
serialno: 6
},
"And then server tells you more about it:",
{
arg: {
e_drunkness: 0.0,
e_status: 1.0,
id: "Nisuf_6",
loc: "world_0",
name: "Nisuf",
parents: ["farmer"],
pos: [20.0, 50.0, 300.0],
stamp: 19035650000.0,
summary: "ordinary farmer"
},
from: "Nisuf_6",
objtype: "op",
parents: ["set", "sight"],
refno: 6,
seconds: 19035667864.4,
serialno: 105,
time_string: "0612-01-01 05:31:04.4",
to: "Bjorn_10"
}
],
id: "look",
parents: ["perceive"],
summary: "Looking at something"
}
listen
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
target entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["listen"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: listen C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perceive'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perceive) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Listen (something)
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "target entity",
children: [],
example: [
{
arg: {
id: "elf_3545"
},
objtype: "op",
parents: ["listen"]
}
],
id: "listen",
parents: ["perceive"],
summary: "Listen (something)"
}
sniff
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
target entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "flower_3545"
},
objtype: "op",
parents: ["sniff"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: sniff C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perceive'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perceive) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Sniff something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "target entity",
children: [],
example: [
{
arg: {
id: "flower_3545"
},
objtype: "op",
parents: ["sniff"]
}
],
id: "sniff",
parents: ["perceive"],
summary: "Sniff something"
}
touch
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
target entity
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "cloth_3545"
},
objtype: "op",
parents: ["touch"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: touch C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perceive'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perceive) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Touch something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "target entity",
children: [],
example: [
{
arg: {
id: "cloth_3545"
},
objtype: "op",
parents: ["touch"]
}
],
id: "touch",
parents: ["perceive"],
summary: "Touch something"
}
login
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
entity with player name and password attribute
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['logout'] C equivalent: char *[], void *[]
- description (encoding:string): Value:
For more about out of game atlas here
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "JoeBlatz",
password: "Rqv67.%"
},
objtype: "op",
parents: ["login"]
}
Conversation examples:
When you connect to
server you either need to have account already or make
one. Here is "start by creating account" -example:
{
arg: {
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["create"],
serialno: 1
}
What if you already had account by that name? Then
reply from server could be something like this (1 argument:
message, 2 argument: original operation):
{
arg: {
message: "Account id already exist",
op: {
arg: {
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["create"],
serialno: 1
}
},
objtype: "op",
parents: ["error"],
refno: 1,
seconds: 19036033149.3,
serialno: 4,
time_string: "0612-01-05 10:59:09.3"
}
For more about error operation see
error operation definition.
If account login went OK them you might receive something
like:
{
arg: {
characters: ["Bjorn_1"],
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["info"],
refno: 1,
seconds: 19036033149.3,
serialno: 2,
time_string: "0612-01-05 10:59:09.3"
}
If you don't have character, then you need to
create one. Creating character is similar to how you create
account.
{
arg: {
e_sex: "male",
name: "Nisuf",
parents: ["farmer"],
summary: "ordinary farmer"
},
objtype: "op",
parents: ["create"],
serialno: 2
}
Result of character creation is same as with account
creation, only resulting object differs.
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: login C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['get'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Operation for logging into server
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "entity with player name and password attribute",
children: ["logout"],
description: "For more about <a href=\"login.html\">out of game atlas here</a>",
example: [
{
arg: {
id: "JoeBlatz",
password: "Rqv67.%"
},
objtype: "op",
parents: ["login"]
},
"Conversation examples:<br> When you connect to
server you either need to have account already or make
one. Here is \"start by creating account\" -example:",
{
arg: {
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["create"],
serialno: 1
},
"What if you already had account by that name? Then
reply from server could be something like this (1 argument:
message, 2 argument: original operation):",
{
arg: {
message: "Account id already exist",
op: {
arg: {
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["create"],
serialno: 1
}
},
objtype: "op",
parents: ["error"],
refno: 1,
seconds: 19036033149.3,
serialno: 4,
time_string: "0612-01-05 10:59:09.3"
},
"For more about error operation see
<a href=\"#error\">error operation definition</a>.
<br><br>
If account login went OK them you might receive something
like:",
{
arg: {
characters: ["Bjorn_1"],
id: "player74",
parents: ["player"],
password: "player_password"
},
objtype: "op",
parents: ["info"],
refno: 1,
seconds: 19036033149.3,
serialno: 2,
time_string: "0612-01-05 10:59:09.3"
},
"If you don't have character, then you need to
create one. Creating character is similar to how you create
account.",
{
arg: {
e_sex: "male",
name: "Nisuf",
parents: ["farmer"],
summary: "ordinary farmer"
},
objtype: "op",
parents: ["create"],
serialno: 2
},
"Result of character creation is same as with account
creation, only resulting object differs."
],
id: "login",
parents: ["get"],
summary: "Operation for logging into server"
}
logout
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
entity with player name
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from login) (encoding:string): Value:
For more about out of game atlas here
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "JoeBlatz"
},
objtype: "op",
parents: ["logout"]
}
Most useful with server<->server communication
telling that certain connection is not anymore pertinent
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: logout C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['login'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Operation for logging out
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "entity with player name",
children: [],
example: [
{
arg: {
id: "JoeBlatz"
},
objtype: "op",
parents: ["logout"]
},
"Most useful with server<->server communication
telling that certain connection is not anymore pertinent"
],
id: "logout",
parents: ["login"],
summary: "Operation for logging out"
}
imaginary
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
event that is supposed to happen
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "some_unimplemented_action"
},
objtype: "op",
parents: ["imaginary"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: imaginary C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['action'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
When something is not yet implemented in server, then character can pretend to do something ;-)
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "event that is supposed to happen",
children: [],
example: [
{
arg: {
id: "some_unimplemented_action"
},
objtype: "op",
parents: ["imaginary"]
}
],
id: "imaginary",
parents: ["action"],
summary: "When something is not yet implemented in server, then character can pretend to do something ;-)"
}
info
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['perception', 'error'] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
e_msg: "Here is some info"
},
objtype: "op",
parents: ["info"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: info C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['root_operation'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
This is base operator for operations that tell you info about objects or events.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
children: ["perception", "error"],
example: [
{
arg: {
e_msg: "Here is some info"
},
objtype: "op",
parents: ["info"]
}
],
id: "info",
parents: ["root_operation"],
summary: "This is base operator for operations that tell you info about objects or events."
}
perception
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
perceived thing
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['sight', 'sound', 'smell', 'feel'] C equivalent: char *[], void *[]
- description (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Usually derived operations are used, general notes
on perceptions and actions:
- action.from: who made character to do something
(talk for example); usually character itself, but
not always, examples:
- atlas_irc_gateway does puppet characters it
has created for each nick from irc side
- admin teaches NPCs by making them to talk
itself
- possession by spell
- action.to: same as character always
- perception.from: who produced this perception:
always character itself (for example sound of talk)
(well... unless you are made to hallusinate ;-)
- perception.to: you (unless you are
server, then it's target to receive perception)
conclusion: should use perception.from instead of
inner action.from to decide who produced result
See sound and
sight
for actual examples
{
arg: {
id: "tree_8374"
},
objtype: "op",
parents: ["perception"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: perception C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['info'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character perceives something.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "perceived thing",
children: ["sight", "sound", "smell", "feel"],
description: "Base operator for all kind of perceptions",
example: [
"Usually derived operations are used, general notes
on perceptions and actions:
<ul>
<li><b>action.from:</b> who made character to do something
(talk for example); usually character itself, but
not always, examples:
<ul>
<li>atlas_irc_gateway does puppet characters it
has created for each nick from irc side
<li>admin teaches NPCs by making them to talk
itself
<li>possession by spell
</ul>
<li><b>action.to:</b> same as character always
<li><b>perception.from:</b> who produced this perception:
always character itself (for example sound of talk)
(well... unless you are made to hallusinate ;-)
<li><b>perception.to:</b> you (unless you are
server, then it's target to receive perception)
</ul>
<b>conclusion:</b> should use perception.from instead of
inner action.from to decide who produced result
<br>
See <a href=\"#sound\">sound</a> and
<a href=\"#sight\">sight</a>
for actual examples
",
{
arg: {
id: "tree_8374"
},
objtype: "op",
parents: ["perception"]
}
],
id: "perception",
parents: ["info"],
specification: "atlas_game",
summary: "Character perceives something."
}
sight
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
object or event character sees
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: ['appearance', 'disappearance'] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
See perception operation too
Common example:
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["sight"]
}
Reply for looking at 'grass1':
{
arg: {
area: [
["grass1.p.0", "grass1.p.1", "grass1.p.2"],
["grass1.p.0", "grass1.p.2", "grass1.p.3"]
],
contains: ["path1", "tree1"],
id: "grass1",
p: [
[0.0, 0.0],
[10.0, 0.0],
[10.0, 10.0],
[0.0, 10.0]
],
parents: ["terrain"],
summary: "Grass plains"
},
objtype: "op",
parents: ["sight"]
}
Event example:
{
arg: {
arg: {
id: "orc_23498",
loc: "grass1",
pos: [0.5, 3.0, 0.0]
},
objtype: "op",
parents: ["move"]
},
objtype: "op",
parents: ["sight"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: sight C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perception'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character sees something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "object or event character sees",
children: ["appearance", "disappearance"],
example: [
"See <a href=\"#perception\">perception</a> operation too<br>
Common example:",
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["sight"]
},
"Reply for looking at 'grass1':",
{
arg: {
area: [
["grass1.p.0", "grass1.p.1", "grass1.p.2"],
["grass1.p.0", "grass1.p.2", "grass1.p.3"]
],
contains: ["path1", "tree1"],
id: "grass1",
p: [
[0.0, 0.0],
[10.0, 0.0],
[10.0, 10.0],
[0.0, 10.0]
],
parents: ["terrain"],
summary: "Grass plains"
},
objtype: "op",
parents: ["sight"]
},
"Event example:",
{
arg: {
arg: {
id: "orc_23498",
loc: "grass1",
pos: [0.5, 3.0, 0.0]
},
objtype: "op",
parents: ["move"]
},
objtype: "op",
parents: ["sight"]
}
],
id: "sight",
parents: ["perception"],
summary: "Character sees something"
}
appearance
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
object or event character sees
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["appearance"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: appearance C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['sight'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character sees something appearing: it literally appears or has it come in visible range
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "object or event character sees",
children: [],
example: [
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["appearance"]
}
],
id: "appearance",
parents: ["sight"],
summary: "Character sees something appearing: it literally appears or has it come in visible range"
}
disappearance
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
object or event character sees
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["disappearance"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: disappearance C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['sight'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character sees something disappearing: it literally disappears or has it gone too far to be visible
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "object or event character sees",
children: [],
example: [
{
arg: {
id: "grass1",
stamp: 989.24
},
objtype: "op",
parents: ["disappearance"]
}
],
id: "disappearance",
parents: ["sight"],
summary: "Character sees something disappearing: it literally disappears or has it gone too far to be visible"
}
sound
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
thing character heard
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
See perception operation too
Example (every operation might have from,
to and time tags, not only this operation):
{
arg: {
arg: {
say: "What has happened there?"
},
objtype: "op",
parents: ["talk"]
},
from: "sentry_34",
objtype: "op",
parents: ["sound"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: sound C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perception'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character hears something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "thing character heard",
children: [],
example: [
"See <a href=\"#perception\">perception</a> operation too<br>
Example (every operation might have from,
to and time tags, not only this operation):",
{
arg: {
arg: {
say: "What has happened there?"
},
objtype: "op",
parents: ["talk"]
},
from: "sentry_34",
objtype: "op",
parents: ["sound"]
}
],
id: "sound",
parents: ["perception"],
summary: "Character hears something"
}
smell
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
thing character smells
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Example (every operation might have from,
to and time tags, not only this operation):
{
arg: {
e_smell: "sweet"
},
from: "flower_34",
objtype: "op",
parents: ["smell"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: smell C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perception'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character smells something
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "thing character smells",
children: [],
example: [
"Example (every operation might have from,
to and time tags, not only this operation):",
{
arg: {
e_smell: "sweet"
},
from: "flower_34",
objtype: "op",
parents: ["smell"]
}
],
id: "smell",
parents: ["perception"],
summary: "Character smells something"
}
feel
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
thing character touches
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from perception) (encoding:string): Value:
Base operator for all kind of perceptions
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
{
arg: {
e_surface_type: "rough",
id: "cloth_34"
},
objtype: "op",
parents: ["feel"]
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: feel C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['perception'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from perception) (encoding:string): Value: atlas_game Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Character feels something (with fingers usually)
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "thing character touches",
children: [],
example: [
{
arg: {
e_surface_type: "rough",
id: "cloth_34"
},
objtype: "op",
parents: ["feel"]
}
],
id: "feel",
parents: ["perception"],
summary: "Character feels something (with fingers usually)"
}
error
Attribute list:
- arg (inherited from root_operation) (encoding:string): Value: Object() C equivalent: struct map {char *;void *}; map*
- arg_description (encoding:string): Value:
objects describing what went wrong
First argument is error entity which describes error.
Second argument is operation which is wrong (not given if not relevant).
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- arg_names (inherited from root_operation) (encoding:list): Value: ['arg'] C equivalent: void *[]
- children (encoding:list): Value: [] C equivalent: char *[], void *[]
- description (inherited from root_operation) (encoding:string): Value:
This is base operation for all other
operations and defines basic attributes. You can use this as
starting point for browsing whole operation hiearchy. refno refers
to operation this is reply for. In examples all attributes that
are just as examples (and thus world specific) are started with 'e_'.
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- example (encoding:string): Value:
Client sent "foo" -operation which server rejects
{
arg: {
message: "Uknown operation foo",
no: 42,
op: {
arg: {
e_bar: "do some foo thing by using bar"
},
objtype: "op",
parents: ["foo"],
serialno: 123
}
},
objtype: "op",
parents: ["error"],
refno: 123
}
C equivalent: void *[]
- from (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- future_seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- id (encoding:string): Value: error C equivalent roughly: for storing id name: char *, as pointer: void *
- interface (inherited from root) (encoding:string): Value: base_interface C equivalent roughly: for storing id name: char *, as pointer: void *
- name (inherited from root) (encoding:string): Value: Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- objtype (inherited from root_operation) (encoding:string): Value: op_definition Examples of values: "op", "class", "type".
- parents (encoding:list): Value: ['info'] C equivalent: char *[], void *[]
- refid (inherited from root_operation) (encoding:string): Value: C equivalent roughly: for storing id name: char *, as pointer: void *
- refno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- seconds (inherited from root_operation) (encoding:float): Value: 0.0 C equivalent roughly: double
- serialno (inherited from root_operation) (encoding:int): Value: 0 C equivalent: 32bit int
- specification (inherited from root) (encoding:string): Value: atlas Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- stamp (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was
changed in this object. Any scheme is ok as long as newer numbers
are bigger than older stamps. For example, seconds since Jan 1st,
1970 or total game cycles would both be valid.
- stamp_inherit (inherited from root) (encoding:float): Value: 0.0 Value should be reflect when something was changed in some object that inherits from this.
- summary (encoding:string): Value:
Something went wrong
Any character is allowed, including 8 bit control characters and '\0', C equivalent: {int len; char *data;}, C++: string
- time_string (inherited from root_operation) (encoding:string): Value: There can be variation in length of different fields if using some weird calendar
- to (inherited from root_operation) (encoding:string): Value: When client sends operation to it's character
in server, then you can omit this because server can assume
character can only control directly it's body.
Bach version:
{
arg_description: "objects describing what went wrong<br>
First argument is error entity which describes error.
Second argument is operation which is wrong (not given if not relevant).",
children: [],
example: [
"Client sent \"foo\" -operation which server rejects",
{
arg: {
message: "Uknown operation foo",
no: 42,
op: {
arg: {
e_bar: "do some foo thing by using bar"
},
objtype: "op",
parents: ["foo"],
serialno: 123
}
},
objtype: "op",
parents: ["error"],
refno: 123
}
],
id: "error",
parents: ["info"],
summary: "Something went wrong"
}
Aloril
Last modified: Fri Dec 10 19:38:56 EET 1999