summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorKenpachi2k13 <3476227+Kenpachi2k13@users.noreply.github.com>2020-05-03 09:14:56 +0200
committerGitHub <noreply@github.com>2020-05-03 09:14:56 +0200
commitcd593de68b02d77766fcb3b7b2a869096ceb7183 (patch)
tree2245738ce70d50031b927fed560815458658c7c2 /doc
parentf70a887b188dbd88c45c9992cd18a33b6886005f (diff)
parentf40cc839413cc82aed445d39cc3aa204dce87780 (diff)
downloadhercules-cd593de68b02d77766fcb3b7b2a869096ceb7183.tar.gz
hercules-cd593de68b02d77766fcb3b7b2a869096ceb7183.tar.bz2
hercules-cd593de68b02d77766fcb3b7b2a869096ceb7183.tar.xz
hercules-cd593de68b02d77766fcb3b7b2a869096ceb7183.zip
Merge branch 'master' into cell_noskill
Diffstat (limited to 'doc')
-rw-r--r--doc/atcommands.txt116
-rw-r--r--doc/constants.md4140
-rw-r--r--doc/effect_list.md4
-rw-r--r--doc/item_bonus.md2
-rw-r--r--doc/mob_db.txt94
-rw-r--r--doc/mob_db_mode_list.md2
-rw-r--r--doc/option_drop_group.md97
-rw-r--r--doc/permissions.md3
-rw-r--r--doc/pet_db.txt196
-rw-r--r--doc/quest_variables.md2
-rw-r--r--doc/sample/getiteminfo.txt23
-rw-r--r--doc/script_commands.txt955
12 files changed, 3715 insertions, 1919 deletions
diff --git a/doc/atcommands.txt b/doc/atcommands.txt
index b455d9151..65c3bb091 100644
--- a/doc/atcommands.txt
+++ b/doc/atcommands.txt
@@ -584,6 +584,12 @@ Opens the Identification window if any unappraised items are in your inventory.
---------------------------------------
+@identifyall
+
+Identifies all unappraised items in your inventory.
+
+---------------------------------------
+
@trade <player name>
Opens the trade window with the specified player.
@@ -672,17 +678,30 @@ Example:
@refine <equip position> <+/- amount>
Refines an equipped item by the specified amount.
-0: All Equipment
-1: Lower Headgear
-2: Right Hand
+-3: Refine All Equip (Shadow)
+-2: Refine All Equip (Costume)
+-1: Refine All Equip (General)
+1: Headgear (Low)
+2: Hand (Right)
4: Garment
-8: Left Accessory
+8: Accessory (Left)
16: Body Armor
-32: Left Hand
+32: Hand (Left)
64: Shoes
-128: Right Accessory
-256: Top Headgear
-512: Mid Headgear
+128: Accessory (Right)
+256: Headgear (Top)
+256: Headgear (Mid)
+1024: Costume Headgear (Top)
+2048: Costume Headgear (Mid)
+4096: Costume Headgear (Low)
+8192: Costume Garment
+65536: Shadow Armor
+131072: Shadow Weapon
+262144: Shadow Shield
+524288: Shadow Shoes
+1048576: Shadow Accessory (Right)
+2097152: Shadow Accessory (Left)
+2097152: Shadow Accessory (Left)
---------------------------------------
@@ -692,9 +711,23 @@ Repairs all broken items in your inventory.
---------------------------------------
-@dropall
+@dropall {<item type>}
+
+Drops all items based on the item type.
-Drops all inventory and equipped items onto the floor.
+Valid item types:
+ -1 = All Items (default)
+ 0 = Healing Items
+ 2 = Useable Items
+ 3 = Etc Items
+ 4 = Weapons
+ 5 = Armors
+ 6 = Cards
+ 7 = Pet Eggs
+ 8 = Pet Armors
+ 10 = Ammunition Items
+ 11 = Delayed-Consumable Items
+ 18 = Cash Items
---------------------------------------
@@ -859,6 +892,12 @@ Resets a Star Gladiator's marked maps.
---------------------------------------
+@hatereset
+
+Resets a Star Gladiator's hatred targets.
+
+---------------------------------------
+
@jobchange <job name/ID>
Changes your job.
@@ -929,10 +968,19 @@ If no position is given, the command defaults to headgear.
---------------------------------------
-@fakename {<text string>}
+@fakename {<options>} {<fake_name>}
-Temporarily changes name to the specified string.
-If no string is given, the character's real name will be re-applied.
+Temporarily changes the character's name to <fake_name>.
+If no parameter is passed, the character's real name will be re-applied.
+The <options> parameter is used, to modify which names will be displayed.
+The fake name will always be displayed, regardless of <options>.
+Valid <options> flags (combinable):
+ 0 - Only the fake name is displayed. (Default value.)
+ 1 - Display party name.
+ 2 - Display guild name.
+ 4 - Display guild position.
+ 8 - Display clan position.
+ 16 - Display title.
---------------------------------------
@@ -1026,6 +1074,12 @@ Changes the gender attached to the player's account.
---------------------------------------
+@changecharsex
+
+Changes the gender attached to the player's character.
+
+---------------------------------------
+
@marry <player 1> <player 2>
@divorce <player>
@@ -1228,21 +1282,47 @@ Example:
---------------------------------------
-@unloadnpc <npc name>
+@unloadnpc <NPC_name> {<flag>}
-Unloads an NPC.
+Unloads a NPC.
+Flag:
+ 0 - do not unload mobs spawned by NPCs in file
+ 1 - unload mobs spawned by NPCs in file
+ Default is 1; every number other than 0 will be treaten as 1.
+ Mobs that were spawned with monster/areamonster/guardian/bg_monster/atcommand("@monster xy") are affected.
+Note:
+ Be aware that some changes made by NPC are not reverted on unload.
+ Please use the OnNPCUnload label to clean things up by yourself. Commonly relevant for these script commands:
+ -> setmapflagnosave, setmapflag, removemapflags, setbattleflag, setcell, setwall
+ -> agitstart/agitstart2, agitend/agitend2, gvgon, gvgoff, pvpon, pvpoff
+ -> addmonsterdrop, setitemscript, npcshopitem, npcshopadditem, npcshopdelitem, hateffect, disguise
+ -> pcfollow, pcblockmove, setpcblock, setnpcdir, navigateto, viewpoint, add_group_command, skill/addtoskill
+ -> instance and battleground related stuff (excepting bg_monster)
Example:
-@unloadnpc Job Master
+@unloadnpc Job Master 0
---------------------------------------
-@unloadnpcfile <path>
+@unloadnpcfile <path> {<flag>}
Unloads all NPCs in a file.
+Flag: See @unloadnpc
+Note: See @unloadnpc
+
+Example:
+@unloadnpcfile npc/custom/jobmaster.txt 0
+
+---------------------------------------
+
+@reloadnpc <path> {<flag>}
+
+Unloads all NPCs in a file and reload it again.
+Flag: See @unloadnpc
+Note: See @unloadnpc
Example:
-@unloadnpcfile npc/custom/jobmaster.txt
+@reloadnpc npc/custom/jobmaster.txt 0
---------------------------------------
diff --git a/doc/constants.md b/doc/constants.md
index fb868e847..25880c29e 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -362,6 +362,8 @@
- `mf_noviewid`: 56
- `mf_pairship_startable`: 57
- `mf_pairship_endable`: 58
+- `mf_nostorage`: 59
+- `mf_nogstorage`: 60
### Cell Properties
@@ -1328,6 +1330,28 @@
- `SC_DAILYSENDMAILCNT`: 653
- `SC_DRESS_UP`: 652
- `SC_CLAN_INFO`: 654
+- `SC_SIT`: 655
+- `SC_MOON`: 656
+- `SC_TING`: 657
+- `SC_DEVIL1`: 658
+- `SC_RIDING`: 659
+- `SC_FALCON`: 660
+- `SC_WUGRIDER`: 661
+- `SC_POSTDELAY`: 662
+- `SC_ON_PUSH_CART`: 663
+- `SC_RESIST_PROPERTY_WATER`: 664
+- `SC_RESIST_PROPERTY_GROUND`: 665
+- `SC_RESIST_PROPERTY_FIRE`: 666
+- `SC_RESIST_PROPERTY_WIND`: 667
+- `SC_CLIENT_ONLY_EQUIP_ARROW`: 668
+- `SC_MADOGEAR`: 669
+- `SC_POPECOOKIE`: 670
+- `SC_VITALIZE_POTION`: 671
+- `SC_SKF_MATK`: 672
+- `SC_SKF_ATK`: 673
+- `SC_SKF_ASPD`: 674
+- `SC_SKF_CAST`: 675
+- `SC_ALMIGHTY`: 676
### Emotes
@@ -1413,13 +1437,13 @@
- `e_panic`: 79
- `e_whisp`: 80
-### petstat
+### petstat - deprecated, use *getpetinfo
-- `PET_CLASS`: 1
-- `PET_NAME`: 2
-- `PET_LEVEL`: 3
-- `PET_HUNGRY`: 4
-- `PET_INTIMATE`: 5
+- `PET_CLASS`: 1 **(DEPRECATED)**
+- `PET_NAME`: 2 **(DEPRECATED)**
+- `PET_LEVEL`: 3 **(DEPRECATED)**
+- `PET_HUNGRY`: 4 **(DEPRECATED)**
+- `PET_INTIMATE`: 5 **(DEPRECATED)**
### getmonsterinfo
@@ -1446,6 +1470,7 @@
- `MOB_ELEMENT`: 20
- `MOB_MODE`: 21
- `MOB_MVPEXP`: 22
+- `MOB_DMG_TAKEN_RATE`: 23
### mercenary guilds
@@ -3491,11 +3516,38 @@
- `4_M_POPFESTA`: 10251
- `4_BONFIRE`: 10252
- `4_PCCOUNT`: 10253
+- `4_LAVAGOLEM`: 10254
+- `4_F_IA`: 10255
+- `4_LOCKE`: 10256
+- `4_LIL_LIF`: 10257
+- `4_LIL_LIF2`: 10258
+- `4_F_DRAGONHAT`: 10259
+- `4_M_DRAGONHAT`: 10260
+- `JP_NPC02`: 10261
+- `JP_NPC03`: 10262
+- `JP_NPC04`: 10263
+- `JP_NPC05`: 10264
+- `JP_NPC06`: 10265
+- `JP_NPC07`: 10266
+- `JP_NPC08`: 10267
+- `JP_NPC09`: 10268
+- `JP_NPC10`: 10269
+- `4_FIRERING`: 10270
- `4_SCATLETON`: 10271
+- `4_JP_AB_NPC_001`: 10272
+- `4_JP_AB_NPC_002`: 10273
+- `4_JP_AB_NPC_003`: 10274
+- `4_JP_AB_NPC_004`: 10275
+- `4_JP_AB_NPC_005`: 10276
+- `4_JP_AB_NPC_006`: 10277
+- `4_JP_AB_NPC_007`: 10278
+- `4_JP_AB_NPC_008`: 10279
- `4_JJAK`: 10280
- `4_M_SNOWMAN_B`: 10281
- `4_M_SNOWMAN_R`: 10282
- `4_M_SNOWMAN_G`: 10283
+- `WARPEFFECTNPC`: 10284
+- `4_HEN`: 10285
- `4_F_DANGDANG`: 10286
- `4_M_DANGDANG`: 10287
- `4_F_DANGDANG1`: 10288
@@ -3520,6 +3572,39 @@
- `4_ED_OSCAR`: 10307
- `4_ED_ORB`: 10308
- `4_ED_FENCE`: 10309
+- `4_M_ANDREA`: 10310
+- `4_M_ANDREA_D`: 10311
+- `4_F_ANES`: 10312
+- `4_F_ANES_D`: 10313
+- `4_M_SILVANO`: 10314
+- `4_M_SILVANO_D`: 10315
+- `4_F_CECILIA`: 10316
+- `4_F_CECILIA_D`: 10317
+- `4_M_MD_SEYREN`: 10318
+- `4_M_MD_EREMES`: 10319
+- `4_M_MD_HARWORD`: 10320
+- `4_F_MD_MAGALETA`: 10321
+- `4_F_MD_SHECIL`: 10322
+- `4_F_MD_KATRINN`: 10323
+- `4_M_MD_SEYREN_H`: 10324
+- `4_M_MD_EREMES_H`: 10325
+- `4_M_MD_HARWORD_H`: 10326
+- `4_F_MD_MAGALETA_H`: 10327
+- `4_F_MD_SHECIL_H`: 10328
+- `4_F_MD_KATRINN_H`: 10329
+- `4_M_MD_SEYREN_D`: 10330
+- `4_M_MD_EREMES_D`: 10331
+- `4_M_MD_HARWORD_D`: 10332
+- `4_F_MD_MAGALETA_D`: 10333
+- `4_F_MD_SHECIL_D`: 10334
+- `4_F_MD_KATRINN_D`: 10335
+- `4_F_MD_YGNIZEM`: 10336
+- `4_F_ERENE`: 10337
+- `4_M_EINCPTMINER`: 10338
+- `4_F_EINRESERCHER`: 10339
+- `4_F_REINDEER`: 10340
+- `4_PIGOCTO`: 10341
+- `4_JP_16TH`: 10343
### Mercenary IDs
@@ -3768,66 +3853,6 @@
- `SEX_MALE`: 1
- `SEX_ANY`: 2
-### Script Unit Data Types
-
-- `UDT_TYPE`: 0
-- `UDT_SIZE`: 1
-- `UDT_LEVEL`: 2
-- `UDT_HP`: 3
-- `UDT_MAXHP`: 4
-- `UDT_SP`: 5
-- `UDT_MAXSP`: 6
-- `UDT_MASTERAID`: 7
-- `UDT_MASTERCID`: 8
-- `UDT_MAPIDXY`: 9
-- `UDT_WALKTOXY`: 10
-- `UDT_SPEED`: 11
-- `UDT_MODE`: 12
-- `UDT_AI`: 13
-- `UDT_SCOPTION`: 14
-- `UDT_SEX`: 15
-- `UDT_CLASS`: 16
-- `UDT_HAIRSTYLE`: 17
-- `UDT_HAIRCOLOR`: 18
-- `UDT_HEADBOTTOM`: 19
-- `UDT_HEADMIDDLE`: 20
-- `UDT_HEADTOP`: 21
-- `UDT_CLOTHCOLOR`: 22
-- `UDT_SHIELD`: 23
-- `UDT_WEAPON`: 24
-- `UDT_LOOKDIR`: 25
-- `UDT_CANMOVETICK`: 26
-- `UDT_STR`: 27
-- `UDT_AGI`: 28
-- `UDT_VIT`: 29
-- `UDT_INT`: 30
-- `UDT_DEX`: 31
-- `UDT_LUK`: 32
-- `UDT_ATKRANGE`: 33
-- `UDT_ATKMIN`: 34
-- `UDT_ATKMAX`: 35
-- `UDT_MATKMIN`: 36
-- `UDT_MATKMAX`: 37
-- `UDT_DEF`: 38
-- `UDT_MDEF`: 39
-- `UDT_HIT`: 40
-- `UDT_FLEE`: 41
-- `UDT_PDODGE`: 42
-- `UDT_CRIT`: 43
-- `UDT_RACE`: 44
-- `UDT_ELETYPE`: 45
-- `UDT_ELELEVEL`: 46
-- `UDT_AMOTION`: 47
-- `UDT_ADELAY`: 48
-- `UDT_DMOTION`: 49
-- `UDT_HUNGER`: 50
-- `UDT_INTIMACY`: 51
-- `UDT_LIFETIME`: 52
-- `UDT_MERC_KILLCOUNT`: 53
-- `UDT_STATADD`: 54
-- `UDT_ROBE`: 55
-- `UDT_BODY2`: 56
-
### HatEffect Constants
- `HAT_EF_BLOSSOM_FLUTTERING`: 1
@@ -3972,467 +3997,7 @@
- `INVENTORY_INCREASE_STEP`: 10
-
-## Hardcoded Constants (source)
-
-
-### Boolean
-
-- `true`: 1
-- `false`: 0
-
-### Server defines
-
-- `PACKETVER`: 20141022
-- `MAX_LEVEL`: 175
-- `MAX_STORAGE`: 600
-- `MAX_GUILD_STORAGE`: 600
-- `MAX_CART`: 100
-- `MAX_INVENTORY`: 100
-- `FIXED_INVENTORY_SIZE`: 100
-- `MAX_ZENY`: 2147483647
-- `MAX_BANK_ZENY`: 2147483647
-- `MAX_BG_MEMBERS`: 30
-- `MAX_CHAT_USERS`: 20
-- `MAX_REFINE`: 20
-- `MAX_MENU_OPTIONS`: 255
-- `MAX_MENU_LENGTH`: 2048
-
-### status options
-
-- `Option_Nothing`: 0
-- `Option_Sight`: 1
-- `Option_Hide`: 2
-- `Option_Cloak`: 4
-- `Option_Falcon`: 16
-- `Option_Riding`: 32
-- `Option_Invisible`: 64
-- `Option_Orcish`: 2048
-- `Option_Wedding`: 4096
-- `Option_Chasewalk`: 16384
-- `Option_Flying`: 32768
-- `Option_Xmas`: 65536
-- `Option_Transform`: 131072
-- `Option_Summer`: 262144
-- `Option_Dragon1`: 524288
-- `Option_Wug`: 1048576
-- `Option_Wugrider`: 2097152
-- `Option_Madogear`: 4194304
-- `Option_Dragon2`: 8388608
-- `Option_Dragon3`: 16777216
-- `Option_Dragon4`: 33554432
-- `Option_Dragon5`: 67108864
-- `Option_Hanbok`: 134217728
-- `Option_Oktoberfest`: 268435456
-- `Option_Summer2`: 536870912
-
-### status option compounds
-
-- `Option_Dragon`: 126353408
-- `Option_Costume`: 939855872
-
-### send_target
-
-- `ALL_CLIENT`: 0
-- `ALL_SAMEMAP`: 1
-- `AREA`: 2
-- `AREA_WOS`: 3
-- `AREA_WOC`: 4
-- `AREA_WOSC`: 5
-- `AREA_CHAT_WOC`: 6
-- `CHAT`: 8
-- `CHAT_WOS`: 9
-- `PARTY`: 10
-- `PARTY_WOS`: 11
-- `PARTY_SAMEMAP`: 12
-- `PARTY_SAMEMAP_WOS`: 13
-- `PARTY_AREA`: 14
-- `PARTY_AREA_WOS`: 15
-- `GUILD`: 16
-- `GUILD_WOS`: 17
-- `GUILD_SAMEMAP`: 18
-- `GUILD_SAMEMAP_WOS`: 19
-- `GUILD_AREA`: 20
-- `GUILD_AREA_WOS`: 21
-- `GUILD_NOBG`: 22
-- `DUEL`: 23
-- `DUEL_WOS`: 24
-- `SELF`: 25
-- `BG`: 26
-- `BG_WOS`: 27
-- `BG_SAMEMAP`: 28
-- `BG_SAMEMAP_WOS`: 29
-- `BG_AREA`: 30
-- `BG_AREA_WOS`: 31
-- `BG_QUEUE`: 32
-
-### LOOK_ constants, use in setlook/changelook script commands
-
-- `LOOK_BASE`: 0
-- `LOOK_HAIR`: 1
-- `LOOK_WEAPON`: 2
-- `LOOK_HEAD_BOTTOM`: 3
-- `LOOK_HEAD_TOP`: 4
-- `LOOK_HEAD_MID`: 5
-- `LOOK_HAIR_COLOR`: 6
-- `LOOK_CLOTHES_COLOR`: 7
-- `LOOK_SHIELD`: 8
-- `LOOK_SHOES`: 9
-- `LOOK_BODY`: 10
-- `LOOK_FLOOR`: 11
-- `LOOK_ROBE`: 12
-- `LOOK_BODY2`: 13
-
-### Equip Position in Bits, use with *getiteminfo type 5, or @inventorylist_equip
-
-- `EQP_HEAD_LOW`: 1
-- `EQP_HEAD_MID`: 512
-- `EQP_HEAD_TOP`: 256
-- `EQP_HAND_R`: 2
-- `EQP_HAND_L`: 32
-- `EQP_ARMOR`: 16
-- `EQP_SHOES`: 64
-- `EQP_GARMENT`: 4
-- `EQP_ACC_L`: 8
-- `EQP_ACC_R`: 128
-- `EQP_COSTUME_HEAD_TOP`: 1024
-- `EQP_COSTUME_HEAD_MID`: 2048
-- `EQP_COSTUME_HEAD_LOW`: 4096
-- `EQP_COSTUME_GARMENT`: 8192
-- `EQP_AMMO`: 32768
-- `EQP_SHADOW_ARMOR`: 65536
-- `EQP_SHADOW_WEAPON`: 131072
-- `EQP_SHADOW_SHIELD`: 262144
-- `EQP_SHADOW_SHOES`: 524288
-- `EQP_SHADOW_ACC_R`: 1048576
-- `EQP_SHADOW_ACC_L`: 2097152
-- `EQP_WEAPON`: 2
-- `EQP_SHIELD`: 32
-- `EQP_ARMS`: 34
-- `EQP_HELM`: 769
-- `EQP_ACC`: 136
-- `EQP_COSTUME`: 15360
-- `EQP_SHADOW_ACC`: 3145728
-- `EQP_SHADOW_ARMS`: 393216
-
-### Item Option Types
-
-- `IT_OPT_INDEX`: 0
-- `IT_OPT_VALUE`: 1
-- `IT_OPT_PARAM`: 2
-
-### Maximum Item Options
-
-- `MAX_ITEM_OPTIONS`: 5
-
-### Navigation constants, use with *navigateto*
-
-- `NAV_NONE`: 0
-- `NAV_AIRSHIP_ONLY`: 1
-- `NAV_SCROLL_ONLY`: 10
-- `NAV_AIRSHIP_AND_SCROLL`: 11
-- `NAV_KAFRA_ONLY`: 100
-- `NAV_KAFRA_AND_AIRSHIP`: 101
-- `NAV_KAFRA_AND_SCROLL`: 110
-- `NAV_ALL`: 111
-
-### BL types
-
-- `BL_PC`: 1
-- `BL_MOB`: 2
-- `BL_PET`: 4
-- `BL_HOM`: 8
-- `BL_MER`: 16
-- `BL_ITEM`: 32
-- `BL_SKILL`: 64
-- `BL_NPC`: 128
-- `BL_CHAT`: 256
-- `BL_ELEM`: 512
-- `BL_CHAR`: 539
-- `BL_ALL`: 4095
-
-### Refine Chance Types
-
-- `REFINE_CHANCE_TYPE_NORMAL`: 0
-- `REFINE_CHANCE_TYPE_ENRICHED`: 1
-- `REFINE_CHANCE_TYPE_E_NORMAL`: 2
-- `REFINE_CHANCE_TYPE_E_ENRICHED`: 3
-
-### Player permissions
-
-- `PERM_TRADE`: 1
-- `PERM_PARTY`: 2
-- `PERM_ALL_SKILL`: 4
-- `PERM_USE_ALL_EQUIPMENT`: 8
-- `PERM_SKILL_UNCONDITIONAL`: 16
-- `PERM_JOIN_ALL_CHAT`: 32
-- `PERM_NO_CHAT_KICK`: 64
-- `PERM_HIDE_SESSION`: 128
-- `PERM_RECEIVE_HACK_INFO`: 512
-- `PERM_WARP_ANYWHERE`: 1024
-- `PERM_VIEW_HPMETER`: 2048
-- `PERM_VIEW_EQUIPMENT`: 4096
-- `PERM_USE_CHECK`: 8192
-- `PERM_USE_CHANGEMAPTYPE`: 16384
-- `PERM_USE_ALL_COMMANDS`: 32768
-- `PERM_RECEIVE_REQUESTS`: 65536
-- `PERM_SHOW_BOSS`: 131072
-- `PERM_DISABLE_PVM`: 262144
-- `PERM_DISABLE_PVP`: 524288
-- `PERM_DISABLE_CMD_DEAD`: 1048576
-- `PERM_HCHSYS_ADMIN`: 2097152
-- `PERM_TRADE_BOUND`: 4194304
-- `PERM_DISABLE_PICK_UP`: 8388608
-- `PERM_DISABLE_STORE`: 16777216
-- `PERM_DISABLE_EXP`: 33554432
-- `PERM_DISABLE_SKILL_USAGE`: 67108864
-
-### Data types
-
-- `DATATYPE_NIL`: 128
-- `DATATYPE_STR`: 256
-- `DATATYPE_INT`: 512
-- `DATATYPE_CONST`: 1024
-- `DATATYPE_PARAM`: 2048
-- `DATATYPE_VAR`: 4096
-- `DATATYPE_LABEL`: 8192
-
-### Logmes types
-
-- `LOGMES_NPC`: 0
-- `LOGMES_ATCOMMAND`: 1
-
-### Item Subtypes (Weapon types)
-
-- `W_FIST`: 0
-- `W_DAGGER`: 1
-- `W_1HSWORD`: 2
-- `W_2HSWORD`: 3
-- `W_1HSPEAR`: 4
-- `W_2HSPEAR`: 5
-- `W_1HAXE`: 6
-- `W_2HAXE`: 7
-- `W_MACE`: 8
-- `W_2HMACE`: 9
-- `W_STAFF`: 10
-- `W_BOW`: 11
-- `W_KNUCKLE`: 12
-- `W_MUSICAL`: 13
-- `W_WHIP`: 14
-- `W_BOOK`: 15
-- `W_KATAR`: 16
-- `W_REVOLVER`: 17
-- `W_RIFLE`: 18
-- `W_GATLING`: 19
-- `W_SHOTGUN`: 20
-- `W_GRENADE`: 21
-- `W_HUUMA`: 22
-- `W_2HSTAFF`: 23
-
-### Item Subtypes (Ammunition types)
-
-- `A_ARROW`: 1
-- `A_DAGGER`: 2
-- `A_BULLET`: 3
-- `A_SHELL`: 4
-- `A_GRENADE`: 5
-- `A_SHURIKEN`: 6
-- `A_KUNAI`: 7
-- `A_CANNONBALL`: 8
-- `A_THROWWEAPON`: 9
-
-### Item Upper Masks
-
-- `ITEMUPPER_NONE`: 0
-- `ITEMUPPER_NORMAL`: 1
-- `ITEMUPPER_UPPER`: 2
-- `ITEMUPPER_BABY`: 4
-- `ITEMUPPER_THIRD`: 8
-- `ITEMUPPER_THIRDUPPER`: 16
-- `ITEMUPPER_THIRDBABY`: 32
-- `ITEMUPPER_ALL`: 63
-
-### dressroom modes
-
-- `DRESSROOM_OPEN`: 1
-- `DRESSROOM_CLOSE`: 0
-
-### getmapinfo options
-
-- `MAPINFO_NAME`: 0
-- `MAPINFO_ID`: 1
-- `MAPINFO_SIZE_X`: 2
-- `MAPINFO_SIZE_Y`: 3
-- `MAPINFO_ZONE`: 4
-
-### set/getiteminfo options
-
-- `ITEMINFO_BUYPRICE`: 0
-- `ITEMINFO_SELLPRICE`: 1
-- `ITEMINFO_TYPE`: 2
-- `ITEMINFO_MAXCHANCE`: 3
-- `ITEMINFO_SEX`: 4
-- `ITEMINFO_LOC`: 5
-- `ITEMINFO_WEIGHT`: 6
-- `ITEMINFO_ATK`: 7
-- `ITEMINFO_DEF`: 8
-- `ITEMINFO_RANGE`: 9
-- `ITEMINFO_SLOTS`: 10
-- `ITEMINFO_SUBTYPE`: 11
-- `ITEMINFO_ELV`: 12
-- `ITEMINFO_WLV`: 13
-- `ITEMINFO_VIEWID`: 14
-- `ITEMINFO_MATK`: 15
-- `ITEMINFO_VIEWSPRITE`: 16
-- `ITEMINFO_TRADE`: 17
-
-### monster skill states
-
-- `MSS_ANY`: -1
-- `MSS_IDLE`: 0
-- `MSS_WALK`: 1
-- `MSS_LOOT`: 2
-- `MSS_DEAD`: 3
-- `MSS_BERSERK`: 4
-- `MSS_ANGRY`: 5
-- `MSS_RUSH`: 6
-- `MSS_FOLLOW`: 7
-- `MSS_ANYTARGET`: 8
-
-### monster skill conditions
-
-- `MSC_ANY`: -1
-- `MSC_ALWAYS`: 0
-- `MSC_MYHPLTMAXRATE`: 1
-- `MSC_MYHPINRATE`: 2
-- `MSC_FRIENDHPLTMAXRATE`: 3
-- `MSC_FRIENDHPINRATE`: 4
-- `MSC_MYSTATUSON`: 5
-- `MSC_MYSTATUSOFF`: 6
-- `MSC_FRIENDSTATUSON`: 7
-- `MSC_FRIENDSTATUSOFF`: 8
-- `MSC_ATTACKPCGT`: 9
-- `MSC_ATTACKPCGE`: 10
-- `MSC_SLAVELT`: 11
-- `MSC_SLAVELE`: 12
-- `MSC_CLOSEDATTACKED`: 13
-- `MSC_LONGRANGEATTACKED`: 14
-- `MSC_SKILLUSED`: 16
-- `MSC_AFTERSKILL`: 15
-- `MSC_CASTTARGETED`: 17
-- `MSC_RUDEATTACKED`: 18
-- `MSC_MASTERHPLTMAXRATE`: 19
-- `MSC_MASTERATTACKED`: 20
-- `MSC_ALCHEMIST`: 21
-- `MSC_SPAWN`: 22
-
-### monster skill targets
-
-- `MST_TARGET`: 0
-- `MST_RANDOM`: 1
-- `MST_SELF`: 2
-- `MST_FRIEND`: 3
-- `MST_MASTER`: 4
-- `MST_AROUND5`: 5
-- `MST_AROUND6`: 6
-- `MST_AROUND7`: 7
-- `MST_AROUND8`: 8
-- `MST_AROUND1`: 9
-- `MST_AROUND2`: 10
-- `MST_AROUND3`: 11
-- `MST_AROUND4`: 12
-- `MST_AROUND`: 12
-
-### pc block constants, use with *setpcblock* and *checkpcblock*
-
-- `PCBLOCK_NONE`: 0
-- `PCBLOCK_MOVE`: 1
-- `PCBLOCK_ATTACK`: 2
-- `PCBLOCK_SKILL`: 4
-- `PCBLOCK_USEITEM`: 8
-- `PCBLOCK_CHAT`: 16
-- `PCBLOCK_IMMUNE`: 32
-- `PCBLOCK_SITSTAND`: 64
-- `PCBLOCK_COMMANDS`: 128
-
-### private airship responds
-
-- `P_AIRSHIP_NONE`: 0
-- `P_AIRSHIP_RETRY`: 1
-- `P_AIRSHIP_INVALID_START_MAP`: 4
-- `P_AIRSHIP_INVALID_END_MAP`: 3
-- `P_AIRSHIP_ITEM_NOT_ENOUGH`: 2
-- `P_AIRSHIP_ITEM_INVALID`: 5
-
-### questinfo types
-
-- `QINFO_JOB`: 0
-- `QINFO_SEX`: 1
-- `QINFO_BASE_LEVEL`: 2
-- `QINFO_JOB_LEVEL`: 3
-- `QINFO_ITEM`: 4
-- `QINFO_HOMUN_LEVEL`: 5
-- `QINFO_HOMUN_TYPE`: 6
-- `QINFO_QUEST`: 7
-- `QINFO_MERCENARY_CLASS`: 8
-
-### function types
-
-- `FUNCTION_IS_COMMAND`: 1
-- `FUNCTION_IS_GLOBAL`: 2
-- `FUNCTION_IS_LOCAL`: 3
-- `FUNCTION_IS_LABEL`: 4
-
-### item trade restrictions
-
-- `ITR_NONE`: 0
-- `ITR_NODROP`: 1
-- `ITR_NOTRADE`: 2
-- `ITR_PARTNEROVERRIDE`: 4
-- `ITR_NOSELLTONPC`: 8
-- `ITR_NOCART`: 16
-- `ITR_NOSTORAGE`: 32
-- `ITR_NOGSTORAGE`: 64
-- `ITR_NOMAIL`: 128
-- `ITR_NOAUCTION`: 256
-- `ITR_ALL`: 511
-
-### inventory expand ack responds
-
-- `EXPAND_INV_ASK_CONFIRMATION`: 0
-- `EXPAND_INV_FAILED`: 1
-- `EXPAND_INV_OTHER_WORK`: 2
-- `EXPAND_INV_MISSING_ITEM`: 3
-- `EXPAND_INV_MAX_SIZE`: 4
-
-### inventory expand final responds
-
-- `EXPAND_INV_RESULT_SUCCESS`: 0
-- `EXPAND_INV_RESULT_FAILED`: 1
-- `EXPAND_INV_RESULT_OTHER_WORK`: 2
-- `EXPAND_INV_RESULT_MISSING_ITEM`: 3
-- `EXPAND_INV_RESULT_MAX_SIZE`: 4
-
-### trader type
-
-- `NST_ZENY`: 0
-- `NST_CASH`: 1
-- `NST_MARKET`: 2
-- `NST_CUSTOM`: 3
-- `NST_BARTER`: 4
-
-### Renewal
-
-- `RENEWAL`: 1
-- `RENEWAL_CAST`: 1
-- `RENEWAL_DROP`: 1
-- `RENEWAL_EXP`: 1
-- `RENEWAL_LVDMG`: 1
-- `RENEWAL_EDP`: 1
-- `RENEWAL_ASPD`: 1
-
-
-### Status Icons
+### Status Effect Icons
- `SI_BLANK`: -1
- `SI_PROVOKE`: 0
@@ -5062,8 +4627,10 @@
- `SI_MTF_HITFLEE`: 796
- `SI_FLOWERSMOKE`: 822
- `SI_FSTONE`: 823
+- `SI_DAILYSENDMAILCNT`: 824
- `SI_LJOSALFAR`: 826
- `SI_HAPPINESS_STAR`: 849
+- `SI_DRESS_UP`: 856
- `SI_MAPLE_FALLS`: 857
- `SI_MERMAID_LONGING`: 863
- `SI_MAGICAL_FEATHER`: 864
@@ -5072,6 +4639,10 @@
- `SI_CATNIPPOWDER`: 894
- `SI_BLOSSOM_FLUTTERING`: 895
- `SI_SV_ROOTTWIST`: 896
+- `SI_RESIST_PROPERTY_WATER`: 908
+- `SI_RESIST_PROPERTY_GROUND`: 909
+- `SI_RESIST_PROPERTY_FIRE`: 910
+- `SI_RESIST_PROPERTY_WIND`: 911
- `SI_BITESCAR`: 917
- `SI_ARCLOUSEDASH`: 918
- `SI_TUNAPARTY`: 919
@@ -5079,7 +4650,665 @@
- `SI_FRESHSHRIMP`: 921
- `SI_SUHIDE`: 933
- `SI_SPRITEMABLE`: 937
-- `SI_MAX`: 938
+- `SI_MADOGEAR`: 1149
+
+
+## Hardcoded Constants (source)
+
+
+### Boolean
+
+- `true`: 1
+- `false`: 0
+
+### Server defines
+
+- `PACKETVER`: 20190530
+- `MAX_LEVEL`: 175
+- `MAX_STORAGE`: 600
+- `MAX_GUILD_STORAGE`: 600
+- `MAX_CART`: 100
+- `MAX_INVENTORY`: 200
+- `FIXED_INVENTORY_SIZE`: 100
+- `MAX_ZENY`: 2147483647
+- `MAX_BANK_ZENY`: 2147483647
+- `MAX_BG_MEMBERS`: 30
+- `MAX_CHAT_USERS`: 20
+- `MAX_REFINE`: 20
+- `MAX_ITEM_ID`: 2147483647
+- `MAX_MENU_OPTIONS`: 255
+- `MAX_MENU_LENGTH`: 2048
+- `MOB_CLONE_START`: 21001
+- `MOB_CLONE_END`: 22000
+- `MAX_NPC_PER_MAP`: 512
+
+### status options
+
+- `Option_Nothing`: 0
+- `Option_Sight`: 1
+- `Option_Hide`: 2
+- `Option_Cloak`: 4
+- `Option_Falcon`: 16
+- `Option_Riding`: 32
+- `Option_Invisible`: 64
+- `Option_Orcish`: 2048
+- `Option_Wedding`: 4096
+- `Option_Chasewalk`: 16384
+- `Option_Flying`: 32768
+- `Option_Xmas`: 65536
+- `Option_Transform`: 131072
+- `Option_Summer`: 262144
+- `Option_Dragon1`: 524288
+- `Option_Wug`: 1048576
+- `Option_Wugrider`: 2097152
+- `Option_Madogear`: 4194304
+- `Option_Dragon2`: 8388608
+- `Option_Dragon3`: 16777216
+- `Option_Dragon4`: 33554432
+- `Option_Dragon5`: 67108864
+- `Option_Hanbok`: 134217728
+- `Option_Oktoberfest`: 268435456
+- `Option_Summer2`: 536870912
+
+### status option compounds
+
+- `Option_Dragon`: 126353408
+- `Option_Costume`: 939855872
+
+### send_target
+
+- `ALL_CLIENT`: 0
+- `ALL_SAMEMAP`: 1
+- `AREA`: 2
+- `AREA_WOS`: 3
+- `AREA_WOC`: 4
+- `AREA_WOSC`: 5
+- `AREA_CHAT_WOC`: 6
+- `CHAT`: 8
+- `CHAT_WOS`: 9
+- `PARTY`: 10
+- `PARTY_WOS`: 11
+- `PARTY_SAMEMAP`: 12
+- `PARTY_SAMEMAP_WOS`: 13
+- `PARTY_AREA`: 14
+- `PARTY_AREA_WOS`: 15
+- `GUILD`: 16
+- `GUILD_WOS`: 17
+- `GUILD_SAMEMAP`: 18
+- `GUILD_SAMEMAP_WOS`: 19
+- `GUILD_AREA`: 20
+- `GUILD_AREA_WOS`: 21
+- `GUILD_NOBG`: 22
+- `DUEL`: 23
+- `DUEL_WOS`: 24
+- `SELF`: 25
+- `BG`: 26
+- `BG_WOS`: 27
+- `BG_SAMEMAP`: 28
+- `BG_SAMEMAP_WOS`: 29
+- `BG_AREA`: 30
+- `BG_AREA_WOS`: 31
+- `BG_QUEUE`: 32
+
+### LOOK_ constants, use in setlook/changelook script commands
+
+- `LOOK_BASE`: 0
+- `LOOK_HAIR`: 1
+- `LOOK_WEAPON`: 2
+- `LOOK_HEAD_BOTTOM`: 3
+- `LOOK_HEAD_TOP`: 4
+- `LOOK_HEAD_MID`: 5
+- `LOOK_HAIR_COLOR`: 6
+- `LOOK_CLOTHES_COLOR`: 7
+- `LOOK_SHIELD`: 8
+- `LOOK_SHOES`: 9
+- `LOOK_BODY`: 10
+- `LOOK_FLOOR`: 11
+- `LOOK_ROBE`: 12
+- `LOOK_BODY2`: 13
+
+### Equip Position in Bits, use with *getiteminfo type 5, or @inventorylist_equip
+
+- `EQP_HEAD_LOW`: 1
+- `EQP_HEAD_MID`: 512
+- `EQP_HEAD_TOP`: 256
+- `EQP_HAND_R`: 2
+- `EQP_HAND_L`: 32
+- `EQP_ARMOR`: 16
+- `EQP_SHOES`: 64
+- `EQP_GARMENT`: 4
+- `EQP_ACC_L`: 8
+- `EQP_ACC_R`: 128
+- `EQP_COSTUME_HEAD_TOP`: 1024
+- `EQP_COSTUME_HEAD_MID`: 2048
+- `EQP_COSTUME_HEAD_LOW`: 4096
+- `EQP_COSTUME_GARMENT`: 8192
+- `EQP_AMMO`: 32768
+- `EQP_SHADOW_ARMOR`: 65536
+- `EQP_SHADOW_WEAPON`: 131072
+- `EQP_SHADOW_SHIELD`: 262144
+- `EQP_SHADOW_SHOES`: 524288
+- `EQP_SHADOW_ACC_R`: 1048576
+- `EQP_SHADOW_ACC_L`: 2097152
+- `EQP_WEAPON`: 2
+- `EQP_SHIELD`: 32
+- `EQP_ARMS`: 34
+- `EQP_HELM`: 769
+- `EQP_ACC`: 136
+- `EQP_COSTUME`: 15360
+- `EQP_SHADOW_ACC`: 3145728
+- `EQP_SHADOW_ARMS`: 393216
+
+### Item Option Types
+
+- `IT_OPT_INDEX`: 0
+- `IT_OPT_VALUE`: 1
+- `IT_OPT_PARAM`: 2
+
+### Maximum Item Options
+
+- `MAX_ITEM_OPTIONS`: 5
+
+### Navigation constants, use with *navigateto*
+
+- `NAV_NONE`: 0
+- `NAV_AIRSHIP_ONLY`: 1
+- `NAV_SCROLL_ONLY`: 10
+- `NAV_AIRSHIP_AND_SCROLL`: 11
+- `NAV_KAFRA_ONLY`: 100
+- `NAV_KAFRA_AND_AIRSHIP`: 101
+- `NAV_KAFRA_AND_SCROLL`: 110
+- `NAV_ALL`: 111
+
+### BL types
+
+- `BL_PC`: 1
+- `BL_MOB`: 2
+- `BL_PET`: 4
+- `BL_HOM`: 8
+- `BL_MER`: 16
+- `BL_ITEM`: 32
+- `BL_SKILL`: 64
+- `BL_NPC`: 128
+- `BL_CHAT`: 256
+- `BL_ELEM`: 512
+- `BL_CHAR`: 539
+- `BL_ALL`: 4095
+
+### Refine Chance Types
+
+- `REFINE_CHANCE_TYPE_NORMAL`: 0
+- `REFINE_CHANCE_TYPE_ENRICHED`: 1
+- `REFINE_CHANCE_TYPE_E_NORMAL`: 2
+- `REFINE_CHANCE_TYPE_E_ENRICHED`: 3
+
+### Player permissions
+
+- `PERM_TRADE`: 1
+- `PERM_PARTY`: 2
+- `PERM_ALL_SKILL`: 4
+- `PERM_USE_ALL_EQUIPMENT`: 8
+- `PERM_SKILL_UNCONDITIONAL`: 16
+- `PERM_JOIN_ALL_CHAT`: 32
+- `PERM_NO_CHAT_KICK`: 64
+- `PERM_HIDE_SESSION`: 128
+- `PERM_RECEIVE_HACK_INFO`: 512
+- `PERM_WARP_ANYWHERE`: 1024
+- `PERM_VIEW_HPMETER`: 2048
+- `PERM_VIEW_EQUIPMENT`: 4096
+- `PERM_USE_CHECK`: 8192
+- `PERM_USE_CHANGEMAPTYPE`: 16384
+- `PERM_USE_ALL_COMMANDS`: 32768
+- `PERM_RECEIVE_REQUESTS`: 65536
+- `PERM_SHOW_BOSS`: 131072
+- `PERM_DISABLE_PVM`: 262144
+- `PERM_DISABLE_PVP`: 524288
+- `PERM_DISABLE_CMD_DEAD`: 1048576
+- `PERM_HCHSYS_ADMIN`: 2097152
+- `PERM_TRADE_BOUND`: 4194304
+- `PERM_DISABLE_PICK_UP`: 8388608
+- `PERM_DISABLE_STORE`: 16777216
+- `PERM_DISABLE_EXP`: 33554432
+- `PERM_DISABLE_SKILL_USAGE`: 67108864
+- `PERM_BYPASS_NOSTORAGE`: 134217728
+
+### Data types
+
+- `DATATYPE_NIL`: 128
+- `DATATYPE_STR`: 256
+- `DATATYPE_INT`: 512
+- `DATATYPE_CONST`: 1024
+- `DATATYPE_PARAM`: 2048
+- `DATATYPE_VAR`: 4096
+- `DATATYPE_LABEL`: 8192
+
+### Logmes types
+
+- `LOGMES_NPC`: 0
+- `LOGMES_ATCOMMAND`: 1
+
+### Item Subtypes (Weapon types)
+
+- `W_FIST`: 0
+- `W_DAGGER`: 1
+- `W_1HSWORD`: 2
+- `W_2HSWORD`: 3
+- `W_1HSPEAR`: 4
+- `W_2HSPEAR`: 5
+- `W_1HAXE`: 6
+- `W_2HAXE`: 7
+- `W_MACE`: 8
+- `W_2HMACE`: 9
+- `W_STAFF`: 10
+- `W_BOW`: 11
+- `W_KNUCKLE`: 12
+- `W_MUSICAL`: 13
+- `W_WHIP`: 14
+- `W_BOOK`: 15
+- `W_KATAR`: 16
+- `W_REVOLVER`: 17
+- `W_RIFLE`: 18
+- `W_GATLING`: 19
+- `W_SHOTGUN`: 20
+- `W_GRENADE`: 21
+- `W_HUUMA`: 22
+- `W_2HSTAFF`: 23
+
+### Item Subtypes (Ammunition types)
+
+- `A_ARROW`: 1
+- `A_DAGGER`: 2
+- `A_BULLET`: 3
+- `A_SHELL`: 4
+- `A_GRENADE`: 5
+- `A_SHURIKEN`: 6
+- `A_KUNAI`: 7
+- `A_CANNONBALL`: 8
+- `A_THROWWEAPON`: 9
+
+### Item Upper Masks
+
+- `ITEMUPPER_NONE`: 0
+- `ITEMUPPER_NORMAL`: 1
+- `ITEMUPPER_UPPER`: 2
+- `ITEMUPPER_BABY`: 4
+- `ITEMUPPER_THIRD`: 8
+- `ITEMUPPER_THIRDUPPER`: 16
+- `ITEMUPPER_THIRDBABY`: 32
+- `ITEMUPPER_ALL`: 63
+
+### dressroom modes
+
+- `DRESSROOM_OPEN`: 1
+- `DRESSROOM_CLOSE`: 0
+
+### getmapinfo options
+
+- `MAPINFO_NAME`: 0
+- `MAPINFO_ID`: 1
+- `MAPINFO_SIZE_X`: 2
+- `MAPINFO_SIZE_Y`: 3
+- `MAPINFO_ZONE`: 4
+- `MAPINFO_NPC_COUNT`: 5
+
+### consolemes options
+
+- `CONSOLEMES_DEBUG`: 0
+- `CONSOLEMES_ERROR`: 1
+- `CONSOLEMES_WARNING`: 2
+- `CONSOLEMES_INFO`: 3
+- `CONSOLEMES_STATUS`: 4
+- `CONSOLEMES_NOTICE`: 5
+
+### set/getiteminfo options
+
+- `ITEMINFO_BUYPRICE`: 0
+- `ITEMINFO_SELLPRICE`: 1
+- `ITEMINFO_TYPE`: 2
+- `ITEMINFO_MAXCHANCE`: 3
+- `ITEMINFO_SEX`: 4
+- `ITEMINFO_LOC`: 5
+- `ITEMINFO_WEIGHT`: 6
+- `ITEMINFO_ATK`: 7
+- `ITEMINFO_DEF`: 8
+- `ITEMINFO_RANGE`: 9
+- `ITEMINFO_SLOTS`: 10
+- `ITEMINFO_SUBTYPE`: 11
+- `ITEMINFO_ELV`: 12
+- `ITEMINFO_WLV`: 13
+- `ITEMINFO_VIEWID`: 14
+- `ITEMINFO_MATK`: 15
+- `ITEMINFO_VIEWSPRITE`: 16
+- `ITEMINFO_TRADE`: 17
+- `ITEMINFO_ELV_MAX`: 18
+- `ITEMINFO_DROPEFFECT_MODE`: 19
+- `ITEMINFO_DELAY`: 20
+- `ITEMINFO_CLASS_BASE_1`: 21
+- `ITEMINFO_CLASS_BASE_2`: 22
+- `ITEMINFO_CLASS_BASE_3`: 23
+- `ITEMINFO_CLASS_UPPER`: 24
+- `ITEMINFO_FLAG_NO_REFINE`: 25
+- `ITEMINFO_FLAG_DELAY_CONSUME`: 26
+- `ITEMINFO_FLAG_AUTOEQUIP`: 27
+- `ITEMINFO_FLAG_AUTO_FAVORITE`: 28
+- `ITEMINFO_FLAG_BUYINGSTORE`: 29
+- `ITEMINFO_FLAG_BINDONEQUIP`: 30
+- `ITEMINFO_FLAG_KEEPAFTERUSE`: 31
+- `ITEMINFO_FLAG_FORCE_SERIAL`: 32
+- `ITEMINFO_FLAG_NO_OPTIONS`: 33
+- `ITEMINFO_FLAG_DROP_ANNOUNCE`: 34
+- `ITEMINFO_FLAG_SHOWDROPEFFECT`: 35
+- `ITEMINFO_STACK_AMOUNT`: 36
+- `ITEMINFO_STACK_FLAG`: 37
+- `ITEMINFO_ITEM_USAGE_FLAG`: 38
+- `ITEMINFO_ITEM_USAGE_OVERRIDE`: 39
+- `ITEMINFO_GM_LV_TRADE_OVERRIDE`: 40
+- `ITEMINFO_ID`: 41
+- `ITEMINFO_AEGISNAME`: 42
+- `ITEMINFO_NAME`: 43
+
+### getmercinfo options
+
+- `MERCINFO_ID,`: 0
+- `MERCINFO_CLASS`: 1
+- `MERCINFO_NAME`: 2
+- `MERCINFO_FAITH`: 3
+- `MERCINFO_CALLS`: 4
+- `MERCINFO_KILLCOUNT`: 5
+- `MERCINFO_LIFETIME`: 6
+- `MERCINFO_LEVEL`: 7
+- `MERCINFO_GID`: 8
+
+### getpetinfo options
+
+- `PETINFO_ID`: 0
+- `PETINFO_CLASS`: 1
+- `PETINFO_NAME`: 2
+- `PETINFO_INTIMACY`: 3
+- `PETINFO_HUNGRY`: 4
+- `PETINFO_RENAME`: 5
+- `PETINFO_GID`: 6
+- `PETINFO_EGGITEM`: 7
+- `PETINFO_FOODITEM`: 8
+- `PETINFO_ACCESSORYITEM`: 9
+- `PETINFO_ACCESSORYFLAG`: 10
+- `PETINFO_EVO_EGGID`: 11
+- `PETINFO_AUTOFEED`: 12
+
+### Pet hunger levels
+
+- `PET_HUNGER_STARVING`: 0
+- `PET_HUNGER_VERY_HUNGRY`: 10
+- `PET_HUNGER_HUNGRY`: 25
+- `PET_HUNGER_NEUTRAL`: 75
+- `PET_HUNGER_SATISFIED`: 90
+- `PET_HUNGER_STUFFED`: 100
+
+### Pet intimacy levels
+
+- `PET_INTIMACY_NONE`: 0
+- `PET_INTIMACY_AWKWARD`: 1
+- `PET_INTIMACY_SHY`: 100
+- `PET_INTIMACY_NEUTRAL`: 250
+- `PET_INTIMACY_CORDIAL`: 750
+- `PET_INTIMACY_LOYAL`: 900
+- `PET_INTIMACY_MAX`: 1000
+
+### monster skill states
+
+- `MSS_ANY`: -1
+- `MSS_IDLE`: 0
+- `MSS_WALK`: 1
+- `MSS_LOOT`: 2
+- `MSS_DEAD`: 3
+- `MSS_BERSERK`: 4
+- `MSS_ANGRY`: 5
+- `MSS_RUSH`: 6
+- `MSS_FOLLOW`: 7
+- `MSS_ANYTARGET`: 8
+
+### monster skill conditions
+
+- `MSC_ANY`: -1
+- `MSC_ALWAYS`: 0
+- `MSC_MYHPLTMAXRATE`: 1
+- `MSC_MYHPINRATE`: 2
+- `MSC_FRIENDHPLTMAXRATE`: 3
+- `MSC_FRIENDHPINRATE`: 4
+- `MSC_MYSTATUSON`: 5
+- `MSC_MYSTATUSOFF`: 6
+- `MSC_FRIENDSTATUSON`: 7
+- `MSC_FRIENDSTATUSOFF`: 8
+- `MSC_ATTACKPCGT`: 9
+- `MSC_ATTACKPCGE`: 10
+- `MSC_SLAVELT`: 11
+- `MSC_SLAVELE`: 12
+- `MSC_CLOSEDATTACKED`: 13
+- `MSC_LONGRANGEATTACKED`: 14
+- `MSC_SKILLUSED`: 16
+- `MSC_AFTERSKILL`: 15
+- `MSC_CASTTARGETED`: 17
+- `MSC_RUDEATTACKED`: 18
+- `MSC_MASTERHPLTMAXRATE`: 19
+- `MSC_MASTERATTACKED`: 20
+- `MSC_ALCHEMIST`: 21
+- `MSC_SPAWN`: 22
+
+### monster skill targets
+
+- `MST_TARGET`: 0
+- `MST_RANDOM`: 1
+- `MST_SELF`: 2
+- `MST_FRIEND`: 3
+- `MST_MASTER`: 4
+- `MST_AROUND5`: 5
+- `MST_AROUND6`: 6
+- `MST_AROUND7`: 7
+- `MST_AROUND8`: 8
+- `MST_AROUND1`: 9
+- `MST_AROUND2`: 10
+- `MST_AROUND3`: 11
+- `MST_AROUND4`: 12
+- `MST_AROUND`: 12
+
+### pc block constants, use with *setpcblock* and *checkpcblock*
+
+- `PCBLOCK_NONE`: 0
+- `PCBLOCK_MOVE`: 1
+- `PCBLOCK_ATTACK`: 2
+- `PCBLOCK_SKILL`: 4
+- `PCBLOCK_USEITEM`: 8
+- `PCBLOCK_CHAT`: 16
+- `PCBLOCK_IMMUNE`: 32
+- `PCBLOCK_SITSTAND`: 64
+- `PCBLOCK_COMMANDS`: 128
+- `PCBLOCK_NPC`: 256
+
+### private airship responds
+
+- `P_AIRSHIP_NONE`: 0
+- `P_AIRSHIP_RETRY`: 1
+- `P_AIRSHIP_INVALID_START_MAP`: 4
+- `P_AIRSHIP_INVALID_END_MAP`: 3
+- `P_AIRSHIP_ITEM_NOT_ENOUGH`: 2
+- `P_AIRSHIP_ITEM_INVALID`: 5
+
+### questinfo types
+
+- `QINFO_JOB`: 0
+- `QINFO_SEX`: 1
+- `QINFO_BASE_LEVEL`: 2
+- `QINFO_JOB_LEVEL`: 3
+- `QINFO_ITEM`: 4
+- `QINFO_HOMUN_LEVEL`: 5
+- `QINFO_HOMUN_TYPE`: 6
+- `QINFO_QUEST`: 7
+- `QINFO_MERCENARY_CLASS`: 8
+
+### function types
+
+- `FUNCTION_IS_COMMAND`: 1
+- `FUNCTION_IS_GLOBAL`: 2
+- `FUNCTION_IS_LOCAL`: 3
+- `FUNCTION_IS_LABEL`: 4
+
+### item trade restrictions
+
+- `ITR_NONE`: 0
+- `ITR_NODROP`: 1
+- `ITR_NOTRADE`: 2
+- `ITR_PARTNEROVERRIDE`: 4
+- `ITR_NOSELLTONPC`: 8
+- `ITR_NOCART`: 16
+- `ITR_NOSTORAGE`: 32
+- `ITR_NOGSTORAGE`: 64
+- `ITR_NOMAIL`: 128
+- `ITR_NOAUCTION`: 256
+- `ITR_ALL`: 511
+
+### inventory expand ack responds
+
+- `EXPAND_INV_ASK_CONFIRMATION`: 0
+- `EXPAND_INV_FAILED`: 1
+- `EXPAND_INV_OTHER_WORK`: 2
+- `EXPAND_INV_MISSING_ITEM`: 3
+- `EXPAND_INV_MAX_SIZE`: 4
+
+### inventory expand final responds
+
+- `EXPAND_INV_RESULT_SUCCESS`: 0
+- `EXPAND_INV_RESULT_FAILED`: 1
+- `EXPAND_INV_RESULT_OTHER_WORK`: 2
+- `EXPAND_INV_RESULT_MISSING_ITEM`: 3
+- `EXPAND_INV_RESULT_MAX_SIZE`: 4
+
+### trader type
+
+- `NST_ZENY`: 0
+- `NST_CASH`: 1
+- `NST_MARKET`: 2
+- `NST_CUSTOM`: 3
+- `NST_BARTER`: 4
+- `NST_EXPANDED_BARTER`: 5
+
+### script unit data types
+
+- `UDT_TYPE`: 0
+- `UDT_SIZE`: 1
+- `UDT_LEVEL`: 2
+- `UDT_HP`: 3
+- `UDT_MAXHP`: 4
+- `UDT_SP`: 5
+- `UDT_MAXSP`: 6
+- `UDT_MASTERAID`: 7
+- `UDT_MASTERCID`: 8
+- `UDT_MAPIDXY`: 9 **(DEPRECATED)**
+- `UDT_WALKTOXY`: 10 **(DEPRECATED)**
+- `UDT_SPEED`: 11
+- `UDT_MODE`: 12
+- `UDT_AI`: 13
+- `UDT_SCOPTION`: 14
+- `UDT_SEX`: 15
+- `UDT_CLASS`: 16
+- `UDT_HAIRSTYLE`: 17
+- `UDT_HAIRCOLOR`: 18
+- `UDT_HEADBOTTOM`: 19
+- `UDT_HEADMIDDLE`: 20
+- `UDT_HEADTOP`: 21
+- `UDT_CLOTHCOLOR`: 22
+- `UDT_SHIELD`: 23
+- `UDT_WEAPON`: 24
+- `UDT_LOOKDIR`: 25
+- `UDT_CANMOVETICK`: 26
+- `UDT_STR`: 27
+- `UDT_AGI`: 28
+- `UDT_VIT`: 29
+- `UDT_INT`: 30
+- `UDT_DEX`: 31
+- `UDT_LUK`: 32
+- `UDT_ATKRANGE`: 33
+- `UDT_ATKMIN`: 34
+- `UDT_ATKMAX`: 35
+- `UDT_MATKMIN`: 36
+- `UDT_MATKMAX`: 37
+- `UDT_DEF`: 38
+- `UDT_MDEF`: 39
+- `UDT_HIT`: 40
+- `UDT_FLEE`: 41
+- `UDT_PDODGE`: 42
+- `UDT_CRIT`: 43
+- `UDT_RACE`: 44
+- `UDT_ELETYPE`: 45
+- `UDT_ELELEVEL`: 46
+- `UDT_AMOTION`: 47
+- `UDT_ADELAY`: 48
+- `UDT_DMOTION`: 49
+- `UDT_HUNGER`: 50
+- `UDT_INTIMACY`: 51
+- `UDT_LIFETIME`: 52
+- `UDT_MERC_KILLCOUNT`: 53
+- `UDT_STATPOINT`: 54
+- `UDT_ROBE`: 55
+- `UDT_BODY2`: 56
+- `UDT_GROUP`: 57
+- `UDT_DAMAGE_TAKEN_RATE`: 58
+
+### getguildonline types
+
+- `GUILD_ONLINE_ALL`: 0
+- `GUILD_ONLINE_VENDOR`: 1
+- `GUILD_ONLINE_NO_VENDOR`: 2
+
+### Siege Types
+
+- `SIEGE_TYPE_FE`: 0
+- `SIEGE_TYPE_SE`: 1
+- `SIEGE_TYPE_TE`: 2
+
+### guildinfo types
+
+- `GUILDINFO_NAME`: 0
+- `GUILDINFO_ID`: 1
+- `GUILDINFO_LEVEL`: 2
+- `GUILDINFO_ONLINE`: 3
+- `GUILDINFO_AV_LEVEL`: 4
+- `GUILDINFO_MAX_MEMBERS`: 5
+- `GUILDINFO_EXP`: 6
+- `GUILDINFO_NEXT_EXP`: 7
+- `GUILDINFO_SKILL_POINTS`: 8
+- `GUILDINFO_MASTER_NAME`: 9
+- `GUILDINFO_MASTER_CID`: 10
+
+### madogear types
+
+- `MADO_ROBOT`: 0
+- `MADO_SUITE`: 2
+
+### itemskill option flags
+
+- `ISF_NONE`: 0
+- `ISF_CHECKCONDITIONS`: 1
+- `ISF_INSTANTCAST`: 2
+- `ISF_CASTONSELF`: 4
+
+### Item Bound Types
+
+- `IBT_ANY`: 0
+- `IBT_ACCOUNT`: 1
+- `IBT_GUILD`: 2
+- `IBT_PARTY`: 3
+- `IBT_CHARACTER`: 4
+
+### Renewal
+
+- `RENEWAL`: 1
+- `RENEWAL_CAST`: 1
+- `RENEWAL_DROP`: 1
+- `RENEWAL_EXP`: 1
+- `RENEWAL_LVDMG`: 1
+- `RENEWAL_EDP`: 1
+- `RENEWAL_ASPD`: 1
+
## Parameters (source)
@@ -5120,1130 +5349,1130 @@
## Skills (db/re/skill_db.txt)
-- `NV_BASIC`: 1
-- `SM_SWORD`: 2
-- `SM_TWOHAND`: 3
-- `SM_RECOVERY`: 4
-- `SM_BASH`: 5
-- `SM_PROVOKE`: 6
-- `SM_MAGNUM`: 7
-- `SM_ENDURE`: 8
-- `MG_SRECOVERY`: 9
-- `MG_SIGHT`: 10
-- `MG_NAPALMBEAT`: 11
-- `MG_SAFETYWALL`: 12
-- `MG_SOULSTRIKE`: 13
-- `MG_COLDBOLT`: 14
-- `MG_FROSTDIVER`: 15
-- `MG_STONECURSE`: 16
-- `MG_FIREBALL`: 17
-- `MG_FIREWALL`: 18
-- `MG_FIREBOLT`: 19
-- `MG_LIGHTNINGBOLT`: 20
-- `MG_THUNDERSTORM`: 21
-- `AL_DP`: 22
-- `AL_DEMONBANE`: 23
-- `AL_RUWACH`: 24
-- `AL_PNEUMA`: 25
-- `AL_TELEPORT`: 26
-- `AL_WARP`: 27
-- `AL_HEAL`: 28
-- `AL_INCAGI`: 29
-- `AL_DECAGI`: 30
-- `AL_HOLYWATER`: 31
-- `AL_CRUCIS`: 32
-- `AL_ANGELUS`: 33
-- `AL_BLESSING`: 34
-- `AL_CURE`: 35
-- `MC_INCCARRY`: 36
-- `MC_DISCOUNT`: 37
-- `MC_OVERCHARGE`: 38
-- `MC_PUSHCART`: 39
-- `MC_IDENTIFY`: 40
-- `MC_VENDING`: 41
-- `MC_MAMMONITE`: 42
-- `AC_OWL`: 43
-- `AC_VULTURE`: 44
-- `AC_CONCENTRATION`: 45
-- `AC_DOUBLE`: 46
-- `AC_SHOWER`: 47
-- `TF_DOUBLE`: 48
-- `TF_MISS`: 49
-- `TF_STEAL`: 50
-- `TF_HIDING`: 51
-- `TF_POISON`: 52
-- `TF_DETOXIFY`: 53
-- `ALL_RESURRECTION`: 54
-- `KN_SPEARMASTERY`: 55
-- `KN_PIERCE`: 56
-- `KN_BRANDISHSPEAR`: 57
-- `KN_SPEARSTAB`: 58
-- `KN_SPEARBOOMERANG`: 59
-- `KN_TWOHANDQUICKEN`: 60
-- `KN_AUTOCOUNTER`: 61
-- `KN_BOWLINGBASH`: 62
-- `KN_RIDING`: 63
-- `KN_CAVALIERMASTERY`: 64
-- `PR_MACEMASTERY`: 65
-- `PR_IMPOSITIO`: 66
-- `PR_SUFFRAGIUM`: 67
-- `PR_ASPERSIO`: 68
-- `PR_BENEDICTIO`: 69
-- `PR_SANCTUARY`: 70
-- `PR_SLOWPOISON`: 71
-- `PR_STRECOVERY`: 72
-- `PR_KYRIE`: 73
-- `PR_MAGNIFICAT`: 74
-- `PR_GLORIA`: 75
-- `PR_LEXDIVINA`: 76
-- `PR_TURNUNDEAD`: 77
-- `PR_LEXAETERNA`: 78
-- `PR_MAGNUS`: 79
-- `WZ_FIREPILLAR`: 80
-- `WZ_SIGHTRASHER`: 81
-- `WZ_METEOR`: 83
-- `WZ_JUPITEL`: 84
-- `WZ_VERMILION`: 85
-- `WZ_WATERBALL`: 86
-- `WZ_ICEWALL`: 87
-- `WZ_FROSTNOVA`: 88
-- `WZ_STORMGUST`: 89
-- `WZ_EARTHSPIKE`: 90
-- `WZ_HEAVENDRIVE`: 91
-- `WZ_QUAGMIRE`: 92
-- `WZ_ESTIMATION`: 93
-- `BS_IRON`: 94
-- `BS_STEEL`: 95
-- `BS_ENCHANTEDSTONE`: 96
-- `BS_ORIDEOCON`: 97
-- `BS_DAGGER`: 98
-- `BS_SWORD`: 99
-- `BS_TWOHANDSWORD`: 100
-- `BS_AXE`: 101
-- `BS_MACE`: 102
-- `BS_KNUCKLE`: 103
-- `BS_SPEAR`: 104
-- `BS_HILTBINDING`: 105
-- `BS_FINDINGORE`: 106
-- `BS_WEAPONRESEARCH`: 107
-- `BS_REPAIRWEAPON`: 108
-- `BS_SKINTEMPER`: 109
-- `BS_HAMMERFALL`: 110
-- `BS_ADRENALINE`: 111
-- `BS_WEAPONPERFECT`: 112
-- `BS_OVERTHRUST`: 113
-- `BS_MAXIMIZE`: 114
-- `HT_SKIDTRAP`: 115
-- `HT_LANDMINE`: 116
-- `HT_ANKLESNARE`: 117
-- `HT_SHOCKWAVE`: 118
-- `HT_SANDMAN`: 119
-- `HT_FLASHER`: 120
-- `HT_FREEZINGTRAP`: 121
-- `HT_BLASTMINE`: 122
-- `HT_CLAYMORETRAP`: 123
-- `HT_REMOVETRAP`: 124
-- `HT_TALKIEBOX`: 125
-- `HT_BEASTBANE`: 126
-- `HT_FALCON`: 127
-- `HT_STEELCROW`: 128
-- `HT_BLITZBEAT`: 129
-- `HT_DETECTING`: 130
-- `HT_SPRINGTRAP`: 131
-- `AS_RIGHT`: 132
-- `AS_LEFT`: 133
-- `AS_KATAR`: 134
-- `AS_CLOAKING`: 135
-- `AS_SONICBLOW`: 136
-- `AS_GRIMTOOTH`: 137
-- `AS_ENCHANTPOISON`: 138
-- `AS_POISONREACT`: 139
-- `AS_VENOMDUST`: 140
-- `AS_SPLASHER`: 141
-- `NV_FIRSTAID`: 142
-- `NV_TRICKDEAD`: 143
-- `SM_MOVINGRECOVERY`: 144
-- `SM_FATALBLOW`: 145
-- `SM_AUTOBERSERK`: 146
-- `AC_MAKINGARROW`: 147
-- `AC_CHARGEARROW`: 148
-- `TF_SPRINKLESAND`: 149
-- `TF_BACKSLIDING`: 150
-- `TF_PICKSTONE`: 151
-- `TF_THROWSTONE`: 152
-- `MC_CARTREVOLUTION`: 153
-- `MC_CHANGECART`: 154
-- `MC_LOUD`: 155
-- `AL_HOLYLIGHT`: 156
-- `MG_ENERGYCOAT`: 157
-- `NPC_PIERCINGATT`: 158
-- `NPC_MENTALBREAKER`: 159
-- `NPC_RANGEATTACK`: 160
-- `NPC_ATTRICHANGE`: 161
-- `NPC_CHANGEWATER`: 162
-- `NPC_CHANGEGROUND`: 163
-- `NPC_CHANGEFIRE`: 164
-- `NPC_CHANGEWIND`: 165
-- `NPC_CHANGEPOISON`: 166
-- `NPC_CHANGEHOLY`: 167
-- `NPC_CHANGEDARKNESS`: 168
-- `NPC_CHANGETELEKINESIS`: 169
-- `NPC_CRITICALSLASH`: 170
-- `NPC_COMBOATTACK`: 171
-- `NPC_GUIDEDATTACK`: 172
-- `NPC_SELFDESTRUCTION`: 173
-- `NPC_SPLASHATTACK`: 174
-- `NPC_SUICIDE`: 175
-- `NPC_POISON`: 176
-- `NPC_BLINDATTACK`: 177
-- `NPC_SILENCEATTACK`: 178
-- `NPC_STUNATTACK`: 179
-- `NPC_PETRIFYATTACK`: 180
-- `NPC_CURSEATTACK`: 181
-- `NPC_SLEEPATTACK`: 182
-- `NPC_RANDOMATTACK`: 183
-- `NPC_WATERATTACK`: 184
-- `NPC_GROUNDATTACK`: 185
-- `NPC_FIREATTACK`: 186
-- `NPC_WINDATTACK`: 187
-- `NPC_POISONATTACK`: 188
-- `NPC_HOLYATTACK`: 189
-- `NPC_DARKNESSATTACK`: 190
-- `NPC_TELEKINESISATTACK`: 191
-- `NPC_MAGICALATTACK`: 192
-- `NPC_METAMORPHOSIS`: 193
-- `NPC_PROVOCATION`: 194
-- `NPC_SMOKING`: 195
-- `NPC_SUMMONSLAVE`: 196
-- `NPC_EMOTION`: 197
-- `NPC_TRANSFORMATION`: 198
-- `NPC_BLOODDRAIN`: 199
-- `NPC_ENERGYDRAIN`: 200
-- `NPC_KEEPING`: 201
-- `NPC_DARKBREATH`: 202
-- `NPC_DARKBLESSING`: 203
-- `NPC_BARRIER`: 204
-- `NPC_DEFENDER`: 205
-- `NPC_LICK`: 206
-- `NPC_HALLUCINATION`: 207
-- `NPC_REBIRTH`: 208
-- `NPC_SUMMONMONSTER`: 209
-- `RG_SNATCHER`: 210
-- `RG_STEALCOIN`: 211
-- `RG_BACKSTAP`: 212
-- `RG_TUNNELDRIVE`: 213
-- `RG_RAID`: 214
-- `RG_STRIPWEAPON`: 215
-- `RG_STRIPSHIELD`: 216
-- `RG_STRIPARMOR`: 217
-- `RG_STRIPHELM`: 218
-- `RG_INTIMIDATE`: 219
-- `RG_GRAFFITI`: 220
-- `RG_FLAGGRAFFITI`: 221
-- `RG_CLEANER`: 222
-- `RG_GANGSTER`: 223
-- `RG_COMPULSION`: 224
-- `RG_PLAGIARISM`: 225
-- `AM_AXEMASTERY`: 226
-- `AM_LEARNINGPOTION`: 227
-- `AM_PHARMACY`: 228
-- `AM_DEMONSTRATION`: 229
-- `AM_ACIDTERROR`: 230
-- `AM_POTIONPITCHER`: 231
-- `AM_CANNIBALIZE`: 232
-- `AM_SPHEREMINE`: 233
-- `AM_CP_WEAPON`: 234
-- `AM_CP_SHIELD`: 235
-- `AM_CP_ARMOR`: 236
-- `AM_CP_HELM`: 237
-- `AM_BIOETHICS`: 238
-- `AM_CALLHOMUN`: 243
-- `AM_REST`: 244
-- `AM_RESURRECTHOMUN`: 247
-- `CR_TRUST`: 248
-- `CR_AUTOGUARD`: 249
-- `CR_SHIELDCHARGE`: 250
-- `CR_SHIELDBOOMERANG`: 251
-- `CR_REFLECTSHIELD`: 252
-- `CR_HOLYCROSS`: 253
-- `CR_GRANDCROSS`: 254
-- `CR_DEVOTION`: 255
-- `CR_PROVIDENCE`: 256
-- `CR_DEFENDER`: 257
-- `CR_SPEARQUICKEN`: 258
-- `MO_IRONHAND`: 259
-- `MO_SPIRITSRECOVERY`: 260
-- `MO_CALLSPIRITS`: 261
-- `MO_ABSORBSPIRITS`: 262
-- `MO_TRIPLEATTACK`: 263
-- `MO_BODYRELOCATION`: 264
-- `MO_DODGE`: 265
-- `MO_INVESTIGATE`: 266
-- `MO_FINGEROFFENSIVE`: 267
-- `MO_STEELBODY`: 268
-- `MO_BLADESTOP`: 269
-- `MO_EXPLOSIONSPIRITS`: 270
-- `MO_EXTREMITYFIST`: 271
-- `MO_CHAINCOMBO`: 272
-- `MO_COMBOFINISH`: 273
-- `SA_ADVANCEDBOOK`: 274
-- `SA_CASTCANCEL`: 275
-- `SA_MAGICROD`: 276
-- `SA_SPELLBREAKER`: 277
-- `SA_FREECAST`: 278
-- `SA_AUTOSPELL`: 279
-- `SA_FLAMELAUNCHER`: 280
-- `SA_FROSTWEAPON`: 281
-- `SA_LIGHTNINGLOADER`: 282
-- `SA_SEISMICWEAPON`: 283
-- `SA_DRAGONOLOGY`: 284
-- `SA_VOLCANO`: 285
-- `SA_DELUGE`: 286
-- `SA_VIOLENTGALE`: 287
-- `SA_LANDPROTECTOR`: 288
-- `SA_DISPELL`: 289
-- `SA_ABRACADABRA`: 290
-- `SA_MONOCELL`: 291
-- `SA_CLASSCHANGE`: 292
-- `SA_SUMMONMONSTER`: 293
-- `SA_REVERSEORCISH`: 294
-- `SA_DEATH`: 295
-- `SA_FORTUNE`: 296
-- `SA_TAMINGMONSTER`: 297
-- `SA_QUESTION`: 298
-- `SA_GRAVITY`: 299
-- `SA_LEVELUP`: 300
-- `SA_INSTANTDEATH`: 301
-- `SA_FULLRECOVERY`: 302
-- `SA_COMA`: 303
-- `BD_ADAPTATION`: 304
-- `BD_ENCORE`: 305
-- `BD_LULLABY`: 306
-- `BD_RICHMANKIM`: 307
-- `BD_ETERNALCHAOS`: 308
-- `BD_DRUMBATTLEFIELD`: 309
-- `BD_RINGNIBELUNGEN`: 310
-- `BD_ROKISWEIL`: 311
-- `BD_INTOABYSS`: 312
-- `BD_SIEGFRIED`: 313
-- `BA_MUSICALLESSON`: 315
-- `BA_MUSICALSTRIKE`: 316
-- `BA_DISSONANCE`: 317
-- `BA_FROSTJOKER`: 318
-- `BA_WHISTLE`: 319
-- `BA_ASSASSINCROSS`: 320
-- `BA_POEMBRAGI`: 321
-- `BA_APPLEIDUN`: 322
-- `DC_DANCINGLESSON`: 323
-- `DC_THROWARROW`: 324
-- `DC_UGLYDANCE`: 325
-- `DC_SCREAM`: 326
-- `DC_HUMMING`: 327
-- `DC_DONTFORGETME`: 328
-- `DC_FORTUNEKISS`: 329
-- `DC_SERVICEFORYOU`: 330
-- `NPC_RANDOMMOVE`: 331
-- `NPC_SPEEDUP`: 332
-- `NPC_REVENGE`: 333
-- `WE_MALE`: 334
-- `WE_FEMALE`: 335
-- `WE_CALLPARTNER`: 336
-- `ITM_TOMAHAWK`: 337
-- `NPC_DARKCROSS`: 338
-- `NPC_GRANDDARKNESS`: 339
-- `NPC_DARKSTRIKE`: 340
-- `NPC_DARKTHUNDER`: 341
-- `NPC_STOP`: 342
-- `NPC_WEAPONBRAKER`: 343
-- `NPC_ARMORBRAKE`: 344
-- `NPC_HELMBRAKE`: 345
-- `NPC_SHIELDBRAKE`: 346
-- `NPC_UNDEADATTACK`: 347
-- `NPC_CHANGEUNDEAD`: 348
-- `NPC_POWERUP`: 349
-- `NPC_AGIUP`: 350
-- `NPC_SIEGEMODE`: 351
-- `NPC_CALLSLAVE`: 352
-- `NPC_INVISIBLE`: 353
-- `NPC_RUN`: 354
-- `LK_AURABLADE`: 355
-- `LK_PARRYING`: 356
-- `LK_CONCENTRATION`: 357
-- `LK_TENSIONRELAX`: 358
-- `LK_BERSERK`: 359
-- `HP_ASSUMPTIO`: 361
-- `HP_BASILICA`: 362
-- `HP_MEDITATIO`: 363
-- `HW_SOULDRAIN`: 364
-- `HW_MAGICCRASHER`: 365
-- `HW_MAGICPOWER`: 366
-- `PA_PRESSURE`: 367
-- `PA_SACRIFICE`: 368
-- `PA_GOSPEL`: 369
-- `CH_PALMSTRIKE`: 370
-- `CH_TIGERFIST`: 371
-- `CH_CHAINCRUSH`: 372
-- `PF_HPCONVERSION`: 373
-- `PF_SOULCHANGE`: 374
-- `PF_SOULBURN`: 375
-- `ASC_KATAR`: 376
-- `ASC_EDP`: 378
-- `ASC_BREAKER`: 379
-- `SN_SIGHT`: 380
-- `SN_FALCONASSAULT`: 381
-- `SN_SHARPSHOOTING`: 382
-- `SN_WINDWALK`: 383
-- `WS_MELTDOWN`: 384
-- `WS_CARTBOOST`: 387
-- `ST_CHASEWALK`: 389
-- `ST_REJECTSWORD`: 390
-- `CR_ALCHEMY`: 392
-- `CR_SYNTHESISPOTION`: 393
-- `CG_ARROWVULCAN`: 394
-- `CG_MOONLIT`: 395
-- `CG_MARIONETTE`: 396
-- `LK_SPIRALPIERCE`: 397
-- `LK_HEADCRUSH`: 398
-- `LK_JOINTBEAT`: 399
-- `HW_NAPALMVULCAN`: 400
-- `CH_SOULCOLLECT`: 401
-- `PF_MINDBREAKER`: 402
-- `PF_MEMORIZE`: 403
-- `PF_FOGWALL`: 404
-- `PF_SPIDERWEB`: 405
-- `ASC_METEORASSAULT`: 406
-- `ASC_CDP`: 407
-- `WE_BABY`: 408
-- `WE_CALLPARENT`: 409
-- `WE_CALLBABY`: 410
-- `TK_RUN`: 411
-- `TK_READYSTORM`: 412
-- `TK_STORMKICK`: 413
-- `TK_READYDOWN`: 414
-- `TK_DOWNKICK`: 415
-- `TK_READYTURN`: 416
-- `TK_TURNKICK`: 417
-- `TK_READYCOUNTER`: 418
-- `TK_COUNTER`: 419
-- `TK_DODGE`: 420
-- `TK_JUMPKICK`: 421
-- `TK_HPTIME`: 422
-- `TK_SPTIME`: 423
-- `TK_POWER`: 424
-- `TK_SEVENWIND`: 425
-- `TK_HIGHJUMP`: 426
-- `SG_FEEL`: 427
-- `SG_SUN_WARM`: 428
-- `SG_MOON_WARM`: 429
-- `SG_STAR_WARM`: 430
-- `SG_SUN_COMFORT`: 431
-- `SG_MOON_COMFORT`: 432
-- `SG_STAR_COMFORT`: 433
-- `SG_HATE`: 434
-- `SG_SUN_ANGER`: 435
-- `SG_MOON_ANGER`: 436
-- `SG_STAR_ANGER`: 437
-- `SG_SUN_BLESS`: 438
-- `SG_MOON_BLESS`: 439
-- `SG_STAR_BLESS`: 440
-- `SG_DEVIL`: 441
-- `SG_FRIEND`: 442
-- `SG_KNOWLEDGE`: 443
-- `SG_FUSION`: 444
-- `SL_ALCHEMIST`: 445
-- `AM_BERSERKPITCHER`: 446
-- `SL_MONK`: 447
-- `SL_STAR`: 448
-- `SL_SAGE`: 449
-- `SL_CRUSADER`: 450
-- `SL_SUPERNOVICE`: 451
-- `SL_KNIGHT`: 452
-- `SL_WIZARD`: 453
-- `SL_PRIEST`: 454
-- `SL_BARDDANCER`: 455
-- `SL_ROGUE`: 456
-- `SL_ASSASIN`: 457
-- `SL_BLACKSMITH`: 458
-- `BS_ADRENALINE2`: 459
-- `SL_HUNTER`: 460
-- `SL_SOULLINKER`: 461
-- `SL_KAIZEL`: 462
-- `SL_KAAHI`: 463
-- `SL_KAUPE`: 464
-- `SL_KAITE`: 465
-- `SL_KAINA`: 466
-- `SL_STIN`: 467
-- `SL_STUN`: 468
-- `SL_SMA`: 469
-- `SL_SWOO`: 470
-- `SL_SKE`: 471
-- `SL_SKA`: 472
-- `SM_SELFPROVOKE`: 473
-- `NPC_EMOTION_ON`: 474
-- `ST_PRESERVE`: 475
-- `ST_FULLSTRIP`: 476
-- `WS_WEAPONREFINE`: 477
-- `CR_SLIMPITCHER`: 478
-- `CR_FULLPROTECTION`: 479
-- `PA_SHIELDCHAIN`: 480
-- `HP_MANARECHARGE`: 481
-- `PF_DOUBLECASTING`: 482
-- `HW_GANBANTEIN`: 483
-- `HW_GRAVITATION`: 484
-- `WS_CARTTERMINATION`: 485
-- `WS_OVERTHRUSTMAX`: 486
-- `CG_LONGINGFREEDOM`: 487
-- `CG_HERMODE`: 488
-- `CG_TAROTCARD`: 489
-- `CR_ACIDDEMONSTRATION`: 490
-- `CR_CULTIVATION`: 491
-- `ITEM_ENCHANTARMS`: 492
-- `TK_MISSION`: 493
-- `SL_HIGH`: 494
-- `KN_ONEHAND`: 495
-- `AM_TWILIGHT1`: 496
-- `AM_TWILIGHT2`: 497
-- `AM_TWILIGHT3`: 498
-- `HT_POWER`: 499
-- `GS_GLITTERING`: 500
-- `GS_FLING`: 501
-- `GS_TRIPLEACTION`: 502
-- `GS_BULLSEYE`: 503
-- `GS_MADNESSCANCEL`: 504
-- `GS_ADJUSTMENT`: 505
-- `GS_INCREASING`: 506
-- `GS_MAGICALBULLET`: 507
-- `GS_CRACKER`: 508
-- `GS_SINGLEACTION`: 509
-- `GS_SNAKEEYE`: 510
-- `GS_CHAINACTION`: 511
-- `GS_TRACKING`: 512
-- `GS_DISARM`: 513
-- `GS_PIERCINGSHOT`: 514
-- `GS_RAPIDSHOWER`: 515
-- `GS_DESPERADO`: 516
-- `GS_GATLINGFEVER`: 517
-- `GS_DUST`: 518
-- `GS_FULLBUSTER`: 519
-- `GS_SPREADATTACK`: 520
-- `GS_GROUNDDRIFT`: 521
-- `NJ_TOBIDOUGU`: 522
-- `NJ_SYURIKEN`: 523
-- `NJ_KUNAI`: 524
-- `NJ_HUUMA`: 525
-- `NJ_ZENYNAGE`: 526
-- `NJ_TATAMIGAESHI`: 527
-- `NJ_KASUMIKIRI`: 528
-- `NJ_SHADOWJUMP`: 529
-- `NJ_KIRIKAGE`: 530
-- `NJ_UTSUSEMI`: 531
-- `NJ_BUNSINJYUTSU`: 532
-- `NJ_NINPOU`: 533
-- `NJ_KOUENKA`: 534
-- `NJ_KAENSIN`: 535
-- `NJ_BAKUENRYU`: 536
-- `NJ_HYOUSENSOU`: 537
-- `NJ_SUITON`: 538
-- `NJ_HYOUSYOURAKU`: 539
-- `NJ_HUUJIN`: 540
-- `NJ_RAIGEKISAI`: 541
-- `NJ_KAMAITACHI`: 542
-- `NJ_NEN`: 543
-- `NJ_ISSEN`: 544
-- `NPC_EARTHQUAKE`: 653
-- `NPC_FIREBREATH`: 654
-- `NPC_ICEBREATH`: 655
-- `NPC_THUNDERBREATH`: 656
-- `NPC_ACIDBREATH`: 657
-- `NPC_DARKNESSBREATH`: 658
-- `NPC_DRAGONFEAR`: 659
-- `NPC_BLEEDING`: 660
-- `NPC_PULSESTRIKE`: 661
-- `NPC_HELLJUDGEMENT`: 662
-- `NPC_WIDESILENCE`: 663
-- `NPC_WIDEFREEZE`: 664
-- `NPC_WIDEBLEEDING`: 665
-- `NPC_WIDESTONE`: 666
-- `NPC_WIDECONFUSE`: 667
-- `NPC_WIDESLEEP`: 668
-- `NPC_WIDESIGHT`: 669
-- `NPC_EVILLAND`: 670
-- `NPC_MAGICMIRROR`: 671
-- `NPC_SLOWCAST`: 672
-- `NPC_CRITICALWOUND`: 673
-- `NPC_EXPULSION`: 674
-- `NPC_STONESKIN`: 675
-- `NPC_ANTIMAGIC`: 676
-- `NPC_WIDECURSE`: 677
-- `NPC_WIDESTUN`: 678
-- `NPC_VAMPIRE_GIFT`: 679
-- `NPC_WIDESOULDRAIN`: 680
-- `ALL_INCCARRY`: 681
-- `NPC_TALK`: 682
-- `NPC_HELLPOWER`: 683
-- `NPC_WIDEHELLDIGNITY`: 684
-- `NPC_INVINCIBLE`: 685
-- `NPC_INVINCIBLEOFF`: 686
-- `NPC_ALLHEAL`: 687
-- `GM_SANDMAN`: 688
-- `CASH_BLESSING`: 689
-- `CASH_INCAGI`: 690
-- `CASH_ASSUMPTIO`: 691
-- `ALL_CATCRY`: 692
-- `ALL_PARTYFLEE`: 693
-- `ALL_ANGEL_PROTECT`: 694
-- `ALL_DREAM_SUMMERNIGHT`: 695
-- `ALL_REVERSEORCISH`: 697
- `ALL_WEWISH`: 698
-- `HLIF_HEAL`: 8001
-- `HLIF_AVOID`: 8002
-- `HLIF_BRAIN`: 8003
-- `HLIF_CHANGE`: 8004
-- `HAMI_CASTLE`: 8005
-- `HAMI_DEFENCE`: 8006
-- `HAMI_SKIN`: 8007
-- `HAMI_BLOODLUST`: 8008
-- `HFLI_MOON`: 8009
-- `HFLI_FLEET`: 8010
-- `HFLI_SPEED`: 8011
-- `HFLI_SBR44`: 8012
-- `HVAN_CAPRICE`: 8013
-- `HVAN_CHAOTIC`: 8014
-- `HVAN_INSTRUCT`: 8015
-- `HVAN_EXPLOSION`: 8016
-- `MH_SUMMON_LEGION`: 8018
-- `MH_NEEDLE_OF_PARALYZE`: 8019
-- `MH_POISON_MIST`: 8020
-- `MH_PAIN_KILLER`: 8021
-- `MH_LIGHT_OF_REGENE`: 8022
-- `MH_OVERED_BOOST`: 8023
-- `MH_ERASER_CUTTER`: 8024
-- `MH_XENO_SLASHER`: 8025
-- `MH_SILENT_BREEZE`: 8026
-- `MH_STYLE_CHANGE`: 8027
-- `MH_SONIC_CRAW`: 8028
-- `MH_SILVERVEIN_RUSH`: 8029
-- `MH_MIDNIGHT_FRENZY`: 8030
-- `MH_STAHL_HORN`: 8031
-- `MH_GOLDENE_FERSE`: 8032
-- `MH_STEINWAND`: 8033
-- `MH_HEILIGE_STANGE`: 8034
-- `MH_ANGRIFFS_MODUS`: 8035
-- `MH_TINDER_BREAKER`: 8036
-- `MH_CBC`: 8037
-- `MH_EQC`: 8038
-- `MH_MAGMA_FLOW`: 8039
-- `MH_GRANITIC_ARMOR`: 8040
-- `MH_LAVA_SLIDE`: 8041
-- `MH_PYROCLASTIC`: 8042
-- `MH_VOLCANIC_ASH`: 8043
-- `MS_BASH`: 8201
-- `MS_MAGNUM`: 8202
-- `MS_BOWLINGBASH`: 8203
-- `MS_PARRYING`: 8204
-- `MS_REFLECTSHIELD`: 8205
-- `MS_BERSERK`: 8206
-- `MA_DOUBLE`: 8207
-- `MA_SHOWER`: 8208
-- `MA_SKIDTRAP`: 8209
-- `MA_LANDMINE`: 8210
-- `MA_SANDMAN`: 8211
-- `MA_FREEZINGTRAP`: 8212
-- `MA_REMOVETRAP`: 8213
-- `MA_CHARGEARROW`: 8214
-- `MA_SHARPSHOOTING`: 8215
-- `ML_PIERCE`: 8216
-- `ML_BRANDISH`: 8217
-- `ML_SPIRALPIERCE`: 8218
-- `ML_DEFENDER`: 8219
-- `ML_AUTOGUARD`: 8220
-- `ML_DEVOTION`: 8221
-- `MER_MAGNIFICAT`: 8222
-- `MER_QUICKEN`: 8223
-- `MER_SIGHT`: 8224
-- `MER_CRASH`: 8225
-- `MER_REGAIN`: 8226
-- `MER_TENDER`: 8227
-- `MER_BENEDICTION`: 8228
-- `MER_RECUPERATE`: 8229
-- `MER_MENTALCURE`: 8230
-- `MER_COMPRESS`: 8231
-- `MER_PROVOKE`: 8232
-- `MER_AUTOBERSERK`: 8233
-- `MER_DECAGI`: 8234
-- `MER_SCAPEGOAT`: 8235
-- `MER_LEXDIVINA`: 8236
-- `MER_ESTIMATION`: 8237
-- `MER_KYRIE`: 8238
-- `MER_BLESSING`: 8239
-- `MER_INCAGI`: 8240
-- `EL_CIRCLE_OF_FIRE`: 8401
-- `EL_FIRE_CLOAK`: 8402
-- `EL_FIRE_MANTLE`: 8403
-- `EL_WATER_SCREEN`: 8404
-- `EL_WATER_DROP`: 8405
-- `EL_WATER_BARRIER`: 8406
-- `EL_WIND_STEP`: 8407
-- `EL_WIND_CURTAIN`: 8408
-- `EL_ZEPHYR`: 8409
-- `EL_SOLID_SKIN`: 8410
-- `EL_STONE_SHIELD`: 8411
-- `EL_POWER_OF_GAIA`: 8412
-- `EL_PYROTECHNIC`: 8413
-- `EL_HEATER`: 8414
-- `EL_TROPIC`: 8415
-- `EL_AQUAPLAY`: 8416
-- `EL_COOLER`: 8417
-- `EL_CHILLY_AIR`: 8418
-- `EL_GUST`: 8419
-- `EL_BLAST`: 8420
-- `EL_WILD_STORM`: 8421
-- `EL_PETROLOGY`: 8422
-- `EL_CURSED_SOIL`: 8423
-- `EL_UPHEAVAL`: 8424
-- `EL_FIRE_ARROW`: 8425
-- `EL_FIRE_BOMB`: 8426
-- `EL_FIRE_BOMB_ATK`: 8427
-- `EL_FIRE_WAVE`: 8428
-- `EL_FIRE_WAVE_ATK`: 8429
-- `EL_ICE_NEEDLE`: 8430
-- `EL_WATER_SCREW`: 8431
-- `EL_WATER_SCREW_ATK`: 8432
-- `EL_TIDAL_WEAPON`: 8433
-- `EL_WIND_SLASH`: 8434
-- `EL_HURRICANE`: 8435
-- `EL_HURRICANE_ATK`: 8436
-- `EL_TYPOON_MIS`: 8437
-- `EL_TYPOON_MIS_ATK`: 8438
-- `EL_STONE_HAMMER`: 8439
-- `EL_ROCK_CRUSHER`: 8440
-- `EL_ROCK_CRUSHER_ATK`: 8441
-- `EL_STONE_RAIN`: 8442
-- `GD_APPROVAL`: 10000
-- `GD_KAFRACONTRACT`: 10001
-- `GD_GUARDRESEARCH`: 10002
-- `GD_GUARDUP`: 10003
-- `GD_EXTENSION`: 10004
-- `GD_GLORYGUILD`: 10005
-- `GD_LEADERSHIP`: 10006
-- `GD_GLORYWOUNDS`: 10007
-- `GD_SOULCOLD`: 10008
-- `GD_HAWKEYES`: 10009
-- `GD_BATTLEORDER`: 10010
-- `GD_REGENERATION`: 10011
-- `GD_RESTORE`: 10012
-- `GD_EMERGENCYCALL`: 10013
-- `GD_DEVELOPMENT`: 10014
-- `RL_GLITTERING_GREED`: 2551
-- `RL_RICHS_COIN`: 2552
-- `RL_MASS_SPIRAL`: 2553
-- `RL_BANISHING_BUSTER`: 2554
-- `RL_B_TRAP`: 2555
-- `RL_FLICKER`: 2556
-- `RL_S_STORM`: 2557
-- `RL_E_CHAIN`: 2558
-- `RL_QD_SHOT`: 2559
-- `RL_C_MARKER`: 2560
-- `RL_FIREDANCE`: 2561
-- `RL_H_MINE`: 2562
-- `RL_P_ALTER`: 2563
-- `RL_FALLEN_ANGEL`: 2564
-- `RL_R_TRIP`: 2565
-- `RL_D_TAIL`: 2566
-- `RL_FIRE_RAIN`: 2567
-- `RL_HEAT_BARREL`: 2568
-- `RL_AM_BLAST`: 2569
-- `RL_SLUGSHOT`: 2570
-- `RL_HAMMER_OF_GOD`: 2571
-- `RL_R_TRIP_PLUSATK`: 2572
-- `RL_B_FLICKER_ATK`: 2573
-- `RL_GLITTERING_GREED_ATK`: 2574
-- `KN_CHARGEATK`: 1001
-- `CR_SHRINK`: 1002
-- `AS_SONICACCEL`: 1003
-- `AS_VENOMKNIFE`: 1004
-- `RG_CLOSECONFINE`: 1005
-- `WZ_SIGHTBLASTER`: 1006
-- `SA_CREATECON`: 1007
-- `SA_ELEMENTWATER`: 1008
-- `HT_PHANTASMIC`: 1009
-- `BA_PANGVOICE`: 1010
-- `DC_WINKCHARM`: 1011
-- `BS_UNFAIRLYTRICK`: 1012
-- `BS_GREED`: 1013
-- `PR_REDEMPTIO`: 1014
-- `MO_KITRANSLATION`: 1015
-- `MO_BALKYOUNG`: 1016
-- `SA_ELEMENTGROUND`: 1017
-- `SA_ELEMENTFIRE`: 1018
+- `ALL_REVERSEORCISH`: 697
+- `ALL_DREAM_SUMMERNIGHT`: 695
+- `ALL_ANGEL_PROTECT`: 694
+- `ALL_PARTYFLEE`: 693
+- `ALL_CATCRY`: 692
+- `CASH_ASSUMPTIO`: 691
+- `CASH_INCAGI`: 690
+- `CASH_BLESSING`: 689
+- `GM_SANDMAN`: 688
+- `NPC_ALLHEAL`: 687
+- `NPC_INVINCIBLEOFF`: 686
+- `NPC_INVINCIBLE`: 685
+- `NPC_WIDEHELLDIGNITY`: 684
+- `NPC_HELLPOWER`: 683
+- `NPC_TALK`: 682
+- `ALL_INCCARRY`: 681
+- `NPC_WIDESOULDRAIN`: 680
+- `NPC_VAMPIRE_GIFT`: 679
+- `NPC_WIDESTUN`: 678
+- `NPC_WIDECURSE`: 677
+- `NPC_ANTIMAGIC`: 676
+- `NPC_STONESKIN`: 675
+- `NPC_EXPULSION`: 674
+- `NPC_CRITICALWOUND`: 673
+- `NPC_SLOWCAST`: 672
+- `NPC_MAGICMIRROR`: 671
+- `NPC_EVILLAND`: 670
+- `NPC_WIDESIGHT`: 669
+- `NPC_WIDESLEEP`: 668
+- `NPC_WIDECONFUSE`: 667
+- `NPC_WIDESTONE`: 666
+- `NPC_WIDEBLEEDING`: 665
+- `NPC_WIDEFREEZE`: 664
+- `NPC_WIDESILENCE`: 663
+- `NPC_HELLJUDGEMENT`: 662
+- `NPC_PULSESTRIKE`: 661
+- `NPC_BLEEDING`: 660
+- `NPC_DRAGONFEAR`: 659
+- `NPC_DARKNESSBREATH`: 658
+- `NPC_ACIDBREATH`: 657
+- `NPC_THUNDERBREATH`: 656
+- `NPC_ICEBREATH`: 655
+- `NPC_FIREBREATH`: 654
+- `NPC_EARTHQUAKE`: 653
+- `NJ_ISSEN`: 544
+- `NJ_NEN`: 543
+- `NJ_KAMAITACHI`: 542
+- `NJ_RAIGEKISAI`: 541
+- `NJ_HUUJIN`: 540
+- `NJ_HYOUSYOURAKU`: 539
+- `NJ_SUITON`: 538
+- `NJ_HYOUSENSOU`: 537
+- `NJ_BAKUENRYU`: 536
+- `NJ_KAENSIN`: 535
+- `NJ_KOUENKA`: 534
+- `NJ_NINPOU`: 533
+- `NJ_BUNSINJYUTSU`: 532
+- `NJ_UTSUSEMI`: 531
+- `NJ_KIRIKAGE`: 530
+- `NJ_SHADOWJUMP`: 529
+- `NJ_KASUMIKIRI`: 528
+- `NJ_TATAMIGAESHI`: 527
+- `NJ_ZENYNAGE`: 526
+- `NJ_HUUMA`: 525
+- `NJ_KUNAI`: 524
+- `NJ_SYURIKEN`: 523
+- `NJ_TOBIDOUGU`: 522
+- `GS_GROUNDDRIFT`: 521
+- `GS_SPREADATTACK`: 520
+- `GS_FULLBUSTER`: 519
+- `GS_DUST`: 518
+- `GS_GATLINGFEVER`: 517
+- `GS_DESPERADO`: 516
+- `GS_RAPIDSHOWER`: 515
+- `GS_PIERCINGSHOT`: 514
+- `GS_DISARM`: 513
+- `GS_TRACKING`: 512
+- `GS_CHAINACTION`: 511
+- `GS_SNAKEEYE`: 510
+- `GS_SINGLEACTION`: 509
+- `GS_CRACKER`: 508
+- `GS_MAGICALBULLET`: 507
+- `GS_INCREASING`: 506
+- `GS_ADJUSTMENT`: 505
+- `GS_MADNESSCANCEL`: 504
+- `GS_BULLSEYE`: 503
+- `GS_TRIPLEACTION`: 502
+- `GS_FLING`: 501
+- `GS_GLITTERING`: 500
+- `HT_POWER`: 499
+- `AM_TWILIGHT3`: 498
+- `AM_TWILIGHT2`: 497
+- `AM_TWILIGHT1`: 496
+- `KN_ONEHAND`: 495
+- `SL_HIGH`: 494
+- `TK_MISSION`: 493
+- `ITEM_ENCHANTARMS`: 492
+- `CR_CULTIVATION`: 491
+- `CR_ACIDDEMONSTRATION`: 490
+- `CG_TAROTCARD`: 489
+- `CG_HERMODE`: 488
+- `CG_LONGINGFREEDOM`: 487
+- `WS_OVERTHRUSTMAX`: 486
+- `WS_CARTTERMINATION`: 485
+- `HW_GRAVITATION`: 484
+- `HW_GANBANTEIN`: 483
+- `PF_DOUBLECASTING`: 482
+- `HP_MANARECHARGE`: 481
+- `PA_SHIELDCHAIN`: 480
+- `CR_FULLPROTECTION`: 479
+- `CR_SLIMPITCHER`: 478
+- `WS_WEAPONREFINE`: 477
+- `ST_FULLSTRIP`: 476
+- `ST_PRESERVE`: 475
+- `NPC_EMOTION_ON`: 474
+- `SM_SELFPROVOKE`: 473
+- `SL_SKA`: 472
+- `SL_SKE`: 471
+- `SL_SWOO`: 470
+- `SL_SMA`: 469
+- `SL_STUN`: 468
+- `SL_STIN`: 467
+- `SL_KAINA`: 466
+- `SL_KAITE`: 465
+- `SL_KAUPE`: 464
+- `SL_KAAHI`: 463
+- `SL_KAIZEL`: 462
+- `SL_SOULLINKER`: 461
+- `SL_HUNTER`: 460
+- `BS_ADRENALINE2`: 459
+- `SL_BLACKSMITH`: 458
+- `SL_ASSASIN`: 457
+- `SL_ROGUE`: 456
+- `SL_BARDDANCER`: 455
+- `SL_PRIEST`: 454
+- `SL_WIZARD`: 453
+- `SL_KNIGHT`: 452
+- `SL_SUPERNOVICE`: 451
+- `SL_CRUSADER`: 450
+- `SL_SAGE`: 449
+- `SL_STAR`: 448
+- `SL_MONK`: 447
+- `AM_BERSERKPITCHER`: 446
+- `SL_ALCHEMIST`: 445
+- `SG_FUSION`: 444
+- `SG_KNOWLEDGE`: 443
+- `SG_FRIEND`: 442
+- `SG_DEVIL`: 441
+- `SG_STAR_BLESS`: 440
+- `SG_MOON_BLESS`: 439
+- `SG_SUN_BLESS`: 438
+- `SG_STAR_ANGER`: 437
+- `SG_MOON_ANGER`: 436
+- `SG_SUN_ANGER`: 435
+- `SG_HATE`: 434
+- `SG_STAR_COMFORT`: 433
+- `SG_MOON_COMFORT`: 432
+- `SG_SUN_COMFORT`: 431
+- `SG_STAR_WARM`: 430
+- `SG_MOON_WARM`: 429
+- `SG_SUN_WARM`: 428
+- `SG_FEEL`: 427
+- `TK_HIGHJUMP`: 426
+- `TK_SEVENWIND`: 425
+- `TK_POWER`: 424
+- `TK_SPTIME`: 423
+- `TK_HPTIME`: 422
+- `TK_JUMPKICK`: 421
+- `TK_DODGE`: 420
+- `TK_COUNTER`: 419
+- `TK_READYCOUNTER`: 418
+- `TK_TURNKICK`: 417
+- `TK_READYTURN`: 416
+- `TK_DOWNKICK`: 415
+- `TK_READYDOWN`: 414
+- `TK_STORMKICK`: 413
+- `TK_READYSTORM`: 412
+- `TK_RUN`: 411
+- `WE_CALLBABY`: 410
+- `WE_CALLPARENT`: 409
+- `WE_BABY`: 408
+- `ASC_CDP`: 407
+- `ASC_METEORASSAULT`: 406
+- `PF_SPIDERWEB`: 405
+- `PF_FOGWALL`: 404
+- `PF_MEMORIZE`: 403
+- `PF_MINDBREAKER`: 402
+- `CH_SOULCOLLECT`: 401
+- `HW_NAPALMVULCAN`: 400
+- `LK_JOINTBEAT`: 399
+- `LK_HEADCRUSH`: 398
+- `LK_SPIRALPIERCE`: 397
+- `CG_MARIONETTE`: 396
+- `CG_MOONLIT`: 395
+- `CG_ARROWVULCAN`: 394
+- `CR_SYNTHESISPOTION`: 393
+- `CR_ALCHEMY`: 392
+- `ST_REJECTSWORD`: 390
+- `ST_CHASEWALK`: 389
+- `WS_CARTBOOST`: 387
+- `WS_MELTDOWN`: 384
+- `SN_WINDWALK`: 383
+- `SN_SHARPSHOOTING`: 382
+- `SN_FALCONASSAULT`: 381
+- `SN_SIGHT`: 380
+- `ASC_BREAKER`: 379
+- `ASC_EDP`: 378
+- `ASC_KATAR`: 376
+- `PF_SOULBURN`: 375
+- `PF_SOULCHANGE`: 374
+- `PF_HPCONVERSION`: 373
+- `CH_CHAINCRUSH`: 372
+- `CH_TIGERFIST`: 371
+- `CH_PALMSTRIKE`: 370
+- `PA_GOSPEL`: 369
+- `PA_SACRIFICE`: 368
+- `PA_PRESSURE`: 367
+- `HW_MAGICPOWER`: 366
+- `HW_MAGICCRASHER`: 365
+- `HW_SOULDRAIN`: 364
+- `HP_MEDITATIO`: 363
+- `HP_BASILICA`: 362
+- `HP_ASSUMPTIO`: 361
+- `LK_BERSERK`: 359
+- `LK_TENSIONRELAX`: 358
+- `LK_CONCENTRATION`: 357
+- `LK_PARRYING`: 356
+- `LK_AURABLADE`: 355
+- `NPC_RUN`: 354
+- `NPC_INVISIBLE`: 353
+- `NPC_CALLSLAVE`: 352
+- `NPC_SIEGEMODE`: 351
+- `NPC_AGIUP`: 350
+- `NPC_POWERUP`: 349
+- `NPC_CHANGEUNDEAD`: 348
+- `NPC_UNDEADATTACK`: 347
+- `NPC_SHIELDBRAKE`: 346
+- `NPC_HELMBRAKE`: 345
+- `NPC_ARMORBRAKE`: 344
+- `NPC_WEAPONBRAKER`: 343
+- `NPC_STOP`: 342
+- `NPC_DARKTHUNDER`: 341
+- `NPC_DARKSTRIKE`: 340
+- `NPC_GRANDDARKNESS`: 339
+- `NPC_DARKCROSS`: 338
+- `ITM_TOMAHAWK`: 337
+- `WE_CALLPARTNER`: 336
+- `WE_FEMALE`: 335
+- `WE_MALE`: 334
+- `NPC_REVENGE`: 333
+- `NPC_SPEEDUP`: 332
+- `NPC_RANDOMMOVE`: 331
+- `DC_SERVICEFORYOU`: 330
+- `DC_FORTUNEKISS`: 329
+- `DC_DONTFORGETME`: 328
+- `DC_HUMMING`: 327
+- `DC_SCREAM`: 326
+- `DC_UGLYDANCE`: 325
+- `DC_THROWARROW`: 324
+- `DC_DANCINGLESSON`: 323
+- `BA_APPLEIDUN`: 322
+- `BA_POEMBRAGI`: 321
+- `BA_ASSASSINCROSS`: 320
+- `BA_WHISTLE`: 319
+- `BA_FROSTJOKER`: 318
+- `BA_DISSONANCE`: 317
+- `BA_MUSICALSTRIKE`: 316
+- `BA_MUSICALLESSON`: 315
+- `BD_SIEGFRIED`: 313
+- `BD_INTOABYSS`: 312
+- `BD_ROKISWEIL`: 311
+- `BD_RINGNIBELUNGEN`: 310
+- `BD_DRUMBATTLEFIELD`: 309
+- `BD_ETERNALCHAOS`: 308
+- `BD_RICHMANKIM`: 307
+- `BD_LULLABY`: 306
+- `BD_ENCORE`: 305
+- `BD_ADAPTATION`: 304
+- `SA_COMA`: 303
+- `SA_FULLRECOVERY`: 302
+- `SA_INSTANTDEATH`: 301
+- `SA_LEVELUP`: 300
+- `SA_GRAVITY`: 299
+- `SA_QUESTION`: 298
+- `SA_TAMINGMONSTER`: 297
+- `SA_FORTUNE`: 296
+- `SA_DEATH`: 295
+- `SA_REVERSEORCISH`: 294
+- `SA_SUMMONMONSTER`: 293
+- `SA_CLASSCHANGE`: 292
+- `SA_MONOCELL`: 291
+- `SA_ABRACADABRA`: 290
+- `SA_DISPELL`: 289
+- `SA_LANDPROTECTOR`: 288
+- `SA_VIOLENTGALE`: 287
+- `SA_DELUGE`: 286
+- `SA_VOLCANO`: 285
+- `SA_DRAGONOLOGY`: 284
+- `SA_SEISMICWEAPON`: 283
+- `SA_LIGHTNINGLOADER`: 282
+- `SA_FROSTWEAPON`: 281
+- `SA_FLAMELAUNCHER`: 280
+- `SA_AUTOSPELL`: 279
+- `SA_FREECAST`: 278
+- `SA_SPELLBREAKER`: 277
+- `SA_MAGICROD`: 276
+- `SA_CASTCANCEL`: 275
+- `SA_ADVANCEDBOOK`: 274
+- `MO_COMBOFINISH`: 273
+- `MO_CHAINCOMBO`: 272
+- `MO_EXTREMITYFIST`: 271
+- `MO_EXPLOSIONSPIRITS`: 270
+- `MO_BLADESTOP`: 269
+- `MO_STEELBODY`: 268
+- `MO_FINGEROFFENSIVE`: 267
+- `MO_INVESTIGATE`: 266
+- `MO_DODGE`: 265
+- `MO_BODYRELOCATION`: 264
+- `MO_TRIPLEATTACK`: 263
+- `MO_ABSORBSPIRITS`: 262
+- `MO_CALLSPIRITS`: 261
+- `MO_SPIRITSRECOVERY`: 260
+- `MO_IRONHAND`: 259
+- `CR_SPEARQUICKEN`: 258
+- `CR_DEFENDER`: 257
+- `CR_PROVIDENCE`: 256
+- `CR_DEVOTION`: 255
+- `CR_GRANDCROSS`: 254
+- `CR_HOLYCROSS`: 253
+- `CR_REFLECTSHIELD`: 252
+- `CR_SHIELDBOOMERANG`: 251
+- `CR_SHIELDCHARGE`: 250
+- `CR_AUTOGUARD`: 249
+- `CR_TRUST`: 248
+- `AM_RESURRECTHOMUN`: 247
+- `AM_REST`: 244
+- `AM_CALLHOMUN`: 243
+- `AM_BIOETHICS`: 238
+- `AM_CP_HELM`: 237
+- `AM_CP_ARMOR`: 236
+- `AM_CP_SHIELD`: 235
+- `AM_CP_WEAPON`: 234
+- `AM_SPHEREMINE`: 233
+- `AM_CANNIBALIZE`: 232
+- `AM_POTIONPITCHER`: 231
+- `AM_ACIDTERROR`: 230
+- `AM_DEMONSTRATION`: 229
+- `AM_PHARMACY`: 228
+- `AM_LEARNINGPOTION`: 227
+- `AM_AXEMASTERY`: 226
+- `RG_PLAGIARISM`: 225
+- `RG_COMPULSION`: 224
+- `RG_GANGSTER`: 223
+- `RG_CLEANER`: 222
+- `RG_FLAGGRAFFITI`: 221
+- `RG_GRAFFITI`: 220
+- `RG_INTIMIDATE`: 219
+- `RG_STRIPHELM`: 218
+- `RG_STRIPARMOR`: 217
+- `RG_STRIPSHIELD`: 216
+- `RG_STRIPWEAPON`: 215
+- `RG_RAID`: 214
+- `RG_TUNNELDRIVE`: 213
+- `RG_BACKSTAP`: 212
+- `RG_STEALCOIN`: 211
+- `RG_SNATCHER`: 210
+- `NPC_SUMMONMONSTER`: 209
+- `NPC_REBIRTH`: 208
+- `NPC_HALLUCINATION`: 207
+- `NPC_LICK`: 206
+- `NPC_DEFENDER`: 205
+- `NPC_BARRIER`: 204
+- `NPC_DARKBLESSING`: 203
+- `NPC_DARKBREATH`: 202
+- `NPC_KEEPING`: 201
+- `NPC_ENERGYDRAIN`: 200
+- `NPC_BLOODDRAIN`: 199
+- `NPC_TRANSFORMATION`: 198
+- `NPC_EMOTION`: 197
+- `NPC_SUMMONSLAVE`: 196
+- `NPC_SMOKING`: 195
+- `NPC_PROVOCATION`: 194
+- `NPC_METAMORPHOSIS`: 193
+- `NPC_MAGICALATTACK`: 192
+- `NPC_TELEKINESISATTACK`: 191
+- `NPC_DARKNESSATTACK`: 190
+- `NPC_HOLYATTACK`: 189
+- `NPC_POISONATTACK`: 188
+- `NPC_WINDATTACK`: 187
+- `NPC_FIREATTACK`: 186
+- `NPC_GROUNDATTACK`: 185
+- `NPC_WATERATTACK`: 184
+- `NPC_RANDOMATTACK`: 183
+- `NPC_SLEEPATTACK`: 182
+- `NPC_CURSEATTACK`: 181
+- `NPC_PETRIFYATTACK`: 180
+- `NPC_STUNATTACK`: 179
+- `NPC_SILENCEATTACK`: 178
+- `NPC_BLINDATTACK`: 177
+- `NPC_POISON`: 176
+- `NPC_SUICIDE`: 175
+- `NPC_SPLASHATTACK`: 174
+- `NPC_SELFDESTRUCTION`: 173
+- `NPC_GUIDEDATTACK`: 172
+- `NPC_COMBOATTACK`: 171
+- `NPC_CRITICALSLASH`: 170
+- `NPC_CHANGETELEKINESIS`: 169
+- `NPC_CHANGEDARKNESS`: 168
+- `NPC_CHANGEHOLY`: 167
+- `NPC_CHANGEPOISON`: 166
+- `NPC_CHANGEWIND`: 165
+- `NPC_CHANGEFIRE`: 164
+- `NPC_CHANGEGROUND`: 163
+- `NPC_CHANGEWATER`: 162
+- `NPC_ATTRICHANGE`: 161
+- `NPC_RANGEATTACK`: 160
+- `NPC_MENTALBREAKER`: 159
+- `NPC_PIERCINGATT`: 158
+- `MG_ENERGYCOAT`: 157
+- `AL_HOLYLIGHT`: 156
+- `MC_LOUD`: 155
+- `MC_CHANGECART`: 154
+- `MC_CARTREVOLUTION`: 153
+- `TF_THROWSTONE`: 152
+- `TF_PICKSTONE`: 151
+- `TF_BACKSLIDING`: 150
+- `TF_SPRINKLESAND`: 149
+- `AC_CHARGEARROW`: 148
+- `AC_MAKINGARROW`: 147
+- `SM_AUTOBERSERK`: 146
+- `SM_FATALBLOW`: 145
+- `SM_MOVINGRECOVERY`: 144
+- `NV_TRICKDEAD`: 143
+- `NV_FIRSTAID`: 142
+- `AS_SPLASHER`: 141
+- `AS_VENOMDUST`: 140
+- `AS_POISONREACT`: 139
+- `AS_ENCHANTPOISON`: 138
+- `AS_GRIMTOOTH`: 137
+- `AS_SONICBLOW`: 136
+- `AS_CLOAKING`: 135
+- `AS_KATAR`: 134
+- `AS_LEFT`: 133
+- `AS_RIGHT`: 132
+- `HT_SPRINGTRAP`: 131
+- `HT_DETECTING`: 130
+- `HT_BLITZBEAT`: 129
+- `HT_STEELCROW`: 128
+- `HT_FALCON`: 127
+- `HT_BEASTBANE`: 126
+- `HT_TALKIEBOX`: 125
+- `HT_REMOVETRAP`: 124
+- `HT_CLAYMORETRAP`: 123
+- `HT_BLASTMINE`: 122
+- `HT_FREEZINGTRAP`: 121
+- `HT_FLASHER`: 120
+- `HT_SANDMAN`: 119
+- `HT_SHOCKWAVE`: 118
+- `HT_ANKLESNARE`: 117
+- `HT_LANDMINE`: 116
+- `HT_SKIDTRAP`: 115
+- `BS_MAXIMIZE`: 114
+- `BS_OVERTHRUST`: 113
+- `BS_WEAPONPERFECT`: 112
+- `BS_ADRENALINE`: 111
+- `BS_HAMMERFALL`: 110
+- `BS_SKINTEMPER`: 109
+- `BS_REPAIRWEAPON`: 108
+- `BS_WEAPONRESEARCH`: 107
+- `BS_FINDINGORE`: 106
+- `BS_HILTBINDING`: 105
+- `BS_SPEAR`: 104
+- `BS_KNUCKLE`: 103
+- `BS_MACE`: 102
+- `BS_AXE`: 101
+- `BS_TWOHANDSWORD`: 100
+- `BS_SWORD`: 99
+- `BS_DAGGER`: 98
+- `BS_ORIDEOCON`: 97
+- `BS_ENCHANTEDSTONE`: 96
+- `BS_STEEL`: 95
+- `BS_IRON`: 94
+- `WZ_ESTIMATION`: 93
+- `WZ_QUAGMIRE`: 92
+- `WZ_HEAVENDRIVE`: 91
+- `WZ_EARTHSPIKE`: 90
+- `WZ_STORMGUST`: 89
+- `WZ_FROSTNOVA`: 88
+- `WZ_ICEWALL`: 87
+- `WZ_WATERBALL`: 86
+- `WZ_VERMILION`: 85
+- `WZ_JUPITEL`: 84
+- `WZ_METEOR`: 83
+- `WZ_SIGHTRASHER`: 81
+- `WZ_FIREPILLAR`: 80
+- `PR_MAGNUS`: 79
+- `PR_LEXAETERNA`: 78
+- `PR_TURNUNDEAD`: 77
+- `PR_LEXDIVINA`: 76
+- `PR_GLORIA`: 75
+- `PR_MAGNIFICAT`: 74
+- `PR_KYRIE`: 73
+- `PR_STRECOVERY`: 72
+- `PR_SLOWPOISON`: 71
+- `PR_SANCTUARY`: 70
+- `PR_BENEDICTIO`: 69
+- `PR_ASPERSIO`: 68
+- `PR_SUFFRAGIUM`: 67
+- `PR_IMPOSITIO`: 66
+- `PR_MACEMASTERY`: 65
+- `KN_CAVALIERMASTERY`: 64
+- `KN_RIDING`: 63
+- `KN_BOWLINGBASH`: 62
+- `KN_AUTOCOUNTER`: 61
+- `KN_TWOHANDQUICKEN`: 60
+- `KN_SPEARBOOMERANG`: 59
+- `KN_SPEARSTAB`: 58
+- `KN_BRANDISHSPEAR`: 57
+- `KN_PIERCE`: 56
+- `KN_SPEARMASTERY`: 55
+- `ALL_RESURRECTION`: 54
+- `TF_DETOXIFY`: 53
+- `TF_POISON`: 52
+- `TF_HIDING`: 51
+- `TF_STEAL`: 50
+- `TF_MISS`: 49
+- `TF_DOUBLE`: 48
+- `AC_SHOWER`: 47
+- `AC_DOUBLE`: 46
+- `AC_CONCENTRATION`: 45
+- `AC_VULTURE`: 44
+- `AC_OWL`: 43
+- `MC_MAMMONITE`: 42
+- `MC_VENDING`: 41
+- `MC_IDENTIFY`: 40
+- `MC_PUSHCART`: 39
+- `MC_OVERCHARGE`: 38
+- `MC_DISCOUNT`: 37
+- `MC_INCCARRY`: 36
+- `AL_CURE`: 35
+- `AL_BLESSING`: 34
+- `AL_ANGELUS`: 33
+- `AL_CRUCIS`: 32
+- `AL_HOLYWATER`: 31
+- `AL_DECAGI`: 30
+- `AL_INCAGI`: 29
+- `AL_HEAL`: 28
+- `AL_WARP`: 27
+- `AL_TELEPORT`: 26
+- `AL_PNEUMA`: 25
+- `AL_RUWACH`: 24
+- `AL_DEMONBANE`: 23
+- `AL_DP`: 22
+- `MG_THUNDERSTORM`: 21
+- `MG_LIGHTNINGBOLT`: 20
+- `MG_FIREBOLT`: 19
+- `MG_FIREWALL`: 18
+- `MG_FIREBALL`: 17
+- `MG_STONECURSE`: 16
+- `MG_FROSTDIVER`: 15
+- `MG_COLDBOLT`: 14
+- `MG_SOULSTRIKE`: 13
+- `MG_SAFETYWALL`: 12
+- `MG_NAPALMBEAT`: 11
+- `MG_SIGHT`: 10
+- `MG_SRECOVERY`: 9
+- `SM_ENDURE`: 8
+- `SM_MAGNUM`: 7
+- `SM_PROVOKE`: 6
+- `SM_BASH`: 5
+- `SM_RECOVERY`: 4
+- `SM_TWOHAND`: 3
+- `SM_SWORD`: 2
+- `NV_BASIC`: 1
- `SA_ELEMENTWIND`: 1019
-- `RK_ENCHANTBLADE`: 2001
-- `RK_SONICWAVE`: 2002
-- `RK_DEATHBOUND`: 2003
-- `RK_HUNDREDSPEAR`: 2004
-- `RK_WINDCUTTER`: 2005
-- `RK_IGNITIONBREAK`: 2006
-- `RK_DRAGONTRAINING`: 2007
-- `RK_DRAGONBREATH`: 2008
-- `RK_DRAGONHOWLING`: 2009
-- `RK_RUNEMASTERY`: 2010
-- `RK_MILLENNIUMSHIELD`: 2011
-- `RK_CRUSHSTRIKE`: 2012
-- `RK_REFRESH`: 2013
-- `RK_GIANTGROWTH`: 2014
-- `RK_STONEHARDSKIN`: 2015
-- `RK_VITALITYACTIVATION`: 2016
-- `RK_STORMBLAST`: 2017
-- `RK_FIGHTINGSPIRIT`: 2018
-- `RK_ABUNDANCE`: 2019
-- `RK_PHANTOMTHRUST`: 2020
-- `GC_VENOMIMPRESS`: 2021
-- `GC_CROSSIMPACT`: 2022
-- `GC_DARKILLUSION`: 2023
-- `GC_RESEARCHNEWPOISON`: 2024
-- `GC_CREATENEWPOISON`: 2025
-- `GC_ANTIDOTE`: 2026
-- `GC_POISONINGWEAPON`: 2027
-- `GC_WEAPONBLOCKING`: 2028
-- `GC_COUNTERSLASH`: 2029
-- `GC_WEAPONCRUSH`: 2030
-- `GC_VENOMPRESSURE`: 2031
-- `GC_POISONSMOKE`: 2032
-- `GC_CLOAKINGEXCEED`: 2033
-- `GC_PHANTOMMENACE`: 2034
-- `GC_HALLUCINATIONWALK`: 2035
-- `GC_ROLLINGCUTTER`: 2036
-- `GC_CROSSRIPPERSLASHER`: 2037
-- `AB_JUDEX`: 2038
-- `AB_ANCILLA`: 2039
-- `AB_ADORAMUS`: 2040
-- `AB_CLEMENTIA`: 2041
-- `AB_CANTO`: 2042
-- `AB_CHEAL`: 2043
-- `AB_EPICLESIS`: 2044
-- `AB_PRAEFATIO`: 2045
-- `AB_ORATIO`: 2046
-- `AB_LAUDAAGNUS`: 2047
-- `AB_LAUDARAMUS`: 2048
-- `AB_EUCHARISTICA`: 2049
-- `AB_RENOVATIO`: 2050
-- `AB_HIGHNESSHEAL`: 2051
-- `AB_CLEARANCE`: 2052
-- `AB_EXPIATIO`: 2053
-- `AB_DUPLELIGHT`: 2054
-- `AB_DUPLELIGHT_MELEE`: 2055
-- `AB_DUPLELIGHT_MAGIC`: 2056
+- `SA_ELEMENTFIRE`: 1018
+- `SA_ELEMENTGROUND`: 1017
+- `MO_BALKYOUNG`: 1016
+- `MO_KITRANSLATION`: 1015
+- `PR_REDEMPTIO`: 1014
+- `BS_GREED`: 1013
+- `BS_UNFAIRLYTRICK`: 1012
+- `DC_WINKCHARM`: 1011
+- `BA_PANGVOICE`: 1010
+- `HT_PHANTASMIC`: 1009
+- `SA_ELEMENTWATER`: 1008
+- `SA_CREATECON`: 1007
+- `WZ_SIGHTBLASTER`: 1006
+- `RG_CLOSECONFINE`: 1005
+- `AS_VENOMKNIFE`: 1004
+- `AS_SONICACCEL`: 1003
+- `CR_SHRINK`: 1002
+- `KN_CHARGEATK`: 1001
- `AB_SILENTIUM`: 2057
-- `WL_WHITEIMPRISON`: 2201
-- `WL_SOULEXPANSION`: 2202
-- `WL_FROSTMISTY`: 2203
-- `WL_JACKFROST`: 2204
-- `WL_MARSHOFABYSS`: 2205
-- `WL_RECOGNIZEDSPELL`: 2206
-- `WL_SIENNAEXECRATE`: 2207
-- `WL_RADIUS`: 2208
-- `WL_STASIS`: 2209
-- `WL_DRAINLIFE`: 2210
-- `WL_CRIMSONROCK`: 2211
-- `WL_HELLINFERNO`: 2212
-- `WL_COMET`: 2213
-- `WL_CHAINLIGHTNING`: 2214
-- `WL_CHAINLIGHTNING_ATK`: 2215
-- `WL_EARTHSTRAIN`: 2216
-- `WL_TETRAVORTEX`: 2217
-- `WL_TETRAVORTEX_FIRE`: 2218
-- `WL_TETRAVORTEX_WATER`: 2219
-- `WL_TETRAVORTEX_WIND`: 2220
-- `WL_TETRAVORTEX_GROUND`: 2221
-- `WL_SUMMONFB`: 2222
-- `WL_SUMMONBL`: 2223
-- `WL_SUMMONWB`: 2224
-- `WL_SUMMON_ATK_FIRE`: 2225
-- `WL_SUMMON_ATK_WIND`: 2226
-- `WL_SUMMON_ATK_WATER`: 2227
-- `WL_SUMMON_ATK_GROUND`: 2228
-- `WL_SUMMONSTONE`: 2229
-- `WL_RELEASE`: 2230
-- `WL_READING_SB`: 2231
-- `WL_FREEZE_SP`: 2232
-- `RA_ARROWSTORM`: 2233
-- `RA_FEARBREEZE`: 2234
-- `RA_RANGERMAIN`: 2235
-- `RA_AIMEDBOLT`: 2236
-- `RA_DETONATOR`: 2237
-- `RA_ELECTRICSHOCKER`: 2238
-- `RA_CLUSTERBOMB`: 2239
-- `RA_WUGMASTERY`: 2240
-- `RA_WUGRIDER`: 2241
-- `RA_WUGDASH`: 2242
-- `RA_WUGSTRIKE`: 2243
-- `RA_WUGBITE`: 2244
-- `RA_TOOTHOFWUG`: 2245
-- `RA_SENSITIVEKEEN`: 2246
-- `RA_CAMOUFLAGE`: 2247
-- `RA_RESEARCHTRAP`: 2248
-- `RA_MAGENTATRAP`: 2249
-- `RA_COBALTTRAP`: 2250
-- `RA_MAIZETRAP`: 2251
-- `RA_VERDURETRAP`: 2252
-- `RA_FIRINGTRAP`: 2253
-- `RA_ICEBOUNDTRAP`: 2254
-- `NC_MADOLICENCE`: 2255
-- `NC_BOOSTKNUCKLE`: 2256
-- `NC_PILEBUNKER`: 2257
-- `NC_VULCANARM`: 2258
-- `NC_FLAMELAUNCHER`: 2259
-- `NC_COLDSLOWER`: 2260
-- `NC_ARMSCANNON`: 2261
-- `NC_ACCELERATION`: 2262
-- `NC_HOVERING`: 2263
-- `NC_F_SIDESLIDE`: 2264
-- `NC_B_SIDESLIDE`: 2265
-- `NC_MAINFRAME`: 2266
-- `NC_SELFDESTRUCTION`: 2267
-- `NC_SHAPESHIFT`: 2268
-- `NC_EMERGENCYCOOL`: 2269
-- `NC_INFRAREDSCAN`: 2270
-- `NC_ANALYZE`: 2271
-- `NC_MAGNETICFIELD`: 2272
-- `NC_NEUTRALBARRIER`: 2273
-- `NC_STEALTHFIELD`: 2274
-- `NC_REPAIR`: 2275
-- `NC_TRAININGAXE`: 2276
-- `NC_RESEARCHFE`: 2277
-- `NC_AXEBOOMERANG`: 2278
-- `NC_POWERSWING`: 2279
-- `NC_AXETORNADO`: 2280
-- `NC_SILVERSNIPER`: 2281
-- `NC_MAGICDECOY`: 2282
-- `NC_DISJOINT`: 2283
-- `SC_FATALMENACE`: 2284
-- `SC_REPRODUCE`: 2285
-- `SC_AUTOSHADOWSPELL`: 2286
-- `SC_SHADOWFORM`: 2287
-- `SC_TRIANGLESHOT`: 2288
-- `SC_BODYPAINT`: 2289
-- `SC_INVISIBILITY`: 2290
-- `SC_DEADLYINFECT`: 2291
-- `SC_ENERVATION`: 2292
-- `SC_GROOMY`: 2293
-- `SC_IGNORANCE`: 2294
-- `SC_LAZINESS`: 2295
-- `SC_UNLUCKY`: 2296
-- `SC_WEAKNESS`: 2297
-- `SC_STRIPACCESSARY`: 2298
-- `SC_MANHOLE`: 2299
-- `SC_DIMENSIONDOOR`: 2300
-- `SC_CHAOSPANIC`: 2301
-- `SC_MAELSTROM`: 2302
-- `SC_BLOODYLUST`: 2303
+- `AB_DUPLELIGHT_MAGIC`: 2056
+- `AB_DUPLELIGHT_MELEE`: 2055
+- `AB_DUPLELIGHT`: 2054
+- `AB_EXPIATIO`: 2053
+- `AB_CLEARANCE`: 2052
+- `AB_HIGHNESSHEAL`: 2051
+- `AB_RENOVATIO`: 2050
+- `AB_EUCHARISTICA`: 2049
+- `AB_LAUDARAMUS`: 2048
+- `AB_LAUDAAGNUS`: 2047
+- `AB_ORATIO`: 2046
+- `AB_PRAEFATIO`: 2045
+- `AB_EPICLESIS`: 2044
+- `AB_CHEAL`: 2043
+- `AB_CANTO`: 2042
+- `AB_CLEMENTIA`: 2041
+- `AB_ADORAMUS`: 2040
+- `AB_ANCILLA`: 2039
+- `AB_JUDEX`: 2038
+- `GC_CROSSRIPPERSLASHER`: 2037
+- `GC_ROLLINGCUTTER`: 2036
+- `GC_HALLUCINATIONWALK`: 2035
+- `GC_PHANTOMMENACE`: 2034
+- `GC_CLOAKINGEXCEED`: 2033
+- `GC_POISONSMOKE`: 2032
+- `GC_VENOMPRESSURE`: 2031
+- `GC_WEAPONCRUSH`: 2030
+- `GC_COUNTERSLASH`: 2029
+- `GC_WEAPONBLOCKING`: 2028
+- `GC_POISONINGWEAPON`: 2027
+- `GC_ANTIDOTE`: 2026
+- `GC_CREATENEWPOISON`: 2025
+- `GC_RESEARCHNEWPOISON`: 2024
+- `GC_DARKILLUSION`: 2023
+- `GC_CROSSIMPACT`: 2022
+- `GC_VENOMIMPRESS`: 2021
+- `RK_PHANTOMTHRUST`: 2020
+- `RK_ABUNDANCE`: 2019
+- `RK_FIGHTINGSPIRIT`: 2018
+- `RK_STORMBLAST`: 2017
+- `RK_VITALITYACTIVATION`: 2016
+- `RK_STONEHARDSKIN`: 2015
+- `RK_GIANTGROWTH`: 2014
+- `RK_REFRESH`: 2013
+- `RK_CRUSHSTRIKE`: 2012
+- `RK_MILLENNIUMSHIELD`: 2011
+- `RK_RUNEMASTERY`: 2010
+- `RK_DRAGONHOWLING`: 2009
+- `RK_DRAGONBREATH`: 2008
+- `RK_DRAGONTRAINING`: 2007
+- `RK_IGNITIONBREAK`: 2006
+- `RK_WINDCUTTER`: 2005
+- `RK_HUNDREDSPEAR`: 2004
+- `RK_DEATHBOUND`: 2003
+- `RK_SONICWAVE`: 2002
+- `RK_ENCHANTBLADE`: 2001
- `SC_FEINTBOMB`: 2304
-- `LG_CANNONSPEAR`: 2307
-- `LG_BANISHINGPOINT`: 2308
-- `LG_TRAMPLE`: 2309
-- `LG_SHIELDPRESS`: 2310
-- `LG_REFLECTDAMAGE`: 2311
-- `LG_PINPOINTATTACK`: 2312
-- `LG_FORCEOFVANGUARD`: 2313
-- `LG_RAGEBURST`: 2314
-- `LG_SHIELDSPELL`: 2315
-- `LG_EXEEDBREAK`: 2316
-- `LG_OVERBRAND`: 2317
-- `LG_PRESTIGE`: 2318
-- `LG_BANDING`: 2319
-- `LG_MOONSLASHER`: 2320
-- `LG_RAYOFGENESIS`: 2321
-- `LG_PIETY`: 2322
-- `LG_EARTHDRIVE`: 2323
-- `LG_HESPERUSLIT`: 2324
-- `LG_INSPIRATION`: 2325
-- `SR_DRAGONCOMBO`: 2326
-- `SR_SKYNETBLOW`: 2327
-- `SR_EARTHSHAKER`: 2328
-- `SR_FALLENEMPIRE`: 2329
-- `SR_TIGERCANNON`: 2330
-- `SR_HELLGATE`: 2331
-- `SR_RAMPAGEBLASTER`: 2332
-- `SR_CRESCENTELBOW`: 2333
-- `SR_CURSEDCIRCLE`: 2334
-- `SR_LIGHTNINGWALK`: 2335
-- `SR_KNUCKLEARROW`: 2336
-- `SR_WINDMILL`: 2337
-- `SR_RAISINGDRAGON`: 2338
-- `SR_GENTLETOUCH`: 2339
-- `SR_ASSIMILATEPOWER`: 2340
-- `SR_POWERVELOCITY`: 2341
-- `SR_CRESCENTELBOW_AUTOSPELL`: 2342
-- `SR_GATEOFHELL`: 2343
-- `SR_GENTLETOUCH_QUIET`: 2344
-- `SR_GENTLETOUCH_CURE`: 2345
-- `SR_GENTLETOUCH_ENERGYGAIN`: 2346
-- `SR_GENTLETOUCH_CHANGE`: 2347
+- `SC_BLOODYLUST`: 2303
+- `SC_MAELSTROM`: 2302
+- `SC_CHAOSPANIC`: 2301
+- `SC_DIMENSIONDOOR`: 2300
+- `SC_MANHOLE`: 2299
+- `SC_STRIPACCESSARY`: 2298
+- `SC_WEAKNESS`: 2297
+- `SC_UNLUCKY`: 2296
+- `SC_LAZINESS`: 2295
+- `SC_IGNORANCE`: 2294
+- `SC_GROOMY`: 2293
+- `SC_ENERVATION`: 2292
+- `SC_DEADLYINFECT`: 2291
+- `SC_INVISIBILITY`: 2290
+- `SC_BODYPAINT`: 2289
+- `SC_TRIANGLESHOT`: 2288
+- `SC_SHADOWFORM`: 2287
+- `SC_AUTOSHADOWSPELL`: 2286
+- `SC_REPRODUCE`: 2285
+- `SC_FATALMENACE`: 2284
+- `NC_DISJOINT`: 2283
+- `NC_MAGICDECOY`: 2282
+- `NC_SILVERSNIPER`: 2281
+- `NC_AXETORNADO`: 2280
+- `NC_POWERSWING`: 2279
+- `NC_AXEBOOMERANG`: 2278
+- `NC_RESEARCHFE`: 2277
+- `NC_TRAININGAXE`: 2276
+- `NC_REPAIR`: 2275
+- `NC_STEALTHFIELD`: 2274
+- `NC_NEUTRALBARRIER`: 2273
+- `NC_MAGNETICFIELD`: 2272
+- `NC_ANALYZE`: 2271
+- `NC_INFRAREDSCAN`: 2270
+- `NC_EMERGENCYCOOL`: 2269
+- `NC_SHAPESHIFT`: 2268
+- `NC_SELFDESTRUCTION`: 2267
+- `NC_MAINFRAME`: 2266
+- `NC_B_SIDESLIDE`: 2265
+- `NC_F_SIDESLIDE`: 2264
+- `NC_HOVERING`: 2263
+- `NC_ACCELERATION`: 2262
+- `NC_ARMSCANNON`: 2261
+- `NC_COLDSLOWER`: 2260
+- `NC_FLAMELAUNCHER`: 2259
+- `NC_VULCANARM`: 2258
+- `NC_PILEBUNKER`: 2257
+- `NC_BOOSTKNUCKLE`: 2256
+- `NC_MADOLICENCE`: 2255
+- `RA_ICEBOUNDTRAP`: 2254
+- `RA_FIRINGTRAP`: 2253
+- `RA_VERDURETRAP`: 2252
+- `RA_MAIZETRAP`: 2251
+- `RA_COBALTTRAP`: 2250
+- `RA_MAGENTATRAP`: 2249
+- `RA_RESEARCHTRAP`: 2248
+- `RA_CAMOUFLAGE`: 2247
+- `RA_SENSITIVEKEEN`: 2246
+- `RA_TOOTHOFWUG`: 2245
+- `RA_WUGBITE`: 2244
+- `RA_WUGSTRIKE`: 2243
+- `RA_WUGDASH`: 2242
+- `RA_WUGRIDER`: 2241
+- `RA_WUGMASTERY`: 2240
+- `RA_CLUSTERBOMB`: 2239
+- `RA_ELECTRICSHOCKER`: 2238
+- `RA_DETONATOR`: 2237
+- `RA_AIMEDBOLT`: 2236
+- `RA_RANGERMAIN`: 2235
+- `RA_FEARBREEZE`: 2234
+- `RA_ARROWSTORM`: 2233
+- `WL_FREEZE_SP`: 2232
+- `WL_READING_SB`: 2231
+- `WL_RELEASE`: 2230
+- `WL_SUMMONSTONE`: 2229
+- `WL_SUMMON_ATK_GROUND`: 2228
+- `WL_SUMMON_ATK_WATER`: 2227
+- `WL_SUMMON_ATK_WIND`: 2226
+- `WL_SUMMON_ATK_FIRE`: 2225
+- `WL_SUMMONWB`: 2224
+- `WL_SUMMONBL`: 2223
+- `WL_SUMMONFB`: 2222
+- `WL_TETRAVORTEX_GROUND`: 2221
+- `WL_TETRAVORTEX_WIND`: 2220
+- `WL_TETRAVORTEX_WATER`: 2219
+- `WL_TETRAVORTEX_FIRE`: 2218
+- `WL_TETRAVORTEX`: 2217
+- `WL_EARTHSTRAIN`: 2216
+- `WL_CHAINLIGHTNING_ATK`: 2215
+- `WL_CHAINLIGHTNING`: 2214
+- `WL_COMET`: 2213
+- `WL_HELLINFERNO`: 2212
+- `WL_CRIMSONROCK`: 2211
+- `WL_DRAINLIFE`: 2210
+- `WL_STASIS`: 2209
+- `WL_RADIUS`: 2208
+- `WL_SIENNAEXECRATE`: 2207
+- `WL_RECOGNIZEDSPELL`: 2206
+- `WL_MARSHOFABYSS`: 2205
+- `WL_JACKFROST`: 2204
+- `WL_FROSTMISTY`: 2203
+- `WL_SOULEXPANSION`: 2202
+- `WL_WHITEIMPRISON`: 2201
- `SR_GENTLETOUCH_REVITALIZE`: 2348
-- `WA_SWING_DANCE`: 2350
-- `WA_SYMPHONY_OF_LOVER`: 2351
+- `SR_GENTLETOUCH_CHANGE`: 2347
+- `SR_GENTLETOUCH_ENERGYGAIN`: 2346
+- `SR_GENTLETOUCH_CURE`: 2345
+- `SR_GENTLETOUCH_QUIET`: 2344
+- `SR_GATEOFHELL`: 2343
+- `SR_CRESCENTELBOW_AUTOSPELL`: 2342
+- `SR_POWERVELOCITY`: 2341
+- `SR_ASSIMILATEPOWER`: 2340
+- `SR_GENTLETOUCH`: 2339
+- `SR_RAISINGDRAGON`: 2338
+- `SR_WINDMILL`: 2337
+- `SR_KNUCKLEARROW`: 2336
+- `SR_LIGHTNINGWALK`: 2335
+- `SR_CURSEDCIRCLE`: 2334
+- `SR_CRESCENTELBOW`: 2333
+- `SR_RAMPAGEBLASTER`: 2332
+- `SR_HELLGATE`: 2331
+- `SR_TIGERCANNON`: 2330
+- `SR_FALLENEMPIRE`: 2329
+- `SR_EARTHSHAKER`: 2328
+- `SR_SKYNETBLOW`: 2327
+- `SR_DRAGONCOMBO`: 2326
+- `LG_INSPIRATION`: 2325
+- `LG_HESPERUSLIT`: 2324
+- `LG_EARTHDRIVE`: 2323
+- `LG_PIETY`: 2322
+- `LG_RAYOFGENESIS`: 2321
+- `LG_MOONSLASHER`: 2320
+- `LG_BANDING`: 2319
+- `LG_PRESTIGE`: 2318
+- `LG_OVERBRAND`: 2317
+- `LG_EXEEDBREAK`: 2316
+- `LG_SHIELDSPELL`: 2315
+- `LG_RAGEBURST`: 2314
+- `LG_FORCEOFVANGUARD`: 2313
+- `LG_PINPOINTATTACK`: 2312
+- `LG_REFLECTDAMAGE`: 2311
+- `LG_SHIELDPRESS`: 2310
+- `LG_TRAMPLE`: 2309
+- `LG_BANISHINGPOINT`: 2308
+- `LG_CANNONSPEAR`: 2307
- `WA_MOONLIT_SERENADE`: 2352
-- `MI_RUSH_WINDMILL`: 2381
-- `MI_ECHOSONG`: 2382
+- `WA_SYMPHONY_OF_LOVER`: 2351
+- `WA_SWING_DANCE`: 2350
- `MI_HARMONIZE`: 2383
-- `WM_LESSON`: 2412
-- `WM_METALICSOUND`: 2413
-- `WM_REVERBERATION`: 2414
-- `WM_REVERBERATION_MELEE`: 2415
-- `WM_REVERBERATION_MAGIC`: 2416
-- `WM_DOMINION_IMPULSE`: 2417
-- `WM_SEVERE_RAINSTORM`: 2418
-- `WM_POEMOFNETHERWORLD`: 2419
-- `WM_VOICEOFSIREN`: 2420
-- `WM_DEADHILLHERE`: 2421
-- `WM_LULLABY_DEEPSLEEP`: 2422
-- `WM_SIRCLEOFNATURE`: 2423
-- `WM_RANDOMIZESPELL`: 2424
-- `WM_GLOOMYDAY`: 2425
-- `WM_GREAT_ECHO`: 2426
-- `WM_SONG_OF_MANA`: 2427
-- `WM_DANCE_WITH_WUG`: 2428
-- `WM_SOUND_OF_DESTRUCTION`: 2429
-- `WM_SATURDAY_NIGHT_FEVER`: 2430
-- `WM_LERADS_DEW`: 2431
-- `WM_MELODYOFSINK`: 2432
-- `WM_BEYOND_OF_WARCRY`: 2433
+- `MI_ECHOSONG`: 2382
+- `MI_RUSH_WINDMILL`: 2381
- `WM_UNLIMITED_HUMMING_VOICE`: 2434
-- `SO_FIREWALK`: 2443
-- `SO_ELECTRICWALK`: 2444
-- `SO_SPELLFIST`: 2445
-- `SO_EARTHGRAVE`: 2446
-- `SO_DIAMONDDUST`: 2447
-- `SO_POISON_BUSTER`: 2448
-- `SO_PSYCHIC_WAVE`: 2449
-- `SO_CLOUD_KILL`: 2450
-- `SO_STRIKING`: 2451
-- `SO_WARMER`: 2452
-- `SO_VACUUM_EXTREME`: 2453
-- `SO_VARETYR_SPEAR`: 2454
-- `SO_ARRULLO`: 2455
-- `SO_EL_CONTROL`: 2456
-- `SO_SUMMON_AGNI`: 2457
-- `SO_SUMMON_AQUA`: 2458
-- `SO_SUMMON_VENTUS`: 2459
-- `SO_SUMMON_TERA`: 2460
-- `SO_EL_ACTION`: 2461
-- `SO_EL_ANALYSIS`: 2462
-- `SO_EL_SYMPATHY`: 2463
-- `SO_EL_CURE`: 2464
-- `SO_FIRE_INSIGNIA`: 2465
-- `SO_WATER_INSIGNIA`: 2466
-- `SO_WIND_INSIGNIA`: 2467
+- `WM_BEYOND_OF_WARCRY`: 2433
+- `WM_MELODYOFSINK`: 2432
+- `WM_LERADS_DEW`: 2431
+- `WM_SATURDAY_NIGHT_FEVER`: 2430
+- `WM_SOUND_OF_DESTRUCTION`: 2429
+- `WM_DANCE_WITH_WUG`: 2428
+- `WM_SONG_OF_MANA`: 2427
+- `WM_GREAT_ECHO`: 2426
+- `WM_GLOOMYDAY`: 2425
+- `WM_RANDOMIZESPELL`: 2424
+- `WM_SIRCLEOFNATURE`: 2423
+- `WM_LULLABY_DEEPSLEEP`: 2422
+- `WM_DEADHILLHERE`: 2421
+- `WM_VOICEOFSIREN`: 2420
+- `WM_POEMOFNETHERWORLD`: 2419
+- `WM_SEVERE_RAINSTORM`: 2418
+- `WM_DOMINION_IMPULSE`: 2417
+- `WM_REVERBERATION_MAGIC`: 2416
+- `WM_REVERBERATION_MELEE`: 2415
+- `WM_REVERBERATION`: 2414
+- `WM_METALICSOUND`: 2413
+- `WM_LESSON`: 2412
- `SO_EARTH_INSIGNIA`: 2468
-- `GN_TRAINING_SWORD`: 2474
-- `GN_REMODELING_CART`: 2475
-- `GN_CART_TORNADO`: 2476
-- `GN_CARTCANNON`: 2477
-- `GN_CARTBOOST`: 2478
-- `GN_THORNS_TRAP`: 2479
-- `GN_BLOOD_SUCKER`: 2480
-- `GN_SPORE_EXPLOSION`: 2481
-- `GN_WALLOFTHORN`: 2482
-- `GN_CRAZYWEED`: 2483
-- `GN_CRAZYWEED_ATK`: 2484
-- `GN_DEMONIC_FIRE`: 2485
-- `GN_FIRE_EXPANSION`: 2486
-- `GN_FIRE_EXPANSION_SMOKE_POWDER`: 2487
-- `GN_FIRE_EXPANSION_TEAR_GAS`: 2488
-- `GN_FIRE_EXPANSION_ACID`: 2489
-- `GN_HELLS_PLANT`: 2490
-- `GN_HELLS_PLANT_ATK`: 2491
-- `GN_MANDRAGORA`: 2492
-- `GN_SLINGITEM`: 2493
-- `GN_CHANGEMATERIAL`: 2494
-- `GN_MIX_COOKING`: 2495
-- `GN_MAKEBOMB`: 2496
-- `GN_S_PHARMACY`: 2497
+- `SO_WIND_INSIGNIA`: 2467
+- `SO_WATER_INSIGNIA`: 2466
+- `SO_FIRE_INSIGNIA`: 2465
+- `SO_EL_CURE`: 2464
+- `SO_EL_SYMPATHY`: 2463
+- `SO_EL_ANALYSIS`: 2462
+- `SO_EL_ACTION`: 2461
+- `SO_SUMMON_TERA`: 2460
+- `SO_SUMMON_VENTUS`: 2459
+- `SO_SUMMON_AQUA`: 2458
+- `SO_SUMMON_AGNI`: 2457
+- `SO_EL_CONTROL`: 2456
+- `SO_ARRULLO`: 2455
+- `SO_VARETYR_SPEAR`: 2454
+- `SO_VACUUM_EXTREME`: 2453
+- `SO_WARMER`: 2452
+- `SO_STRIKING`: 2451
+- `SO_CLOUD_KILL`: 2450
+- `SO_PSYCHIC_WAVE`: 2449
+- `SO_POISON_BUSTER`: 2448
+- `SO_DIAMONDDUST`: 2447
+- `SO_EARTHGRAVE`: 2446
+- `SO_SPELLFIST`: 2445
+- `SO_ELECTRICWALK`: 2444
+- `SO_FIREWALK`: 2443
- `GN_SLINGITEM_RANGEMELEEATK`: 2498
-- `AB_SECRAMENT`: 2515
-- `WM_SEVERE_RAINSTORM_MELEE`: 2516
-- `SR_HOWLINGOFLION`: 2517
-- `SR_RIDEINLIGHTNING`: 2518
+- `GN_S_PHARMACY`: 2497
+- `GN_MAKEBOMB`: 2496
+- `GN_MIX_COOKING`: 2495
+- `GN_CHANGEMATERIAL`: 2494
+- `GN_SLINGITEM`: 2493
+- `GN_MANDRAGORA`: 2492
+- `GN_HELLS_PLANT_ATK`: 2491
+- `GN_HELLS_PLANT`: 2490
+- `GN_FIRE_EXPANSION_ACID`: 2489
+- `GN_FIRE_EXPANSION_TEAR_GAS`: 2488
+- `GN_FIRE_EXPANSION_SMOKE_POWDER`: 2487
+- `GN_FIRE_EXPANSION`: 2486
+- `GN_DEMONIC_FIRE`: 2485
+- `GN_CRAZYWEED_ATK`: 2484
+- `GN_CRAZYWEED`: 2483
+- `GN_WALLOFTHORN`: 2482
+- `GN_SPORE_EXPLOSION`: 2481
+- `GN_BLOOD_SUCKER`: 2480
+- `GN_THORNS_TRAP`: 2479
+- `GN_CARTBOOST`: 2478
+- `GN_CARTCANNON`: 2477
+- `GN_CART_TORNADO`: 2476
+- `GN_REMODELING_CART`: 2475
+- `GN_TRAINING_SWORD`: 2474
- `LG_OVERBRAND_BRANDISH`: 2519
-- `RETURN_TO_ELDICASTES`: 2534
-- `ALL_BUYING_STORE`: 2535
-- `ALL_GUARDIAN_RECALL`: 2536
-- `ALL_ODINS_POWER`: 2537
+- `SR_RIDEINLIGHTNING`: 2518
+- `SR_HOWLINGOFLION`: 2517
+- `WM_SEVERE_RAINSTORM_MELEE`: 2516
+- `AB_SECRAMENT`: 2515
- `MC_CARTDECORATE`: 2544
-- `KO_YAMIKUMO`: 3001
-- `KO_RIGHT`: 3002
-- `KO_LEFT`: 3003
-- `KO_JYUMONJIKIRI`: 3004
-- `KO_SETSUDAN`: 3005
-- `KO_BAKURETSU`: 3006
-- `KO_HAPPOKUNAI`: 3007
-- `KO_MUCHANAGE`: 3008
-- `KO_HUUMARANKA`: 3009
-- `KO_MAKIBISHI`: 3010
-- `KO_MEIKYOUSISUI`: 3011
-- `KO_ZANZOU`: 3012
-- `KO_KYOUGAKU`: 3013
-- `KO_JYUSATSU`: 3014
-- `KO_KAHU_ENTEN`: 3015
-- `KO_HYOUHU_HUBUKI`: 3016
-- `KO_KAZEHU_SEIRAN`: 3017
-- `KO_DOHU_KOUKAI`: 3018
-- `KO_KAIHOU`: 3019
-- `KO_ZENKAI`: 3020
-- `KO_GENWAKU`: 3021
-- `KO_IZAYOI`: 3022
-- `KG_KAGEHUMI`: 3023
-- `KG_KYOMU`: 3024
-- `KG_KAGEMUSYA`: 3025
-- `OB_ZANGETSU`: 3026
-- `OB_OBOROGENSOU`: 3027
-- `OB_OBOROGENSOU_TRANSITION_ATK`: 3028
+- `ALL_ODINS_POWER`: 2537
+- `ALL_GUARDIAN_RECALL`: 2536
+- `ALL_BUYING_STORE`: 2535
+- `RETURN_TO_ELDICASTES`: 2534
+- `RL_GLITTERING_GREED_ATK`: 2574
+- `RL_B_FLICKER_ATK`: 2573
+- `RL_R_TRIP_PLUSATK`: 2572
+- `RL_HAMMER_OF_GOD`: 2571
+- `RL_SLUGSHOT`: 2570
+- `RL_AM_BLAST`: 2569
+- `RL_HEAT_BARREL`: 2568
+- `RL_FIRE_RAIN`: 2567
+- `RL_D_TAIL`: 2566
+- `RL_R_TRIP`: 2565
+- `RL_FALLEN_ANGEL`: 2564
+- `RL_P_ALTER`: 2563
+- `RL_H_MINE`: 2562
+- `RL_FIREDANCE`: 2561
+- `RL_C_MARKER`: 2560
+- `RL_QD_SHOT`: 2559
+- `RL_E_CHAIN`: 2558
+- `RL_S_STORM`: 2557
+- `RL_FLICKER`: 2556
+- `RL_B_TRAP`: 2555
+- `RL_BANISHING_BUSTER`: 2554
+- `RL_MASS_SPIRAL`: 2553
+- `RL_RICHS_COIN`: 2552
+- `RL_GLITTERING_GREED`: 2551
- `OB_AKAITSUKI`: 3029
-- `ECL_SNOWFLIP`: 3031
-- `ECL_PEONYMAMY`: 3032
-- `ECL_SADAGUI`: 3033
-- `ECL_SEQUOIADUST`: 3034
+- `OB_OBOROGENSOU_TRANSITION_ATK`: 3028
+- `OB_OBOROGENSOU`: 3027
+- `OB_ZANGETSU`: 3026
+- `KG_KAGEMUSYA`: 3025
+- `KG_KYOMU`: 3024
+- `KG_KAGEHUMI`: 3023
+- `KO_IZAYOI`: 3022
+- `KO_GENWAKU`: 3021
+- `KO_ZENKAI`: 3020
+- `KO_KAIHOU`: 3019
+- `KO_DOHU_KOUKAI`: 3018
+- `KO_KAZEHU_SEIRAN`: 3017
+- `KO_HYOUHU_HUBUKI`: 3016
+- `KO_KAHU_ENTEN`: 3015
+- `KO_JYUSATSU`: 3014
+- `KO_KYOUGAKU`: 3013
+- `KO_ZANZOU`: 3012
+- `KO_MEIKYOUSISUI`: 3011
+- `KO_MAKIBISHI`: 3010
+- `KO_HUUMARANKA`: 3009
+- `KO_MUCHANAGE`: 3008
+- `KO_HAPPOKUNAI`: 3007
+- `KO_BAKURETSU`: 3006
+- `KO_SETSUDAN`: 3005
+- `KO_JYUMONJIKIRI`: 3004
+- `KO_LEFT`: 3003
+- `KO_RIGHT`: 3002
+- `KO_YAMIKUMO`: 3001
- `ECLAGE_RECALL`: 3035
-- `GC_DARKCROW`: 5001
-- `RA_UNLIMIT`: 5002
-- `GN_ILLUSIONDOPING`: 5003
-- `RK_DRAGONBREATH_WATER`: 5004
-- `RK_LUXANIMA`: 5005
-- `NC_MAGMA_ERUPTION`: 5006
-- `WM_FRIGG_SONG`: 5007
-- `SO_ELEMENTAL_SHIELD`: 5008
-- `SR_FLASHCOMBO`: 5009
-- `SC_ESCAPE`: 5010
-- `AB_OFFERTORIUM`: 5011
-- `WL_TELEKINESIS_INTENSE`: 5012
-- `LG_KINGS_GRACE`: 5013
+- `ECL_SEQUOIADUST`: 3034
+- `ECL_SADAGUI`: 3033
+- `ECL_PEONYMAMY`: 3032
+- `ECL_SNOWFLIP`: 3031
- `ALL_FULL_THROTTLE`: 5014
-- `SU_BASIC_SKILL`: 5018
-- `SU_BITE`: 5019
-- `SU_HIDE`: 5020
-- `SU_SCRATCH`: 5021
-- `SU_STOOP`: 5022
-- `SU_LOPE`: 5023
-- `SU_SPRITEMABLE`: 5024
-- `SU_POWEROFLAND`: 5025
-- `SU_SV_STEMSPEAR`: 5026
-- `SU_CN_POWDERING`: 5027
-- `SU_CN_METEOR`: 5028
-- `SU_SV_ROOTTWIST`: 5029
-- `SU_SV_ROOTTWIST_ATK`: 5030
-- `SU_POWEROFLIFE`: 5031
-- `SU_SCAROFTAROU`: 5032
-- `SU_PICKYPECK`: 5033
-- `SU_PICKYPECK_DOUBLE_ATK`: 5034
-- `SU_ARCLOUSEDASH`: 5035
-- `SU_LUNATICCARROTBEAT`: 5036
-- `SU_POWEROFSEA`: 5037
-- `SU_TUNABELLY`: 5038
-- `SU_TUNAPARTY`: 5039
-- `SU_BUNCHOFSHRIMP`: 5040
-- `SU_FRESHSHRIMP`: 5041
-- `SU_CN_METEOR_ATK`: 5042
+- `LG_KINGS_GRACE`: 5013
+- `WL_TELEKINESIS_INTENSE`: 5012
+- `AB_OFFERTORIUM`: 5011
+- `SC_ESCAPE`: 5010
+- `SR_FLASHCOMBO`: 5009
+- `SO_ELEMENTAL_SHIELD`: 5008
+- `WM_FRIGG_SONG`: 5007
+- `NC_MAGMA_ERUPTION`: 5006
+- `RK_LUXANIMA`: 5005
+- `RK_DRAGONBREATH_WATER`: 5004
+- `GN_ILLUSIONDOPING`: 5003
+- `RA_UNLIMIT`: 5002
+- `GC_DARKCROW`: 5001
- `SU_LUNATICCARROTBEAT2`: 5043
+- `SU_CN_METEOR_ATK`: 5042
+- `SU_FRESHSHRIMP`: 5041
+- `SU_BUNCHOFSHRIMP`: 5040
+- `SU_TUNAPARTY`: 5039
+- `SU_TUNABELLY`: 5038
+- `SU_POWEROFSEA`: 5037
+- `SU_LUNATICCARROTBEAT`: 5036
+- `SU_ARCLOUSEDASH`: 5035
+- `SU_PICKYPECK_DOUBLE_ATK`: 5034
+- `SU_PICKYPECK`: 5033
+- `SU_SCAROFTAROU`: 5032
+- `SU_POWEROFLIFE`: 5031
+- `SU_SV_ROOTTWIST_ATK`: 5030
+- `SU_SV_ROOTTWIST`: 5029
+- `SU_CN_METEOR`: 5028
+- `SU_CN_POWDERING`: 5027
+- `SU_SV_STEMSPEAR`: 5026
+- `SU_POWEROFLAND`: 5025
+- `SU_SPRITEMABLE`: 5024
+- `SU_LOPE`: 5023
+- `SU_STOOP`: 5022
+- `SU_SCRATCH`: 5021
+- `SU_HIDE`: 5020
+- `SU_BITE`: 5019
+- `SU_BASIC_SKILL`: 5018
+- `MH_VOLCANIC_ASH`: 8043
+- `MH_PYROCLASTIC`: 8042
+- `MH_LAVA_SLIDE`: 8041
+- `MH_GRANITIC_ARMOR`: 8040
+- `MH_MAGMA_FLOW`: 8039
+- `MH_EQC`: 8038
+- `MH_CBC`: 8037
+- `MH_TINDER_BREAKER`: 8036
+- `MH_ANGRIFFS_MODUS`: 8035
+- `MH_HEILIGE_STANGE`: 8034
+- `MH_STEINWAND`: 8033
+- `MH_GOLDENE_FERSE`: 8032
+- `MH_STAHL_HORN`: 8031
+- `MH_MIDNIGHT_FRENZY`: 8030
+- `MH_SILVERVEIN_RUSH`: 8029
+- `MH_SONIC_CRAW`: 8028
+- `MH_STYLE_CHANGE`: 8027
+- `MH_SILENT_BREEZE`: 8026
+- `MH_XENO_SLASHER`: 8025
+- `MH_ERASER_CUTTER`: 8024
+- `MH_OVERED_BOOST`: 8023
+- `MH_LIGHT_OF_REGENE`: 8022
+- `MH_PAIN_KILLER`: 8021
+- `MH_POISON_MIST`: 8020
+- `MH_NEEDLE_OF_PARALYZE`: 8019
+- `MH_SUMMON_LEGION`: 8018
+- `HVAN_EXPLOSION`: 8016
+- `HVAN_INSTRUCT`: 8015
+- `HVAN_CHAOTIC`: 8014
+- `HVAN_CAPRICE`: 8013
+- `HFLI_SBR44`: 8012
+- `HFLI_SPEED`: 8011
+- `HFLI_FLEET`: 8010
+- `HFLI_MOON`: 8009
+- `HAMI_BLOODLUST`: 8008
+- `HAMI_SKIN`: 8007
+- `HAMI_DEFENCE`: 8006
+- `HAMI_CASTLE`: 8005
+- `HLIF_CHANGE`: 8004
+- `HLIF_BRAIN`: 8003
+- `HLIF_AVOID`: 8002
+- `HLIF_HEAL`: 8001
+- `MER_INCAGI`: 8240
+- `MER_BLESSING`: 8239
+- `MER_KYRIE`: 8238
+- `MER_ESTIMATION`: 8237
+- `MER_LEXDIVINA`: 8236
+- `MER_SCAPEGOAT`: 8235
+- `MER_DECAGI`: 8234
+- `MER_AUTOBERSERK`: 8233
+- `MER_PROVOKE`: 8232
+- `MER_COMPRESS`: 8231
+- `MER_MENTALCURE`: 8230
+- `MER_RECUPERATE`: 8229
+- `MER_BENEDICTION`: 8228
+- `MER_TENDER`: 8227
+- `MER_REGAIN`: 8226
+- `MER_CRASH`: 8225
+- `MER_SIGHT`: 8224
+- `MER_QUICKEN`: 8223
+- `MER_MAGNIFICAT`: 8222
+- `ML_DEVOTION`: 8221
+- `ML_AUTOGUARD`: 8220
+- `ML_DEFENDER`: 8219
+- `ML_SPIRALPIERCE`: 8218
+- `ML_BRANDISH`: 8217
+- `ML_PIERCE`: 8216
+- `MA_SHARPSHOOTING`: 8215
+- `MA_CHARGEARROW`: 8214
+- `MA_REMOVETRAP`: 8213
+- `MA_FREEZINGTRAP`: 8212
+- `MA_SANDMAN`: 8211
+- `MA_LANDMINE`: 8210
+- `MA_SKIDTRAP`: 8209
+- `MA_SHOWER`: 8208
+- `MA_DOUBLE`: 8207
+- `MS_BERSERK`: 8206
+- `MS_REFLECTSHIELD`: 8205
+- `MS_PARRYING`: 8204
+- `MS_BOWLINGBASH`: 8203
+- `MS_MAGNUM`: 8202
+- `MS_BASH`: 8201
+- `EL_STONE_RAIN`: 8442
+- `EL_ROCK_CRUSHER_ATK`: 8441
+- `EL_ROCK_CRUSHER`: 8440
+- `EL_STONE_HAMMER`: 8439
+- `EL_TYPOON_MIS_ATK`: 8438
+- `EL_TYPOON_MIS`: 8437
+- `EL_HURRICANE_ATK`: 8436
+- `EL_HURRICANE`: 8435
+- `EL_WIND_SLASH`: 8434
+- `EL_TIDAL_WEAPON`: 8433
+- `EL_WATER_SCREW_ATK`: 8432
+- `EL_WATER_SCREW`: 8431
+- `EL_ICE_NEEDLE`: 8430
+- `EL_FIRE_WAVE_ATK`: 8429
+- `EL_FIRE_WAVE`: 8428
+- `EL_FIRE_BOMB_ATK`: 8427
+- `EL_FIRE_BOMB`: 8426
+- `EL_FIRE_ARROW`: 8425
+- `EL_UPHEAVAL`: 8424
+- `EL_CURSED_SOIL`: 8423
+- `EL_PETROLOGY`: 8422
+- `EL_WILD_STORM`: 8421
+- `EL_BLAST`: 8420
+- `EL_GUST`: 8419
+- `EL_CHILLY_AIR`: 8418
+- `EL_COOLER`: 8417
+- `EL_AQUAPLAY`: 8416
+- `EL_TROPIC`: 8415
+- `EL_HEATER`: 8414
+- `EL_PYROTECHNIC`: 8413
+- `EL_POWER_OF_GAIA`: 8412
+- `EL_STONE_SHIELD`: 8411
+- `EL_SOLID_SKIN`: 8410
+- `EL_ZEPHYR`: 8409
+- `EL_WIND_CURTAIN`: 8408
+- `EL_WIND_STEP`: 8407
+- `EL_WATER_BARRIER`: 8406
+- `EL_WATER_DROP`: 8405
+- `EL_WATER_SCREEN`: 8404
+- `EL_FIRE_MANTLE`: 8403
+- `EL_FIRE_CLOAK`: 8402
+- `EL_CIRCLE_OF_FIRE`: 8401
+- `GD_DEVELOPMENT`: 10014
+- `GD_EMERGENCYCALL`: 10013
+- `GD_RESTORE`: 10012
+- `GD_REGENERATION`: 10011
+- `GD_BATTLEORDER`: 10010
+- `GD_HAWKEYES`: 10009
+- `GD_SOULCOLD`: 10008
+- `GD_GLORYWOUNDS`: 10007
+- `GD_LEADERSHIP`: 10006
+- `GD_GLORYGUILD`: 10005
+- `GD_EXTENSION`: 10004
+- `GD_GUARDUP`: 10003
+- `GD_GUARDRESEARCH`: 10002
+- `GD_KAFRACONTRACT`: 10001
+- `GD_APPROVAL`: 10000
## Mobs (db/re/mob_db.txt)
@@ -7569,6 +7798,8 @@
- `DUMMY_100`: 2410
- `DUMMY_150`: 2411
- `DUMMY_10_FIRE`: 2413
+- `RUNAWAY_BOOK`: 2414
+- `G_L_SHECIL`: 2431
- `MG_ZOMBIE`: 2464
- `MG_WRAITH`: 2465
- `MG_GHOUL`: 2466
@@ -7965,6 +8196,8 @@
- `XM_CELINE_KIMI`: 2996
- `GRIM_REAPER_ANKOU`: 3029
- `TIMEHOLDER`: 3074
+- `J_REB_SHECIL1`: 3169
+- `J_REB_SHECIL2`: 3170
- `E1_FELOCK`: 3181
- `MM_SARAH`: 3190
- `ORGANIC_JAKK`: 3202
@@ -9063,9 +9296,11 @@
- `Thanos_Knuckle`: 1836
- `Scarlet_Knuckle`: 1839
- `Combo_Battle_Glove_IL`: 1846
+- `Iron_Nail_K`: 1847
- `Rebeginer_SR_Nuckle`: 1848
- `Burning_Knuckle_OS`: 1862
- `Evt_Iron_Nail_K`: 1864
+- `Ein_1HKNUCK`: 1867
- `Violin_of_Vicious_Mind`: 1900
- `Violin`: 1901
- `Violin_`: 1902
@@ -9182,8 +9417,10 @@
- `Staff_of_Vicious_Mind`: 2026
- `Wizardy_Staff_IL`: 2039
- `Rebeginer_WL_Staff`: 2046
+- `Iron_Staff`: 2048
- `Survival_Staff_IL`: 2051
- `Evt_Iron_Staff`: 2054
+- `Ein_BHSTAFF`: 2058
- `Guard`: 2101
- `Guard_`: 2102
- `Buckler`: 2103
@@ -12503,6 +12740,8 @@
- `Bag_Of_Selling_Goods`: 6682
- `Cash_Hair_Coupon`: 6707
- `Lovely_Stick`: 6712
+- `Steel_Article`: 6746
+- `Steel_Article_`: 6747
- `Corrupted_Charm`: 6755
- `ORGANIC_PUMPKIN`: 6804
- `INORGANIC_PUMPKIN`: 6805
@@ -13546,6 +13785,11 @@
- `Phreeoni_Egg`: 9111
- `Moonlight_Flower_Egg`: 9112
- `Skelion_Egg`: 9113
+- `Ein_Ddbox`: 9514
+- `Metal_Rifine_Ticket`: 9523
+- `Ein_Ddbox2`: 9529
+- `Gemstone_Of_Time`: 9550
+- `Time_Unseal_Key`: 9551
- `Skull_Helm`: 10001
- `Monster_Oxygen_Mask`: 10002
- `Transparent_Headgear`: 10003
@@ -14562,6 +14806,7 @@
- `Elf_Tear_Curse`: 12880
- `Elf_Tear_Silence`: 12881
- `Elf_Tear_Blind`: 12882
+- `Almighty`: 12883
- `C_Center_Potion`: 12884
- `C_Awakening_Potion`: 12885
- `C_Berserk_Potion`: 12886
@@ -14772,6 +15017,8 @@
- `Upg_Revolver`: 13115
- `Novice_Revolver`: 13116
- `TE_Woe_Pistol`: 13117
+- `Tiny_Flame`: 13118
+- `Freedom_Flame`: 13119
- `H_FEATHER_H_FIRE`: 13120
- `ALTAIR_ARES`: 13122
- `ALTAIR_ARES_`: 13124
@@ -14854,6 +15101,11 @@
- `Poison_Sphere_`: 13225
- `Blind_Sphere_`: 13226
- `Freezing_Sphere_`: 13227
+- `Flare_Bullet`: 13228
+- `Lightning_Bullet`: 13229
+- `Ice_Bullet`: 13230
+- `Poison_Bullet`: 13231
+- `Blind_Bullet`: 13232
- `Shuriken`: 13250
- `Nimbus_Shuriken`: 13251
- `Flash_Shuriken`: 13252
@@ -14923,6 +15175,8 @@
- `Huuma_Fluttering_Snow_IL`: 13337
- `Huuma_Bird_Wing_IL`: 13338
- `Rebeginer_KO_Humma`: 13341
+- `Humma_Clear`: 13345
+- `Ein_BHHuuma`: 13346
- `Cutlas_`: 13400
- `Excalibur_C`: 13401
- `Cutlas_C`: 13402
@@ -14968,6 +15222,7 @@
- `Saber_of_Vicious_Mind`: 13455
- `Immaterial_Sword_IL`: 13469
- `Rebeginer_GN_Sword`: 13483
+- `Sword_Of_Bluefire`: 13485
- `Cannon_Rapier_OS`: 13493
- `Evt_Bluefire_Sword`: 13495
- `Insurance60_Package`: 13500
@@ -16025,13 +16280,28 @@
- `True_Hunting_Mail`: 15246
- `R_Hunting_Mail`: 15247
- `Rebeginer_Suits`: 15250
+- `Overwhelm_Str_Armor`: 15278
+- `Overwhelm_Int_Armor`: 15279
- `S_CriticalHit_Armor`: 15280
+- `Overwhelm_Luk_Armor`: 15346
+- `Overwhelm_Vit_Armor`: 15347
- `Goibne_Armor_IL`: 15348
+- `Overwhelm_Agi_Armor`: 15353
+- `Overwhelm_Dex_Armor`: 15354
- `Illusion_Armor_A`: 15376
- `Illusion_Armor_B`: 15377
+- `Lava_Leather_Armor`: 15378
+- `Lava_Leather_Suits`: 15379
+- `Lava_Leather_Robe`: 15380
- `Time_Overload_Robe`: 15383
- `Schmidt_Suits`: 15388
- `Schmidt_Manteau`: 15389
+- `DragonA_Red`: 15391
+- `DragonA_Green`: 15392
+- `DragonA_Gold`: 15393
+- `DragonA_Purple`: 15394
+- `DragonA_Blue`: 15395
+- `DragonA_Silver`: 15396
- `Erde`: 16000
- `Red_Square_Bag`: 16001
- `Stunner_C`: 16002
@@ -16073,6 +16343,7 @@
- `Rebeginer_N2_Mace`: 16076
- `Saphir_Hall_OS`: 16088
- `Ultio_Spes_OS`: 16089
+- `Ein_1HHAMMER`: 16099
- `Lady_Tanee_Doll_Box`: 16131
- `Lunatic_Hat_Box`: 16132
- `King_Frog_Hat_Box`: 16134
@@ -16404,6 +16675,7 @@
- `Tw_Red_Scroll`: 17210
- `Tw_Orange_Scroll`: 17211
- `Tw_Yellow_Scroll`: 17212
+- `Almighty_Box`: 17224
- `C_Center_Potion_Box`: 17226
- `C_Awakening_Potion_Box`: 17227
- `C_Berserk_Potion_Box`: 17228
@@ -16488,6 +16760,7 @@
- `Infinity_Bow`: 18128
- `Scarlet_Bow`: 18130
- `Balistar_IL`: 18149
+- `Royal_Bow_K`: 18164
- `Rebeginer_RN_Bow`: 18165
- `Rebeginer_WM_Bow`: 18166
- `Neev_Bow_Of_Rogue`: 18170
@@ -16497,6 +16770,7 @@
- `AC_B44_OS`: 18180
- `Evt_Royal_Bow_K`: 18182
- `Evt_Narcis_Bow`: 18183
+- `Ein_BHBOW`: 18190
- `Cheer_Scarf6`: 18500
- `Cheer_Scarf8`: 18501
- `Cheer_Scarf10`: 18502
@@ -17718,10 +17992,17 @@
- `C_Magic_Circle`: 20515
- `C_Wings_of_Michael`: 20516
- `C_GiantCatBag_TW`: 20517
+- `C_Full_BloomCherry_Tree`: 20519
- `C_GoldButterfly_Wing`: 20528
- `C_Wings_of_Gabriel`: 20530
- `C_PinkButterfly_Wing_T`: 20533
- `C_Digital_Space`: 20535
+- `C_Halloween_Poring_Bag`: 20543
+- `C_Backside_Ribbon_Bell`: 20546
+- `C_HeartChocoBag`: 20570
+- `C_WingOfHeart`: 20572
+- `C_Cat_Fork`: 20576
+- `C_Big_Foxtail`: 20584
- `Fantastic_Aura`: 20600
- `Egir_Manteau`: 20700
- `TE_Woe_Muffler`: 20702
@@ -17774,6 +18055,13 @@
- `Time_Overload_Hood`: 20939
- `Violet_Halo`: 20940
- `Fairy_Cloth`: 20944
+- `Drag_Manteau`: 20946
+- `Temporal_M_Str`: 20963
+- `Temporal_M_Agi`: 20964
+- `Temporal_M_Vit`: 20965
+- `Temporal_M_Int`: 20966
+- `Temporal_M_Dex`: 20967
+- `Temporal_M_Luk`: 20968
- `Upg_Twohand_Sword`: 21000
- `Velum_Claymore`: 21001
- `Velum_Katzbalger`: 21002
@@ -17794,8 +18082,11 @@
- `Lindy_Hop`: 21018
- `Onimaru`: 21019
- `Rebeginer_RK_T_Sword`: 21037
+- `Oriental_Sword`: 21038
- `Beam_Claymore_OS`: 21047
- `Evt_Oriental_Sword`: 21049
+- `Taegoolyeon_IL`: 21050
+- `Ein_BHSWORD`: 21054
- `Temporal_Str_Boots`: 22000
- `Temporal_Int_Boots`: 22001
- `Temporal_Agi_Boots`: 22002
@@ -17847,6 +18138,7 @@
- `Illusion_Leg_A`: 22196
- `Illusion_Leg_B`: 22197
- `Time_Overload_Boots`: 22204
+- `Dragon_Boots`: 22208
- `Para_Team_Mark_`: 22508
- `Candy_Holder`: 22514
- `Key_Of_Twisted_Time`: 22515
@@ -17860,6 +18152,12 @@
- `Chest_Of_Death`: 22679
- `Solo_Christmas_Gift`: 22685
- `Solo_Cookie`: 22686
+- `STR_Soul_Potion`: 22702
+- `AGI_Soul_Potion`: 22703
+- `VIT_Soul_Potion`: 22704
+- `INT_Soul_Potion`: 22705
+- `DEX_Soul_Potion`: 22706
+- `LUK_Soul_Potion`: 22707
- `Bullet_Case_Blood_`: 22737
- `Bullet_Case_Silver_`: 22738
- `Sphere_Case_Wind_`: 22739
@@ -17907,10 +18205,12 @@
- `Buy_Arbeit1_2Lv_`: 23358
- `Buy_Arbeit1_3Lv_`: 23359
- `Green_Scroll_K2`: 23405
+- `Shadow_Refine_Hammer`: 23436
- `Sentimental_Scroll`: 23440
- `July_Hair_Box`: 23444
- `Savage_Trap`: 23446
- `Infinity_Scroll`: 23473
+- `InfinityShadow_Mix`: 23474
- `Infinity_Drink`: 23475
- `Firstaid_Box_5`: 23484
- `Firstaid_Box_10`: 23485
@@ -17937,6 +18237,9 @@
- `White_Potion_B_20`: 23506
- `Vote_Rose`: 23533
- `Bloody_Scroll`: 23537
+- `Silver_Statue`: 23545
+- `Cursed_Blood`: 23546
+- `Gold_Statue`: 23547
- `Snow_Cookie`: 23549
- `Winter_Cookie`: 23550
- `Festi_Cookie`: 23551
@@ -17958,11 +18261,22 @@
- `2017_Special_Scroll`: 23618
- `Ice_Scroll`: 23650
- `2018_New_Year_Scroll`: 23661
+- `PhysicalMagical_Mix`: 23665
+- `ImmunedAthena_Mix`: 23666
+- `HardChamption_Mix`: 23667
+- `KingbirdAncient_Mix`: 23668
+- `CriticalHit_Mix`: 23669
+- `Geffen_Magic_Scroll`: 23675
+- `Gray_Charcoal_Melee`: 23676
+- `Gray_Charcoal_Magic`: 23677
+- `Gray_Charcoal_Range`: 23678
+- `Geffen_Magic_Scroll2`: 23679
- `EVT_JAN02KR`: 23683
- `Lunar_New_Year_Scroll`: 23700
- `Reactor_Z`: 23706
- `Reactor_Z_`: 23707
- `2018_Spring_Scroll`: 23710
+- `Shadow_Random_Mix`: 23720
- `Melon_Bread`: 23723
- `Costama_EggV02`: 23765
- `Mysterious_Plastic`: 23771
@@ -17970,15 +18284,101 @@
- `EP17_1_SPC02`: 23773
- `EP17_1_SPC03`: 23774
- `EP17_1_SPC04`: 23775
+- `EP17_1_SPC05`: 23776
+- `EP17_1_SPC06`: 23777
+- `EP17_1_SPC07`: 23778
+- `EP17_1_SPC08`: 23779
+- `EP17_1_SPC09`: 23780
+- `EP17_1_SPC10`: 23781
+- `Magma_Essence`: 23815
- `Bs_Making_Scrolls`: 23817
+- `Bs_Item_M_S_2`: 23818
+- `Bs_Item_M_S_8`: 23819
+- `Bs_Item_M_S_10`: 23820
+- `Bs_Item_M_S_11`: 23821
+- `Bs_Item_M_S_34`: 23822
+- `Bs_Item_M_S_41`: 23823
+- `Bs_Item_M_S_42`: 23824
+- `Bs_Item_M_S_43`: 23825
+- `Bs_Item_M_S_44`: 23826
+- `Bs_Sha_M_S_1`: 23827
+- `Bs_Sha_M_S_17`: 23828
+- `Bs_Sha_M_S_18`: 23829
+- `Bs_Sha_M_S_19`: 23830
+- `Bs_Sha_M_S_20`: 23831
+- `Bs_Item_M_S_4`: 23832
+- `Bs_Item_M_S_6`: 23833
+- `Bs_Item_M_S_7`: 23834
+- `Bs_Item_M_S_12`: 23835
+- `Bs_Item_M_S_13`: 23836
+- `Bs_Item_M_S_15`: 23837
+- `Bs_Item_M_S_28`: 23838
+- `Bs_Item_M_S_29`: 23839
+- `Bs_Item_M_S_31`: 23840
+- `Bs_Item_M_S_32`: 23841
+- `Bs_Item_M_S_33`: 23842
+- `Bs_Item_M_S_36`: 23843
+- `Bs_Item_M_S_37`: 23844
+- `Bs_Item_M_S_38`: 23845
+- `Bs_Item_M_S_39`: 23846
+- `Bs_Item_M_S_40`: 23847
+- `Bs_Item_M_S_45`: 23848
+- `Bs_Item_M_S_46`: 23849
+- `Bs_Item_M_S_47`: 23850
+- `Bs_Item_M_S_48`: 23851
+- `Bs_Item_M_S_49`: 23852
+- `Bs_Item_M_S_50`: 23853
+- `Bs_Sha_M_S_2`: 23854
+- `Bs_Sha_M_S_5`: 23855
+- `Bs_Sha_M_S_6`: 23856
+- `Bs_Sha_M_S_7`: 23857
+- `Bs_Sha_M_S_8`: 23858
+- `Bs_Sha_M_S_13`: 23859
+- `Bs_Sha_M_S_15`: 23860
+- `Bs_Sha_M_S_16`: 23861
+- `Bs_Sha_M_S_23`: 23862
+- `Bs_Item_M_S_5`: 23863
+- `Bs_Item_M_S_9`: 23864
+- `Bs_Item_M_S_14`: 23865
+- `Bs_Item_M_S_16`: 23866
+- `Bs_Item_M_S_17`: 23867
+- `Bs_Item_M_S_19`: 23868
+- `Bs_Item_M_S_27`: 23869
+- `Bs_Item_M_S_35`: 23870
+- `Bs_Sha_M_S_9`: 23871
+- `Bs_Sha_M_S_10`: 23872
+- `Bs_Sha_M_S_11`: 23873
+- `Bs_Sha_M_S_21`: 23874
+- `Bs_Sha_M_S_22`: 23875
+- `Bs_Item_M_S_1`: 23876
+- `Bs_Item_M_S_3`: 23877
- `StarSoul_Scroll`: 23878
+- `Bs_Item_M_S_18`: 23879
+- `Bs_Item_M_S_20`: 23880
+- `Bs_Item_M_S_21`: 23881
+- `Bs_Item_M_S_22`: 23882
+- `Bs_Item_M_S_23`: 23883
+- `Bs_Item_M_S_24`: 23884
+- `Bs_Item_M_S_25`: 23885
+- `Bs_Item_M_S_26`: 23886
+- `Bs_Item_M_S_30`: 23887
+- `Bs_Sha_M_S_3`: 23888
+- `Bs_Sha_M_S_4`: 23889
+- `Bs_Sha_M_S_12`: 23890
+- `Bs_Sha_M_S_14`: 23891
+- `Bs_Sha_M_S_24`: 23892
+- `Bs_Sha_M_S_25`: 23893
+- `Bs_Item_M_S_51`: 23894
- `2018_Jump_Thx_Box`: 23897
- `Comp_Power_Booster`: 23898
- `Comp_Almighty`: 23899
- `Time_Overload_Box`: 23900
- `110LVUP`: 23901
- `Season_Evt_Reward`: 23921
+- `Shadow_9_Refine_Hammer`: 23926
- `Malang_Cat_Can2`: 23962
+- `EnchantStone_Recipe_9m`: 23967
+- `Abyss_Ddbox`: 23981
- `T1_Shadow_Armor`: 24000
- `T1_Shadow_Weapon`: 24001
- `T1_Shadow_Shield`: 24002
@@ -18267,6 +18667,168 @@
- `S_Timeoverload_Shoes`: 24419
- `S_Timeoverload_Earing`: 24420
- `S_Timeoverload_Pandent`: 24421
+- `S_Tempest_Weapon`: 24423
+- `S_Tempest_Armor`: 24424
+- `S_PerfectSize_Weapon`: 24425
+- `S_PerfectSize_Armor`: 24426
+- `S_M_Exo_Co_Weapon`: 24427
+- `S_M_Viv_Dr_Weapon`: 24428
+- `S_M_Sci_Hu_Weapon`: 24429
+- `S_M_Fis_In_Weapon`: 24430
+- `S_M_Exe_Ho_Weapon`: 24431
+- `S_Penetration_Weapon`: 24432
+- `S_Penetration_Armor`: 24433
+- `S_Exe_Ho_Weapon`: 24434
+- `S_Fis_In_Weapon`: 24435
+- `S_Sci_Hu_Weapon`: 24436
+- `S_Viv_Dr_Weapon`: 24437
+- `S_Exo_Co_Weapon`: 24438
+- `S_Hasty_Weapon`: 24439
+- `S_Sonic_Armor`: 24440
+- `S_Sonic_Shield`: 24441
+- `S_Sonic_Shoes`: 24442
+- `S_Ignition_Weapon`: 24443
+- `S_Ignition_Pendant`: 24444
+- `S_Ignition_Earing`: 24445
+- `S_W_Breath_Armor`: 24446
+- `S_W_Breath_Shield`: 24447
+- `S_W_Breath_Shoes`: 24448
+- `S_F_Breath_Weapon`: 24449
+- `S_F_Breath_Pendant`: 24450
+- `S_F_Breath_Earing`: 24451
+- `S_Cluster_Armor`: 24452
+- `S_Cluster_Shield`: 24453
+- `S_Cluster_Shoes`: 24454
+- `S_Aimed_Weapon`: 24455
+- `S_Aimed_Pendant`: 24456
+- `S_Aimed_Earing`: 24457
+- `S_Arrow_Armor`: 24458
+- `S_Arrow_Shield`: 24459
+- `S_Arrow_Shoes`: 24460
+- `S_Shooting_Weapon`: 24461
+- `S_Shooting_Pendant`: 24462
+- `S_Shooting_Earing`: 24463
+- `S_Tornado_Armor`: 24464
+- `S_Tornado_Shield`: 24465
+- `S_Tornado_Shoes`: 24466
+- `S_Boomerang_Weapon`: 24467
+- `S_Boomerang_Pendant`: 24468
+- `S_Boomerang_Earing`: 24469
+- `S_Vulcan_Armor`: 24470
+- `S_Vulcan_Shield`: 24471
+- `S_Vulcan_Shoes`: 24472
+- `S_Arms_Weapon`: 24473
+- `S_Arms_Pendant`: 24474
+- `S_Arms_Earing`: 24475
+- `S_Rampage_Armor`: 24476
+- `S_Rampage_Shield`: 24477
+- `S_Rampage_Shoes`: 24478
+- `S_Skynetblow_Weapon`: 24479
+- `S_Skynetblow_Pendant`: 24480
+- `S_Skynetblow_Earing`: 24481
+- `S_Knucklearrow_Armor`: 24482
+- `S_Knucklearrow_Shield`: 24483
+- `S_Knucklearrow_Shoes`: 24484
+- `S_TigerCannon_Weapon`: 24485
+- `S_Tigercannon_Pendant`: 24486
+- `S_Tigercannon_Earing`: 24487
+- `S_Duplelight_Armor`: 24488
+- `S_Duplelight_Shield`: 24489
+- `S_Duplelight_Shoes`: 24490
+- `S_Adoramus_Weapon`: 24491
+- `S_Adoramus_Pendant`: 24492
+- `S_Adoramus_Earing`: 24493
+- `S_Judex_Armor`: 24494
+- `S_Judex_Shield`: 24495
+- `S_Judex_Shoes`: 24496
+- `S_Magnus_Weapon`: 24497
+- `S_Magnus_Pendant`: 24498
+- `S_Magnus_Earing`: 24499
+- `S_Rainstorm_Armor`: 24500
+- `S_Rainstorm_Shield`: 24501
+- `S_Rainstorm_Shoes`: 24502
+- `S_Arrowvulcan_Weapon`: 24503
+- `S_Arrowvulcan_Pendant`: 24504
+- `S_Arrowvulcan_Earing`: 24505
+- `S_Metalic_Armor`: 24506
+- `S_Metalic_Shield`: 24507
+- `S_Metalic_Shoes`: 24508
+- `S_Reverberation_Weapon`: 24509
+- `S_Reverberation_Pendant`: 24510
+- `S_Reverberation_Earing`: 24511
+- `S_Jack_Armor`: 24512
+- `S_Jack_Shield`: 24513
+- `S_Jack_Shoes`: 24514
+- `S_Strain_Weapon`: 24515
+- `S_Strain_Pendant`: 24516
+- `S_Strain_Earing`: 24517
+- `S_Crimson_Armor`: 24518
+- `S_Crimson_Shield`: 24519
+- `S_Crimson_Shoes`: 24520
+- `S_Chain_Weapon`: 24521
+- `S_Chain_Pendant`: 24522
+- `S_Chain_Earing`: 24523
+- `S_Triangle_Armor`: 24524
+- `S_Triangle_Shield`: 24525
+- `S_Triangle_Shoes`: 24526
+- `S_Shadowspell_Weapon`: 24527
+- `S_Shadowspell_Pendant`: 24528
+- `S_Shadowspell_Earing`: 24529
+- `S_Menace_Armor`: 24530
+- `S_Menace_Shield`: 24531
+- `S_Menace_Shoes`: 24532
+- `S_Paint_Weapon`: 24533
+- `S_Paint_Pendant`: 24534
+- `S_Paint_Earing`: 24535
+- `S_Rolling_Armor`: 24536
+- `S_Rolling_Shield`: 24537
+- `S_Rolling_Shoes`: 24538
+- `S_Katar_Weapon`: 24539
+- `S_Katar_Pendant`: 24540
+- `S_Katar_Earing`: 24541
+- `S_Slash_Armor`: 24542
+- `S_Slash_Shield`: 24543
+- `S_Slash_Shoes`: 24544
+- `S_Ripper_Weapon`: 24545
+- `S_Ripper_Pendant`: 24546
+- `S_Ripper_Earing`: 24547
+- `S_Dust_Armor`: 24548
+- `S_Dust_Shield`: 24549
+- `S_Dust_Shoes`: 24550
+- `S_Grave_Weapon`: 24551
+- `S_Grave_Pendant`: 24552
+- `S_Grave_Earing`: 24553
+- `S_Psychic_Armor`: 24554
+- `S_Psychic_Shield`: 24555
+- `S_Psychic_Shoes`: 24556
+- `S_Varetyr_Weapon`: 24557
+- `S_Varetyr_Pendant`: 24558
+- `S_Varetyr_Earing`: 24559
+- `S_Cart_Tornado_Armor`: 24560
+- `S_Cart_Tornado_Shield`: 24561
+- `S_Cart_Tornado_Shoes`: 24562
+- `S_Cannon_Cart_Weapon`: 24563
+- `S_Cannon_Cart_Pendant`: 24564
+- `S_Cannon_Cart_Earing`: 24565
+- `S_Spore_Bomb_Armor`: 24566
+- `S_Spore_Bomb_Shield`: 24567
+- `S_Spore_Bomb_Shoes`: 24568
+- `S_Crazy_Weapon`: 24569
+- `S_Crazy_Pendant`: 24570
+- `S_Crazy_Earing`: 24571
+- `S_Brand_Armor`: 24572
+- `S_Brand_Shield`: 24573
+- `S_Brand_Shoes`: 24574
+- `S_Chain_Press_Weapon`: 24575
+- `S_Chain_Press_Pendant`: 24576
+- `S_Chain_Press_Earing`: 24577
+- `S_Banish_Cannon_Armor`: 24578
+- `S_Banish_Cannon_Shield`: 24579
+- `S_Banish_Cannon_Shoes`: 24580
+- `S_Genesis_Weapon`: 24581
+- `S_Genesis_Pendant`: 24582
+- `S_Genesis_Earing`: 24583
+- `Slug_Bullet`: 25187
- `BrokenArrow`: 25258
- `Shining_Spore`: 25265
- `Dried_Leaf_Of_Ygg`: 25266
@@ -18373,17 +18935,58 @@
- `GH_Cursed_Crystal`: 25739
- `GH_Cursed_Gemstone`: 25740
- `Inventory_Extension_Coupon`: 25793
+- `SuraStone_Robe2`: 25797
+- `SuraStone_Bottom2`: 25798
+- `SuraStone_Middle2`: 25799
+- `SuraStone_Top2`: 25800
+- `SorcererStone_Robe2`: 25801
+- `SorcererStone_Bottom2`: 25802
+- `SorcererStone_Middle2`: 25803
+- `SorcererStone_Top2`: 25804
+- `ShadowchaserStone_Robe2`: 25805
+- `ShadowchasStone_Bottom2`: 25806
+- `ShadowchasStone_Middle2`: 25807
+- `ShadowchaserStone_Top2`: 25808
+- `Ein_SOLIDDUST`: 25815
+- `Ein_RUSTHELM`: 25816
+- `Ein_EYEROCK`: 25817
+- `SoulreaperStone_Robe`: 25842
+- `SoullinkerStone_Top`: 25843
+- `SoullinkerStone_Middle`: 25844
+- `SoullinkerStone_Bottom`: 25845
+- `GladiatorStone_Top`: 25846
+- `GladiatorStone_Middle`: 25847
+- `GladiatorStone_Bottom`: 25848
+- `StaremperorStone_Robe`: 25849
+- `NinjaStone_Top`: 25850
+- `NinjaStone_Middle`: 25851
+- `NinjaStone_Bottom`: 25852
+- `KagerouStone_Robe`: 25853
+- `OboroStone_Robe`: 25854
+- `GunslingerStone_Top`: 25855
+- `GunslingerStone_Middle`: 25856
+- `GunslingerStone_Bottom`: 25857
+- `RebellionStone_Robe`: 25858
+- `DoramStone_Top`: 25859
+- `DoramStone_Middle`: 25860
+- `DoramStone_Bottom`: 25861
+- `DoramStone_Robe`: 25862
- `Spectral_Spear_IL`: 26007
- `Rebeginer_LG_Lance`: 26015
- `Paradise_Foxtail_Staff_III`: 26101
- `Staff_Of_Bordeaux_IL`: 26109
- `CandyCaneRod`: 26110
- `Metal_Foxtail`: 26111
+- `Shadow_Staff_K`: 26118
- `Rebeginer_SO_Rod`: 26119
- `Rebeginer_DO_Rod`: 26120
- `Rutilus_Stick_OS`: 26151
+- `SoulWeight`: 26154
- `MeawFoxtail`: 26155
- `Evt_Shadow_Staff_K`: 26156
+- `Ein_1HWAND`: 26162
+- `ElectricFox_OS`: 26164
+- `Ein_1HWHIP`: 26215
- `Faceworm_Queen_Card`: 27164
- `Captain_Felock_Card`: 27182
- `Thanos_Katar`: 28000
@@ -18396,14 +18999,18 @@
- `Ghoul_Leg_IL`: 28023
- `Rebeginer_GC_Katar`: 28027
- `Meuchler_OS`: 28038
+- `Shiver_Katar_K`: 28039
- `Evt_Shiver_Katar_K`: 28040
+- `Ein_BHKATAR`: 28045
- `Thanos_Axe`: 28100
- `Tornado_Axe`: 28101
- `Infinity_Two_handed_Axe`: 28105
- `Scarlet_Twohand_Axe`: 28106
- `Two_Handed_Axe_of_Vicious_Mind`: 28107
+- `Avenger`: 28130
- `Blasti_OS`: 28136
- `Evt_Avenger`: 28137
+- `Ein_BHAXE`: 28140
- `END_OF_HORIZON`: 28200
- `Southern_Cross_R`: 28201
- `Southern_Cross_R_`: 28202
@@ -18415,6 +19022,11 @@
- `Calf_Python`: 28243
- `Gate_KeeperDD_IL`: 28244
- `HR_S55_OS`: 28253
+- `Butcher_IL`: 28254
+- `Master_Soul_Rifle`: 28255
+- `Demon_S_Shot`: 28256
+- `Golden_L_Launcher`: 28257
+- `The_Black_Gatling`: 28258
- `Bless_Of_Moon`: 28306
- `Earring_Of_Sarah_L`: 28310
- `Earring_Of_Sarah_R`: 28311
@@ -18458,16 +19070,24 @@
- `Rebeginer_AB_Bible`: 28616
- `Tablet_IL`: 28626
- `Circuit_Board_OS`: 28629
+- `Demon_Hunting_Bible_K`: 28630
- `Time_Kamiji`: 28631
+- `Ein_1HBOOK`: 28635
- `Infinity_Dagger`: 28703
- `Twilight_Desert_`: 28704
- `Scarlet_Dagger`: 28705
- `Dagger_of_Vicious_Mind`: 28706
- `Moonlight_Sword_IL`: 28725
- `Rebeginer_SC_Dagger`: 28740
+- `Magic_Sword`: 28744
- `Counter_Dagger_IL`: 28745
- `Kuroiro_OS`: 28755
- `Evt_Magic_Sword`: 28759
+- `Bazerald_IL`: 28762
+- `Sharp_Wind_Sword`: 28763
+- `Fog_Dew_Sword`: 28764
+- `Ein_1HDAGGER`: 28771
+- `Ein_1HMAGGER`: 28772
- `Praetorian_Shield`: 28900
- `Cursed_Mad_Bunny`: 28901
- `Mad_Bunny_`: 28902
@@ -18533,6 +19153,7 @@
- `Harvest_Festa_Hat`: 31368
- `Straight_Long_WH_`: 31369
- `Straight_Long_YL_`: 31370
+- `C_Cat_Ears_Punkish`: 31382
- `Jjakk`: 31387
- `White_Bird_Rose`: 31389
- `Let_It_Snow`: 31390
@@ -18545,34 +19166,281 @@
- `C_Astro_Circle`: 31433
- `C_Baby_Penguin`: 31437
- `C_Fluffy_Heart_Earmuffs`: 31439
+- `C_Snow_Bear_Food`: 31440
- `White_Cat`: 31452
- `Love_Feeling`: 31454
- `Enchanted_Dog`: 31455
- `C_Blessing_Sky_Lantern`: 31460
- `C_Flying_Drone`: 31463
- `Egg_Minihat`: 31465
+- `C_CatCoffeeCup_TW`: 31481
+- `C_CatEarRibbon_TW`: 31483
- `C_Bouquet_Hat`: 31489
- `C_Poring_Muffler`: 31490
- `Volume_Low_Twin`: 31494
- `Lolita_Two_Side_Up`: 31495
- `C_Elephangel_TH`: 31498
+- `C_Panda_Rabbit`: 31512
- `Mini_Melon`: 31516
- `Pop_Popcorn_Hat_`: 31518
- `Slurp_Slurp_Hat`: 31519
- `C_Happy_Rabbit_Ribbon`: 31529
+- `C_Princess_Ribbon_Crown`: 31565
+- `C_OpenAir_Headset`: 31569
+- `C_Mobile_Pursuit_System`: 31572
+- `C_Mecha_Cat_Ears`: 31573
+- `C_Cyber_Income`: 31574
- `Autumnal_Flavor`: 31580
+- `C_Poporing_Muffler`: 31586
- `GOLD_MAJESTIC_GOUT`: 31589
+- `C_Kishu_Inu`: 31600
- `C_Autumn_Headband`: 31606
+- `C_Fox`: 31614
+- `C_Sleep_Sheep_TW`: 31616
+- `C_HeartOfCat_TW`: 31624
+- `C_Protect_Cloth`: 31625
+- `C_LunaticMuffler`: 31693
+- `C_Pigtail_Red_Hood`: 31698
+- `C_Smiling_Eyes`: 31699
+- `C_Garnet_Tiara`: 31765
+- `C_Peony_Hair_Ornament`: 31766
+- `C_SavageB_On_Shoulder`: 31787
+- `C_Baby_Panda`: 31798
- `Pole_Axe_IL`: 32005
- `Metal_Stick`: 32013
+- `Undine_Spear_K`: 32018
- `Boost_Lance_OS`: 32019
- `Evt_Undine_Spear_K`: 32021
+- `Ein_1HSPEAR`: 32026
+- `Ein_1HLUTE`: 32110
- `Illusion_B_R`: 32207
- `Illusion_B_L`: 32208
- `Illusion_BC_R`: 32209
- `Illusion_BC_L`: 32210
- `Time_Overload_Ring`: 32221
- `Celine_Brooch`: 32237
+- `Gold_Lux_IL`: 32301
+- `Crimson_Rose`: 32302
+- `Ein_1HGUN`: 32303
+- `Ein_1HSWORD`: 32352
+- `Atker_Plate`: 450001
+- `Ele_Robe`: 450002
+- `Atker_Manteau`: 480000
+- `Defn_Robe`: 450003
+- `Ele_Muffler`: 480001
+- `Ran_Suits`: 450004
+- `Defn_Muffler`: 480002
+- `Ran_Manteau`: 480003
+- `Boost_Dagger`: 510001
+- `Boost_Nindo`: 510002
+- `Boost_Spl_Book`: 540000
+- `Boost_Text`: 540001
+- `Boost_Guitar`: 570000
+- `Fatalist`: 510006
+- `Trumpet_Shell_K`: 570002
+- `Boost_TH_Sword`: 600001
+- `Noblesse_Attack_Manteau`: 480012
+- `Dragonic_Slayer`: 600004
+- `Noblesse_Magic_Manteau`: 480014
+- `Noblesse_Breath_Armor`: 450018
+- `Imperial_Attack_Manteau`: 480016
+- `Noblesse_Knight_Armor`: 450019
+- `Imperial_Magic_Manteau`: 480017
+- `Noblesse_Spear_Armor`: 450020
+- `Grace_Attack_Manteau`: 480018
+- `Noblesse_Genesis_Armor`: 450021
+- `Grace_Magic_Manteau`: 480019
+- `Noblesse_Sharp_Suit`: 450022
+- `Noblesse_Aim_Suit`: 450023
+- `Noblesse_Severe_Suit`: 450024
+- `Noblesse_Reverb_Suit`: 450025
+- `Noblesse_Adora_Robe`: 450026
+- `Noblesse_Duple_Robe`: 450027
+- `Noblesse_Tonado_Armor`: 450028
+- `Noblesse_Vulcan_Armor`: 450029
+- `Noblesse_Kart_Suit`: 450030
+- `Noblesse_Kart_Suit2`: 450031
+- `Noblesse_Rolling_Suit`: 450032
+- `Noblesse_Assasin_Suit`: 450033
+- `Noblesse_Fatal_Suit`: 450034
+- `Noblesse_Stalker_Suit`: 450035
+- `Noblesse_Picky_Robe`: 450036
+- `Noblesse_Carrot_Robe`: 450037
+- `Noblesse_Trip_Suit`: 450038
+- `Noblesse_Firerain_Suit`: 450039
+- `Noblesse_Crimson_Robe`: 450040
+- `Noblesse_Frost_Robe`: 450041
+- `Noblesse_Psychic_Robe`: 450042
+- `Noblesse_Dust_Robe`: 450043
+- `Noblesse_Sun_Suit`: 450044
+- `Noblesse_Moon_Suit`: 450045
+- `Noblesse_Ninja_Suit`: 450046
+- `Noblesse_Kunai_Suit`: 450047
+- `Noblesse_Swhoo_Robe`: 450048
+- `Noblesse_Explosion_Robe`: 450049
+- `Noblesse_Knuckle_Suit`: 450050
+- `Noblesse_Tiger_Suit`: 450051
+- `Imperial_Breath_Armor`: 450052
+- `Imperial_Knight_Armor`: 450053
+- `Imperial_Spear_Armor`: 450054
+- `Imperial_Genesis_Armor`: 450055
+- `Imperial_Sharp_Suit`: 450056
+- `Imperial_Aim_Suit`: 450057
+- `Imperial_Severe_Suit`: 450058
+- `Imperial_Reverb_Suit`: 450059
+- `Imperial_Adora_Robe`: 450060
+- `Imperial_Duple_Robe`: 450061
+- `WarlockStone_Robe2`: 1000213
+- `Imperial_Knuckle_Suit`: 450062
+- `WarlockStone_Top2`: 1000214
+- `Imperial_Tiger_Suit`: 450063
+- `WarlockStone_Middle2`: 1000215
+- `Imperial_Tonado_Armor`: 450064
+- `WarlockStone_Bottom2`: 1000216
+- `Imperial_Vulcan_Armor`: 450065
+- `RoyalguardStone_Robe2`: 1000217
+- `Imperial_Kart_Suit`: 450066
+- `PaladinStone_Top2`: 1000218
+- `Imperial_Kart_Suit2`: 450067
+- `PaladinStone_Middle2`: 1000219
+- `Imperial_Rolling_Suit`: 450068
+- `PaladinStone_Bottom2`: 1000220
+- `Imperial_Assasin_Suit`: 450069
+- `GuillcrossStone_Robe2`: 1000221
+- `Imperial_Fatal_Suit`: 450070
+- `AssacrossStone_Top2`: 1000222
+- `IDTest_Special`: 100000
+- `Imperial_Stalker_Suit`: 450071
+- `AssacrossStone_Middle2`: 1000223
+- `Imperial_Picky_Robe`: 450072
+- `AssacrossStone_Bottom2`: 1000224
+- `Imperial_Carrot_Robe`: 450073
+- `ILL_Piece_A`: 100003
+- `Imperial_Trip_Suit`: 450074
+- `ILL_Piece_B`: 100004
+- `Imperial_Firerain_Suit`: 450075
+- `Imperial_Crimson_Robe`: 450076
+- `Imperial_Frost_Robe`: 450077
+- `Imperial_Psychic_Robe`: 450078
+- `Imperial_Dust_Robe`: 450079
+- `Joy_Of_Victory`: 100009
+- `Imperial_Sun_Suit`: 450080
+- `PerfectSize_Mix`: 100010
+- `Imperial_Moon_Suit`: 450081
+- `MagicPiercing_Mix`: 100011
+- `Imperial_Ninja_Suit`: 450082
+- `Imperial_Kunai_Suit`: 450083
+- `Imperial_Swhoo_Robe`: 450084
+- `Imperial_Explosion_Robe`: 450085
+- `Grace_Breath_Armor`: 450086
+- `Grace_Knight_Armor`: 450087
+- `Grace_Spear_Armor`: 450088
+- `Grace_Genesis_Armor`: 450089
+- `Grace_Sharp_Suit`: 450090
+- `Grace_Aim_Suit`: 450091
+- `Grace_Severe_Suit`: 450092
+- `Victory_Wing_Ear_`: 400002
+- `Grace_Reverb_Suit`: 450093
+- `Ancient_Hero_Bravery`: 100023
+- `Grace_Adora_Robe`: 450094
+- `Grace_Duple_Robe`: 450095
+- `Ancient_Hero_Wisdom`: 100025
+- `Grace_Knuckle_Suit`: 450096
+- `Grace_Tiger_Suit`: 450097
+- `Grace_Tonado_Armor`: 450098
+- `Grace_Vulcan_Armor`: 450099
+- `Boost_Axe`: 520000
+- `Grace_Kart_Suit`: 450100
+- `Grace_Kart_Suit2`: 450101
+- `Grace_Rolling_Suit`: 450102
+- `Boost_Soul_Rod`: 550001
+- `Grace_Assasin_Suit`: 450103
+- `Boost_Foxtail`: 550002
+- `Boost_Whip`: 580000
+- `Grace_Fatal_Suit`: 450104
+- `Grace_Stalker_Suit`: 450105
+- `Barb_Wire_K`: 580002
+- `Boost_Katar`: 610000
+- `Grace_Picky_Robe`: 450106
+- `Grace_Carrot_Robe`: 450107
+- `Ein_1H_Foxtail`: 550006
+- `Boost_Staff`: 640000
+- `Grace_Trip_Suit`: 450108
+- `Freezing_Rod`: 550007
+- `Blade_Katar`: 610003
+- `Grace_Firerain_Suit`: 450109
+- `Grace_Crimson_Robe`: 450110
+- `C_BeachBall`: 400020
+- `Grace_Frost_Robe`: 450111
+- `Blue_Crystal_Staff`: 640004
+- `Grace_Psychic_Robe`: 450112
+- `Boost_Bow`: 700001
+- `Grace_Dust_Robe`: 450113
+- `Boost_Up_1`: 100043
+- `Grace_Sun_Suit`: 450114
+- `Scalet_Dragon_L_Bow`: 700003
+- `Boost_Up_2`: 100044
+- `Grace_Moon_Suit`: 450115
+- `Grace_Ninja_Suit`: 450116
+- `Grace_Kunai_Suit`: 450117
+- `Grace_Swhoo_Robe`: 450118
+- `Grace_Explosion_Robe`: 450119
+- `Noblesse_Snovice_Suit`: 450121
+- `Noblesse_Snovice_Robe`: 450122
+- `Imperial_Snovice_Suit`: 450123
+- `Piercing_Mix`: 100053
+- `Imperial_Snovice_Robe`: 450124
+- `Grace_Snovice_Suit`: 450125
+- `Grace_Snovice_Robe`: 450126
+- `Hasty_Mix`: 100058
+- `EnchantStone_Recipe_4m`: 100060
+- `RangerStone_Top2`: 1000008
+- `RangerStone_Middle2`: 1000009
+- `RangerStone_Bottom2`: 1000010
+- `RangerStone_Robe2`: 1000011
+- `MechanicStone_Top2`: 1000012
+- `MechanicStone_Middle2`: 1000013
+- `MechanicStone_Bottom2`: 1000014
+- `MechanicStone_Robe2`: 1000015
+- `HighpriestStone_Top2`: 1000016
+- `HighpriestStone_Middle2`: 1000017
+- `HighpriestStone_Bottom2`: 1000018
+- `ArchbishopStone_Robe2`: 1000019
+- `C_SharkHead`: 440000
+- `Atker_Greave`: 470000
+- `Ele_Shoes`: 470001
+- `Defn_Shoes`: 470002
+- `Ran_Boots`: 470003
+- `Boost_Sword`: 500001
+- `Boost_Spear`: 530000
+- `Light_Blade`: 500003
+- `Slate_Sword`: 500004
+- `Boost_Knuckle`: 560000
+- `Boost_Hall`: 590000
+- `Noblesse_Rifine_Ticket`: 100128
+- `Imperial_Rifine_Ticket`: 100129
+- `Meteor_Striker`: 590002
+- `Grace_Rifine_Ticket`: 100130
+- `Ray_Knuckle`: 560005
+- `Saint_Hall`: 590003
+- `Imperial_Convert1`: 100131
+- `Imperial_Convert2`: 100132
+- `Grace_Convert1`: 100133
+- `Grace_Convert2`: 100134
+- `Imperial_Convert3`: 100135
+- `Noblesse_Attack_Boots`: 470016
+- `Imperial_Convert4`: 100136
+- `Noblesse_Magic_Boots`: 470017
+- `Grace_Convert3`: 100137
+- `Imperial_Attack_Boots`: 470018
+- `Grace_Convert4`: 100138
+- `Imperial_Magic_Boots`: 470019
+- `Grace_Attack_Boots`: 470020
+- `Grace_Magic_Boots`: 470021
+- `Abyss_Ddbox2`: 100142
+- `Boost_Gatling`: 830000
+- `Abyss_Ddbox3`: 100144
+- `Abyss_Ddbox4`: 100145
> End of list
diff --git a/doc/effect_list.md b/doc/effect_list.md
index 8ba8d36c9..be749d070 100644
--- a/doc/effect_list.md
+++ b/doc/effect_list.md
@@ -5,7 +5,7 @@ A list of client-side effects sorted by ID in ascending order.
> This file is part of Hercules.
> http://herc.ws - http://github.com/HerculesWS/Hercules
>
-> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) 2012-2020 Hercules Dev Team
> Copyright (C) Athena Dev Teams
>
> Hercules is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
@@ -21,7 +21,7 @@ The following is a compiled list of visual and sound effects which the client
can produce. Each list entry contains a number and a short description of the
effect. You can produce these effects ingame by using the `@effect` atcommand.
It's also possible to attach effects to item/npc scripts by using the
-`specialeffect()` script command.
+`specialeffect()` or `specialeffectnum()` script commands.
ID | Constant Name | Description
--: | :----------------------------- | :----------------------------------
diff --git a/doc/item_bonus.md b/doc/item_bonus.md
index 7c8547456..e39b7b51f 100644
--- a/doc/item_bonus.md
+++ b/doc/item_bonus.md
@@ -5,7 +5,7 @@
> This file is part of Hercules.
> http://herc.ws - http://github.com/HerculesWS/Hercules
>
-> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) 2012-2020 Hercules Dev Team
> Copyright (C) Athena Dev Teams
>
> Hercules is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
diff --git a/doc/mob_db.txt b/doc/mob_db.txt
index 29d2ab465..0280ae9c4 100644
--- a/doc/mob_db.txt
+++ b/doc/mob_db.txt
@@ -63,12 +63,32 @@ mob_db: (
MvpExp: mvp experience (int, defaults to 0)
MvpDrops: {
AegisName: chance (string: int)
+ // or
+ AegisName: (chance, "Option Drop Group")
// ...
}
Drops: {
- AegisName: chance (string: int)
+ AegisName: chance (string: int)
+ // or
+ AegisName: (chance, "Option Drop Group")
// ...
}
+ DamageTakenRate: damage taken rate (int, defaults to 100)
+ ViewData: {
+ SpriteId: sprite id (int, defaults to Id)
+ WeaponId: weapon id (int, defaults to 0)
+ ShieldId: shield id (int, defaults to 0)
+ RobeId: garment id (int, defaults to 0)
+ HeadTopId: top headgear id (int, defaults to 0)
+ HeadMidId: middle headgear id (int, defaults to 0)
+ HeadLowId: lower headgear id (int, defaults to 0)
+ HairStyleId: hair style id (int, defaults to 1)
+ BodyStyleId: clothes id (int, defaults to 0)
+ HairColorId: hair color id (int, defaults to 0)
+ BodyColorId: clothes color id (int, defaults to 0)
+ Gender: gender (string, defaults to "SEX_FEMALE")
+ Options: options (int, defaults to 0)
+ }
},
...
)
@@ -173,7 +193,7 @@ Element: Monster's element. Sets element type and level.
Mode: Monster AI behaviour. If this block is omitted, monster doesn't react to anything.
All the settings in this group are boolean values,
Default value is false (mode not set) for any missing setting.
- See /doc/sample/mob_db_mode_list.txt for more information about monsters Mode types.
+ See /doc/mob_db_mode_list.md for more information about monsters Mode types.
MoveSpeed: Monster's speed. Sets speed (cells/sec).
MoveSpeed is calculated to Hercules with this formula: 1000 / SPEED (CELLS/SEC)
@@ -199,21 +219,63 @@ MvpExp: Base Experience given by the monster to the player who inflict more atta
MvpDrops: Sets monster mvp drops list. Requires to have MvpExp to trigger.
- Accepted values are AegisName as defined on item_db.conf and a chance.
+ There are two ways to define a drop:
+ 1) The first one is used for simple drops and uses the item AegisName
+ as defined on item_db.conf and a chance.
+ Format:
+ AegisName: chance
Chance is an integer from 1 to 10000 (10000 = 100%).
- Required format:
- MvpDrops: {
- AegisName: chance
- // ...
- }
- When not specified, becomes false.
+
+ 2) The second way to define a drop allows setting a random option drop
+ group to be used by this drop.
+ Format:
+ AegisName: (chance, "Option Drop Group")
+
+ The item drop chance refers to the chance of dropping this item, same as chance in the first option.
+ the "Option Drop Group" parameter refers to an entry on option_drop_group database file. The specified
+ entry will be used when this item is dropped in order to add random options to the dropped equipment.
+
+ A monster drop list may use both format for different items.
+ Required Format:
+ Drops: {
+ AegisName: chance
+ // or
+ AegisName: (chance, "Option Drop Group")
+ }
+
+ When not specified, becomes false (no drops).
Drops: Sets monster drops list.
- Accepted values are AegisName as defined on item_db.conf and a chance.
+ There are two ways to define a drop:
+ 1) The first one is used for simple drops and uses the item AegisName
+ as defined on item_db.conf and a chance.
+ Format:
+ AegisName: chance
Chance is an integer from 1 to 10000 (10000 = 100%).
- Required format:
- Drops: {
- AegisName: chance
- // ...
- }
- When not specified, becomes false.
+
+ 2) The second way to define a drop allows setting a random option drop
+ group to be used by this drop.
+ Format:
+ AegisName: (chance, "Option Drop Group")
+
+ The item drop chance refers to the chance of dropping this item, same as chance in the first option.
+ the "Option Drop Group" parameter refers to an entry on option_drop_group database file. The specified
+ entry will be used when this item is dropped in order to add random options to the dropped equipment.
+
+ A monster drop list may use both format for different items.
+ Required Format:
+ Drops: {
+ AegisName: chance
+ // or
+ AegisName: (chance, "Option Drop Group")
+ }
+
+ When not specified, becomes false (no drops).
+
+DamageTakenRate:
+ Limit the total damage received by the monster to the given rate
+
+ViewData:
+ Overrides the default view data sent to the client with the given values for:
+ Sprite, Weapon, Shield, Robe, HeadTop, HeadMid, HeadLow, HairStyle, BodyStyle, HairColor, BodyColor, Gender, Options
+ Note: HairStyleId will only default to 1, if the ViewData block is defined.
diff --git a/doc/mob_db_mode_list.md b/doc/mob_db_mode_list.md
index a8ad4fa0a..618e07b19 100644
--- a/doc/mob_db_mode_list.md
+++ b/doc/mob_db_mode_list.md
@@ -5,7 +5,7 @@
> This file is part of Hercules.
> http://herc.ws - http://github.com/HerculesWS/Hercules
>
-> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) 2012-2020 Hercules Dev Team
> Copyright (C) Athena Dev Teams
>
> Hercules is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
diff --git a/doc/option_drop_group.md b/doc/option_drop_group.md
new file mode 100644
index 000000000..325cf9fe2
--- /dev/null
+++ b/doc/option_drop_group.md
@@ -0,0 +1,97 @@
+# Option Drop Group Database
+
+## Description
+Explanation of the `db/option_drop_groups.conf` file and structure.
+
+This database file allows the creation of groups of random options
+that will be added to certain equipments when dropped. After creating
+a group in this database file, you may set up drops in `mob_db` to use
+it in order to get items with these options. For more information on
+adding option drop groups to `mob_db`, check `doc/mob_db.txt` documentation file.
+
+Each item may have up to `MAX_ITEM_OPTION` options at the same time,
+in this document, each of these independent options will be called
+`option slot`. One drop group will define the possibilities of random
+options for each of these slots.
+
+## Entries Format
+
+```
+<Group Name Constant>: (
+ { // Option Slot 1
+ Rate: (int) chance of filling option slot 1 (100 = 1%)
+
+ // Possible options for slot 1
+ // min/max value : int, defaults to 0
+ // chance : int, 100 = 1% if not set, will be 100%/number of possibiltiies
+ OptionName: value
+ // or
+ OptionName: [min value, max value]
+ // or
+ OptionName: [min value, max value, chance]
+ // ... (as many as you want)
+ },
+ // ... (up to MAX_ITEM_OPTION)
+),
+```
+
+### `Group Name Constant`
+This is the group name, it is how this group is referenced in other files
+(e.g. mob_db). It must be globally unique, as it is a server constant, and
+must contain only letters, numbers and " _ ".
+
+### `Rate`
+This is the chance of this option slot to drop. In other words, this is the
+chance of getting this slot filled with something, where something is given
+by the list of `OptionName` that follows.
+
+Rate is an integer value where 100 means 1%.
+
+### `OptionName`
+Adds `OptionName` as one option that may fill this slot when it drops.
+
+The details of this option may be specified in one of 3 ways:
+
+#### `OptionName: value`
+The chance of this option being picked is auto calculated (see below),
+and if this option is chosen, its value will be `value`.
+
+#### `OptionName: [min, max]`
+The chance of this option being picked is auto calculated (see below),
+and if this option is chosen, its value will be a random integer between
+`min` and `max` (both included).
+
+#### `OptionName: [min, max, chance]`
+The chance of this option being picked is `chance`, and if this option is chosen,
+its value will be a random integer between `min` and `max` (both included).
+
+#### Auto calculated chances
+When chance is not specified in an option, it will be auto calculated by
+the server as being `100%/num`, when `num` is the number of possibilities
+in this option slot.
+
+For example, if you specify 3 possible options, all of them without
+a `chance` defined, all of them will have 33.33% chance of being
+picked (100%/3). If you set the chance of one of them to 50%, you
+will have one option with 50% chance, and each of the others with
+33.33% chance.
+
+## Example
+```
+MYITEM: (
+ { // Option Slot 1
+ Rate: 10000 // It has 100% of chance of being filled
+
+ // This slot may have one of the following options:
+ WEAPON_ATTR_WIND: 5, // WEAPON_ATTR_WIND Lv5 (33.33%)
+ WEAPON_ATTR_GROUND: [2, 4] // WEAPON_ATTR_GROUND Lv 2~4 (33.33%)
+ WEAPON_ATTR_POISON: [1, 4, 8000] // WEAPON_ATTR_POISON Lv 1~4 (80%)
+ },
+ { // Option Slot 2
+ Rate: 5000 // It has 50% of chance of being filled
+
+ // If filled, may have one of the following options:
+ WEAPON_ATTR_WATER: 4 // WEAPON_ATTR_WATER Lv4 (100%)
+ }
+)
+```
diff --git a/doc/permissions.md b/doc/permissions.md
index 7d29b59fd..db5c6fa4b 100644
--- a/doc/permissions.md
+++ b/doc/permissions.md
@@ -5,7 +5,7 @@ A list of player group permission, configured in `conf/groups.conf`.
> This file is part of Hercules.
> http://herc.ws - http://github.com/HerculesWS/Hercules
>
-> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) 2012-2020 Hercules Dev Team
> Copyright (C) Athena Dev Teams
>
> Hercules is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
@@ -48,4 +48,5 @@ disable_pickup | Ability to disable the player from picking up any i
disable_exp | Ability to disable the player from gaining any experience point.
disable_store | Ability to disable the player from using/openning npc and player stores.
disable_skill_usage | Ability to disable the player from using any skill.
+bypass_nostorage | Ability to bypass the nostorage and nogstorage mapflag.
diff --git a/doc/pet_db.txt b/doc/pet_db.txt
new file mode 100644
index 000000000..140a8309d
--- /dev/null
+++ b/doc/pet_db.txt
@@ -0,0 +1,196 @@
+//===== Hercules Documentation ===============================
+//= Pet Database
+//===== By: ==================================================
+//= Hercules Dev Team
+//===== Current Version: =====================================
+//= 20200102
+//===== Description: =========================================
+//= Explanation of the pet_db.conf file and structure.
+//============================================================
+
+pet_db: (
+{
+ // ================ Mandatory fields ==============================
+ Id: ID (int)
+ Name: "Pet Name" (string)
+ EggItem: "Egg Item Constant" (string)
+ // ================ Optional fields ===============================
+ TamingItem: "Taming Item Constant" (string, defaults to 0)
+ FoodItem: "Food Item Constant" (string, defaults to 537 ("Pet_Food"))
+ AccessoryItem: "Equipment Item Constant" (string, defaults to 0)
+ FoodEffectiveness: hunger points (int, defaults to 80)
+ HungerDelay: hunger time (int, defaults to 60)
+ HungerDecrement: hunger points (int, defaults to 1)
+ Intimacy: {
+ Initial: start intimacy (int, defaults to 250)
+ FeedIncrement: feeding intimacy (int, defaults to 10)
+ OverFeedDecrement: overfeeding intimacy (int, defaults to 100)
+ OwnerDeathDecrement: owner die intimacy (int, defaults to 20)
+ StarvingDelay: starving time (int, defaults to 20)
+ StarvingDecrement: starving intimacy (int, defaults to 20)
+ }
+ CaptureRate: capture rate (int, defaults to 1000)
+ Speed: speed (int, defaults to 150)
+ SpecialPerformance: true/false (boolean, defaults to false)
+ TalkWithEmotes: convert talk (boolean, defaults to false)
+ AttackRate: attack rate (int, defaults to 300)
+ DefendRate: Defence attack (int, defaults to 300)
+ ChangeTargetRate: change target (int, defaults to 800)
+ AutoFeed: true/false (boolean, defaults to false)
+ PetScript: <" Pet Script (can also be multi-line) ">
+ EquipScript: <" Equip Script (can also be multi-line) ">
+ Evolve: {
+ EggID: { (string, Evolved Pet EggID)
+ Name: Amount (items required to perform evolution)
+ ...
+ }
+ }
+},
+...
+)
+
+ * Id:
+ The ID of the monster that should be tamed. See mob_db.conf.
+ * Name:
+ The pet's default name.
+ * EggItem:
+ The name of the pet's egg item. See item_db.conf AegisName field.
+ * TamingItem:
+ The name of the item, which is used to tame the pet.
+ See item_db.conf AegisName field.
+ This field is optional and defaults to 0.
+ * FoodItem:
+ The name of the item, which is used to feed the pet.
+ See item_db.conf AegisName field.
+ This field is optional and defaults to Pet_Food (ID=537).
+ * AccessoryItem:
+ The name of the pet's accesssory item.
+ See item_db.conf AegisName field.
+ This field is optional and defaults to 0.
+ * FoodEffectiveness:
+ This field defines how many hunger points
+ are restored, when feeding the pet.
+ This field is optional and defaults to 80.
+ Minimum value is 1, maximum value is 100.
+ * HungerDelay:
+ This is the interval for consuming hunger points.
+ Every <HungerDelay> seconds, the pet will consume
+ <HungerDecrement> hunger points.
+ In official servers it's 60 seconds for every pet.
+ This field is optional and defaults to 60.
+ Minimum value is 0, maximum value is 2147483.
+ If set to 0, the pet won't consume hunger points.
+ * HungerDecrement:
+ How many hunger points will be consumed every <HungerDelay> seconds.
+ This field is optional and defaults to 1.
+ Minimum value is 0, maximum value is 99.
+ If set to 0, <HungerDelay> is automatically set to 0, too,
+ regardless of what value was defined.
+ * Intimacy: {
+ The <Intimacy> block contains all settings,
+ which affect the pet's intimacy value.
+ * Initial:
+ The amount of intimacy points, the pet will have when tamed.
+ This field is optional and defaults to 250.
+ Minimum value is 1, maximum value is 1000.
+ * FeedIncrement:
+ The amount of intimacy points, gained when feeding the pet.
+ Note: This value is used as base value.
+ The actual added amount depends on the pet's current hunger.
+ This field is optional and defaults to 10.
+ Minimum value is 1, maximum value is 1000.
+ * OverFeedDecrement:
+ The amount of intimacy points, lost when feeding the pet
+ if it isn't hungry.
+ Note: This value is used as base value.
+ The actual removed amount depends on the pet's current hunger.
+ This field is optional and defaults to 100.
+ Minimum value is 0, maximum value is 1000.
+ * OwnerDeathDecrement:
+ The amount of intimacy points, lost when its master dies.
+ This field is optional and defaults to 20.
+ Minimum value is 0, maximum value is 1000.
+ * StarvingDelay:
+ This is the interval for loosing intimacy points,
+ when the pet is starving.
+ The pet is starving, if it has no hunger points left.
+ Every <StarvingDelay> seconds, the pet will lose
+ <StarvingDecrement> intimacy points.
+ In official servers it's 20 seconds for all pets.
+ If <HungerDelay> is set to 0, <StarvingDelay> is set to 0, too,
+ regardless of what value was defined.
+ This field is optional and defaults to 20.
+ Minimum value is 0, maximum value is <HungerDelay>.
+ If set to 0, the pet won't lose intimacy points while starving.
+ * StarvingDecrement:
+ How many intimacy points will be lost every <StarvingDelay> seconds,
+ when the pet is starving.
+ This field is optional and defaults to 20.
+ Minimum value is 0, maximum value is 1000.
+ If set to 0, <StarvingDelay> is automatically set to 0, too,
+ regardless of what value was defined.
+ }
+ * CaptureRate:
+ The chance of success when taming the pet.
+ 10000 equals 100%.
+ This field is optional and defaults to 1000.
+ Minimum value is 1, maximum value is 10000.
+ * Speed:
+ The pet's moving speed.
+ Note: The lower the value, the higher the speed.
+ This field is optional and defaults to 150.
+ Minimum value is 20, maximum value is 1000.
+ * SpecialPerformance:
+ If 'true', the pet is allowed to do its special performance.
+ This field is optional and defaults to 'false'.
+ * TalkWithEmotes:
+ If 'true', the pet is allowed to talk by using emotes.
+ This field is optional and defaults to 'false'.
+ * AttackRate:
+ Chance for supporting when the master attacks a monster.
+ 10000 equals 100%.
+ This field is optional and defaults to 300.
+ Minimum value is 0, maximum value is 10000.
+ * DefendRate:
+ Chance for supporting when the master receives damage from a monster.
+ 10000 equals 100%.
+ This field is optional and defaults to 300.
+ Minimum value is 0, maximum value is 10000.
+ * ChangeTargetRate:
+ Chance for the pet changes its target when supporting.
+ 10000 equals 100%.
+ This field is optional and defaults to 800.
+ Minimum value is 0, maximum value is 10000.
+ * AutoFeed:
+ If 'true', the pet is fed automatically.
+ This field is optional and defaults to 'false'.
+ * PetScript: <"
+ This field is used for pet AI commands. See doc/script_commands.txt.
+ It will be executed every time, the pet's data gets initialized.
+ Everything you can do in a NPC script should work here, too,
+ but using the <EquipScript> field is recommended, when executing
+ other commands than the pet AI ones.
+ This field is optional and has no default value.
+ ">
+ * EquipScript: <"
+ This field is commonly used to apply bonuses to the the pet's master.
+ See doc/item_bonus.md.
+ It will be executed every time, the pet master's status is calculated.
+ Everything you can do in a NPC script should work here, too.
+ This field is optional and has no default value.
+ ">
+ * Evolve: {
+ The <Evolve> block is used to define which pet(s) can be eveolved
+ from the current pet.
+ This block is optional and has no default value.
+ * Evolved_Egg_Item_Name: {
+ The name of the egg item, which will be created when evolving.
+ You can add multiple <Evolved_Egg_Item_Name> blocks.
+ See item_db.conf AegisName field.
+ * Evolve_Item_Name: Amount
+ This is a pair of an item name and the corresponding amount which is
+ required to evolve the pet into <Evolved_Egg_Item_Name>.
+ You can add multiple <Evolve_Item_Name: Amount> pairs.
+ See item_db.conf AegisName field for item names.
+ }
+ }
diff --git a/doc/quest_variables.md b/doc/quest_variables.md
index 2f8922c41..b568f0e9c 100644
--- a/doc/quest_variables.md
+++ b/doc/quest_variables.md
@@ -5,7 +5,7 @@
> This file is part of Hercules.
> http://herc.ws - http://github.com/HerculesWS/Hercules
>
-> Copyright (C) 2012-2018 Hercules Dev Team
+> Copyright (C) 2012-2020 Hercules Dev Team
> Copyright (C) Athena Dev Teams
>
> Hercules is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
diff --git a/doc/sample/getiteminfo.txt b/doc/sample/getiteminfo.txt
index 9d5121635..316318cb6 100644
--- a/doc/sample/getiteminfo.txt
+++ b/doc/sample/getiteminfo.txt
@@ -37,5 +37,28 @@ prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
.@trade$ = callfunc("F_GetTradeRestriction", .@value);
mesf("Trade Restriction: %s", .@trade$);
+
+ mesf("Drop delay: %d", getiteminfo(.@value, ITEMINFO_DELAY));
+ mesf("Drop effect mode: %d", getiteminfo(.@value, ITEMINFO_DROPEFFECT_MODE));
+ mesf("Class base 1: %d", getiteminfo(.@value, ITEMINFO_CLASS_BASE_1));
+ mesf("Class base 2: %d", getiteminfo(.@value, ITEMINFO_CLASS_BASE_2));
+ mesf("Class base 3: %d", getiteminfo(.@value, ITEMINFO_CLASS_BASE_3));
+ mesf("Class Upper: %d", getiteminfo(.@value, ITEMINFO_CLASS_UPPER));
+ mesf("No refine flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_NO_REFINE));
+ mesf("Delay consume flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_DELAY_CONSUME));
+ mesf("Auto equip flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_AUTOEQUIP));
+ mesf("Auto favorite flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_AUTO_FAVORITE));
+ mesf("Buying store flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_BUYINGSTORE));
+ mesf("Bind on equip flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_BINDONEQUIP));
+ mesf("Keep after use flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_KEEPAFTERUSE));
+ mesf("Force serial flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_FORCE_SERIAL));
+ mesf("No random item options flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_NO_OPTIONS));
+ mesf("Drop announce flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_DROP_ANNOUNCE));
+ mesf("Shopw drop effect flag: %d", getiteminfo(.@value, ITEMINFO_FLAG_SHOWDROPEFFECT));
+ mesf("Stack amount: %d", getiteminfo(.@value, ITEMINFO_STACK_AMOUNT));
+ mesf("Stack amount flag: %d", getiteminfo(.@value, ITEMINFO_STACK_FLAG));
+ mesf("Item usage flag: %d", getiteminfo(.@value, ITEMINFO_ITEM_USAGE_FLAG));
+ mesf("Item usage override: %d", getiteminfo(.@value, ITEMINFO_ITEM_USAGE_OVERRIDE));
+ mesf("GM Level override: %d", getiteminfo(.@value, ITEMINFO_GM_LV_TRADE_OVERRIDE));
close;
}
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index c3cc8a799..3b77aeb2c 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -266,8 +266,8 @@ direction across Y. Walking into that area will trigger the NPC. If no
'OnTouch:' special label is present in the NPC code, the execution will
start from the beginning of the script, otherwise, it will start from the
'OnTouch:' label. Monsters can also trigger the NPC, though the label
-'OnTouchNPC:' is used in this case. If player left area npc will called
-if present label 'OnUnTouch'.
+'OnTouchNPC:' is used in this case, and using mobattached() will return
+monster GID. If player left the area will trigger the label 'OnUnTouch'.
The code part is the script code that will execute whenever the NPC is
triggered. It may contain commands and function calls, descriptions of
@@ -324,11 +324,13 @@ The types that a trader object can have are the following:
and need to be refurbished)
- NST_CUSTOM (3) Custom Shop (any currency, item/var/etca, check sample)
- NST_BARTER (4) Barter Shop (each item with own item currency)
+- NST_EXPANDED_BARTER (5) Expanded Barter Shop (buy items and spend zeny and items)
Unless otherwise specified via *tradertype an trader object will be defined as
NST_ZENY.
Note: NST_MARKET is only available with PACKETVER 20131223 or newer.
-Note: NST_BARTER is only available with PACKETVER 20181226 zero or newer.
+Note: NST_BARTER is only available with PACKETVER 20190116 main or 20190116 RE or 20181226 zero or newer.
+Note: NST_EXPANDED_BARTER is only available with PACKETVER 20190904 main or 20190904 RE or 20190828 zero or newer.
See '12 - NPC Trader-Related Commands' and /doc/sample/npc_trader_sample.txt for
more information regarding how to use this NPC type.
@@ -716,8 +718,11 @@ MAX_BANK_ZENY - Maximum Zeny in the bank
MAX_BG_MEMBERS - Maximum BattleGround members
MAX_CHAT_USERS - Maximum Chat users
MAX_REFINE - Maximum Refine level
+MAX_ITEM_ID - Maximum Item ID
MAX_MENU_OPTIONS - Maximum NPC menu options
MAX_MENU_LENGTH - Maximum NPC menu string length
+MOB_CLONE_START - Clone ID start from this range
+MOB_CLONE_END - Clone ID end with this range
Send targets and status options are also hard-coded and can be found
in 'doc/constants.md'.
@@ -1029,6 +1034,11 @@ will only execute once and will not execute if the map server reconnects
to the char server later. Note that all those events will be executed upon
scripts reloading.
+OnNPCUnload:
+
+OnNPCUnload will be executed when a NPC is unloaded.
+OnNPCUnload is called when @reloadscript, @reloadnpc, @unloadnpc or @unloadnpcfile is used.
+
OnAgitStart:
OnAgitEnd:
OnAgitInit:
@@ -1228,7 +1238,7 @@ you have to set it back to black unless you want all the rest of the text be in
that color:
mes("This is ^FF0000 red ^000000 and this is ^00FF00 green, ^000000 so.");
- mes(callfunc("F_MesColor", C_BLUE) +"This message is now in BLUE");
+ mesf("%sThis message is now in BLUE.", F_MesColor(C_BLUE));
Notice that the text coloring is handled purely by the client. If you use
non-English characters, the color codes might get screwed if they stick to
@@ -1252,6 +1262,14 @@ This will allow you to visit 'Google' with the in-game browser using default dim
Clicking 'Bing!' will open the in-game browser using the specified dimensions. (800x600)
+If you're using client from 2013-01-30 onwards, you can also use <ITEMLINK> to show
+the item's description. Gravity changed this into <ITEM> since 2015-07-29 onwards.
+
+ mes("Bring me an <ITEM>Apple<INFO>512</INFO></ITEM>.");
+ mesf("Bring me an %s.", F_MesItemInfo(Apple));
+
+This will show the item name and a clickable link for the item description.
+
---------------------------------------
*mesf("<format>"{, <param>{, <param>{, ...}}})
@@ -1290,6 +1308,21 @@ and the script will terminate.
---------------------------------------
+*mesclear();
+
+This command will clear the dialog text and continue the script without player interaction.
+
+Example:
+ mes("This is how the 'mesclear' script command works.");
+ sleep2 3000;
+ mesclear(); // This will clear the dialog and continue to the next one.
+ mes("I will show you again.");
+ sleep2 3000;
+ mesclear(); // This will clear the dialog and continue to the next one.
+ mes("Bye!");
+
+---------------------------------------
+
*close()
This command will create a 'close' button in the message window for the
@@ -2182,11 +2215,11 @@ Multiple statements can be grouped with { }, curly braces, just like with
the 'if' statement.
Example 1:
- while (switch(select("Yes", "No") == 2))
+ while (select("Yes", "No") == 2)
mes("You picked no.");
Example 2: multiple statements
- while (switch(select("Yes", "No") == 2 )) {
+ while (select("Yes", "No") == 2) {
mes("Why did you pick no?");
mes("You should pick yes instead!");
}
@@ -2973,18 +3006,20 @@ of equipment slots see getequipid().
---------------------------------------
-*getequiprefinerycnt(<equipment slot>)
+*getequiprefinerycnt(<equipment slot>{, <equipment slot>{, <equipment slot>}})
-Returns the current number of pluses for the item in the specified
-equipment slot. For a list of equipment slots see 'getequipid'.
+Returns the total of refine of item equipped in the equipment slots.
+For a list of equipment slots, see 'getequipid'.
-Can be used to check if you have reached a maximum refine value, default
-for this is +10:
+For example:
+ if (getequiprefinerycnt(EQI_HEAD_TOP) > 10) {
+ mes("You equipped a headgear (top) with above 10 refine.");
+ }
- if (getequiprefinerycnt(EQI_HEAD_TOP) < 10)
- mes("I will now upgrade your "+getequipname(EQI_HEAD_TOP));
- else
- mes("Sorry, it's not possible to refine hats better than +10");
+For example:
+ if (getequiprefinerycnt(EQI_ARMOR, EQI_SHOES) > 20) {
+ mes("Total refine of Armor and Shoes exceed 20.");
+ }
---------------------------------------
@@ -3113,6 +3148,7 @@ invoking character has in its inventory, including all the data needed to
recreate these items perfectly if they are destroyed. Here's what you get:
@inventorylist_id[] - array of item ids.
+@inventorylist_idx[] - array of item inventory index.
@inventorylist_amount[] - their corresponding item amounts.
@inventorylist_equip[] - will return the slot the item is equipped on, if at all.
@inventorylist_refine[] - for how much it is refined.
@@ -3125,7 +3161,8 @@ recreate these items perfectly if they are destroyed. Here's what you get:
made by a specific craftsman.
@inventorylist_expire[] - expire time (Unix time stamp). 0 means never
expires.
-@inventorylist_bound - whether it is an account bounded item or not.
+@inventorylist_bound[] - whether it is an account bounded item or not.
+@inventorylist_favorite[] - whether it is favorite (inside favorite tab) or not.
@inventorylist_count - the number of items in these lists.
This could be handy to save/restore a character's inventory, since no
@@ -3179,6 +3216,30 @@ runs of getcartinventorylist().
---------------------------------------
+*setfavoriteitemidx(<idx>, <flag>)
+
+This function will set an item in inventory as favorite or not.
+If its favorite item, it will be moved to favorite tab, else move out from favorite tab.
+Note: Cant change favorite flag of an equipped item.
+
+Valid Parameters:
+ <idx> - inventory index, refer *getinventorylist()
+ <flag> - true/false (true = favorite item, false = otherwise)
+
+---------------------------------------
+
+*autofavoriteitem(<item_id>, <flag>)
+
+This function will auto set an item as favorite when <item_id> is obtained.
+If its favorite item, it will be auto moved to favorite tab, else move out from favorite tab.
+This setting affect not only attached player, but also everyone player globally.
+
+Valid Parameters:
+ <item_id> - item ID
+ <flag> - true/false (true = favorite item, false = otherwise)
+
+---------------------------------------
+
*cardscnt()
This function will return the number of cards inserted into the weapon
@@ -3216,6 +3277,7 @@ Example:
---------------------------------------
*getiteminfo(<item ID>, <type>)
+*getiteminfo("<item name>", <type>)
*setiteminfo(<item ID>, <type>, <value>)
This function will look up the item with the specified ID number in the
@@ -3224,26 +3286,52 @@ It will return -1 if there is no such item.
Valid types are:
- ITEMINFO_BUYPRICE - Buy Price
- ITEMINFO_SELLPRICE - Sell Price
- ITEMINFO_TYPE - Item Type
- ITEMINFO_MAXCHANCE - Max drop chance of this item e.g. 1 = 0.01% , etc..
- if = 0, then monsters don't drop it at all (rare or a quest item)
- if = 10000, then this item is sold in NPC shops only
- ITEMINFO_SEX - Sex
- ITEMINFO_LOC - Equip location
- ITEMINFO_WEIGHT - Weight (note: 1/10 of unit)
- ITEMINFO_ATK - Attack
- ITEMINFO_DEF - Defense
- ITEMINFO_RANGE - Range
- ITEMINFO_SLOTS - Slots
- ITEMINFO_SUBTYPE - Item subtype
- ITEMINFO_ELV - Equip min. level
- ITEMINFO_WLV - Weapon level
- ITEMINFO_VIEWID - View ID ("Sprite" field in the Item DB)
- ITEMINFO_MATK - MATK (only relevant if RENEWAL is set)
- ITEMINFO_VIEWSPRITE - View Sprite ("ViewSprite" field in the Item DB)
- ITEMINFO_TRADE - Trade Restriction (see "doc/constant.md": item trade restriction)
+ ITEMINFO_ID - Item ID (getiteminfo() only!)
+ ITEMINFO_AEGISNAME - Unique name to reference the item (getiteminfo() only!)
+ ITEMINFO_NAME - Display name (getiteminfo() only!)
+ ITEMINFO_BUYPRICE - Buy Price
+ ITEMINFO_SELLPRICE - Sell Price
+ ITEMINFO_TYPE - Item Type
+ ITEMINFO_MAXCHANCE - Max drop chance of this item e.g. 1 = 0.01% , etc..
+ if = 0, then monsters don't drop it at all (rare or a quest item)
+ if = 10000, then this item is sold in NPC shops only
+ ITEMINFO_SEX - Sex
+ ITEMINFO_LOC - Equip location
+ ITEMINFO_WEIGHT - Weight (note: 1/10 of unit)
+ ITEMINFO_ATK - Attack
+ ITEMINFO_DEF - Defense
+ ITEMINFO_RANGE - Range
+ ITEMINFO_SLOTS - Slots
+ ITEMINFO_SUBTYPE - Item subtype
+ ITEMINFO_ELV - Equip min. level
+ ITEMINFO_ELV_MAX - Equip max. level
+ ITEMINFO_WLV - Weapon level
+ ITEMINFO_VIEWID - View ID ("Sprite" field in the Item DB)
+ ITEMINFO_MATK - MATK (only relevant if RENEWAL is set)
+ ITEMINFO_VIEWSPRITE - View Sprite ("ViewSprite" field in the Item DB)
+ ITEMINFO_TRADE - Trade Restriction (see "doc/constant.md": item trade restriction)
+ ITEMINFO_DELAY - Delay
+ ITEMINFO_DROPEFFECT_MODE - Drop effect mode
+ ITEMINFO_CLASS_BASE_1 - Class base 1
+ ITEMINFO_CLASS_BASE_2 - Class base 2
+ ITEMINFO_CLASS_BASE_3 - Class base 3
+ ITEMINFO_CLASS_UPPER - Class Upper
+ ITEMINFO_FLAG_NO_REFINE - No refine flag
+ ITEMINFO_FLAG_DELAY_CONSUME - Delay consume flag
+ ITEMINFO_FLAG_AUTOEQUIP - Auto equip flag
+ ITEMINFO_FLAG_AUTO_FAVORITE - Auto favorite flag
+ ITEMINFO_FLAG_BUYINGSTORE - Buying store flag
+ ITEMINFO_FLAG_BINDONEQUIP - Bind on equip flag
+ ITEMINFO_FLAG_KEEPAFTERUSE - Keep after use flag
+ ITEMINFO_FLAG_FORCE_SERIAL - Force serial flag
+ ITEMINFO_FLAG_NO_OPTIONS - No random item options flag
+ ITEMINFO_FLAG_DROP_ANNOUNCE - Drop announce flag
+ ITEMINFO_FLAG_SHOWDROPEFFECT - Shopw drop effect flag
+ ITEMINFO_STACK_AMOUNT - Stack amount
+ ITEMINFO_STACK_FLAG - Stack amount flag (1: inventory, 2:cart, 4:storage: 8:guildstorage)
+ ITEMINFO_ITEM_USAGE_FLAG - Item usage flag
+ ITEMINFO_ITEM_USAGE_OVERRIDE - Item usage override
+ ITEMINFO_GM_LV_TRADE_OVERRIDE - Min. GM level override trade restriction
Check sample in doc/sample/getiteminfo.txt
@@ -3317,6 +3405,24 @@ This will set a Hat Effect onto the player. The state field allows you to
enable (true) or disable (false) the effect on the player.
---------------------------------------
+
+*identify(<Item ID>)
+
+This function identifies the first <Item ID> item in attached player's inventory.
+
+Returns -2 if an error happens, -1 if no unidentified <Item ID> was found.
+Otherwise, returns the idx of the identified item.
+
+---------------------------------------
+
+*identifyidx(<Inventory Index>)
+
+This will identify item at attached player's <Inventory Index> inventory index.
+
+Returns true if the item was identified, false otherwise.
+Note: If the item was already identified, it returns false.
+
+---------------------------------------
//=====================================
2.1 - End of Item-Related Commands
//=====================================
@@ -3383,11 +3489,12 @@ argument is omitted, it will try to use the map of the attached NPC, or the
map of the attached player if the NPC can't be found.
Valid <info> are:
- MAPINFO_NAME name of the map
- MAPINFO_ID numeric ID of the map
- MAPINFO_ZONE name of the zone used by the map
- MAPINFO_SIZE_X width of the map (cells on the x axis)
- MAPINFO_SIZE_Y height of the map (cells on the y axis)
+ MAPINFO_NAME name of the map
+ MAPINFO_ID numeric ID of the map
+ MAPINFO_ZONE name of the zone used by the map
+ MAPINFO_SIZE_X width of the map (cells on the x axis)
+ MAPINFO_SIZE_Y height of the map (cells on the y axis)
+ MAPINFO_NPC_COUNT total number of NPC in the map
Examples:
getmapinfo(MAPINFO_ID, "map name"); // ID from name
@@ -3529,20 +3636,21 @@ Examples :
---------------------------------------
-*gettimestr(<format string>, <max length>)
+*gettimestr(<format string>, <max length>{, <timestamp>})
This function will return a string containing time data as specified by
the format string.
-This uses the C function 'strfmtime', which obeys special format
+This uses the C function 'strftime', which obeys special format
characters. For a full description see, for example, the description of
-'strfmtime' at http://www.delorie.com/gnu/docs/glibc/libc_437.html
+'strftime' at http://www.delorie.com/gnu/docs/glibc/libc_437.html
All the format characters given in there should properly work.
Max length is the maximum length of a time string to generate.
The example given in Hercules sample scripts works like this:
mes(gettimestr("%Y-%m/%d %H:%M:%S", 21));
+ mes(gettimestr("%Y-%m/%d %H:%M:%S", 21, getcalendartime(0, 0)));
This will print a full date and time like 'YYYY-MM/DD HH:MM:SS'.
@@ -3607,8 +3715,38 @@ You need to put a 'close' after that yourself.
//=====================================
---------------------------------------
+*getguildinfo(<info type>{, <guild id>})
+*getguildinfo(<info type>{, "<guild name>"})
+
+This command returns misc info about the guild of the attached player. If a
+guild id or guild name is specified it will be used instead. If the target guild
+does not exist it returns an empty string or -1 depending on whether a string
+or an integer was requested.
+
+Valid <info type> are:
+ GUILDINFO_NAME - guild name
+ GUILDINFO_ID - guild id
+ GUILDINFO_LEVEL - current level
+ GUILDINFO_EXP - current exp
+ GUILDINFO_NEXT_EXP - exp required to reach the next level
+ GUILDINFO_SKILL_POINTS - available skill points
+ GUILDINFO_ONLINE - number of online members
+ GUILDINFO_AV_LEVEL - average member level
+ GUILDINFO_MAX_MEMBERS - guild capacity
+ GUILDINFO_MASTER_NAME - name of the guild master
+ GUILDINFO_MASTER_CID - char id of the guild master
+
+Example:
+ getguildinfo(GUILDINFO_MASTER_NAME, getcharid(CHAR_ID_GUILD, "Haru"))
+
+---------------------------------------
+
*getguildname(<guild id>)
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
This function returns a guild's name given an ID number. If there is no
such guild, "null" will be returned;
@@ -3622,10 +3760,18 @@ such guild, "null" will be returned;
This is used all over the WoE controlling scripts. You could also use it
for a guild-based event.
+This command is deprecated and it should not be used in new scripts, as it is
+likely to be removed at a later time. Please use getguildinfo instead:
+ getguildinfo(GUILDINFO_NAME, <guild id>)
+
---------------------------------------
*getguildmaster(<guild id>)
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
This function return the name of the master of the guild which has the
specified ID number. If there is no such guild, "null" will be returned.
@@ -3649,14 +3795,26 @@ Maybe you want to make a room only guild masters can enter:
mes("Sorry you don't own the guild you are in");
close();
+This command is deprecated and it should not be used in new scripts, as it is
+likely to be removed at a later time. Please use getguildinfo instead:
+ getguildinfo(GUILDINFO_MASTER_NAME, <guild id>)
+
---------------------------------------
*getguildmasterid(<guild id>)
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
This function will return the character ID number of the guild master of
the guild specified by the ID. 0 if the character is not a guild master of
any guild.
+This command is deprecated and it should not be used in new scripts, as it is
+likely to be removed at a later time. Please use getguildinfo instead:
+ getguildinfo(GUILDINFO_MASTER_CID, <guild id>)
+
---------------------------------------
*getcastlename("<map name>")
@@ -3771,6 +3929,18 @@ getarraysize(), because it is not cleared between runs of getguildmember().
For usage examples, see getpartymember().
---------------------------------------
+
+*getguildonline(<guild id>{, <type>});
+
+Returns the amount of players online in the specified guild id.
+Returns -1 if the guild was not found.
+
+Valid <type> are:
+ GUILD_ONLINE_ALL Returns the total amount of players online in the guild.
+ GUILD_ONLINE_VENDOR Returns the total amount of vendors online in the guild.
+ GUILD_ONLINE_NO_VENDOR Returns the total amount of non-vendors online in the guild.
+
+---------------------------------------
//=====================================
2.2 - End of Guild-Related Commands
//=====================================
@@ -3831,26 +4001,34 @@ how many skills a character has.
*getpetinfo(<type>)
-This function will return pet information for the pet the invoking
-character currently has active. Valid types are:
+This command will return the currently active pet information of the invoking character.
+These fields are associate in 'db/(pre-)re/pet_db.conf'. Valid types are:
- 0 - Unique pet ID number as stored by the char server and distinguishing
- it from all other pets the characters actually have. This value is
- currently useless, at most you can use it to tell pets apart reliably.
- 1 - Pet class number as per 'db/pet_db.txt' - will tell you what kind of
- a pet it is.
- 2 - Pet name. Will return "null" if there's no pet.
- 3 - Pet friendly level (intimacy score). 1000 is full loyalty.
- 4 - Pet hungry level. 100 is completely full.
- 5 - Pet rename flag. 0 means this pet has not been named yet.
+ PETINFO_ID - Pet Database ID, stored in `pet` table to distinguish from other pets.
+ PETINFO_CLASS - Pet class ID. (Id field)
+ PETINFO_NAME - Pet Name, return "null" if there's no active pet.
+ PETINFO_INTIMACY - Pet Intimacy level. 1000 is full loyalty.
+ PETINFO_HUNGRY - Pet hungry level. 100 is completely full.
+ PETINFO_RENAME - Pet rename flag. 0 means this pet has not been named yet.
+ PETINFO_GID - Pet Game ID
+ PETINFO_EGGITEM - Pet EggItem
+ PETINFO_FOODITEM - Pet FoodItem
+ PETINFO_ACCESSORYITEM - Pet AccessoryItem
+ PETINFO_ACCESSORYFLAG - return 1 if the pet currently equipping accessory, return 0 otherwise.
+ PETINFO_EVO_EGGID - Pet Evolve EggID
+ PETINFO_AUTOFEED - Pet AutoFeed flag.
-If the invoking player doesn't own a pet, this command will return
-"null" for type 2, and return 0 for other types.
+If the invoking player doesn't own a pet, this command will
+return "null" for type PETINFO_NAME, and return 0 for other types.
---------------------------------------
*petstat(<flag>)
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
Returns current pet status, all are integers except name.
Returns 0 or "" if the player doesn't have pets.
@@ -3864,6 +4042,9 @@ PET_INTIMATE
Example:
.@i = petstat(PET_CLASS);
+This command is deprecated and it should not be used in new scripts, as it is
+likely to be removed at a later time. Please use 'getpetinfo' instead.
+
---------------------------------------
*getmonsterinfo(<mob ID>, <type>)
@@ -3874,29 +4055,30 @@ It will return -1 if there is no such monster (or the type value is
invalid), or "null" if you requested the monster's name.
Valid types are listed in doc/constants.md:
- MOB_NAME 0
- MOB_LV 1
- MOB_MAXHP 2
- MOB_BASEEXP 3
- MOB_JOBEXP 4
- MOB_ATK1 5
- MOB_ATK2 6
- MOB_DEF 7
- MOB_MDEF 8
- MOB_STR 9
- MOB_AGI 10
- MOB_VIT 11
- MOB_INT 12
- MOB_DEX 13
- MOB_LUK 14
- MOB_RANGE 15
- MOB_RANGE2 16
- MOB_RANGE3 17
- MOB_SIZE 18
- MOB_RACE 19
- MOB_ELEMENT 20
- MOB_MODE 21
- MOB_MVPEXP 22
+ MOB_NAME 0
+ MOB_LV 1
+ MOB_MAXHP 2
+ MOB_BASEEXP 3
+ MOB_JOBEXP 4
+ MOB_ATK1 5
+ MOB_ATK2 6
+ MOB_DEF 7
+ MOB_MDEF 8
+ MOB_STR 9
+ MOB_AGI 10
+ MOB_VIT 11
+ MOB_INT 12
+ MOB_DEX 13
+ MOB_LUK 14
+ MOB_RANGE 15
+ MOB_RANGE2 16
+ MOB_RANGE3 17
+ MOB_SIZE 18
+ MOB_RACE 19
+ MOB_ELEMENT 20
+ MOB_MODE 21
+ MOB_MVPEXP 22
+ MOB_DMG_TAKEN_RATE 23
Check sample in doc/sample/getmonsterinfo.txt
@@ -4207,7 +4389,7 @@ falcon and false if they don't.
---------------------------------------
-*setmount({<flag>})
+*setmount({<flag>{, <type>}})
*checkmount()
If <flag> is MOUNT_NONE this command will remove the mount from the
@@ -4243,6 +4425,12 @@ The following flag values are accepted:
Unlike 'setfalcon' and 'setcart' this will not work at all if they aren't of a
class which can ride a mount.
+For clients PACKETVER_MAIN_NUM >= 20191120 || PACKETVER_RE_NUM >= 20191106
+you can pass a <type> flag which specifies the madogear wanted.
+The Available types:
+ MADO_ROBOT
+ MADO_SUITE
+
The accompanying function will return MOUNT_NONE if the invoking
character is not on a mount, and a non-zero value (according to the
above constants) if they are.
@@ -4441,11 +4629,14 @@ if <color> field is left out.
---------------------------------------
-*showscript("<message>"{, <GID>})
+*showscript("<message>"{, <GID>{, <send_target>}})
Makes the attached player or GID, display a message similiar to a chat,
this will be seen by everyone near the invoking character but will not
be displayed in the chat window.
+send_target: (optional)
+ AREA: show the message to everyone within the view range (default)
+ SELF: show the message to the given unit GID only
---------------------------------------
@@ -4510,13 +4701,13 @@ See also warp().
---------------------------------------
-*warpparty("<to_mapname>", <x>, <y>, <party_id>, "<from_mapname>", <include_leader>)
+*warpparty("<to map name>", <x>, <y>, <party id>{{, <ignore mapflags>}, "<from map name>"{, <include leader>}})
Warps a party to specified map and coordinate given the party ID, which
you can get with getcharid(CHAR_ID_PARTY). You can also request another party id given
a member's name with getcharid(CHAR_ID_PARTY, <player_name>).
-You can use the following "map names" for special warping behavior:
+You can use the following <to map name> for special warping behavior:
Random: All party members are randomly warped in their current map
(as if they all used a fly wing).
SavePointAll: All party members are warped to their respective save point.
@@ -4527,8 +4718,10 @@ Leader: All party members are warped to the leader's position. The
leader must be online and in the current map-server for
this to work.
-If you specify a from_mapname, warpparty() will only affect those on
-that map.
+If <ignore mapflags> is not 0, warpparty() ignores nowarp/noreturn restrictions
+of the warped character's current map. <ignore mapflags> defaults to 0.
+
+If you specify a <from map name>, warpparty() will only affect those on that map.
You can exclude Party leader from warping, by keeping include_leader option as false.
@@ -4556,13 +4749,13 @@ Example:
---------------------------------------
-*warpguild("<mapname>", <x>, <y>, <guild_id>, {"<from_mapname>"})
+*warpguild("<to map name>", <x>, <y>, <guild id>{{, <ignore mapflags>}, "<from map name>"})
Warps a guild to specified map and coordinate given the guild id, which
you can get with getcharid(CHAR_ID_GUILD). You can also request another guild id given
the member's name with getcharid(CHAR_ID_GUILD, <player_name>).
-You can use the following "map names" for special warping behavior:
+You can use the following <to map name> for special warping behavior:
Random: All guild members are randomly warped in their current map
(as if they all used a fly wing)
SavePointAll: All guild members are warped to their respective save point.
@@ -4570,12 +4763,19 @@ SavePoint: All guild members are warped to the save point of the
currently attached player (will fail if there's no player
attached).
-If you specify a from_mapname, warpguild() will only affect those on that map.
+If <ignore mapflags> is not 0, warpguild() ignores nowarp/noreturn restrictions
+of the warped character's current map. <ignore mapflags> defaults to 0.
+
+If you specify a <from map name>, warpguild() will only affect those on that map.
Example:
- warpguild("prontera", x, y, Guild_ID);
- warpguild("prontera", x, y, Guild_ID, "payon"); // warp member from Payon map only.
+ warpguild("prontera", x, y, Guild_ID); // Warp all guild members to Prontera,
+ // but check nowarp/noreturn restriction of their current map.
+ warpguild("prontera", x, y, Guild_ID, 1); // Warp all guild members to Prontera.
+ warpguild("prontera", x, y, Guild_ID, "payon"); // Warp guild members from Payon to Prontera,
+ // but check nowarp/noreturn restriction of Payon.
+ warpguild("prontera", x, y, Guild_ID, 1, "payon"); // Warp guild members from Payon to Prontera.
---------------------------------------
@@ -5077,11 +5277,11 @@ bound to the target character as specified by the bound type. All items created
in this manner cannot be dropped, sold, vended, auctioned, or mailed, and in
some cases cannot be traded or stored.
-Valid bound types are:
- 1 - Account Bound
- 2 - Guild Bound
- 3 - Party Bound
- 4 - Character Bound
+Valid item bound types are:
+ 1 - IBT_ACCOUNT - Account Bound
+ 2 - IBT_GUILD - Guild Bound
+ 3 - IBT_PARTY - Party Bound
+ 4 - IBT_CHARACTER - Character Bound
---------------------------------------
@@ -5122,12 +5322,12 @@ If a bound type is not specified or a bound type of 0 is used, it will search th
of any type, so long as the other parameters match. In all cases, this command will return the bound type of the
item found, or 0 if the specified item was not found.
-Valid bound types are:
- 0 - All Bound types.
- 1 - Account Bound
- 2 - Guild Bound
- 3 - Party Bound
- 4 - Character Bound
+Valid item bound types are:
+ 0 - IBT_ANY - Any Bound
+ 1 - IBT_ACCOUNT - Account Bound
+ 2 - IBT_GUILD - Guild Bound
+ 3 - IBT_PARTY - Party Bound
+ 4 - IBT_CHARACTER - Character Bound
Optional Parameters:
bound_type - checks to see if the item has the specified bound type.
@@ -5145,7 +5345,7 @@ Example:
close();
// This will also check if you have a bound (any type) 1205 (Cutter).
- if (checkbound(Cutter, 0)) {
+ if (checkbound(Cutter, IBT_ANY)) {
mes("You have a bound Cutter");
} else {
mes("You do not have a bound Cutter");
@@ -5160,8 +5360,8 @@ Example:
}
close();
- // This will check if the item found, has a bound type of 2 (guild_bound)
- if (checkbound(Cutter) == 2) {
+ // This will check if the item found, has a bound type of IBT_GUILD
+ if (checkbound(Cutter) == IBT_GUILD) {
mes("You have a guild_bound Cutter");
} else {
mes("You do not have a guild_bound Cutter.");
@@ -5169,7 +5369,7 @@ Example:
close();
// This will check if you have a 'guild_bound' +7 1205 (Cutter).
- if (checkbound(Cutter, 2, 7)) {
+ if (checkbound(Cutter, IBT_GUILD, 7)) {
mes("You have a +7 guild_bound Cutter.");
} else {
mes("You don't have the required item.");
@@ -5317,6 +5517,34 @@ Check getitem2() to understand its expanded parameters.
---------------------------------------
+*delitemidx(<index>{, <amount>{, <account id>}})
+
+This command will remove an item at the given inventory index. Unlike the
+'delitem()' counterpart, this doesn't check invalid Item ID, making it useful to remove
+invalid item IDs in player's inventory.
+
+If <amount> is not specified, this will remove all of the items at the specified index.
+Note that items with the 'ForceSerial' flag, not yet merged through 'mergeitem()', will only
+be removed at the given index.
+
+The only way to get the inventory index is by using 'getinventorylist()'. After deleting
+an item at the given index, that index can remain empty until the player relogs, so you
+should recall 'getinventorylist()' again. If you try to delete an item at an invalid index, the
+script will terminate with an error.
+
+This command is also useful to remove rental/bound items because 'delitem()'
+does not discriminate at choosing which item to remove.
+
+Example:
+
+ // This will remove all invalid Item ID in player's inventory
+ getinventorylist();
+ for (.@i = 0; .@i < @inventorylist_count; ++.@i)
+ if (getiteminfo(@inventorylist_id[.@i], ITEMINFO_TYPE) == -1)
+ delitemidx(@inventorylist_idx[.@i]);
+
+---------------------------------------
+
*countitem(<item id>)
*countitem("<item name>")
@@ -5427,21 +5655,40 @@ set with 'disable_items'.
---------------------------------------
-*itemskill(<skill id>, <skill level>, {flag})
-*itemskill("<skill name>", <skill level>, {flag})
+*itemskill(<skill id>, <skill level>{, <flag>})
+*itemskill("<skill name>", <skill level>{, <flag>})
This command meant for item scripts to replicate single-use skills in
usable items. It will not work properly if there is a visible dialog
window or menu.
If the skill is self or auto-targeting, it will be used immediately.
Otherwise, a target cursor is shown.
-Flag is a optional param and, when present, the command will not check for
-skill requirements.
+By default, all skill requirements are ignored.
+Optional argument <flag> is a bitmask to manipulate how the skill is cast.
+Since <flag> is a bitmask, the flags can be summed up.
+Possible flags are:
+ - 0x00 - ISF_NONE - Skill is cast as if it has been used from skill tree.
+ (Same like <flag> was omitted.)
+ - 0x01 - ISF_CHECKCONDITIONS - Skill requirements are checked and consumed.
+ (SP are never checked/consumed.)
+ - 0x02 - ISF_INSTANTCAST - Skill is cast instantaneously.
+ - 0x04 - ISF_CASTONSELF - Skill is forcefully cast on invoking character,
+ without showing the target selection cursor.
+
+Important: Items which use itemskill() should be of type IT_USABLE.
+ If the item type is IT_DELAYCONSUME and ISF_CHECKCONDITIONS isn't set,
+ the item won't be consumed when using the item!
// When Anodyne is used, it will cast Endure, Level 1, as if the actual skill
// has been used from skill tree.
itemskill(SM_ENDURE, 1);
+// Instantaneously cast Level 10 Increase Agility on invoking character,
+// with checking/consuming skill requirements (15 HP).
+ itemskill(AL_INCAGI, 10, ISF_CHECKCONDITIONS | ISF_INSTANTCAST | ISF_CASTONSELF);
+// Instaed of using the constants, one could also do it like this:
+ itemskill(AL_INCAGI, 10, 7);
+
---------------------------------------
*itemeffect(<item id>)
@@ -5719,6 +5966,10 @@ storage window, to avoid any disruption when both windows overlap.
openstorage();
end;
+The mapflag 'nostorage' when set to type '2' (or 3), will not open the
+account storage. Unless the character group has the permission 'bypass_nostorage'.
+In case blocked by mapflag, returns 0.
+
---------------------------------------
*openmail()
@@ -5780,6 +6031,10 @@ time.
This will also fail and return 2 if the attached character does not belong
to any guild.
+The mapflag 'nogstorage' when set to type '2' (or 3), will not open the
+guild storage. Unless the character group has the permission 'bypass_nostorage'.
+In case blocked by mapflag, returns 1.
+
---------------------------------------
*guildchangegm(<guild id>, <new master's name>)
@@ -5871,6 +6126,16 @@ Used in reset NPC's (duh!).
---------------------------------------
+*resetfeel({<account id>})
+*resethate({<account id>})
+
+The first resets a character's 'Feeling' maps.
+The second resets a character's 'Hatred' targets.
+
+If no RID is given, will run with the current attached player.
+
+---------------------------------------
+
*sc_start(<effect type>, <ticks>, <value 1>{, <rate>, <flag>{, <GID>}})
*sc_start2(<effect type>, <ticks>, <value 1>, <value 2>{, <rate>, <flag>{, <GID>}})
*sc_start4(<effect type>, <ticks>, <value 1>, <value 2>, <value 3>, <value 4>{, <rate>, <flag>{, <GID>}})
@@ -6021,6 +6286,15 @@ Example usage:
---------------------------------------
+*specialeffectnum(<effect number>, <num1>, <num2>{, <send_target>{, <unit id>{, <account id>}}})
+*specialeffectnum(<effect number>, <num1>, <num2>{, <send_target>{, "<NPC Name>"{, <account id>}}})
+
+Works same as specialeffect but also send effect numbers to client.
+For PACKETVER >= 20191127 support two numbers (num1, num2).
+For older packet versions only num1 supported.
+
+---------------------------------------
+
*removespecialeffect(<effect number>{, <send_target>{, <unit id>{, <account id>}}})
*removespecialeffect(<effect number>{, <send_target>{, "<NPC Name>"{, <account id>}}})
@@ -6074,7 +6348,7 @@ Amount can be negative. See statusup().
---------------------------------------
-*needed_status_point(<type>, <val>, {<char_id>});
+*needed_status_point(<type>, <val>);
Returns the number of stat points needed to change the specified stat <type> by <val>.
If <val> is negative, returns the number of stat points that would be needed to
@@ -6301,17 +6575,22 @@ Examples:
---------------------------------------
-*setpcblock(<type>,<option>)
-*checkpcblock()
+*setpcblock(<type>, <option>{, <account id>})
+*checkpcblock({<account id>})
-Prevents the player from doing the following action.
+Prevents a character from doing the following action.
For setpcblock, when the <option> is true(1) will block them, and false(0)
will allow those actions again.
+The setpcblock command returns 1 on success or 0 if no character was attached.
+
The checkpcblock command returned value is a bit mask of the currently
enabled block flags (or PCBLOCK_NONE when none is set).
+Parameter <account id> is optional for both commands.
+If omitted, the currently attached character is used.
+
The <type> listed are a bit mask of the following:
PCBLOCK_NONE (only used by checkpcblock)
PCBLOCK_MOVE
@@ -6322,6 +6601,7 @@ The <type> listed are a bit mask of the following:
PCBLOCK_IMMUNE
PCBLOCK_SITSTAND
PCBLOCK_COMMANDS
+ PCBLOCK_NPC
Examples:
@@ -6332,7 +6612,7 @@ Examples:
setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL, true);
// Re-enables attack, skills and item use
- setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_ITEM, false);
+ setpcblock(PCBLOCK_ATTACK|PCBLOCK_SKILL|PCBLOCK_USEITEM, false);
// checkpcblock related checks
if ((checkpcblock() & PCBLOCK_IMMUNE) != 0)
@@ -6483,7 +6763,7 @@ This command will kill all monsters that were spawned with monster() or
areamonster() and have a specified event label attached to them. Commonly
used to get rid of remaining quest monsters once the quest is complete.
-If the label is given as "All", all monsters which have their respawn
+If the label is given as "all", all monsters which have their respawn
times set to -1 (like all the monsters summoned with 'monster' or
'areamonster' script command, and all monsters summoned with GM commands,
but no other ones - that is, all non-permanent monsters) on the specified
@@ -6505,6 +6785,14 @@ other number for this parameter won't be recognized.
---------------------------------------
+*killmonstergid(<GID>);
+
+This command will kill the specific monster GID. The difference between
+this command and 'unitkill', is this command does not trigger monster's
+event label.
+
+---------------------------------------
+
*strmobinfo(<type>, <monster id>)
This function will return information about a monster record in the
@@ -6593,6 +6881,17 @@ will run as if by donpcevent().
---------------------------------------
+*mobattached()
+
+This command will return RID of the monster running from 'OnTouchNPC:' label.
+
+
+// Kill any monster entering npc's trigger area
+OnTouchNPC:
+ killmonstergid mobattached();
+
+---------------------------------------
+
*homevolution()
This command will try to evolve the current player's homunculus.
@@ -6699,6 +6998,37 @@ Examples:
---------------------------------------
+*unitiswalking({<GID>})
+
+This command checks, if a unit is walking or not.
+If <GID> is omitted, the currently attached character is used.
+Returns 1 if the unit is walking, 0 if the unit is not walking and -1 on error.
+
+Note: There's no differentiation between script and client initiated walking.
+
+Example:
+
+prontera,155,185,5 script Check Walking 1_F_MARIA,{
+ mes("Enter character name.");
+ mes("");
+ input(.@name$);
+ .@GID = getcharid(CHAR_ID_ACCOUNT, .@name$);
+ if (.@GID != 0) {
+ .@iswalking = unitiswalking(.@GID);
+ if (.@iswalking == 1)
+ mesf("%s is walking.", .@name$);
+ else if (.@iswalking == 0)
+ mesf("%s is not walking.", .@name$);
+ else
+ mesf("Can't get %s's walking state.", .@name$);
+ } else {
+ mesf("%s not found!", .@name$);
+ }
+ close();
+}
+
+---------------------------------------
+
*unitkill(<GID>)
*unitwarp(<GID>, <Mapname>, <x>, <y>)
*unitattack(<GID>, <Target ID>)
@@ -6781,6 +7111,18 @@ NPCs talking while hidden then revealing... you can wonder around =P).
---------------------------------------
+*cloakonnpc("<NPC object name>"{, <account_id>})
+*cloakoffnpc("<NPC object name>"{, <account_id>})
+
+These commands are used to apply the cloaking effect on npcs
+this is a visual effect only and it does NOT stop the player
+from interacting with the npc.
+
+If an account_id is specified then the effect will only display to the given id,
+otherwise it's displayed to the entire npc area.
+
+---------------------------------------
+
*doevent("<NPC object name>::<event label>")
This command will start a new execution thread in a specified NPC object
@@ -7737,6 +8079,10 @@ solution rather than sending the map and the monster_id.
*debugmes("<format string>"{, <param>{, ...}})
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+ @ /!\ This command is deprecated @
+ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
+
This command will print a message in the server console (map-server window),
after applying the same format-string replacements as sprintf(). It will not be
displayed anywhere else. Returns true on success.
@@ -7750,6 +8096,29 @@ Example:
---------------------------------------
+*consolemes("<type>", "<format string>"{,<param>{, ...}})
+
+This command will print a message in the server console (map-server window),
+after applying the same format-string replacements as sprintf(). It will not be
+displayed anywhere else. Returns true on success.
+
+List of available <type> are:
+ CONSOLEMES_DEBUG = 0
+ CONSOLEMES_ERROR = 1
+ CONSOLEMES_WARNING = 2
+ CONSOLEMES_INFO = 3
+ CONSOLEMES_STATUS = 4
+ CONSOLEMES_NOTICE = 5
+
+Example:
+
+ // Displays "NAME has clicked me!" in the map-server window.
+ consolemes(CONSOLEMES_DEBUG, "%s has clicked me!", strcharinfo(PC_NAME));
+
+ consolemes(CONSOLEMES_DEBUG, "\033[0;32mHello World"); // supports ANSI escape sequences
+
+---------------------------------------
+
*logmes("<message>"{, <log type>})
This command will write the message given to the map server log files, as
@@ -8202,6 +8571,7 @@ Valid <permission> are:
PERM_DISABLE_STORE
PERM_DISABLE_EXP
PERM_DISABLE_SKILL_USAGE
+ PERM_BYPASS_NOSTORAGE
Example:
@@ -8462,6 +8832,18 @@ Example:
---------------------------------------
+*cap_value(<number>, <min>, <max>)
+
+Returns the number but capped between <min> and <max>.
+
+Example:
+ // capped between 0 ~ 100
+ .@value = cap_value(10, 0, 100); // .@value will be equal to 10
+ .@value = cap_value(1000, 0, 100); // .@value will be equal to 100
+ .@value = cap_value(-10, 3, 100); // .@value will be equal to 3
+
+---------------------------------------
+
*md5("<string>")
Returns the md5 checksum of a number or string.
@@ -8953,6 +9335,12 @@ currently used font is used, default interface font is used again.
---------------------------------------
+*getfont()
+
+This command return the player's current font.
+if no player is attached it would always return a 0, which is also the default font.
+
+---------------------------------------'
*showdigit(<value>{, <type>})
Displays given numeric 'value' in large digital clock font on top of the
@@ -9616,6 +10004,11 @@ is run when they relog.
<On Death Event> refers to an NPC label that attaches to the character and
is run when they die. Can be "" for empty.
+If "-" is supplied for <mapname>, this will remove the 1 second automatic
+respawn on the battleground map. This allows for better manipulation of
+<On Death Event>. The player will have to be warped to desired location
+at the end of <On Death Event>.
+
Unlike the prior command, the latter will attach a GROUP in a waiting room
to the battleground, and sets the array $@arenamembers[0] where 0 holds
the IDs of the first group, and 1 holds the IDs of the second.
@@ -9747,6 +10140,8 @@ mapflag%TAB%<map_name>%TAB%battleground%TAB%2
This command will create a new BG Team.
When player dies, they will be respawned map_name,X,Y as mentioned.
+If "-" is supplied for the map name, this will remove the 1 second automatic
+respawn on the battleground map.
Command will return -1 if BG Creation is failed,
else it will return the BG ID(Also known as TeamID).
@@ -9836,17 +10231,18 @@ If char id is given, the information of that character is retrieved
instead. Type specifies what information to retrieve and can be one of the
following:
- 0 - Database ID
- 1 - Class
- 2 - Name
- 3 - Faith value for this mercenary's guild, if any
- 4 - Calls value for this mercenary's guild, if any
- 5 - Kill count
- 6 - Remaining life time in msec
- 7 - Level
+ MERCINFO_ID - Mercenary Database ID
+ MERCINFO_CLASS - Mercenary Class
+ MERCINFO_NAME - Mercenary Name
+ MERCINFO_FAITH - Mercenary faith value for this mercenary's guild, if any
+ MERCINFO_CALLS - Mercenary calls value for this mercenary's guild, if any
+ MERCINFO_KILLCOUNT - Mercenary kill count
+ MERCINFO_LIFETIME - Mercenary remaining life time in mili-second
+ MERCINFO_LEVEL - Mercenary Level
+ MERCINFO_GID - Mercenary Game ID
-If the character does not have a mercenary, the command returns ""
-for name and 0 for all other types.
+If the character does not have a mercenary, the command returns "" for MERCINFO_NAME
+and 0 for all other types.
---------------------------------------
//=====================================
@@ -9978,6 +10374,7 @@ when the optional NPC_Name param is used.
*sellitem(<Item_ID>{, <price>{, <qty>}})
*sellitem(<Item_ID>, <qty>, <currency_id>, <currency_amount>)
+*sellitem(<Item_ID>, <zeny>, <qty>{, <currency_id1>, <currency_amount1>{, <currency_refine1>}{, ...}})
adds (or modifies) <Item_ID> data to the shop,
when <price> is not provided (or when it is -1) itemdb default is used.
@@ -9986,7 +10383,37 @@ qty is only necessary for NST_MARKET trader types.
when <Item_ID> is already in the shop,
the previous data (price/qty), is overwritten with the new.
-currency_id and currency_amount can be used only with shop type NST_BARTER
+currency_id and currency_amount can be used only with shop type NST_BARTER.
+zeny, currency_id1, currency_amount1, currency_refine1, can be used only with
+shop type NST_EXPANDED_BARTER.
+
+---------------------------------------
+
+*startsellitem(<Item_ID>, <zeny>, <qty>)
+
+Starts adding item into expanded barter shop (NST_EXPANDED_BARTER).
+Before this command possible to use commands *sellitemcurrency.
+Need PACKETVER 20190904 main or 20190904 RE or 20190828 zero or newer.
+
+Alternative way for add item to expanded barter shop is *sellitem with
+currency parameters.
+
+---------------------------------------
+
+*sellitemcurrency(<Item_ID>, <qty>{, <refine>})
+
+adds <Item_ID> as currency into expanded barter shop (NST_EXPANDED_BARTER)
+If <refine> set to -1, mean for any refine level.
+if <refine> missing used value -1.
+
+Need PACKETVER 20190904 main or 20190904 RE or 20190828 zero or newer.
+
+---------------------------------------
+
+*endsellitem()
+
+Complete adding item into expanded barter shop (NST_EXPANDED_BARTER).
+Need PACKETVER 20190904 main or 20190904 RE or 20190828 zero or newer.
---------------------------------------
@@ -10033,131 +10460,131 @@ Returns the amount of still-available <Item_ID> in the shop (on a NST_MARKET tra
---------------------------------------
-*setunitdata(<GUID>, <DataType>, <Val1> {,<Val2>,<Val3>})
+*setunitdata(<GID>, <DataType>, <Val>)
Sets or alters the data in real-time for game objects of the following types -
NPCs, Pets, Monsters, Homunuculus', Mercenaries, Elementals.
Applicable Data Types (available as constants) -
- Data Types Description (parameter type)
- UDT_SIZE: Unit Size (int)
- UDT_LEVEL: Level (int)
- UDT_HP: Current HP (int)
- UDT_MAXHP: Max HP (int)
- UDT_SP: SP (int)
- UDT_MAXSP: MAX SP (int)
- UDT_MASTERAID: Master Account ID (for Summons) (int)
- UDT_MASTERCID: Master Char ID (for Summons) (int)
- UDT_MAPIDXY: Warp a Unit to a map. (Val1 = (string) MapName, Val2 = (int) x, Val3 = (int) y)
- UDT_WALKTOXY: Make a unit walk to certain co-ordinates. (Val1 = (int) x, Val2 = (int) y)
- UDT_SPEED: Unit Speed. (int)
- UDT_MODE: Mode (Mobs only) (int)
- UDT_AI: Unit AI Type (see doc/constants.md for Unit AI Types)
- UDT_SCOPTION: Status Options. (see doc/constants.md for Unit Option Types)
- UDT_SEX: Gender of the unit. (see doc/constants.md for Genders)
- UDT_CLASS: Class of the unit. (Monster ID) (int)
- UDT_HAIRSTYLE: Hair Style ID. (int)
- UDT_HAIRCOLOR: Hair Color ID. (int)
- UDT_HEADBOTTOM: Headgear Bottom Sprite ID. (int)
- UDT_HEADMIDDLE: Headgear Middle Sprite ID. (int)
- UDT_HEADTOP: Headgear Top Sprite ID. (int)
- UDT_CLOTHCOLOR: Cloth Color ID. (int)
- UDT_SHIELD: Shield Sprite ID. (int)
- UDT_WEAPON: Weapon Sprite ID. (int)
- UDT_LOOKDIR: Face direction. (int)
- UDT_CANMOVETICK: Stop a unit from move for n seconds. (int)
- UDT_STR: Unit STR. (int)
- UDT_AGI: Unit AGI. (int)
- UDT_VIT: Unit VIT. (int)
- UDT_INT: Unit INT. (int)
- UDT_DEX: Unit DEX. (int)
- UDT_LUK: Unit LUK. (int)
- UDT_ATKRANGE: Attack range of a unit. (int)
- UDT_ATKMIN: Min Atk of a unit. (int)
- UDT_ATKMAX: Max Atk of a unit. (int)
- UDT_MATKMIN: Min MATK of a unit. (int)
- UDT_MATKMAX: Max MATK of a unit. (int)
- UDT_DEF: DEF. (int)
- UDT_MDEF: MDEF. (int)
- UDT_HIT: HIT. (int)
- UDT_FLEE: FLEE. (int)
- UDT_PDODGE: Perfect Dodge. (int)
- UDT_CRIT: Critical Rate. (int)
- UDT_RACE: Race. (Eg. string constants RC_DemiHuman or Integer 7).
- UDT_ELETYPE: Element. (Eg. string constants Ele_Neutral or Integer 0).
- UDT_ELELEVEL: Element Level (int).
- UDT_AMOTION: AMotion Rate (int).
- UDT_ADELAY: ADelay Rate (int).
- UDT_DMOTION: DMotion Rate (int).
- UDT_HUNGER: Hunger Rate (int) - for summons.
- UDT_INTIMACY: Intimacy Rate (int) - for summons.
- UDT_LIFETIME: LifeTime (int) - for summons.
- UDT_MERC_KILLCOUNT: Kill count for mercenaries (int).
- UDT_STATADD: Status Points (int) - for NPCs.
+ Data Types Description (parameter type)
+ UDT_SIZE: Unit Size
+ UDT_LEVEL: Level
+ UDT_HP: Current HP
+ UDT_MAXHP: Max HP
+ UDT_SP: SP
+ UDT_MAXSP: MAX SP
+ UDT_MASTERAID: Master Account ID (for Summons)
+ UDT_MASTERCID: Master Char ID (for Summons)
+ UDT_SPEED: Unit Speed.
+ UDT_MODE: Mode (Mobs only)
+ UDT_AI: Unit AI Type (see doc/constants.md for Unit AI Types)
+ UDT_SCOPTION: Status Options. (see doc/constants.md for Unit Option Types)
+ UDT_SEX: Gender of the unit. (see doc/constants.md for Genders)
+ UDT_CLASS: Class of the unit. (Monster ID)
+ UDT_HAIRSTYLE: Hair Style ID.
+ UDT_HAIRCOLOR: Hair Color ID.
+ UDT_HEADBOTTOM: Headgear Bottom Sprite ID.
+ UDT_HEADMIDDLE: Headgear Middle Sprite ID.
+ UDT_HEADTOP: Headgear Top Sprite ID.
+ UDT_CLOTHCOLOR: Cloth Color ID.
+ UDT_SHIELD: Shield Sprite ID.
+ UDT_WEAPON: Weapon Sprite ID.
+ UDT_LOOKDIR: Face direction.
+ UDT_CANMOVETICK: Stop a unit from move for n seconds.
+ UDT_STR: Unit STR.
+ UDT_AGI: Unit AGI.
+ UDT_VIT: Unit VIT.
+ UDT_INT: Unit INT.
+ UDT_DEX: Unit DEX.
+ UDT_LUK: Unit LUK.
+ UDT_ATKRANGE: Attack range of a unit.
+ UDT_ATKMIN: Min Atk of a unit.
+ UDT_ATKMAX: Max Atk of a unit.
+ UDT_MATKMIN: Min MATK of a unit.
+ UDT_MATKMAX: Max MATK of a unit.
+ UDT_DEF: DEF.
+ UDT_MDEF: MDEF.
+ UDT_HIT: HIT.
+ UDT_FLEE: FLEE.
+ UDT_PDODGE: Perfect Dodge.
+ UDT_CRIT: Critical Rate.
+ UDT_RACE: Race. (Eg. constants RC_DemiHuman or Integer 7).
+ UDT_ELETYPE: Element. (Eg. constants Ele_Neutral or Integer 0).
+ UDT_ELELEVEL: Element Level.
+ UDT_AMOTION: AMotion Rate.
+ UDT_ADELAY: ADelay Rate.
+ UDT_DMOTION: DMotion Rate.
+ UDT_HUNGER: Hunger Rate - for summons.
+ UDT_INTIMACY: Intimacy Rate - for summons.
+ UDT_LIFETIME: LifeTime - for summons.
+ UDT_MERC_KILLCOUNT: Kill count for mercenaries
+ UDT_STATADD: Status Points - for NPCs.
+ UDT_GROUP: group id
+ UDT_DAMAGE_TAKEN_RATE: damage taken rate of a unit.
returns 0 if value could not be set, 1 if successful.
---------------------------------------
-*getunitdata (<GUID>,<DataType>{,<Variable>})
+*getunitdata (<GID>,<DataType>)
-Retrieves real-time data of a game object. For data with multiple return values,
-an array variable may be passed to store the data in.
+Retrieves real-time data of a game object.
Applicable Data types (available as constants) -
- Data Types Description (return type)
- UDT_SIZE: Unit Size (int)
- UDT_LEVEL: Level (int)
- UDT_HP: Current HP (int)
- UDT_MAXHP: Max HP (int)
- UDT_SP: SP (int)
- UDT_MAXSP: MAX SP (int)
- UDT_MASTERAID: Master Account ID (for Summons) (int)
- UDT_MASTERCID: Master Char ID (for Summons) (int)
- UDT_MAPIDXY: Warp a Unit to a map. (Val1 = (string) MapName, Val2 = (int) x, Val3 = (int) y)
- UDT_SPEED: Unit Speed. (int)
- UDT_MODE: Mode (Mobs only) (int)
- UDT_AI: Unit AI Type (see doc/constants.md for Unit AI Types)
- UDT_SCOPTION: Status Options. (see doc/constants.md for Unit Option Types)
- UDT_SEX: Gender of the unit. (see doc/constants.md for Genders)
- UDT_CLASS: Class of the unit. (Monster ID) (int)
- UDT_HAIRSTYLE: Hair Style ID. (int)
- UDT_HAIRCOLOR: Hair Color ID. (int)
- UDT_HEADBOTTOM: Headgear Bottom Sprite ID. (int)
- UDT_HEADMIDDLE: Headgear Middle Sprite ID. (int)
- UDT_HEADTOP: Headgear Top Sprite ID. (int)
- UDT_CLOTHCOLOR: Cloth Color ID. (int)
- UDT_SHIELD: Shield Sprite ID. (int)
- UDT_WEAPON: Weapon Sprite ID. (int)
- UDT_LOOKDIR: Face direction. (int)
- UDT_CANMOVETICK: Stop a unit from move for n seconds. (int)
- UDT_STR: Unit STR. (int)
- UDT_AGI: Unit AGI. (int)
- UDT_VIT: Unit VIT. (int)
- UDT_INT: Unit INT. (int)
- UDT_DEX: Unit DEX. (int)
- UDT_LUK: Unit LUK. (int)
- UDT_ATKRANGE: Attack range of a unit. (int)
- UDT_ATKMIN: Min Atk of a unit. (int)
- UDT_ATKMAX: Max Atk of a unit. (int)
- UDT_MATKMIN: Min MATK of a unit. (int)
- UDT_MATKMAX: Max MATK of a unit. (int)
- UDT_DEF: DEF. (int)
- UDT_MDEF: MDEF. (int)
- UDT_HIT: HIT. (int)
- UDT_FLEE: FLEE. (int)
- UDT_PDODGE: Perfect Dodge. (int)
- UDT_CRIT: Critical Rate. (int)
- UDT_RACE: Race. (Eg. string constants RC_DemiHuman or Integer 7).
- UDT_ELETYPE: Element. (Eg. string constants Ele_Neutral or Integer 0).
- UDT_ELELEVEL: Element Level (int).
- UDT_AMOTION: AMotion Rate (int).
- UDT_ADELAY: ADelay Rate (int).
- UDT_DMOTION: DMotion Rate (int).
- UDT_HUNGER: Hunger Rate (int) - for summons.
- UDT_INTIMACY: Intimacy Rate (int) - for summons.
- UDT_LIFETIME: LifeTime (int) - for summons.
- UDT_MERC_KILLCOUNT: Kill count for mercenaries (int).
+ Data Types Description (return type)
+ UDT_SIZE: Unit Size
+ UDT_LEVEL: Level
+ UDT_HP: Current HP
+ UDT_MAXHP: Max HP
+ UDT_SP: SP
+ UDT_MAXSP: MAX SP
+ UDT_MASTERAID: Master Account ID (for Summons)
+ UDT_MASTERCID: Master Char ID (for Summons)
+ UDT_SPEED: Unit Speed.
+ UDT_MODE: Mode (Mobs only)
+ UDT_AI: Unit AI Type (see doc/constants.md for Unit AI Types)
+ UDT_SCOPTION: Status Options. (see doc/constants.md for Unit Option Types)
+ UDT_SEX: Gender of the unit. (see doc/constants.md for Genders)
+ UDT_CLASS: Class of the unit. (Monster ID)
+ UDT_HAIRSTYLE: Hair Style ID.
+ UDT_HAIRCOLOR: Hair Color ID.
+ UDT_HEADBOTTOM: Headgear Bottom Sprite ID.
+ UDT_HEADMIDDLE: Headgear Middle Sprite ID.
+ UDT_HEADTOP: Headgear Top Sprite ID.
+ UDT_CLOTHCOLOR: Cloth Color ID.
+ UDT_SHIELD: Shield Sprite ID.
+ UDT_WEAPON: Weapon Sprite ID.
+ UDT_LOOKDIR: Face direction.
+ UDT_CANMOVETICK: Stop a unit from move for n seconds.
+ UDT_STR: Unit STR.
+ UDT_AGI: Unit AGI.
+ UDT_VIT: Unit VIT.
+ UDT_INT: Unit INT.
+ UDT_DEX: Unit DEX.
+ UDT_LUK: Unit LUK.
+ UDT_ATKRANGE: Attack range of a unit.
+ UDT_ATKMIN: Min Atk of a unit.
+ UDT_ATKMAX: Max Atk of a unit.
+ UDT_MATKMIN: Min MATK of a unit.
+ UDT_MATKMAX: Max MATK of a unit.
+ UDT_DEF: DEF.
+ UDT_MDEF: MDEF.
+ UDT_HIT: HIT.
+ UDT_FLEE: FLEE.
+ UDT_PDODGE: Perfect Dodge.
+ UDT_CRIT: Critical Rate.
+ UDT_RACE: Race. (Eg. constants RC_DemiHuman or Integer 7).
+ UDT_ELETYPE: Element. (Eg. constants Ele_Neutral or Integer 0).
+ UDT_ELELEVEL: Element Level.
+ UDT_AMOTION: AMotion Rate.
+ UDT_ADELAY: ADelay Rate.
+ UDT_DMOTION: DMotion Rate.
+ UDT_HUNGER: Hunger Rate - for summons.
+ UDT_INTIMACY: Intimacy Rate - for summons.
+ UDT_LIFETIME: LifeTime - for summons.
+ UDT_MERC_KILLCOUNT: Kill count for mercenaries.
+ UDT_GROUP: group id
+ UDT_DAMAGE_TAKEN_RATE: damage taken rate of a unit.
returns -1 if value could not be retrieved.
@@ -10277,6 +10704,14 @@ returns progress on success and false on failure
---------------------------------------
+*achievement_iscompleted(<ach_id>{, <account_id>})
+
+Checks whether the attached player have completed all the given achievement objectives.
+
+returns true if yes and false if no.
+
+---------------------------------------
+
*itempreview(<index>)
Update already opened preview window with item from
@@ -10308,7 +10743,7 @@ Works for 20170830 RE and main and for any zero clients
---------------------------------------
-*expandInventoryAck(<result>{, <itemId>})
+*expandinventoryack(<result>{, <itemId>})
Send initial inventory expansion result.
Normally this function should be called from script label
@@ -10326,7 +10761,7 @@ Works for 20181212 zero clients
---------------------------------------
-*expandInventoryResult(<result>)
+*expandinventoryresult(<result>)
Send final inventory expansion result.
Normally this function should be called from script label
@@ -10343,7 +10778,7 @@ Works for 20181212 zero clients
---------------------------------------
-*expandInventory(<value>)
+*expandinventory(<value>)
Adjust player inventory to given value.
Maximum inventory size is MAX_INVENTORY.
@@ -10354,10 +10789,44 @@ Current max inventory size can be read by function getInventorySize().
---------------------------------------
-*getInventorySize()
+*getinventorysize()
Return current player max inventory size.
This value always smaller or equal to MAX_INVENTORY.
Size can be changed by group of functions expandInventory*
---------------------------------------
+
+*getunittitle(<GID>)
+
+Return unit title string.
+Works for 20180207 main clients, 20171129 re clients, 20171130 zero clients
+
+---------------------------------------
+
+*setunittitle(<GID>, <title>)
+
+Set unit title string.
+Invisible for players, because current implimentation using title id only.
+Works for 20180207 main clients, 20171129 re clients, 20171130 zero clients
+
+---------------------------------------
+
+*closeroulette()
+
+Force close roulette window.
+Works for 20141008 main clients, 20140903 re, any zero.
+
+---------------------------------------
+*openrefineryui()
+
+Opens refinery user interface for the player
+returns true on success and false on failure
+
+---------------------------------------
+*openlapineddukddakboxui(<item_id>)
+
+Opens lapine ddukddak user interface for the player
+returns true on success and false on failure
+
+---------------------------------------