From The Mana World
(format fix) |
(these are not primary keys in the database layout) |
||
Line 16: | Line 16: | ||
Stat modifiers during item creation. Also includes elemental modifiers. | Stat modifiers during item creation. Also includes elemental modifiers. | ||
{{beginsqltable|tmw_item_instances_modifiers}} | {{beginsqltable|tmw_item_instances_modifiers}} | ||
{{sqltablerow | id | INTEGER | | {{sqltablerow | id | INTEGER | | | id of the custom item affected}} | ||
{{sqltablerow | attribute | BYTE | | | affected character attribute or modified element}} | {{sqltablerow | attribute | BYTE | | | affected character attribute or modified element}} | ||
{{sqltablerow | absolute | INTEGER | | | linear attribute modifier}} | {{sqltablerow | absolute | INTEGER | | | linear attribute modifier}} | ||
Line 26: | Line 26: | ||
Spell runes engraved in the item. | Spell runes engraved in the item. | ||
{{beginsqltable|tmw_item_instances_runes}} | {{beginsqltable|tmw_item_instances_runes}} | ||
{{sqltablerow | id | INTEGER | | {{sqltablerow | id | INTEGER | | | id of the custom item affected}} | ||
{{sqltablerow | spell | INTEGER | | | spell of the rune }} | {{sqltablerow | spell | INTEGER | | | spell of the rune }} | ||
{{endsqltable}} | {{endsqltable}} | ||
Line 32: | Line 32: | ||
Custom variables for use in item scripts | Custom variables for use in item scripts | ||
{{beginsqltable|tmw_item_instances_vars}} | {{beginsqltable|tmw_item_instances_vars}} | ||
{{sqltablerow | id | INTEGER | | {{sqltablerow | id | INTEGER | | | id of the custom item affected}} | ||
{{sqltablerow | key | TEXT | | | key }} | {{sqltablerow | key | TEXT | | | key }} | ||
{{sqltablerow | value | TEXT | | | value}} | {{sqltablerow | value | TEXT | | | value}} |
Revision as of 08:44, 10 February 2010
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_item_instance(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_item_instance(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_instance(id, attribute, absolute, multiplier, stack, time)
- Adds a modifier to an item.
- tmw.add_rune_to_item_instance(id, spell)
- Adds a spell rune to an item.
- tmw.get_item_instance(id)
- Returns a table with the attributes of the item.
- tmw.get_item_instance_modifiers(id)
- Returns a table of tables with the modifier data of the item.
- tmw.get_item_instance_runes(id)
- Returns a table of tables with the rune data of the item.
- tmw.get_item_instance_var(id, key)
- Returns the string stored in "key" in the var table of the item
- tmw.set_item_instance_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)