summaryrefslogtreecommitdiff
path: root/doc/item_db.txt
blob: d897e1511660da8fd74374bba41f02cbd7e21448 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
//===== Hercules Documentation ===============================
//= Item Database
//===== By: ==================================================
//= Hercules Dev Team
//===== Current Version: =====================================
//= 20120904
//===== Description: =========================================
//= Explanation of the item_db.conf file and structure.
//============================================================

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:
	0	Healing item.
	2	Usable item.
	3	Etc item
	4	Weapon
	5	Armor/Garment/Boots/Headgear
	6	Card
	7	Pet egg
	8	Pet equipment
	10	Ammo (Arrows/Bullets/etc)
	11	Usable with delayed consumption (item is lost from inventory
		after selecting a target, for use with skills and pet lures)
	18	Another delayed consume that requires user confirmation before
		using item.

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. When not specified, becomes 0.

Atk: Weapon's attack. When not specified, becomes 0.

Matk: Weapon's magical attack (only used in renewal mode, ignored in
      pre-renewal). When not specified, becomes 0.

Def: Armor's defense. When not specified, becomes 0.

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:

	(S.) Novice    (2^00): 0x00000001
	Swordman       (2^01): 0x00000002
	Magician       (2^02): 0x00000004
	Archer         (2^03): 0x00000008
	Acolyte        (2^04): 0x00000010
	Merchant       (2^05): 0x00000020
	Thief          (2^06): 0x00000040
	Knight         (2^07): 0x00000080
	Priest         (2^08): 0x00000100
	Wizard         (2^09): 0x00000200
	Blacksmith     (2^10): 0x00000400
	Hunter         (2^11): 0x00000800
	Assassin       (2^12): 0x00001000
	Unused         (2^13): 0x00002000
	Crusader       (2^14): 0x00004000
	Monk           (2^15): 0x00008000
	Sage           (2^16): 0x00010000
	Rogue          (2^17): 0x00020000
	Alchemist      (2^18): 0x00040000
	Bard/Dancer    (2^19): 0x00080000
	Unused         (2^20): 0x00100000
	Taekwon        (2^21): 0x00200000
	Star Gladiator (2^22): 0x00400000
	Soul Linker    (2^23): 0x00800000
	Gunslinger     (2^24): 0x01000000
	Ninja          (2^25): 0x02000000
	Gangsi         (2^26): 0x04000000
	Death Knight   (2^27): 0x08000000
	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:
	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
	2^3  008 = Accessory 1
	2^4  016 = Armor
	2^5  032 = Shield
	2^6  064 = Footgear
	2^7  128 = Accessory 2
	2^8  256 = Upper Headgear
	2^9  512 = Middle Headgear
	2^10 1024 = Costume Top Headgear
	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

WeaponLv: Weapon level. Becomes 0 when not specified.

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:

	EquipLv: [minLv, maxLv]

	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
      and ammo where this value indicates the weapon-class of the item.

	For weapons, the types are:
		0: bare fist
		1: Daggers
		2: One-handed swords
		3: Two-handed swords
		4: One-handed spears
		5: Two-handed spears
		6: One-handed axes
		7: Two-handed axes
		8: Maces
		9: Unused
		10: Staves
		11: Bows
		12: Knuckles
		13: Musical Instruments
		14: Whips
		15: Books
		16: Katars
		17: Revolvers
		18: Rifles
		19: Gatling guns
		20: Shotguns
		21: Grenade launchers
		22: Fuuma Shurikens

	For ammo, the types are:
		1: Arrows
		2: Throwable daggers
		3: Bullets
		4: Shells
		5: Grenades
		6: Shuriken
		7: Kunai
		8: Cannonballs
		9: Throwable Items (Sling Item)

Script: Script to execute when the item is used/equipped.

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.

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.