summaryrefslogtreecommitdiff
path: root/doc/item_db.txt
diff options
context:
space:
mode:
authorHaru <haru@dotalux.com>2013-11-08 07:18:40 +0100
committerHaru <haru@dotalux.com>2013-11-14 20:15:28 +0100
commited72a947a6c97804c1eef5b80bfa49d99f7d7586 (patch)
treef9196c943010e26c13c12d38c7a622d43301a4cd /doc/item_db.txt
parent7d0a63b72f93c05b302c08cfb19d5651cef1cdb8 (diff)
downloadhercules-ed72a947a6c97804c1eef5b80bfa49d99f7d7586.tar.gz
hercules-ed72a947a6c97804c1eef5b80bfa49d99f7d7586.tar.bz2
hercules-ed72a947a6c97804c1eef5b80bfa49d99f7d7586.tar.xz
hercules-ed72a947a6c97804c1eef5b80bfa49d99f7d7586.zip
Item DB overhaul
http://hercules.ws/board/topic/2954-item-db-file-structure-overhaul - Item db was changed to libconfig format. - This new format is larger than the original format, but it's less subject to conflicts when some items are edited and the file gets updated. - It is no longer necessary to specify fields with no value, and only the actually used fields are specified. - Items scripts (especially the long ones) are made more readable by splitting them into multiple lines, with proper indentation. - A converter perl script is provided in the tools directory (and a link to the web-based version of the same script canbe found in the above forum topic) - All of this was made possible thanks to Ind, Yommy. Signed-off-by: Haru <haru@dotalux.com>
Diffstat (limited to 'doc/item_db.txt')
-rw-r--r--doc/item_db.txt128
1 files changed, 95 insertions, 33 deletions
diff --git a/doc/item_db.txt b/doc/item_db.txt
index 145a17a33..d897e1511 100644
--- a/doc/item_db.txt
+++ b/doc/item_db.txt
@@ -5,17 +5,56 @@
//===== Current Version: =====================================
//= 20120904
//===== Description: =========================================
-//= Explanation of the item_db.txt file and structure.
+//= Explanation of the item_db.conf file and structure.
//============================================================
-ID: Item id
+item_db: (
+{
+ // =================== Mandatory fields ===============================
+ Id: ID (int)
+ AegisName: "Aegis_Name" (string, optional if Inherit: true)
+ Name: "Item Name" (string, optional if Inherit: true)
+ // =================== Optional fields ================================
+ Type: Item Type (int, defaults to 3 = etc item)
+ Buy: Buy Price (int, defaults to Sell * 2)
+ Sell: Sell Price (int, defaults to Buy / 2)
+ Weight: Item Weight (int, defaults to 0)
+ Atk: Attack (int, defaults to 0)
+ Matk: Magical Attack (int, defaults to 0, ignored in pre-re)
+ Def: Defense (int, defaults to 0)
+ Range: Attack Range (int, defaults to 0)
+ Slots: Slots (int, defaults to 0)
+ Job: Job mask (int, defaults to all jobs = 0xFFFFFFFF)
+ Upper: Upper mask (int, defaults to any = 0x3f)
+ Gender: Gender (int, defaults to both = 2)
+ Loc: Equip location (int, required value for equipment)
+ WeaponLv: Weapon Level (int, defaults to 0)
+ EquipLv: Equip required level (int, defaults to 0)
+ EquipLv: [min, max] (alternative syntax with min / max level)
+ Refine: Refineable (boolean, defaults to true)
+ View: View ID (int, defaults to 0)
+ Script: <"
+ Script
+ (it can be multi-line)
+ ">
+ OnEquipScript: <" OnEquip Script (can also be multi-line) ">
+ OnUnequipScript: <" OnUnequip Script (can also be multi-line) ">
+ // =================== Optional fields (item_db2 only) ================
+ Inherit: true/false (boolean, if true, inherit the values
+ that weren't specified, from item_db.conf,
+ else override it and use default values)
+},
+...
+)
+
+Id: Item id
AegisName: Server name to reference the item in scripts and lookups,
should use no spaces.
Name: Name in English for displaying as output for @ and script commands.
-Type:
+Type:
0 Healing item.
2 Usable item.
3 Etc item
@@ -34,15 +73,18 @@ Buy: Default buying price. When not specified, becomes double the sell price.
Sell: Default selling price. When not specified, becomes half the buy price.
-Weight: Item's weight. Each 10 is 1 weight.
+Weight: Item's weight. Each 10 is 1 weight. When not specified, becomes 0.
-ATK: Weapon's attack
+Atk: Weapon's attack. When not specified, becomes 0.
-DEF: Armor's defense
+Matk: Weapon's magical attack (only used in renewal mode, ignored in
+ pre-renewal). When not specified, becomes 0.
-Range: Weapon's attack range
+Def: Armor's defense. When not specified, becomes 0.
-Slots: Amount of slots the item possesses.
+Range: Weapon's attack range. When not specified, becomes 0.
+
+Slots: Amount of slots the item possesses. When not specified, becomes 0.
Job: Equippable jobs. Uses the following bitmask table:
@@ -77,20 +119,28 @@ Job: Equippable jobs. Uses the following bitmask table:
Dark Collector (2^28): 0x10000000
Kagerou/Oboro (2^29): 0x20000000
Rebellion (2^30): 0x40000000
+ Some other commonly used values:
+ All except novice: 0xFFFFFFFE
+ All (default value): 0xFFFFFFFF
Upper: Equippable upper-types. Uses the following bitmasks:
- 1: Normal jobs
- 2: Upper jobs
- 4: Baby jobs
- 8: Third jobs
- 16: Upper Third jobs
- 32: Baby Third jobs
-Under pre-re mode third classes are considered upper, making use of the 8 and above masks is therefore not necessary unless in renewal mode.
-
-Gender: Gender restriction. 0 is female, 1 is male, 2 for both.
-
-Loc: Equipment's placement. Values are:
-
+ Normal jobs: 0x01 (1)
+ Upper jobs: 0x02 (2)
+ Baby jobs: 0x04 (4)
+ Third jobs: 0x08 (8)
+ Upper Third jobs: 0x10 (16)
+ Baby Third jobs: 0x20 (32)
+
+ Under pre-re mode third classes are considered upper, making use of
+ the 8 and above masks is therefore not necessary unless in renewal
+ mode. When no value is specified, all classes (mask 0x3f) are able to
+ equip the item.
+
+Gender: Gender restriction. 0 is female, 1 is male, 2 for both (default value).
+
+Loc: Equipment's placement. A value needs to be spevified if the item is an
+ equipment piece. Values are:
+
2^0 001 = Lower Headgear
2^1 002 = Weapon
2^2 004 = Garment
@@ -105,18 +155,26 @@ Loc: Equipment's placement. Values are:
2^11 2048 = Costume Mid Headgear
2^12 4096 = Costume Low Headgear
2^13 8192 = Costume Garment/Robe
- 2^16 65536 = Shadow Armor
- 2^17 131072 = Shadow Weapon
- 2^18 262144 = Shadow Shield
- 2^18 524288 = Shadow Shoes
- 2^20 1048576 = Shadow Accessory 2
- 2^21 2097152 = Shadow Accessory 1
+ 2^16 65536 = Shadow Armor
+ 2^17 131072 = Shadow Weapon
+ 2^18 262144 = Shadow Shield
+ 2^18 524288 = Shadow Shoes
+ 2^20 1048576 = Shadow Accessory 2
+ 2^21 2097152 = Shadow Accessory 1
+
+WeaponLv: Weapon level. Becomes 0 when not specified.
-wLV: Weapon level.
+EquipLv: Base level required to be able to equip. It is possible to specify
+ two values, if an item has a maximum level, by using the following
+ syntax:
-eLV: Base level required to be able to equip.
+ EquipLv: [minLv, maxLv]
-Refineable: 1 if the item can be refined, 0 otherwise.
+ If only one value is specified, maxLv becomes the current server's
+ MAX_LEVEL. If no values are specified, minLv becomes 0.
+
+Refineable: true if the item can be refined, false otherwise. If no value is
+ specified, it defaults to true.
View: For normal items, defines a replacement view-sprite for the item (eg:
Making apples look like apple juice). The special case are weapons
@@ -160,8 +218,12 @@ View: For normal items, defines a replacement view-sprite for the item (eg:
Script: Script to execute when the item is used/equipped.
-OnEquip_Script: Script to execute when the item is equipped.
- Warning, not all item bonuses will work here as expected.
+OnEquipScript: Script to execute when the item is equipped.
+ Warning, not all item bonuses will work here as expected.
+
+OnUnequipScript: Script to execute when the item is unequipped.
+ Warning, not all item bonuses will work here as expected.
-OnUnequip_Script: Script to execute when the item is unequipped.
- Warning, not all item bonuses will work here as expected.
+Inherit: This can be used only in item_db2.conf, and if set to true, and the
+ item already exists in item_db.conf, all the missing fields will be
+ inherited from there rather than using their default values.