Difference between revisions of "GMCP"
From ThresholdRPG Wiki
(→StatusVars: fixing to be json instead of Lua) |
m (→Status: fixing to be json instead of lua) |
||
| Line 257: | Line 257: | ||
<pre> | <pre> | ||
Char.Status { | Char.Status { | ||
| − | age | + | "age": "510", |
| − | bank | + | "bank": "314660", |
| − | capacity | + | "capacity": "4792", |
| − | dead | + | "dead": "0", |
| − | expertise | + | "expertise": "152287", |
| − | foe_foe_name | + | "foe_foe_name": "none", |
| − | foe_health | + | "foe_health": "0", |
| − | foe_max_health | + | "foe_max_health": "100", |
| − | foe_name | + | "foe_name": "none", |
| − | fullname | + | "fullname": "Karahd the Magocrat", |
| − | gender | + | "gender": "female", |
| − | guild | + | "guild": "mage", |
| − | guild_level | + | "guild_level": "12", |
| − | harmonic | + | "harmonic": "chaos", |
| − | hb | + | "hb": "0", |
| − | heritage | + | "heritage": "scholar", |
| − | hlevel | + | "hlevel": "0", |
| − | inactive | + | "inactive": "0", |
| − | inactive_type | + | "inactive_type": "none", |
| − | invis | + | "invis": "0", |
| − | level | + | "level": "12", |
| − | lodge | + | "lodge": "otter", |
| − | lodge_level | + | "lodge_level": "11", |
| − | max_capacity | + | "max_capacity": "5000", |
| − | morality | + | "morality": "good", |
| − | name | + | "name": "Karahd", |
| − | primary_axis | + | "primary_axis": "harmonic", |
| − | race | + | "race": "elf", |
| − | session_login | + | "session_login": "1651011752", |
| − | tnl | + | "tnl": "100", |
| − | tummy | + | "tummy": "0", |
| − | xp | + | "xp": "10056981" |
| − | } | + | }</pre> |
| − | </pre> | ||
====Vitals==== | ====Vitals==== | ||
Revision as of 14:25, 21 February 2023
Client
Char
Buffs
List
- Requests a list of buffs currently applied to a character
- No accompanying message payload
Example:
Char.Buffs.List
Debuffs
List
- Requests a list of debuffs currently applied to a character
- No accompanying message payload
Example:
Char.Debuffs.List
Core
Hello
- Sends information about the MUD client and its version.
- May only be sent before successful login.
Example:
Core.Hello { "client": "MyMUDClient", "version": "1.2.34" }
Ping
- Ensures server is listening and GMCP is enabled.
- Message body is a number which indicates average ping time from previous requests, if available.
- Causes server to reply with a Core.Ping message in response.
Example:
Core.Ping 120
Supports
Set
- Notifies the server about packages supported by the client.
- If another Core.Supports.* package has been received earlier, the list is deleted and replaced with the new one.
- Message body is an array of strings, each consisting of the module name and version, separated by space.
- Module version is a positive non-zero integer.
- Most client implementations will only need to send Set once and won't need Add/Remove; exceptions are module implementations provided by plug-ins.
Example:
Core.Supports.Set [ "Char 1", "Char.Skills 1", "Char.Items 1" ]
Add
- Similar to Core.Supports.Set, but appends the supported module list to the one sent earlier.
- If no list was sent yet, the behaviour is identical to Core.Supports.Set.
- If the list includes module names that were already included earlier, the new version number takes precedence over the previously sent one, even if the newly sent number is lower.
- Message body format is identical to that of Core.Supports.Set.
Example:
Core.Supports.Add [ "Char.Vitals 1", "Char.Status 1" ]
Remove
- Removes specified modules from the list of supported modules.
- Message body format is similar to Core.Supports.Set, except that module version numbers are optional and ignored if given.
Example:
Core.Supports.Remove [ "Char", "Char.Skills", "Char.Items" ]
Server
Core
Goodbye
- Sent by server immediately before terminating a connection.
- Message body is a string to be shown to the user - it can explain the reason for the disconnect.
Example:
Core.Goodbye "Farewell, cruel world!"
Ping
- Sent in reply to Core.Ping from the client.
- No message body.
Example:
Core.Ping
Char
Afflictions
Supported afflictions:
- blind
- deaf
- immobile
- mute
- stun
Add
- Sent by the server when a new affliction is added to the character.
- Message is a string that is the affliction which has been added.
Example:
Char.Afflictions.Add "blind"
Remove
- Sent by the server when a new affliction is removed from the character.
- Message is a string that is the affliction which has been removed.
Example:
Char.Afflictions.Remove "blind"
Buffs
Add
- Sent by the server when a new temporary buff is applied to the character
- Message is an object that contains the unique buff id, the buff name, and the buff expiration timestamp
Example:
Char.Buffs.Add {
"buff_id" : "buff_1672791803550808142",
"expires" : "1672792523",
"name" : "Mystic Blink"
}
Remove
- Sent by the server when a temporary buff is removed from the character
- Message is a string corresponding with the unique buff id of the buff that is being removed
Example:
Char.Buffs.Remove "buff_1672791803550808142"
List
- Sent by the server in response to a client message of Char.Buffs.List
- Message is an object of objects containing the expiration time and the name for each unique buff id
Example:
Char.Buffs.List {
"buff_1672791803550808142" : {
"expires" : "1672792523",
"name" : "Mystic Blink"
},
"buff_1672791928616589234" : {
"expires" : "1672792828",
"name" : "Plucky Lucky"
}
}
Debuffs
Add
- Sent by the server when a new temporary debuff is applied to the character
- Message is an object that contains the unique debuff id, the buff name, and the debuff expiration timestamp
Example:
Char.Debuffs.Add {
"debuff_id" : "debuff_1672791803550889442",
"expires" : "1672792643",
"name" : "Astral Sickness"
}
Remove
- Sent by the server when a temporary debuff is removed from the character
- Message is a string corresponding with the unique debuff id of the debuff that is being removed
Example:
Char.Buffs.Remove "debuff_1672791803550889442"
List
- Sent by the server in response to a client message of Char.Debuffs.List
- Message is an object of objects containing the expiration time and the name for each unique debuff id
Example:
Char.Debuffs.List {
"debuff_1672791803550889442" : {
"expires" : "1672792643",
"name" : "Astral Sickness"
}
}
StatusVars
- Sent by server after a successful login.
- Contains a list of names of character status variables (level, race, etc) and their display captions.
- Message body is an object with keys containing the names of the status variables and values containing the captions to be displayed to the user.
Example:
Char.StatusVars {
"age": "Age",
"bank": "Bank balance",
"capacity": "Capacity",
"dead": "Dead",
"expertise": "Expertise",
"foe_foe_name": "Foe's target",
"foe_health": "Foe health",
"foe_max_health": "Foe max health",
"foe_name": "Current foe",
"fullname": "Full name",
"gender": "Gender",
"guild": "Guild",
"guild_level": "Guild level",
"harmonic": "Harmonic",
"hb": "Heal bank",
"heritage": "Heritage",
"hlevel": "Heritage level",
"inactive": "Inactive",
"inactive_type": "Inactive type",
"invis": "Invisible",
"level": "Level",
"lodge": "Lodge",
"lodge_level": "Lodge level",
"max_capacity": "Max capacity",
"morality": "Morality",
"name": "Name",
"primary_axis": "Primary axis",
"race": "Race",
"session_login": "Logged in",
"tnl": "To next level",
"tummy": "Fullness",
"xp": "Experience"
}
Status
- Sent by server immediately after the initial Char.StatusVars message and once every heartbeat thereafter.
- Contains the values of character status variables (level, race, etc).
- The full list of variables is only sent with the initial message, subsequent messages only contain changed variables.
- Message body is an object with keys containing the names of the variables, as defined by the Char.StatusVars message, and values containing the values of the variables.
Example:
Char.Status {
"age": "510",
"bank": "314660",
"capacity": "4792",
"dead": "0",
"expertise": "152287",
"foe_foe_name": "none",
"foe_health": "0",
"foe_max_health": "100",
"foe_name": "none",
"fullname": "Karahd the Magocrat",
"gender": "female",
"guild": "mage",
"guild_level": "12",
"harmonic": "chaos",
"hb": "0",
"heritage": "scholar",
"hlevel": "0",
"inactive": "0",
"inactive_type": "none",
"invis": "0",
"level": "12",
"lodge": "otter",
"lodge_level": "11",
"max_capacity": "5000",
"morality": "good",
"name": "Karahd",
"primary_axis": "harmonic",
"race": "elf",
"session_login": "1651011752",
"tnl": "100",
"tummy": "0",
"xp": "10056981"
}
Vitals
- Sent by server whenever a prompt is displayed to the player and whenever the character's vitals change.
- Contains basic information about character's vitality (hp, sp, ep).
- Message body is an object containing key-value pairs corresponding to character attributes.
- Each variable is also included in a string in the format name: cur/max.
Example:
Char.Vitals {
"hp" : 100,
"sp" : 100,
"ep" : 100,
"maxhp" : 200,
"maxsp" : 200,
"maxep" : 200,
"string" : "HP: 100/200 SP: 100/200 EP: 100/200"
}