rathena/doc/item_group.txt
Cydh Ramdh 5ce80555a7 Corrected guid implementation of item package in 51074a0
* GUID
  - `guid` field in official PackageItem.lua supposed to make item will be separated even item is stackable item.
  - Currently `guid` usage is using item Unique ID that generated when item with GUID flag is appear from package.
  - Some item containers in official PackageItem.lua are also separated, not stacked when player obtain it. Example when using atcommand "@item Xmas_Bless". For current implementation, the items are flagged in item_flag.txt (db folder) with flag 4.
  - `isNamed` field in item group is replaced by `GUID` and move the `isNamed` as new additional field. See doc/item_group.txt or db/re/item_package.txt.
* NPC:
  - Enabled npc/re/other/item_merge.txt and it's now usable.
* Script Command:
  - Added `mergeitem` to merge separated items in player's inventory. See doc/script_commands.txt.
* Misc:
  - Changed how to broadcast the item that obtained from package with flag `isAnnounced` to intif_broadcast, so it will be announced to all connected map-servers.
  - Added some items that flagged as 'item group container' in db/re/item_flag.txt

Signed-off-by: Cydh Ramdh <house.bad@gmail.com>
2014-11-30 13:52:52 +07:00

145 lines
5.5 KiB
Plaintext

//===== rAthena Documentation ================================
//= Item Database
//===== By: ==================================================
//= rAthena Dev Team
//===== Last Updated: ========================================
//= 20131223
//===== Description: =========================================
//= Explanation of the item_group.txt file and structure.
//============================================================
Items within an item group can be retrieved through the 'getrandgroupitem'
and 'getgroupitem' script commands. The table below explains which fields are
accessed in each.
+===============+====================+================+
| Field | 'getrandgroupitem' | 'getgroupitem' |
+===============+====================+================+
| GroupID | YES | YES |
+===============+====================+================+
| ItemID | YES | YES |
+===============+====================+================+
| Rate | YES | YES |
+===============+====================+================+
| Amount | no | YES |
+===============+====================+================+
| Random | no | YES |
+===============+====================+================+
| isAnnounced | no | YES |
+===============+====================+================+
| Duration | no | YES |
+===============+====================+================+
| GUID | no | YES |
+===============+====================+================+
| isBound | no | YES |
+===============+====================+================+
| isNamed | no | YES |
+===============+====================+================+
---------------------------------------
GroupID: See the "Item Group ID" section in 'db/const.txt'.
Supports IG_* constants.
---------------------------------------
ItemID: Available item_id that will be obtained from this item group.
Supports AegisName of the item.
---------------------------------------
Rate: Probability to get the item. Not a percentage value!
Examples:
IG_MyItemGroup,Knife,5
IG_MyItemGroup,Dagger,1
- Knife has chance 5/6 (83.3%) to be obtained
- Dagger has chance 1/6 (16.7%) to be obtained
---------------------------------------
Amount: Amount of item that will be obtained.
---------------------------------------
Random: Set this to '0' and the item will always be obtained ("must" item).
Random value will allocates where the item will be stored at random group.
(max. random group is 4, defined as MAX_ITEMGROUP_RANDGROUP in 'src/map/itemdb.c'.)
Example:
IG_MyItemGroup,Knife,0,1,0 //a "must" item
IG_MyItemGroup,Dagger,0,1,0 //a "must" item
IG_MyItemGroup,Stiletto,5,1,1 //random at group 1
IG_MyItemGroup,Stiletto_,2,1,1 //random at group 1
IG_MyItemGroup,Stiletto,5,1,2 //random at group 2
IG_MyItemGroup,Dagger_,4,1,2 //random at group 2
-> usage: 'getgroupitem(IG_MyItemGroup);'
- Player always gets 1x Knife and 1x Dagger
- Player has chance to get 1x Stiletto by chance 5/7 from group 1
- Player has chance to get 1x Stiletto_ by chance 2/7 from group 1
- Player has chance to get 1x Stiletto by chance 5/9 from group 2
- Player has chance to get 1x Dagger_ by chance 4/9 from group 2
-----------------------------------------
If the 'Rate' for random '0' is not 0 (more than 0), that means this item
also can be obtained as random item.
If you want the "must" item only can be obtained without random chance,
change the 'Rate' for this item to 0.
Example:
IG_MyItemGroup2,Knife,0,1,0
IG_MyItemGroup2,Dagger,5,1,0
IG_MyItemGroup2,Stiletto,2,1,1
-> usage: 'getgroupitem(IG_MyItemGroup2);'
- 1x Knife always be obtained
- 1x Dagger always be obtained and also has chance to get 1 more by
chance 5/7
- 1x Stiletto can be obtained by chance 2/7
result -> player will get 1x Knife, 1x Dagger, and 1x Dagger or 1x Stiletto
-> usage: 'getrandgroupitem(IG_MyItemGroup2,1);' (Ignores 'Amount' field)
- 1x Knife never be obtained!
- 1x Dagger can be obtained by chance 5/7
- 1x Stiletto can be obtained by chance 2/7
result -> player will get only 1x Dagger or 1x Stiletto
---------------------------------------
isAnnounced: If player obtained this item, it will be broadcast to the server.
"[Player] has won [Item] from 'Box'"
---------------------------------------
Duration: Makes the item a rental item, which will be expire in the given amount
of minutes. Not intended for use with stackable items.
---------------------------------------
GUID: Makes the given item(s) with Unique ID. Item will be stacked ONLY each group
when it obtained. Cannot be stacked with same item, even it's stackable item.
Example, there is Box (just call it Apple_Box) that contains 3x Apples with
GUID = 1. When Apples appear it will stack for each 3 even another 3x Apples
are appeared by same box. So it will be filled in inventory as:
3x Apples | 3x Apples | so on... | nx Apples (normal)
---------------------------------------
isBound: Binds the obtained item.
See 'getitembound' in 'doc/script_commands.txt' for valid bound types.
---------------------------------------
isNamed: Inscribes the item with the obtainer's name.
---------------------------------------
Supports to import other file, usage:
import: db/path/filename.txt
Example:
import: db/re/item_bluebox.txt