From The Mana World
(about compression of colorisations) |
(added script variables (former tmw_item_attributes)) |
||
Line 28: | Line 28: | ||
{{sqltablerow | spell | INTEGER | | | spell of the rune }} | {{sqltablerow | spell | INTEGER | | | spell of the rune }} | ||
{{endsqltable}} | {{endsqltable}} | ||
Custom variables for use in item scripts | |||
{{beginsqltable|tmw_customitem_vars}} | |||
{{sqltablerow | id | INTEGER | PRIMARY KEY | | id of the custom item affected}} | |||
{{sqltablerow | key | TEXT | | | key }} | |||
{{sqltablerow | value | TEXT | | | value}} | |||
{{endsqltable}} | |||
== Netcode == | == Netcode == | ||
Line 49: | Line 57: | ||
;tmw.get_custom_item_modifiers(id): Returns a table of tables with the modifier data of the item. | ;tmw.get_custom_item_modifiers(id): Returns a table of tables with the modifier data of the item. | ||
;tmw.get_custom_item_runes(id): Returns a table of tables with the rune data of the item. | ;tmw.get_custom_item_runes(id): Returns a table of tables with the rune data of the item. | ||
;tmw.get_custom_item_var(id, key): Returns the string stored in "key" in the var table of the item | |||
;tmw.set_custom_item_var(id, key, value): Sets the string stored in "key" in the var table of the item. | |||
(function names not checked for consistency with the rest of the api) | (function names not checked for consistency with the rest of the api) |
Revision as of 18:28, 7 May 2009
Database
Layout for the SQL table to store customized equipment
|
Stat modifiers during item creation. Also includes elemental modifiers.
|
Spell runes engraved in the item.
|
Custom variables for use in item scripts
|
Netcode
- Item IDs are 32 bit unsigned integers
- Item IDs 1 - 65.535 are non-customized generic items which may exist multiple times
- Item IDs 65.536 - 4.294.967.296 are unique equipment items which may only exist once in the game.
- When sending the inventory data to a character, every high id is followed by its archetype-id and colorization string. All other information about the item can be requested on demand with an additional message.
- When sending look information about other characters the archetype-id and the colorisation are transfered
- Colorisations are sent in a compressed format:
- 1 Byte bitfield of the used colorisation channels. For each channel:
- 1 Byte for number of entries in the color ramp. for every entry:
- 3 Byte for red, green and blue component of color
- 1 Byte for number of entries in the color ramp. for every entry:
- 1 Byte bitfield of the used colorisation channels. For each channel:
Script API
- tmw.create_custom_item(archetype-id, color, name, inscription, durability, initial-durability, weight, value, runeslots)
- Creates a custom item in the server database. Returns the ID of the item.
- tmw.change_custom_item(id, archetype-id, color, name, inscription, durability, initial-durability, weight, value, runeslots)
- Changes the values of a custom item in the server database. Every argument may be NULL to leave it as it is.
- tmw.add_modifier_to_item(id, attribute, absolute, multiplier, time)
- Adds a modifier to an item.
- tmw.add_rune_to_item(id, spell)
- Adds a spell rune to an item.
- tmw.get_custom_item(id)
- Returns a table with the attributes of the item.
- tmw.get_custom_item_modifiers(id)
- Returns a table of tables with the modifier data of the item.
- tmw.get_custom_item_runes(id)
- Returns a table of tables with the rune data of the item.
- tmw.get_custom_item_var(id, key)
- Returns the string stored in "key" in the var table of the item
- tmw.set_custom_item_var(id, key, value)
- Sets the string stored in "key" in the var table of the item.
(function names not checked for consistency with the rest of the api)