summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
Diffstat (limited to 'doc')
-rw-r--r--doc/constants.md511
-rw-r--r--doc/global_configuration.md65
-rw-r--r--doc/global_configuration.txt69
-rw-r--r--doc/item_bonus.md436
-rw-r--r--doc/item_bonus.txt444
-rw-r--r--doc/sample/getiteminfo.txt9
-rw-r--r--doc/script_commands.txt55
7 files changed, 1066 insertions, 523 deletions
diff --git a/doc/constants.md b/doc/constants.md
index 451f2a5fe..276881a43 100644
--- a/doc/constants.md
+++ b/doc/constants.md
@@ -3991,6 +3991,8 @@
- `MAX_BG_MEMBERS`: 30
- `MAX_CHAT_USERS`: 20
- `MAX_REFINE`: 20
+- `MAX_MENU_OPTIONS`: 255
+- `MAX_MENU_LENGTH`: 2048
### status options
@@ -4278,6 +4280,7 @@
- `ITEMINFO_VIEWID`: 14
- `ITEMINFO_MATK`: 15
- `ITEMINFO_VIEWSPRITE`: 16
+- `ITEMINFO_TRADE`: 17
### monster skill states
@@ -4367,6 +4370,7 @@
- `QINFO_HOMUN_LEVEL`: 5
- `QINFO_HOMUN_TYPE`: 6
- `QINFO_QUEST`: 7
+- `QINFO_MERCENARY_CLASS`: 8
### function types
@@ -4375,6 +4379,20 @@
- `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
+
### Renewal
- `RENEWAL`: 1
@@ -8583,6 +8601,7 @@
- `Dofle_Axe`: 1318
- `TE_Woe_Axe`: 1319
- `Ru_Gold_Axe`: 1323
+- `War_Axe_IL`: 1326
- `Battle_Axe`: 1351
- `Battle_Axe_`: 1352
- `Battle_Axe__`: 1353
@@ -9015,6 +9034,10 @@
- `Spartacus`: 1835
- `Thanos_Knuckle`: 1836
- `Scarlet_Knuckle`: 1839
+- `Combo_Battle_Glove_IL`: 1846
+- `Rebeginer_SR_Nuckle`: 1848
+- `Burning_Knuckle_OS`: 1862
+- `Evt_Iron_Nail_K`: 1864
- `Violin_of_Vicious_Mind`: 1900
- `Violin`: 1901
- `Violin_`: 1902
@@ -9129,6 +9152,10 @@
- `Infinity_Staff`: 2024
- `Scarlet_Staff`: 2025
- `Staff_of_Vicious_Mind`: 2026
+- `Wizardy_Staff_IL`: 2039
+- `Rebeginer_WL_Staff`: 2046
+- `Survival_Staff_IL`: 2051
+- `Evt_Iron_Staff`: 2054
- `Guard`: 2101
- `Guard_`: 2102
- `Buckler`: 2103
@@ -13530,6 +13557,7 @@
- `Black_Butterfly_Mask`: 10037
- `Horn_Protector`: 10038
- `Tw_Backpack`: 10039
+- `Dark_Mane`: 10042
- `Prontera_Book_01`: 11000
- `Adventure_Story01`: 11001
- `Great_Chef_Orleans01`: 11002
@@ -13653,6 +13681,15 @@
- `Trance_Candy_Y`: 11594
- `Trance_Candy_G`: 11595
- `Catnip_Fruit`: 11602
+- `Crepe`: 11607
+- `Chocolate_Egg`: 11608
+- `Yummy_Cookie_Egg`: 11609
+- `Pop_Corn`: 11611
+- `Aromatic_Pop_Corn`: 11612
+- `Fresh_Milk`: 11614
+- `Sweet_Potato_`: 11615
+- `Bearopy`: 11620
+- `Aromatic_Pop_Corn_`: 11625
- `Girl_Bunch_Of_Flower`: 11701
- `Moon_Cookie`: 11702
- `Mysterious_Blood`: 11703
@@ -14712,6 +14749,8 @@
- `ALTAIR_ARES_`: 13124
- `Scarlet_Revolver`: 13127
- `Revolver_of_Vicious_Mind`: 13128
+- `Rebeginer_RL_Gun`: 13144
+- `Calf_Deathadder`: 13146
- `Branch`: 13150
- `The_Cyclone`: 13151
- `The_Cyclone_`: 13152
@@ -14853,6 +14892,9 @@
- `TE_Woe_Huuma`: 13317
- `Scarlet_Huuma`: 13327
- `Huuma_Shuriken_of_Vicious_Mind`: 13328
+- `Huuma_Fluttering_Snow_IL`: 13337
+- `Huuma_Bird_Wing_IL`: 13338
+- `Rebeginer_KO_Humma`: 13341
- `Cutlas_`: 13400
- `Excalibur_C`: 13401
- `Cutlas_C`: 13402
@@ -14896,6 +14938,10 @@
- `Pala`: 13444
- `Scarlet_Saber`: 13454
- `Saber_of_Vicious_Mind`: 13455
+- `Immaterial_Sword_IL`: 13469
+- `Rebeginer_GN_Sword`: 13483
+- `Cannon_Rapier_OS`: 13493
+- `Evt_Bluefire_Sword`: 13495
- `Insurance60_Package`: 13500
- `Assorted_Scroll_Box`: 13501
- `Drooping_Kitty_Box`: 13502
@@ -15947,6 +15993,17 @@
- `White_Shirt`: 15150
- `White_Eco_Shirt`: 15151
- `Elegant_Doram_Suit`: 15156
+- `YSF01_Plate`: 15212
+- `True_Hunting_Mail`: 15246
+- `R_Hunting_Mail`: 15247
+- `Rebeginer_Suits`: 15250
+- `S_CriticalHit_Armor`: 15280
+- `Goibne_Armor_IL`: 15348
+- `Illusion_Armor_A`: 15376
+- `Illusion_Armor_B`: 15377
+- `Time_Overload_Robe`: 15383
+- `Schmidt_Suits`: 15388
+- `Schmidt_Manteau`: 15389
- `Erde`: 16000
- `Red_Square_Bag`: 16001
- `Stunner_C`: 16002
@@ -15982,6 +16039,12 @@
- `Spoon`: 16039
- `Scarlet_Mace`: 16040
- `Mace_of_Vicious_Mind`: 16041
+- `Long_Mace_IL`: 16063
+- `Iron_Driver_IL`: 16065
+- `Rebeginer_NC_Mace`: 16075
+- `Rebeginer_N2_Mace`: 16076
+- `Saphir_Hall_OS`: 16088
+- `Ultio_Spes_OS`: 16089
- `Lady_Tanee_Doll_Box`: 16131
- `Lunatic_Hat_Box`: 16132
- `King_Frog_Hat_Box`: 16134
@@ -16063,6 +16126,7 @@
- `Giant_Fly_Wing_Box_500`: 16418
- `Greed_Scroll_Box_30`: 16419
- `Adventurer_Pack`: 16420
+- `PoporingKey`: 16423
- `Executioner_Box_`: 16424
- `Cutlus_Box`: 16425
- `Moonlight_Dagger_Box`: 16426
@@ -16341,6 +16405,27 @@
- `DEX_Biscuit_Stick_Box`: 17274
- `LUK_Biscuit_Stick_Box`: 17275
- `Jeremy_Beauty_Coupon_Box`: 17336
+- `Almighty_Plus_Box3`: 17774
+- `Almighty100_PlusBox3`: 17775
+- `Refine_Ore_Box17_Set10`: 17882
+- `Refine_Ore_Box17`: 17883
+- `HD_Refine_Ore_Box5`: 17884
+- `HD_High_Refine_Box3`: 17885
+- `Infinity_Box`: 17886
+- `Infinity_10_Box`: 17887
+- `New_Vigorgra_Package`: 17894
+- `New_Vigorgra_Set`: 17895
+- `2017_GStar_CostumeBox`: 17914
+- `Refine_Ore_Box18`: 17923
+- `Refine_Ore_Box18_Set10`: 17924
+- `HD_Refine_Ore_Box6`: 17925
+- `HD_High_Refine_Box4`: 17926
+- `New_3_Potion_pack`: 17935
+- `New_3_Potion_10pack`: 17936
+- `Nyangvine_Box10_3`: 17940
+- `Nyangvine_Box100_3`: 17941
+- `Almighty_Plus_Box4`: 17944
+- `Almighty100_PlusBox4`: 17945
- `Cannon_Ball`: 18000
- `Holy_Cannon_Ball`: 18001
- `Dark_Cannon_Ball`: 18002
@@ -16374,6 +16459,16 @@
- `Ru_Blue_Bow`: 18126
- `Infinity_Bow`: 18128
- `Scarlet_Bow`: 18130
+- `Balistar_IL`: 18149
+- `Rebeginer_RN_Bow`: 18165
+- `Rebeginer_WM_Bow`: 18166
+- `Neev_Bow_Of_Rogue`: 18170
+- `Hunter_Bow_IL`: 18174
+- `Virtual_Bow_OS`: 18178
+- `MH_P89_OS`: 18179
+- `AC_B44_OS`: 18180
+- `Evt_Royal_Bow_K`: 18182
+- `Evt_Narcis_Bow`: 18183
- `Cheer_Scarf6`: 18500
- `Cheer_Scarf8`: 18501
- `Cheer_Scarf10`: 18502
@@ -16801,6 +16896,25 @@
- `Sigruns_Wing_`: 19085
- `Robo_Eye_`: 19086
- `Angel_Spirit_`: 19087
+- `Nurse_Cap_IL`: 19209
+- `Apple_Of_Archer_IL`: 19210
+- `Cap_IL`: 19223
+- `Fancy_Flower_IL`: 19247
+- `GoldFish_Hat`: 19264
+- `Smoky_TransformHat`: 19265
+- `Soda_In_Mouth`: 19277
+- `C_Shiba_Inu`: 19291
+- `C_CatEars_Cyber_HeadP_R`: 19294
+- `Dog_Officer`: 19300
+- `Rebeginer_Cap`: 19310
+- `Egg_Crispinette`: 19339
+- `Headband_Of_Power_IL`: 19344
+- `Goibne_Helmet_IL`: 19366
+- `Pop_Popcorn_Hat`: 19382
+- `E_Oxygen_Mask`: 19389
+- `Racing_C_Star`: 19396
+- `Racing_C_Soul`: 19397
+- `Biting_Off_Rideword`: 19404
- `T_Mr_Smile`: 19500
- `T_Spinx_Helm`: 19501
- `T_Goggle`: 19502
@@ -17572,6 +17686,14 @@
- `C_Pure_White_Ribbon`: 20332
- `C_Family_Hat`: 20333
- `T_Archangel_Wing`: 20500
+- `C_Thanatos_Sword`: 20514
+- `C_Magic_Circle`: 20515
+- `C_Wings_of_Michael`: 20516
+- `C_GiantCatBag_TW`: 20517
+- `C_GoldButterfly_Wing`: 20528
+- `C_Wings_of_Gabriel`: 20530
+- `C_PinkButterfly_Wing_T`: 20533
+- `C_Digital_Space`: 20535
- `Fantastic_Aura`: 20600
- `Egir_Manteau`: 20700
- `TE_Woe_Muffler`: 20702
@@ -17611,6 +17733,19 @@
- `Private_Doram_Manteau`: 20788
- `Luxury_Doram_Manteau`: 20789
- `Elegant_Doram_Manteau`: 20790
+- `Muffler_IL`: 20838
+- `Cape_Of_Ancient_Lord_IL`: 20840
+- `Clack_Of_Servival_IL`: 20847
+- `YSF01_Manteau`: 20856
+- `True_Hunting_Manteau`: 20902
+- `R_Hunting_Manteau`: 20903
+- `Rebeginer_Manteau`: 20906
+- `Goibne_Shoulder_IL`: 20923
+- `Illusion_Engine_A`: 20933
+- `Illusion_Engine_B`: 20934
+- `Time_Overload_Hood`: 20939
+- `Violet_Halo`: 20940
+- `Fairy_Cloth`: 20944
- `Upg_Twohand_Sword`: 21000
- `Velum_Claymore`: 21001
- `Velum_Katzbalger`: 21002
@@ -17630,6 +17765,9 @@
- `Two_Handed_Sword_of_Vicious_Mind`: 21016
- `Lindy_Hop`: 21018
- `Onimaru`: 21019
+- `Rebeginer_RK_T_Sword`: 21037
+- `Beam_Claymore_OS`: 21047
+- `Evt_Oriental_Sword`: 21049
- `Temporal_Str_Boots`: 22000
- `Temporal_Int_Boots`: 22001
- `Temporal_Agi_Boots`: 22002
@@ -17670,6 +17808,17 @@
- `Private_Doram_Shoes`: 22083
- `Luxury_Doram_Shoes`: 22084
- `Elegant_Doram_Shoes`: 22085
+- `Shoes_IL`: 22133
+- `YSF01_Greave`: 22141
+- `True_Hunting_Boots`: 22168
+- `R_Hunting_Boots`: 22169
+- `ShoesOfGuardsman`: 22171
+- `Rebeginer_Boots`: 22173
+- `Boots_IL`: 22190
+- `Goibne_Boots_IL`: 22192
+- `Illusion_Leg_A`: 22196
+- `Illusion_Leg_B`: 22197
+- `Time_Overload_Boots`: 22204
- `Para_Team_Mark_`: 22508
- `Candy_Holder`: 22514
- `Key_Of_Twisted_Time`: 22515
@@ -17701,6 +17850,107 @@
- `Integer_Time`: 22837
- `Something_Candy_Holder`: 22838
- `Old_Money_Pocket`: 22876
+- `Fried_Chicken`: 23242
+- `Fried_Chicken_1`: 23243
+- `Elixir_Bandage`: 23256
+- `Dew_Of_Old_Tree`: 23257
+- `Foul_Rotten_Meat`: 23258
+- `St_Cupcake`: 23259
+- `Parfait`: 23260
+- `Macaron`: 23261
+- `Mado_Box`: 23277
+- `Costama_EggV01`: 23332
+- `Vend_Arbeit1_1Lv`: 23342
+- `Vend_Arbeit1_2Lv`: 23343
+- `Vend_Arbeit1_3Lv`: 23344
+- `Buy_Arbeit1_1Lv`: 23345
+- `Buy_Arbeit1_2Lv`: 23346
+- `Buy_Arbeit1_3Lv`: 23347
+- `Vend_Arbeit_1Lv`: 23348
+- `Vend_Arbeit_2Lv`: 23349
+- `Vend_Arbeit_3Lv`: 23350
+- `Buy_Arbeit_1Lv`: 23351
+- `Buy_Arbeit_2Lv`: 23352
+- `Buy_Arbeit_3Lv`: 23353
+- `Vend_Arbeit1_1Lv_`: 23354
+- `Vend_Arbeit1_2Lv_`: 23355
+- `Vend_Arbeit1_3Lv_`: 23356
+- `Buy_Arbeit1_1Lv_`: 23357
+- `Buy_Arbeit1_2Lv_`: 23358
+- `Buy_Arbeit1_3Lv_`: 23359
+- `Green_Scroll_K2`: 23405
+- `Sentimental_Scroll`: 23440
+- `July_Hair_Box`: 23444
+- `Savage_Trap`: 23446
+- `Infinity_Scroll`: 23473
+- `Infinity_Drink`: 23475
+- `Firstaid_Box_5`: 23484
+- `Firstaid_Box_10`: 23485
+- `Firstaid_Box_15`: 23486
+- `Firstaid_Box_20`: 23487
+- `Firstaid_Box_25`: 23488
+- `Firstaid_Box_30`: 23489
+- `Firstaid_Box_35`: 23490
+- `Firstaid_Box_40`: 23491
+- `Firstaid_Box_45`: 23492
+- `Firstaid_Box_50`: 23493
+- `Firstaid_Box_55`: 23494
+- `Firstaid_Box_60`: 23495
+- `Firstaid_Box_65`: 23496
+- `Firstaid_Box_70`: 23497
+- `Firstaid_Box_75`: 23498
+- `Firstaid_Box_80`: 23499
+- `Firstaid_Box_85`: 23500
+- `Firstaid_Box_90`: 23501
+- `Firstaid_Box_95`: 23502
+- `Red_Potion_B_20`: 23503
+- `Orange_Potion_B_20`: 23504
+- `Yellow_Potion_B_20`: 23505
+- `White_Potion_B_20`: 23506
+- `Vote_Rose`: 23533
+- `Bloody_Scroll`: 23537
+- `Snow_Cookie`: 23549
+- `Winter_Cookie`: 23550
+- `Festi_Cookie`: 23551
+- `Flora_Cookie`: 23552
+- `Snow_Festa_CardPack`: 23554
+- `Adventurer_Box_1`: 23575
+- `Adventurer_Box_15`: 23576
+- `Adventurer_Box_30`: 23577
+- `Adventurer_Box_45`: 23578
+- `Adventurer_Box_60`: 23579
+- `Adventurer_Box_75`: 23580
+- `Adventurer_Box_90`: 23581
+- `E_Wing_Of_Fly_3Day_Box`: 23582
+- `Rebeginer_Box`: 23583
+- `Rebeginer_S_Box`: 23584
+- `Rebeginer_Box_100`: 23585
+- `Rebeginer_Box_110`: 23586
+- `Rebeginer_Box_120`: 23587
+- `2017_Special_Scroll`: 23618
+- `Ice_Scroll`: 23650
+- `2018_New_Year_Scroll`: 23661
+- `EVT_JAN02KR`: 23683
+- `Lunar_New_Year_Scroll`: 23700
+- `Reactor_Z`: 23706
+- `Reactor_Z_`: 23707
+- `2018_Spring_Scroll`: 23710
+- `Melon_Bread`: 23723
+- `Costama_EggV02`: 23765
+- `Mysterious_Plastic`: 23771
+- `EP17_1_SPC01`: 23772
+- `EP17_1_SPC02`: 23773
+- `EP17_1_SPC03`: 23774
+- `EP17_1_SPC04`: 23775
+- `Bs_Making_Scrolls`: 23817
+- `StarSoul_Scroll`: 23878
+- `2018_Jump_Thx_Box`: 23897
+- `Comp_Power_Booster`: 23898
+- `Comp_Almighty`: 23899
+- `Time_Overload_Box`: 23900
+- `110LVUP`: 23901
+- `Season_Evt_Reward`: 23921
+- `Malang_Cat_Can2`: 23962
- `T1_Shadow_Armor`: 24000
- `T1_Shadow_Weapon`: 24001
- `T1_Shadow_Shield`: 24002
@@ -17947,7 +18197,164 @@
- `S_Reload_Shoes`: 24243
- `S_Reload_Shield`: 24244
- `S_Reload_Armor`: 24245
+- `Sentimental_Weapone_S`: 24380
+- `Sentimental_Earring_S`: 24381
+- `Sentimental_Pendant_S`: 24382
+- `Enchanting_Weapone_S`: 24383
+- `Enchanting_Earring_S`: 24384
+- `Enchanting_Pendant_S`: 24385
+- `S_Infinity_Weapon`: 24386
+- `Rebeginer_Armor_S`: 24387
+- `Rebeginer_Shield_S`: 24388
+- `Rebeginer_Shoes_S`: 24389
+- `Rebeginer_Weapon_S`: 24390
+- `Rebeginer_Earring_S`: 24391
+- `Rebeginer_Pendant_S`: 24392
+- `S_Physical_Shoes`: 24393
+- `S_Physical_Shield`: 24394
+- `S_Physical_Armor`: 24395
+- `S_Magical_Shoes`: 24396
+- `S_Magical_Shield`: 24397
+- `S_Magical_Armor`: 24398
+- `S_ImmunedAthena_Shield`: 24399
+- `S_HardChamption_Shoes`: 24400
+- `S_KingbirdAncient_Armor`: 24401
+- `S_Rebellion_Armor`: 24402
+- `S_Kagerou_Armor`: 24403
+- `S_Oboro_Armor`: 24404
+- `S_Rebellion_Shoes`: 24405
+- `S_Kagerou_Shoes`: 24406
+- `S_Oboro_Shoes`: 24407
+- `S_DoramPhysical_Armor`: 24408
+- `S_DoramPhysical_Shoes`: 24409
+- `S_DoramMagical_Armor`: 24410
+- `S_DoramMagical_Shoes`: 24411
+- `S_Star_Emperor_Armor`: 24412
+- `S_Star_Emperor_Shoes`: 24413
+- `S_Soul_Reaper_Armor`: 24414
+- `S_Soul_Reaper_Shoes`: 24415
+- `S_Timeoverload_Weapon`: 24416
+- `S_Timeoverload_Armor`: 24417
+- `S_Timeoverload_Shield`: 24418
+- `S_Timeoverload_Shoes`: 24419
+- `S_Timeoverload_Earing`: 24420
+- `S_Timeoverload_Pandent`: 24421
+- `BrokenArrow`: 25258
+- `Shining_Spore`: 25265
+- `Dried_Leaf_Of_Ygg`: 25266
+- `IllusionStone`: 25271
+- `Sweets_Coin`: 25290
+- `Clover_Ticket`: 25294
+- `Happiness_Clover`: 25295
+- `Golden_Corn`: 25340
+- `Mightysoul_Essence`: 25375
+- `Captured_Savage`: 25390
+- `Goodly_Bough`: 25391
+- `Free_Pass_Ticket`: 25392
+- `Delicious_Corn`: 25393
+- `Fruit_Lunch`: 25394
+- `Small_Embers`: 25395
+- `Black_Fur`: 25401
+- `Memory_Of_Gyol`: 25408
+- `SuraStone_Top`: 25409
+- `SuraStone_Middle`: 25410
+- `SuraStone_Bottom`: 25411
+- `SuraStone_Robe`: 25412
+- `RangerStone_Top`: 25413
+- `RangerStone_Middle`: 25414
+- `RangerStone_Bottom`: 25415
+- `RangerStone_Robe`: 25416
+- `SorcererStone_Top`: 25417
+- `SorcererStone_Middle`: 25418
+- `SorcererStone_Bottom`: 25419
+- `SorcererStone_Robe`: 25420
+- `Pumpkin_Decor`: 25421
+- `White_Thin_Stem`: 25422
+- `SnowFlower_Of_Spell`: 25425
+- `Warm_Cotton`: 25426
+- `Rebeginer_W_Coupon`: 25427
+- `Rebeginer_W_7Up`: 25428
+- `RuneknightStone_Top`: 25445
+- `RuneknightStone_Middle`: 25446
+- `RuneknightStone_Bottom`: 25447
+- `RuneknightStone_Robe`: 25448
+- `GeneticStone_Robe`: 25449
+- `GeneticStone_Top`: 25450
+- `GeneticStone_Middle`: 25451
+- `GeneticStone_Bottom`: 25452
+- `WarlockStone_Top`: 25453
+- `WarlockStone_Middle`: 25454
+- `WarlockStone_Bottom`: 25455
+- `WarlockStone_Robe`: 25456
+- `World_Tour_Ticket`: 25464
+- `Dogly_Bottle`: 25479
+- `ShadowchaserStone_Top`: 25490
+- `ShadowchaseStone_Middle`: 25491
+- `ShadowchaseStone_Bottom`: 25492
+- `ShadowchaserStone_Robe`: 25493
+- `MechanicStone_Top`: 25494
+- `MechanicStone_Middle`: 25495
+- `MechanicStone_Bottom`: 25496
+- `MechanicStone_Robe`: 25497
+- `WanderMinstrelStone_Top`: 25498
+- `WanderMinstStone_Middle`: 25499
+- `WanderMinstStone_Bottom`: 25500
+- `WanderMinstreStone_Robe`: 25501
+- `Visionary_Ticket`: 25504
+- `Token_of_OrcGeneral`: 25508
+- `Evt_March04_KR`: 25511
+- `Evt_March05_KR`: 25512
+- `Green_Bearopy`: 25616
+- `White_Snake_Tear`: 25622
+- `Gold_Card`: 25627
+- `Konts_Letter`: 25629
+- `Token_Of_Wootan`: 25633
+- `Wootan_D_S_Piece`: 25634
+- `Token_Of_Bigstone`: 25638
+- `Fragment_Of_Rock`: 25639
+- `Autographed_Book`: 25643
+- `Dalcom_Coin`: 25655
+- `Stamp_Note`: 25656
+- `Evt_July01_KR`: 25657
+- `Evt_July02_KR`: 25658
+- `Evt_May02_KR`: 25659
+- `Evt_July03_KR`: 25664
+- `Dienes_Envelope`: 25665
+- `Id_Card`: 25666
+- `Broken_Weapon`: 25668
+- `Unknown_Parts`: 25669
+- `HighpriestStone_Top`: 25706
+- `HighpriestStone_Middle`: 25707
+- `HighpriestStone_Bottom`: 25708
+- `ArchbishopStone_Robe`: 25709
+- `PaladinStone_Top`: 25710
+- `PaladinStone_Middle`: 25711
+- `PaladinStone_Bottom`: 25712
+- `RoyalguardStone_Robe`: 25713
+- `AssacrossStone_Top`: 25714
+- `AssacrossStone_Middle`: 25715
+- `AssacrossStone_Bottom`: 25716
+- `GuillcrossStone_Robe`: 25717
+- `Cor_Core`: 25723
+- `Shadowdecon_Ore`: 25728
+- `Shadowdecon`: 25729
+- `Zelunium_Ore`: 25730
+- `Zelunium`: 25731
+- `Sealed_Weapon_Ticket`: 25734
+- `Unsealing_Token`: 25735
+- `GH_Cursed_Crystal`: 25739
+- `GH_Cursed_Gemstone`: 25740
+- `Spectral_Spear_IL`: 26007
+- `Rebeginer_LG_Lance`: 26015
- `Paradise_Foxtail_Staff_III`: 26101
+- `Staff_Of_Bordeaux_IL`: 26109
+- `CandyCaneRod`: 26110
+- `Metal_Foxtail`: 26111
+- `Rebeginer_SO_Rod`: 26119
+- `Rebeginer_DO_Rod`: 26120
+- `Rutilus_Stick_OS`: 26151
+- `MeawFoxtail`: 26155
+- `Evt_Shadow_Staff_K`: 26156
- `Faceworm_Queen_Card`: 27164
- `Captain_Felock_Card`: 27182
- `Thanos_Katar`: 28000
@@ -17956,16 +18363,29 @@
- `Scarlet_Katar`: 28007
- `Katar_of_Vicious_Mind`: 28008
- `Juliette_de_Rachel`: 28010
+- `Infiltrator_IL`: 28022
+- `Ghoul_Leg_IL`: 28023
+- `Rebeginer_GC_Katar`: 28027
+- `Meuchler_OS`: 28038
+- `Evt_Shiver_Katar_K`: 28040
- `Thanos_Axe`: 28100
- `Tornado_Axe`: 28101
- `Infinity_Two_handed_Axe`: 28105
- `Scarlet_Twohand_Axe`: 28106
- `Two_Handed_Axe_of_Vicious_Mind`: 28107
+- `Blasti_OS`: 28136
+- `Evt_Avenger`: 28137
- `END_OF_HORIZON`: 28200
- `Southern_Cross_R`: 28201
- `Southern_Cross_R_`: 28202
- `Half_BF_Rifle1`: 28203
- `Half_BF_Shotgun1`: 28204
+- `Calf_Kingcobra`: 28240
+- `Calf_Diamondback`: 28241
+- `Calf_Anaconda`: 28242
+- `Calf_Python`: 28243
+- `Gate_KeeperDD_IL`: 28244
+- `HR_S55_OS`: 28253
- `Bless_Of_Moon`: 28306
- `Earring_Of_Sarah_L`: 28310
- `Earring_Of_Sarah_R`: 28311
@@ -17997,15 +18417,36 @@
- `Shiny_Branch_Talisman`: 28422
- `Fresh_Tuna_Talisman`: 28423
- `Chubby_Worm_Talisman`: 28424
+- `Skul_Ring_IL`: 28508
+- `Ring_IL`: 28509
+- `Vampire_s_Servant`: 28510
+- `RKC_2017_Pendant`: 28534
+- `RKC_2017_Ring`: 28535
+- `Rebeginer_Ring`: 28566
- `Scarlet_Bible`: 28604
- `Book_of_Vicious_Mind`: 28605
+- `Book_Of_The_Apo_IL`: 28612
+- `Rebeginer_AB_Bible`: 28616
+- `Tablet_IL`: 28626
+- `Circuit_Board_OS`: 28629
+- `Time_Kamiji`: 28631
- `Infinity_Dagger`: 28703
- `Twilight_Desert_`: 28704
- `Scarlet_Dagger`: 28705
- `Dagger_of_Vicious_Mind`: 28706
+- `Moonlight_Sword_IL`: 28725
+- `Rebeginer_SC_Dagger`: 28740
+- `Counter_Dagger_IL`: 28745
+- `Kuroiro_OS`: 28755
+- `Evt_Magic_Sword`: 28759
- `Praetorian_Shield`: 28900
- `Cursed_Mad_Bunny`: 28901
- `Mad_Bunny_`: 28902
+- `Herald_Of_GOD_IL`: 28922
+- `Bloody_Knight_Shield`: 28942
+- `Bloody_Knight_Shield_`: 28945
+- `Bloody_Knight_Shield__`: 28946
+- `Poring_B_Shield`: 28953
- `Rune_Of_Magic1`: 29000
- `Rune_Of_Magic2`: 29001
- `Rune_Of_Magic3`: 29002
@@ -18033,6 +18474,76 @@
- `LUK3_INT3`: 29025
- `DEF20`: 29026
- `EXP2`: 29027
+- `Deep_Black_Pearl`: 29540
+- `Sea_Sapphire`: 29547
+- `Red_Fog_Garnet`: 29548
+- `Lightning_Topaz`: 29549
+- `Poisoned_Amethyst`: 29550
+- `Frost_Zircon`: 29551
+- `Deep_Black_Pearl_`: 29552
+- `Lightning_Topaz_`: 29587
+- `Bloody_Ruby`: 29588
+- `GH_Cursed_Gemstone_`: 29589
+- `GH_Cursed_Crystal_`: 29590
+- `Cursed_Emerald`: 29591
+- `Shinee_Opal`: 29592
+- `Roast_Memory`: 31172
+- `C_Black_Cat`: 31186
+- `Choco_Minihat`: 31195
+- `Egg_Crispinette_`: 31197
+- `Straight_Long_YL`: 31208
+- `Straight_Long_WH`: 31209
+- `Rabbit_Hopping`: 31249
+- `Soda_In_Mouth_`: 31261
+- `Warm_Cat_Muffler`: 31300
+- `C_FallenAngelWingEar`: 31313
+- `C_Ghost_Holiday`: 31314
+- `C_FlutterButterfly_BL`: 31316
+- `C_Alice_Wig`: 31329
+- `C_Khalitzburg_Helm_BL`: 31332
+- `Harvest_Festa_Hat`: 31368
+- `Straight_Long_WH_`: 31369
+- `Straight_Long_YL_`: 31370
+- `Jjakk`: 31387
+- `White_Bird_Rose`: 31389
+- `Let_It_Snow`: 31390
+- `C_Sorcerer_Hood`: 31396
+- `C_Pope_Sitting_Head`: 31397
+- `C_Blinking_Thin_Eyes`: 31398
+- `Alice_Wig_PK`: 31407
+- `C_Wanderer_Sakkat`: 31415
+- `C_Luwmin_Ice`: 31432
+- `C_Astro_Circle`: 31433
+- `C_Baby_Penguin`: 31437
+- `C_Fluffy_Heart_Earmuffs`: 31439
+- `White_Cat`: 31452
+- `Love_Feeling`: 31454
+- `Enchanted_Dog`: 31455
+- `C_Blessing_Sky_Lantern`: 31460
+- `C_Flying_Drone`: 31463
+- `Egg_Minihat`: 31465
+- `C_Bouquet_Hat`: 31489
+- `C_Poring_Muffler`: 31490
+- `Volume_Low_Twin`: 31494
+- `Lolita_Two_Side_Up`: 31495
+- `C_Elephangel_TH`: 31498
+- `Mini_Melon`: 31516
+- `Pop_Popcorn_Hat_`: 31518
+- `Slurp_Slurp_Hat`: 31519
+- `C_Happy_Rabbit_Ribbon`: 31529
+- `Autumnal_Flavor`: 31580
+- `GOLD_MAJESTIC_GOUT`: 31589
+- `C_Autumn_Headband`: 31606
+- `Pole_Axe_IL`: 32005
+- `Metal_Stick`: 32013
+- `Boost_Lance_OS`: 32019
+- `Evt_Undine_Spear_K`: 32021
+- `Illusion_B_R`: 32207
+- `Illusion_B_L`: 32208
+- `Illusion_BC_R`: 32209
+- `Illusion_BC_L`: 32210
+- `Time_Overload_Ring`: 32221
+- `Celine_Brooch`: 32237
> End of list
diff --git a/doc/global_configuration.md b/doc/global_configuration.md
new file mode 100644
index 000000000..b0e99e698
--- /dev/null
+++ b/doc/global_configuration.md
@@ -0,0 +1,65 @@
+# Global configuration reference
+
+## What is global configuration?
+
+Global configuration is an import system that allows configuration files to be
+shared between servers (login, char, map), but can also be used independently
+in each server.
+
+
+## How does it work?
+
+It works by using the `@include` directive from libconfig:
+
+> "A configuration file may "include" the contents of another file using an
+> include directive. This directive has the effect of inlining the contents of
+> the named file at the point of inclusion.
+
+An include directive must appear on its own line and takes this form:
+
+```
+ @include "filename"
+```
+
+Any backslashes or double quotes in the filename must be escaped as `\\` and
+`\"`, respectively.
+
+
+## How do I stop using global configurations?
+
+To stop using global configuration, all you have to do is copy the contents of
+the file being imported and paste it _exactly_ where the include directive was.
+
+### Example
+
+If you want map server and char server to have their own separate SQL connection
+settings, you would search in `conf/map/map-server.conf` and
+`conf/char/char-server.conf` for this line:
+
+```
+ @include "conf/global/sql_connection.conf"
+```
+
+And replace it with:
+
+```
+ sql_connection: {
+ // [INTER] You can specify the codepage to use in your mySQL tables here.
+ // (Note that this feature requires MySQL 4.1+)
+ //default_codepage: ""
+
+ // [LOGIN] Is `userid` in account_db case sensitive?
+ //case_sensitive: false
+
+ // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1.
+ // Under windows, you want to use 127.0.0.1. If you see a message like
+ // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
+ // and you have localhost, switch it to 127.0.0.1
+ db_hostname: "127.0.0.1"
+ db_port: 3306
+ db_username: "ragnarok"
+ db_password: "ragnarok"
+ db_database: "ragnarok"
+ //codepage:""
+ }
+```
diff --git a/doc/global_configuration.txt b/doc/global_configuration.txt
deleted file mode 100644
index a000a4572..000000000
--- a/doc/global_configuration.txt
+++ /dev/null
@@ -1,69 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Global configuration reference
-//===== By: ==================================================
-//= Panikon (Hercules Dev. Team)
-//===== Current Version: =====================================
-//= 20140616
-//===== Description: =========================================
-//= Global configurations found in conf/global/
-//============================================================
-
-- What are global configurations?
-
-Global configurations are configurations that can be shared between servers,
-but can also be set independently in each server.
-
-- How do they work?
-
-They work by using an include system that is available with libconfig:
-
- "A configuration file may "include" the contents of another file using an
- include directive. This directive has the effect of inlining the contents of
- the named file at the point of inclusion.
-
- An include directive must appear on its own line in the input. It has the
- form:
-
- @include "filename"
-
- Any backslashes or double quotes in the filename must be escaped as '\\' and
- '\"', respectively."
- From libconfig's documentation
-
-So each file that is included is actually inside each one of the main
-configuration files and thus a change in the first will be a change in the
-latter.
-Note: the @include directive is read by the server executable, so any path
-should be from were it is and NOT from where the main configuration file is!
-
-- How do I stop using global configurations?
-
-To stop using global configurations is very simple, all you have to do is copy
-the contents that are inside the global configuration file and put them
-_exactly_ where the include directive were in the main configuration file.
-
-E.g.
- Find in any file:
- @include "conf/global/sql_connection.conf"
- Replace it with:
- sql_connection: {
- // [INTER] You can specify the codepage to use in your mySQL tables here.
- // (Note that this feature requires MySQL 4.1+)
- //default_codepage: ""
-
- // [LOGIN] Is `userid` in account_db case sensitive?
- //case_sensitive: false
-
- // For IPs, ideally under linux, you want to use localhost instead of 127.0.0.1
- // Under windows, you want to use 127.0.0.1. If you see a message like
- // "Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)"
- // and you have localhost, switch it to 127.0.0.1
- db_hostname: "127.0.0.1"
- db_port: 3306
- db_username: "ragnarok"
- db_password: "ragnarok"
- db_database: "ragnarok"
- //codepage:""
- }
- If the main configuration file belongs to the map server, for instance, you
- don't need to include default_codepage and case_sensitive.
diff --git a/doc/item_bonus.md b/doc/item_bonus.md
new file mode 100644
index 000000000..b9fc17ee4
--- /dev/null
+++ b/doc/item_bonus.md
@@ -0,0 +1,436 @@
+# Hercules Item Bonuses List
+
+<!--
+# Copyright
+> This file is part of Hercules.
+> http://herc.ws - http://github.com/HerculesWS/Hercules
+>
+> Copyright (C) 2012-2018 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.
+>
+> This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+> See the GNU General Public License for more details.
+>
+> You should have received a copy of the GNU General Public License along with this program.
+> If not, see <http://www.gnu.org/licenses/>.
+-->
+
+## Description
+List of script instructions used in item bonuses, mainly `bonus`/`bonus2`/`bonus3`/`bonus4`/`bonus5` arguments and etc.
+
+
+## Constants
+This table contains all available constants referenced in the `bonus` commands.
+
+Race (`r`) | Status effect (`eff`) | Element (`e`) | Monster Race (`mr`) | Size (`s`)
+:----------------- | :-------------------- | :------------- | :------------------ | :-----------
+RC_Formless | Eff_Stone | Ele_Neutral | RC2_Goblin | Size_Small
+RC_Undead | Eff_Freeze | Ele_Water | RC2_Kobold | Size_Medium
+RC_Brute | Eff_Stun | Ele_Earth | RC2_Orc | Size_Large
+RC_Plant | Eff_Sleep | Ele_Fire | RC2_Golem |
+RC_Insect | Eff_Poison | Ele_Wind | RC2_Guardian |
+RC_Fish | Eff_Curse | Ele_Poison | RC2_Ninja |
+RC_Demon | Eff_Silence | Ele_Holy | RC2_Scaraba |
+RC_DemiHuman | Eff_Confusion | Ele_Dark | RC2_Turtle |
+RC_Angel | Eff_Blind | Ele_Ghost | |
+RC_Dragon | Eff_Bleeding | Ele_Undead | |
+RC_Player | Eff_DPoison | Ele_All | |
+RC_Boss | Eff_Fear | | |
+RC_NonBoss | Eff_Cold | | |
+RC_NonDemiHuman | Eff_Burning | | |
+RC_NonPlayer | Eff_Deepsleep | | |
+RC_DemiPlayer | | | |
+RC_NonDemiPlayer | | | |
+RC_All | | | |
+
+
+### Trigger criteria (`bf`)
+ Type 1 | Description
+:----------------- | :------------------------------
+`BF_WEAPON` | Trigger on weapon skills
+`BF_MAGIC` | Trigger on magic skills
+`BF_MISC` | Trigger on misc skills
+
+(Default: `BF_WEAPON`)
+
+ Type 2 | Description
+:----------------- | :------------------------------
+`BF_SHORT` | Trigger on melee attacks
+`BF_LONG` | Trigger on ranged attacks
+
+(Default: `BF_SHORT`+`BF_LONG`)
+
+ Type 3 | Description
+:----------------- | :------------------------------
+`BF_NORMAL` | Trigger on normal attacks
+`BF_SKILL` | Trigger on skills
+
+(Default: `BF_SKILL` if type is `BF_MISC` or `BF_MAGIC`, `BF_NORMAL` if type is `BF_WEAPON`)
+
+
+### Attack Trigger Criteria (`abf`)
+ Type 1 | Description
+:----------------- | :------------------------------
+`ATF_SELF` | Trigger on self
+`ATF_TARGET` | Trigger on target
+
+(Default: `ATF_TARGET`)
+
+ Type 2 | Description
+:----------------- | :------------------------------
+`ATF_SHORT` | Trigger on melee attack
+`ATF_LONG` | Trigger on ranged attack
+
+(Default: `ATF_SHORT`+`ATF_LONG`)
+
+ Type 3 | Description
+:----------------- | :------------------------------
+`ATF_WEAPON` | Trigger on Weapon Skills
+`ATF_MAGIC` | Trigger on magic attacks
+`ATF_MISC` | Trigger on misc skills
+`ATF_SKILL` | Trigger on skill attack
+
+(Default: `ATF_WEAPON`)
+
+ Type 4 | Description
+:----------------- | :------------------------------
+`ATF_SELF` | Trigger effect on self.
+`ATF_TARGET` | Trigger effect on target (default)
+`ATF_SHORT` | Trigger on melee attacks
+`ATF_LONG` | Trigger in ranged attacks (default: trigger on all attacks)
+
+(Default: `ATF_TARGET`)
+
+ Other values | Remarks
+:----------------- | :------------------------------
+Skill (`sk`) | see `db/(pre-)re/skill_db.txt` (NOTE: Both skill IDs and names, with and without quotes, are supported.)
+Monster id (`mid`) | see `db/(pre-)re/mob_db.txt`
+Item id (`id`) | see `db/(pre-)re/item_db.conf`
+Item chain (`ic`) | see `db/(pre-)re/item_chain.conf` (Only Constants)
+Item group (`ig`) | see `db/(pre-)re/item_group.conf` (ItemID)
+Weapon type (`w`) | see `doc/item_db.txt` -> View -> Weapons
+Class (`c`) | see `db/(pre-re)/mob_db.txt` -> For Players, `c` = JobID
+
+---------------
+
+
+## Bonuses
+---------------
+The format of bonuses listed in this file is as follows:
+ * 1. Basic Bonuses
+ * 2. Extended Bonuses
+ * 3. Group-specific Bonuses
+ * 4. Status-related Bonuses
+ * 5. AutoSpell Bonuses
+ * 6. Misc Bonuses
+
+
+---------------
+
+### 1. Basic Bonuses
+
+Base Stats | Description
+:-------------------------------- | :-------------------------
+bonus bStr,`n`; | STR + `n`
+bonus bAgi,`n`; | AGI + `n`
+bonus bVit,`n`; | VIT + `n`
+bonus bInt,`n`; | INT + `n`
+bonus bDex,`n`; | DEX + `n`
+bonus bLuk,`n`; | LUK + `n`
+bonus bAgiVit,`n`; | AGI + `n`, VIT + `n`
+bonus bAgiDexStr,`n`; | STR + `n`, AGI + `n`, DEX + `n`
+bonus bAllStats,`n`; | STR + `n`, AGI + `n`, VIT + `n`, INT + `n`, DEX + `n`, LUK + `n`
+
+HP/SP | Description
+:-------------------------------- | :-------------------------
+bonus bMaxHP,`n`; | MaxHP + `n`
+bonus bMaxHPrate,`n`; | MaxHP + `n`%
+bonus bMaxSP,`n`; | MaxSP + `n`
+bonus bMaxSPrate,`n`; | MaxSP + `n`%
+
+Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bAtk,`n`; | ATK + `n`
+bonus bAtk2,`n`; | ATK2 + `n`
+bonus bAtkRate,`n`; | Attack Power + `n`%
+bonus bBaseAtk,`n`; | Basic Attack Power + `n`
+bonus bDef,`n`; | Equipment DEF + `n`
+bonus bDef2,`n`; | VIT based DEF + `n`
+bonus bDefRate,`n`; | Equipment DEF + `n`%
+bonus bDef2Rate,`n`; | VIT based DEF + `n`%
+
+Magic Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bMatk,`n`; | Magical attack power + `n`
+bonus bMatkRate,`n`; | Magical attack power + `n`%
+bonus bMdef,`n`; | Equipment MDEF + `n`
+bonus bMdef2,`n`; | INT based MDEF + `n`
+bonus bMdefRate,`n`; | Equipment MDEF + `n`%
+bonus bMdef2Rate,`n`; | INT based MDEF + `n`%
+
+Other Stats | Description
+:-------------------------------- | :-------------------------
+bonus bHit,`n`; | Hit + `n`
+bonus bHitRate,`n`; | Hit + `n`%
+bonus bCritical,`n`; | Critical + `n`
+bonus bCriticalRate,`n`; | Critical + `n`%
+bonus bFlee,`n`; | Flee + `n`
+bonus bFleeRate,`n`; | Flee + `n`%
+bonus bFlee2,`n`; | Perfect Dodge + `n`
+bonus bFlee2Rate,`n`; | Perfect Dodge + `n`%
+bonus bPerfectHitRate,`n`; | On-target impact attack probability `n`% (only the highest among all is applied)
+bonus bPerfectHitAddRate,`n`; | On-target impact attack probability + `n`%
+bonus bSpeedRate,`n`; | Moving speed + `n`% (only the highest among all is applied)
+bonus bSpeedAddRate,`n`; | Moving speed + `n`%
+bonus bAspd,`n`; | Attack speed + `n`
+bonus bAspdRate,`n`; | Attack speed + `n`%
+bonus bAtkRange,`n`; | Attack range + `n`
+bonus bAddMaxWeight,`n`; | MaxWeight + `n` (in units of 0.1)
+
+
+---------------
+
+### 2. Extended Bonuses
+
+HP | Description
+:-------------------------------- | :-------------------------
+bonus bHPrecovRate,`n`; | Natural HP recovery ratio + `n`%
+bonus2 bHPRegenRate,`n`,`t`; | Gain `n` HP every `t` milliseconds
+bonus2 bHPLossRate,`n`,`t`; | Lose `n` HP every `t` millisecond
+
+SP | Description
+:-------------------------------- | :-------------------------
+bonus bSPrecovRate,`n`; | Natural SP recovery ratio + `n`%
+bonus2 bSPRegenRate,`n`,`t`; | Gain `n` SP every `t` milliseconds
+bonus2 bSPLossRate,`n`,`t`; | Lose `n` SP every `t` milliseconds
+bonus bUseSPrate,`n`; | SP consumption + `n`%
+bonus2 bSkillUseSP,`sk`,`n`; | Reduces SP consumption of skill `sk` by n.
+bonus2 bSkillUseSPrate,`sk`,`n`; | Reduces SP consumption of skill `sk` by `n`%
+bonus bNoRegen,`x`; | Stops regeneration for `x` (`x`: 1=HP, 2=SP)
+
+Attack/Def | Description
+:-------------------------------- | :-------------------------
+bonus bNearAtkDef,`n`; | Adds `n`% damage reduction against melee physical attacks
+bonus bLongAtkDef,`n`; | Adds `n`% damage reduction against ranged physical attacks
+bonus bMagicAtkDef,`n`; | Adds `n`% damage reduction against magical attacks
+bonus bMiscAtkDef,`n`; | Adds `n`% damage reduction against MISC attacks (traps, falcon, ...)
+bonus bCriticalDef,`n`; | Decreases Chance of being hit by critical by `n`%
+bonus2 bSkillAtk,`sk`,`n`; | Increase damage of skill `sk` by `n`%
+bonus2 bWeaponAtk,`w`,`n`; | Adds `n` ATK when weapon of type `w` is equipped
+bonus2 bWeaponAtkRate,`w`,`n`; | Adds `n`% damage to weapon attacks when weapon of type `w` is equipped
+bonus bLongAtkRate,`n`; | Increases damage of ranged attacks by `n`%
+bonus bCritAtkRate,`n`; | Increase critical damage by +`n`%
+bonus bNoWeaponDamage,`n`; | Prevents from receiving `n`% physical damage
+bonus bNoMagicDamage,`n`; | Prevents from receiving `n`% magical effect (Attack, Healing, Support spells are all blocked)
+bonus bNoMiscDamage,`n`; | Adds `n`% reduction to received misc damage
+
+Heal | Description
+:-------------------------------- | :-------------------------
+bonus bHealPower,`n`; | Increase heal amount of all heal skills used by player on self by `n`%
+bonus bHealPower2,`n`; | Increase heal amount if you are healed by any skills of others by `n`%
+bonus2 bSkillHeal,`sk`,`n`; | Increase heal amount of skill `sk` by `n`%
+bonus2 bSkillHeal2,`sk`,`n`; | Increase heal amount if you are healed by skill `sk` by `n`%
+bonus bAddItemHealRate,`n`; | Increases HP recovered by `n`% for healing items.
+bonus2 bAddItemHealRate,`id`,`n`; | Increases HP recovered by `n`% for item `id`/`ig`
+
+Skill Cast | Description
+:---------------------------------- | :-------------------------
+bonus bCastrate,`n`; | Skill casting time rate + `n`%
+bonus2 bCastrate,`sk`,`n`; | Adjust casting time of skill `sk` by `n`%
+bonus bFixedCastrate,`n`; | Increases fixed cast time of all skills by `n`%
+bonus2 bFixedCastrate,`s`,`n`; | Increases fixed cast time of skill `sk` by `n`%
+bonus bFixedCast,`t`; | Increases fixed cast time of all skills by `t` milliseconds
+bonus2 bSkillFixedCast,`sk`,`t`; | Increases fixed cast time of skill `sk` by `t` milliseconds
+bonus bVariableCastrate,`n`; | Increases variable cast time of all skills by `n`%
+bonus2 bVariableCastrate,`sk`,`n`; | Increases variable cast time of skill `sk` by `n`%
+bonus bVariableCast,`t`; | Increases variable cast time of all skills by `t` milliseconds
+bonus2 bSkillVariableCast,`sk`,`t`; | Increases variable cast time of skill `sk` by `t` milliseconds
+bonus bNoCastCancel,`n`; | Prevents casting from being interrupted when hit (does not work in GvG | `n` is meaningless)
+bonus bNoCastCancel2,`n`; | Prevents casting from being interrupted when hit (works even in GvG | `n` is meaningless)
+bonus bDelayrate,`n`; | Increases skill delay by `n`%
+bonus2 bSkillCooldown,`sk`,`t`; | Increases cooldown of skill `sk` by `t` milliseconds
+
+
+---------------
+
+### 3. Group-specific Bonuses
+
+Damage Modifiers | Description
+:----------------------------------- | :-------------------------
+bonus2 bAddSize,`s`,`n`; | +n% Physical damage against size `s`
+bonus2 bMagicAddSize,`s`,`n`; | +n% Magical damage against size `s`
+bonus2 bSubSize,`s`,`n`; | +n% Damage reduction against size `s`
+bonus2 bAddRaceTolerance,`r`,`n`; | +n% tolerance against race `r` (Renewal Only)
+bonus2 bAddRace,`r`,`n`; | +n% Physical damage against race `r`
+bonus2 bMagicAddRace,`n`,`x`; | +n% Magical damage against race `r`
+bonus2 bSubRace,`r`,`n`; | +n% Damage reduction against race `r`
+bonus2 bAddRace2,`mr`,`n`; | +n% Damage Against monster race `mr`
+bonus2 bSubRace2,`mr`,`n`; | +n% Damage reduction against monster race `mr`
+bonus2 bAddEle,`e`,`n`; | +n% Physical damage against element `e`
+bonus2 bMagicAddEle,`e`,`n`; | +n% Magical damage against element `e`
+bonus2 bMagicAtkEle,`e`,`n`; | Increases damage of element `e` magic by `n`%
+bonus3 bAddEle,`e`,`n`,`bf`; | +n% physical damage against element `e`
+bonus2 bSubEle,`e`,`n`; | +n% Damage reduction against element `e`
+bonus3 bSubEle,`e`,`n`,`bf`; | +n% Damage reduction against element `e`.
+bonus2 bAddDamageClass,`c`,`x`; | +n% extra physical damage against monsters of class `c`
+bonus2 bAddMagicDamageClass,`c`,`x`; | +n% extra magical damage against monsters of class `c`
+bonus2 bAddDefClass,`c`,`x`; | +n% physical damage reduction against monsters of class `c`
+bonus2 bAddMDefClass,`c`,`x`; | +n% magical damage reduction against monsters of class `c`
+bonus2 bCriticalAddRace,`r`,`n`; | +`n` Critical Against race `r`
+
+Attack/Def | Description
+:------------------------------------- | :-------------------------
+bonus bAtkEle,`e`; | Gives the player's attacks element `e`
+bonus bDefEle,`e`; | Gives the player's defense element `e`
+bonus bDefRatioAtkEle,`e`; | Deals more damage to enemies of element `e` with higher defense
+bonus bDefRatioAtkRace,`r`; | Deals more damage to enemies of race `r` with higher defense
+bonus4 bSetDefRace,`r`,`n`,`t`,`y`; | Set DEF to `y` of an enemy of race `r` at `n`/100% for `t` milliseconds with normal attack
+bonus4 bSetMDefRace,`r`,`n`,`t`,`y`; | Set MDEF to `y` of an enemy of race `r` at `n`/100% for `t` milliseconds with normal attack
+
+Ignore Def | Description
+:-------------------------------- | :-------------------------
+bonus bIgnoreDefRace,`r`; | Disregard DEF against enemies of race `r`
+bonus bIgnoreMDefRace,`r`; | Disregard MDEF against enemies of race `r`
+bonus bIgnoreDefEle,`e`; | Disregard DEF against enemies of element `e`
+bonus bIgnoreMDefEle,`e`; | Disregard MDEF against enemies of element `e`
+bonus2 bIgnoreDefRate,`r`,`n`; | Disregard `n`% of the target's DEF if the target belongs to race `r`
+bonus2 bIgnoreMdefRate,`r`,`n`; | Disregard `n`% of the target's MDEF if the target belongs to race `r`
+bonus bIgnoreMdefRate,`n`; | Disregard `n`% of the target's MDEF
+
+Experience | Description
+:-------------------------------- | :-------------------------
+bonus2 bExpAddRace,`r`,`n`; | +n% Experience from enemies of race `r`
+
+
+---------------
+
+### 4. Status-related Bonuses
+
+Status-related Bonuses | Description
+:------------------------------------------- | :-------------------------
+bonus2 bResEff,`e`,`n`; | Adds a `n`/100% tolerance to effect `e`
+bonus2 bAddEff,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking
+bonus2 bAddEff2,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` on self when attacking.
+bonus3 bAddEff,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking for target abf
+bonus4 bAddEff,`eff`,`n`,`abf`,`t`; | Adds a `n`/100% chance to cause effect `eff` to the target when attacking for target `abf` for `t` milliseconds <br/> (Note:The effect can't be avoided nor its duration reduced. Duration: 0-65535)
+bonus3 bAddEffOnSkill,`sk`,`eff`,`n`; | Adds a `n`/100% chance to cause effect `eff` on enemy when using skill `sk`
+bonus4 bAddEffOnSkill,`sk`,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` when using skill `sk`
+bonus2 bAddEffWhenHit,`eff`,`n`; | `n`/100% chance to cause effect `eff` to the enemy when being hit by physical damage
+bonus3 bAddEffWhenHit,`eff`,`n`,`abf`; | Adds a `n`/100% chance to cause effect `eff` to the enemy when being hit by physical damage
+bonus2 bWeaponComaRace,`r`,`n`; | Adds a `n`/100% chance to cause Coma when attacking a monster of race `r` with a weapon attack
+bonus2 bWeaponComaEle,`e`,`n`; | Adds a `n`/100% chance to cause Coma when attacking a monster of element `e` with weapon attack
+
+
+---------------
+
+### 5. AutoSpell Bonuses
+
+NOTES:
+ - For all AutoSpell bonuses, target must be within the spell's range to go off.
+ - By default, AutoSpell skills are casted on target unless it is a self or support skill (inf = 4/16).
+
+AutoSpell Bonuses | Description
+:------------------------------------------------- | :-------------------------
+bonus4 bAutoSpellOnSkill,`sk`,`x`,`y`,`n`; | Adds a `n`/10% chance to autospell skill `x` at level `y` when using skill `sk`
+bonus5 bAutoSpellOnSkill,`sk`,`x`,`y`,`n`,`i`; | Adds a `n`/10% chance to autospell skill `x` at level `y` when using skill `sk` <br/> i: <br/> Flags (bitfield)<br/> &1: Forces the skill to be casted on self, rather than on the target of skill `sk`<br/> &2: Random skill level between 1 and l is chosen.
+bonus4 bAutoSpell,`sk`,`y`,`n`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when attacking
+bonus5 bAutoSpell,`sk`,`y`,`n`,`bf`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when attacking
+bonus4 bAutoSpellWhenHit,`sk`,`y`,`n`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when being hit by a direct attack
+bonus5 bAutoSpellWhenHit,`sk`,`y`,`n`,`bf`,`i`; | `n`/10% chance to cast skill `sk` of level `y` when being hit by a direct attack <br/>i: <br/>0 = cast on self <br/>1 = cast on enemy, not on self <br/>2 = use random skill lv in [1..y] <br/>3 = 1+2 (random lv on enemy)
+bonus3 bAutoSpellWhenHit,`sk`,`x`,`n`; | `n`/10% chance to cast skill `sk` of level `x` on attacker when being hit by a direct attack
+bonus3 bAutoSpell,`sk`,`x`,`n`; | Auto Spell casting on attack of spell `sk` at level `x` with `n`/10% chance
+
+
+---------------
+
+### 6. Misc Bonuses
+
+HP/SP Drain | Description
+:------------------------------------- | :-------------------------
+bonus bHPDrainValue,`n`; | Heals +`n` HP with weapon attack.
+bonus2 bHPDrainValue,`n`,`x`; | Heals +`n` HP with weapon attack. When `x` is non-zero, the HP is drained instead.
+bonus2 bHPDrainRate,`n`,`x`; | `n`/10% probability to drain `x`% HP when attacking
+bonus bSPDrainValue,`n`; | When hitting a monster by physical attack, you gain `n` SP
+bonus2 bSPDrainRate,`n`,`x`; | `n`/10% probability to drain `x`% SP when attacking
+bonus2 bSPDrainValue,`n`,`x`; | When hitting a monster by physical attack <br/> x: <br/> 0: Gain `n` SP <br/> 1: drain `n` SP from target
+bonus3 bSPDrainRate,`n`,`x`,`y`; | When attacking there is a `n`/10% chance to either gain SP equivalent to `x`% of damage dealt, OR drain the amount of sp from the enemy. <br/> y: <br/> 0: Gain SP <br/> 1: Drain SP from target
+bonus2 bHPDrainValueRace,`r`,`n`; | Heals +`n` HP when attacking a monster of race `r` with weapon attack.
+bonus2 bSPDrainValueRace,`r`,`n`; | Heals +`n` SP when attacking a monster of race `r` with weapon attack.
+bonus3 bHPDrainRateRace,`r`,`n`,`x`; | Adds a `n`/10% chance to receive `x`% of damage dealt as HP from a monster of race `r` with weapon attack.
+bonus3 bSPDrainRateRace,`r`,`n`,`x`; | Adds a `n`/10% chance to receive `x`% of damage dealt as SP from a monster of race `r` with weapon attack.
+
+HP/SP Vanish | Description
+:------------------------------------- | :-------------------------
+bonus2 bHPVanishRate,`n`,`x`; | Add the (`n`/10)% chance of decreasing enemy HP amount by `x`% when attacking
+bonus2 bSPVanishRate,`n`,`x`; | Add the (`n`/10)% chance of decreasing enemy SP amount by `x`% when attacking
+bonus3 bHPVanishRate,`n`,`x`,`bf`; | Add the (`n`/10)% chance of decreasing enemy HP amount by `x`% when attacking for criteria `bf`
+bonus3 bSPVanishRate,`n`,`x`,`bf`; | Add the (`n`/10)% chance of decreasing enemy SP amount by `x`% when attacking for criteria `bf`
+
+HP/SP Gain | Description
+:------------------------------------- | :-------------------------
+bonus bHPGainValue,`n`; | When killing a monster by physical attack, you gain `n` HP
+bonus bSPGainValue,`n`; | When killing a monster by physical attack, you gain `n` SP
+bonus bMagicHPGainValue,`n`; | Gains +`n` HP when killing an enemy with magic attack
+bonus bMagicSPGainValue,`n`; | Gains +`n` SP when killing an enemy with magic attack
+bonus2 bHPGainRaceAttack,`r`,`n`; | Heals `n` HP when attacking race `r` on every hit
+bonus2 bSPGainRaceAttack,`r`,`n`; | Heals `n` SP when attacking race `r` on every hit
+bonus2 bSPGainRace,`r`,`n`; | When killing a monster of race `r` by physical attack gain `n` SP
+
+Damage return | Description
+:------------------------------------- | :-------------------------
+bonus bMagicDamageReturn,`n`; | Adds a `n`% chance to reflect targetted magic spells back to the enemy that caused it
+bonus bShortWeaponDamageReturn,`n`; | Reflects `n`% of received melee damage back to the enemy that caused it
+bonus bLongWeaponDamageReturn,`n`; | Reflects `n`% of received ranged damage back to the enemy that caused it
+
+NOTE:
+ - `n` is meaningless if not mentioned.
+
+Strip/Break equipment | Description
+:--------------------------------------- | :-------------------------
+bonus bUnstripable,`n`; | Equipment cannot be taken off via strip skills
+bonus bUnstripableWeapon,`n`; | Weapon cannot be taken off via Strip skills
+bonus bUnstripableArmor,`n`; | Armor cannot be taken off via Strip skills
+bonus bUnstripableHelm,`n`; | Helm cannot be taken off via Strip skills
+bonus bUnstripableShield,`n`; | Shield cannot be taken off via Strip skills
+bonus bUnbreakable,`n`; | Reduces the break chance of all equipped equipment by `n`%.
+bonus bUnbreakableGarment,`n`; | Garment cannot be damaged/broken by any means
+bonus bUnbreakableWeapon,`n`; | Weapon cannot be damaged/broken by any means
+bonus bUnbreakableArmor,`n`; | Armor cannot be damaged/broken by any means
+bonus bUnbreakableHelm,`n`; | Helm cannot be damaged/broken by any means
+bonus bUnbreakableShield,`n`; | Shield cannot be damaged/broken by any means
+bonus bUnbreakableShoes,`n`; | Shoes cannot be damaged/broken by any means
+bonus bBreakWeaponRate,`n`; | Adds a `n`/100% chance to break enemy's weapon while attacking (Stackable)
+bonus bBreakArmorRate,`n`; | Adds a `n`/100% chance to break enemy's armor while attacking (Stackable)
+
+NOTE:
+ - `n` is meaningless if not mentioned.
+
+Monster Related | Description
+:----------------------------------------- | :-------------------------
+bonus3 bAddClassDropItem,`id`,`c`,`n`; | Adds a `n`/100% chance of dropping item id when killing monster mid
+bonus2 bAddMonsterDropItem,`id`,`n`; | Adds a `n`/100% chance for item id to be dropped, when killing any monster.
+bonus3 bAddMonsterDropItem,`id`,`r`,`n`; | Adds a `n`/100% chance for item id to be dropped, when killing any monster of race `r`. <br/> If `n` is negative value, then it's a part of formula <br/> `chance = -y*(killed_mob_level/10)+1`
+bonus bAddMonsterDropChainItem,`ic`; | Able to get Item of chain `ic` when you kill a monster
+bonus2 bAddMonsterDropChainItem,`ic`,`r`; | Able to get item of chain `ic` when you kill a monster of race `r`
+bonus2 bGetZenyNum,`x`,`n`; | When killing a monster, there is a `n`% chance of gaining 1~x zeny (only the highest among all is applied).
+bonus2 bAddGetZenyNum,`x`,`n`; | When killing a monster, there is a `n`% chance of gaining 1~x zeny (Stackable) <br/> x: <br/> < 0: Max Zeny gain is `(-x*monster_level)`
+
+Misc effects | Description
+:------------------------------------- | :-------------------------
+skill i,`n`; | Gives skill #i at level n
+bonus bDoubleRate,`n`; | Double Attack probability +n% (works with all weapons | only the highest among all is applied)
+bonus bDoubleAddRate,`n`; | Double Attack probability +n% (works with all weapons)
+bonus bSplashRange,`n`; | Splash attack radius +`n` (highest is applied)
+bonus bSplashAddRange,`n`; | Splash attack radius + `n` (e.g. `n`=1 makes a `3*3` cells area, `n`=2 a `5*5` area, etc) <br/> `n`: <br/> 1: 3*3 Area <br/> 2: 5*5 Area <br/> ...
+bonus bClassChange,`n`; | Gives a `n`/100% chance to change the attacked monster's class with normal attack.
+bonus bAddStealRate,`n`; | `n`/100% increase to Steal skill success chance
+bonus bRestartFullRecover,`n`; | When reviving, HP and SP are fully healed
+bonus bNoSizeFix,`n`; | The attack revision with the size of the monster is not received
+bonus bNoGemStone,`n`; | Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone)
+bonus bIntravision,`n`; | Always see Hiding and Cloaking players/mobs <br/> `n`: is meaningless
+bonus2 bAddSkillBlow,`sk`,`n`; | Knockbacks the target by `n` cells when using skill `sk`
+bonus bNoKnockback,`n`; | Character is no longer knocked back by enemy skills with such effect (`n` is meaningless)
+bonus bPerfectHide,`n`; | Hidden/cloaked character is no longer detected by monsters with 'detector' mode (`n` is meaningless).
+
diff --git a/doc/item_bonus.txt b/doc/item_bonus.txt
deleted file mode 100644
index dd176d919..000000000
--- a/doc/item_bonus.txt
+++ /dev/null
@@ -1,444 +0,0 @@
-//===== Hercules Documentation ===============================
-//= Hercules Item Bonuses List
-//===== By: ==================================================
-//= Hercules Dev Team
-//===== Current Version: =====================================
-//= 20150624
-//===== Description: =========================================
-//= List of script instructions used in item bonuses,
-//= mainly bonus/bonus2/bonus3/bonus4/bonus5 arguments.
-//============================================================
-
-Constants
----------
-This list contains all available constants referenced in the 'bonus' commands.
-
-* Status effect (eff)
- Eff_Stone, Eff_Freeze, Eff_Stun, Eff_Sleep, Eff_Poison, Eff_Curse, Eff_Silence,
- Eff_Confusion, Eff_Blind, Eff_Bleeding, Eff_DPoison, Eff_Fear, Eff_Cold,
- Eff_Burning, Eff_Deepsleep
-
-* Element (e)
- Ele_Neutral, Ele_Water, Ele_Earth, Ele_Fire, Ele_Wind, Ele_Poison,
- Ele_Holy, Ele_Dark, Ele_Ghost, Ele_Undead, Ele_All
-
-* Race (r)
- RC_Formless, RC_Undead, RC_Brute, RC_Plant, RC_Insect, RC_Fish,
- RC_Demon, RC_DemiHuman, RC_Angel, RC_Dragon, RC_Player, RC_Boss,
- RC_NonBoss, RC_NonDemiHuman, RC_NonPlayer, RC_DemiPlayer,
- RC_NonDemiPlayer, RC_All
-
-* Monster Race (mr)
- RC2_Goblin, RC2_Kobold, RC2_Orc, RC2_Golem, RC2_Guardian, RC2_Ninja,
- RC2_Scaraba, RC2_Turtle
-
-* Size (s)
- Size_Small, Size_Medium, Size_Large
-
-* Trigger criteria (bf)
- BF_WEAPON: Trigger on weapon skills
- BF_MAGIC: Trigger on magic skills
- BF_MISC: Trigger on misc skills
- (Default: BF_WEAPON)
-
- BF_SHORT: Trigger on melee attacks
- BF_LONG: Trigger on ranged attacks
- (Default: BF_SHORT+BF_LONG)
-
- BF_NORMAL: Trigger on normal attacks
- BF_SKILL: Trigger on skills
- (Default: BF_SKILL if type is BF_MISC or BF_MAGIC, BF_NORMAL if type is BF_WEAPON)
-
-* Attack Trigger Criteria (abf)
- ATF_SELF: Trigger on self
- ATF_TARGET: Trigger on target
- (Default: ATF_TARGET)
-
- ATF_SHORT: Trigger on melee attack
- ATF_LONG: Trigger on ranged attack
- (Default: ATF_SHORT+ATF_LONG)
-
- ATF_WEAPON: Trigger on Weapon Skills
- ATF_MAGIC: Trigger on magic attacks
- ATF_MISC: Trigger on misc skills
- ATF_SKILL: Trigger on skill attack
- (Default: ATF_WEAPON)
-
-ATF_SELF: Trigger effect on self.
- ATF_TARGET: Trigger effect on target (default)
- ATF_SHORT: Trigger on melee attacks
- ATF_LONG: Trigger in ranged attacks (default: trigger on all attacks)
-* Other values:
- Skill (sk): see 'db/(pre-)re/skill_db.txt' (NOTE: Both skill IDs and names, with and without quotes, are supported.)
- Monster id (mid): see 'db/(pre-)re/mob_db.txt'
- Item id (id): see 'db/(pre-)re/item_db.conf'
- Item chain (ic): see 'db/(pre-)re/item_chain.conf' (Only Constants)
- Item group (ig): see 'db/(pre-)re/item_group.conf' (ItemID)
- Weapon type (w): see 'doc/item_db.txt' -> View -> Weapons
- Class (c): see 'db/(pre-re)/mob_db.txt' -> For Players, c = JobID
-
-Bonuses
--------
-The format of bonuses listed in this file is as follows:
- 1. Basic Bonuses
- 2. Extended Bonuses
- 3. Group-specific Bonuses
- 4. Status-related Bonuses
- 5. AutoSpell Bonuses
- 6. Misc Bonuses
-
-====================
-| 1. Basic Bonuses |
-====================
-
-Base Stats
-----------
-bonus bStr,n; STR + n
-bonus bAgi,n; AGI + n
-bonus bVit,n; VIT + n
-bonus bInt,n; INT + n
-bonus bDex,n; DEX + n
-bonus bLuk,n; LUK + n
-bonus bAgiVit,n; AGI + n, VIT + n
-bonus bAgiDexStr,n; STR + n, AGI + n, DEX + n
-bonus bAllStats,n; STR + n, AGI + n, VIT + n, INT + n, DEX + n, LUK + n
-
-HP/SP
------
-bonus bMaxHP,n; MaxHP + n
-bonus bMaxHPrate,n; MaxHP + n%
-bonus bMaxSP,n; MaxSP + n
-bonus bMaxSPrate,n; MaxSP + n%
-
-Attack/Def
-----------
-bonus bAtk,n; ATK + n
-bonus bAtk2,n; ATK2 + n
-bonus bAtkRate,n; Attack Power + n%
-bonus bBaseAtk,n; Basic Attack Power + n
-bonus bDef,n; Equipment DEF + n
-bonus bDef2,n; VIT based DEF + n
-bonus bDefRate,n; Equipment DEF + n%
-bonus bDef2Rate,n; VIT based DEF + n%
-
-Magic Attack/Def
-----------------
-bonus bMatk,n; Magical attack power + n
-bonus bMatkRate,n; Magical attack power + n%
-bonus bMdef,n; Equipment MDEF + n
-bonus bMdef2,n; INT based MDEF + n
-bonus bMdefRate,n; Equipment MDEF + n%
-bonus bMdef2Rate,n; INT based MDEF + n%
-
-Other Stats
------------
-bonus bHit,n; Hit + n
-bonus bHitRate,n; Hit + n%
-bonus bCritical,n; Critical + n
-bonus bCriticalRate,n; Critical + n%
-bonus bFlee,n; Flee + n
-bonus bFleeRate,n; Flee + n%
-bonus bFlee2,n; Perfect Dodge + n
-bonus bFlee2Rate,n; Perfect Dodge + n%
-bonus bPerfectHitRate,n; On-target impact attack probability n% (only the highest among all is applied)
-bonus bPerfectHitAddRate,n; On-target impact attack probability + n%
-bonus bSpeedRate,n; Moving speed + n% (only the highest among all is applied)
-bonus bSpeedAddRate,n; Moving speed + n%
-bonus bAspd,n; Attack speed + n
-bonus bAspdRate,n; Attack speed + n%
-bonus bAtkRange,n; Attack range + n
-bonus bAddMaxWeight,n; MaxWeight + n (in units of 0.1)
-
-=======================
-| 2. Extended Bonuses |
-=======================
-
-HP
---
-bonus bHPrecovRate,n; Natural HP recovery ratio + n%
-bonus2 bHPRegenRate,n,t; Gain n HP every t milliseconds
-bonus2 bHPLossRate,n,t; Lose n HP every t millisecond
-
-SP
---
-bonus bSPrecovRate,n; Natural SP recovery ratio + n%
-bonus2 bSPRegenRate,n,t; Gain n SP every t milliseconds
-bonus2 bSPLossRate,n,t; Lose n SP every t milliseconds
-bonus bUseSPrate,n; SP consumption + n%
-bonus2 bSkillUseSP,sk,n; Reduces SP consumption of skill sk by n.
-bonus2 bSkillUseSPrate,sk,n; Reduces SP consumption of skill sk by n%
-bonus bNoRegen,x; Stops regeneration for x (x: 1=HP, 2=SP)
-
-Attack/Def
-----------
-bonus bNearAtkDef,n; Adds n% damage reduction against melee physical attacks
-bonus bLongAtkDef,n; Adds n% damage reduction against ranged physical attacks
-bonus bMagicAtkDef,n; Adds n% damage reduction against magical attacks
-bonus bMiscAtkDef,n; Adds n% damage reduction against MISC attacks (traps, falcon, ...)
-bonus bCriticalDef,n; Decreases Chance of being hit by critical by n%
-
-bonus2 bSkillAtk,sk,n; Increase damage of skill sk by n%
-bonus2 bWeaponAtk,w,n; Adds n ATK when weapon of type w is equipped
-bonus2 bWeaponAtkRate,w,n; Adds n% damage to weapon attacks when weapon of type w is equipped
-bonus bLongAtkRate,n; Increases damage of ranged attacks by n%
-bonus bCritAtkRate,n; Increase critical damage by +n%
-
-bonus bNoWeaponDamage,n; Prevents from receiving n% physical damage
-bonus bNoMagicDamage,n; Prevents from receiving n% magical effect (Attack, Healing, Support spells are all blocked)
-bonus bNoMiscDamage,n; Adds n% reduction to received misc damage
-
-Heal
-----
-bonus bHealPower,n; Increase heal amount of all heal skills used by player on self by n%
-bonus bHealPower2,n; Increase heal amount if you are healed by any skills of others by n%
-
-bonus2 bSkillHeal,sk,n; Increase heal amount of skill sk by n%
-bonus2 bSkillHeal2,sk,n; Increase heal amount if you are healed by skill sk by n%
-
-bonus bAddItemHealRate,n; Increases HP recovered by n% for healing items.
-bonus2 bAddItemHealRate,id,n; Increases HP recovered by n% for item id/ig
-
-Skill Cast
-----------
-bonus bCastrate,n; Skill casting time rate + n%
-bonus2 bCastrate,sk,n; Adjust casting time of skill sk by n%
-
-bonus bFixedCastrate,n; Increases fixed cast time of all skills by n%
-bonus2 bFixedCastrate,s,n; Increases fixed cast time of skill sk by n%
-bonus bFixedCast,t; Increases fixed cast time of all skills by t milliseconds
-bonus2 bSkillFixedCast,sk,t; Increases fixed cast time of skill sk by t milliseconds
-
-bonus bVariableCastrate,n; Increases variable cast time of all skills by n%
-bonus2 bVariableCastrate,sk,n; Increases variable cast time of skill sk by n%
-bonus bVariableCast,t; Increases variable cast time of all skills by t milliseconds
-bonus2 bSkillVariableCast,sk,t; Increases variable cast time of skill sk by t milliseconds
-
-bonus bNoCastCancel,n; Prevents casting from being interrupted when hit (does not work in GvG | n is meaningless)
-bonus bNoCastCancel2,n; Prevents casting from being interrupted when hit (works even in GvG | n is meaningless)
-
-bonus bDelayrate,n; Increases skill delay by n%
-bonus2 bSkillCooldown,sk,t; Increases cooldown of skill sk by t milliseconds
-
-=============================
-| 3. Group-specific Bonuses |
-=============================
-
-Damage Modifiers
-----------------
-bonus2 bAddSize,s,n; +n% Physical damage against size s
-bonus2 bMagicAddSize,s,n; +n% Magical damage against size s
-bonus2 bSubSize,s,n; +n% Damage reduction against size s
-
-bonus2 bAddRaceTolerance,r,n; +n% tolerance against race r (Renewal Only)
-
-bonus2 bAddRace,r,n; +n% Physical damage against race r
-bonus2 bMagicAddRace,n,x; +n% Magical damage against race r
-bonus2 bSubRace,r,n; +n% Damage reduction against race r
-
-bonus2 bAddRace2,mr,n; +n% Damage Against monster race mr
-bonus2 bSubRace2,mr,n; +n% Damage reduction against monster race mr
-
-bonus2 bAddEle,e,n; +n% Physical damage against element e
-bonus2 bMagicAddEle,e,n; +n% Magical damage against element e
-bonus2 bMagicAtkEle,e,n; Increases damage of element e magic by n%
-bonus3 bAddEle,e,n,bf; +n% physical damage against element e
-bonus2 bSubEle,e,n; +n% Damage reduction against element e
-bonus3 bSubEle,e,n,bf; +n% Damage reduction against element e.
-
-bonus2 bAddDamageClass,c,x; +n% extra physical damage against monsters of class c
-bonus2 bAddMagicDamageClass,c,x; +n% extra magical damage against monsters of class c
-bonus2 bAddDefClass,c,x; +n% physical damage reduction against monsters of class c
-bonus2 bAddMDefClass,c,x; +n% magical damage reduction against monsters of class c
-bonus2 bCriticalAddRace,r,n; +n Critical Against race r
-
-Attack/Def
-----------
-bonus bAtkEle,e; Gives the player's attacks element e
-bonus bDefEle,e; Gives the player's defense element e
-
-bonus bDefRatioAtkEle,e; Deals more damage to enemies of element e with higher defense
-bonus bDefRatioAtkRace,r; Deals more damage to enemies of race r with higher defense
-
-bonus4 bSetDefRace,r,n,t,y; Set DEF to y of an enemy of race r at n/100% for t milliseconds with normal attack
-bonus4 bSetMDefRace,r,n,t,y; Set MDEF to y of an enemy of race r at n/100% for t milliseconds with normal attack
-
-Ignore Def
-----------
-bonus bIgnoreDefRace,r; Disregard DEF against enemies of race r
-bonus bIgnoreMDefRace,r; Disregard MDEF against enemies of race r
-
-bonus bIgnoreDefEle,e; Disregard DEF against enemies of element e
-bonus bIgnoreMDefEle,e; Disregard MDEF against enemies of element e
-
-bonus2 bIgnoreDefRate,r,n; Disregard n% of the target's DEF if the target belongs to race r
-bonus2 bIgnoreMdefRate,r,n; Disregard n% of the target's MDEF if the target belongs to race r
-
-bonus bIgnoreMdefRate,n; Disregard n% of the target's MDEF
-
-Experience
-----------
-bonus2 bExpAddRace,r,n; +n% Experience from enemies of race r
-
-=============================
-| 4. Status-related Bonuses |
-=============================
-bonus2 bResEff,e,n; Adds a n/100% tolerance to effect e
-bonus2 bAddEff,eff,n; Adds a n/100% chance to cause effect eff to the target when attacking
-bonus2 bAddEff2,eff,n; Adds a n/100% chance to cause effect eff on self when attacking.
-bonus3 bAddEff,eff,n,abf; Adds a n/100% chance to cause effect eff to the target when attacking for target abf
-bonus4 bAddEff,eff,n,abf,t; Adds a n/100% chance to cause effect eff to the target when attacking for target abf for t milliseconds
- (Note:The effect can't be avoided nor its duration reduced. Duration: 0-65535)
-bonus3 bAddEffOnSkill,sk,eff,n; Adds a n/100% chance to cause effect eff on enemy when using skill sk
-bonus4 bAddEffOnSkill,sk,eff,n,abf; Adds a n/100% chance to cause effect eff when using skill sk
-
-bonus2 bAddEffWhenHit,eff,n; n/100% chance to cause effect eff to the enemy when being hit by physical damage
-bonus3 bAddEffWhenHit,eff,n,abf; Adds a n/100% chance to cause effect eff to the enemy when being hit by physical damage
-
-bonus2 bWeaponComaRace,r,n; Adds a n/100% chance to cause Coma when attacking a monster of race r with a weapon attack
-bonus2 bWeaponComaEle,e,n; Adds a n/100% chance to cause Coma when attacking a monster of element e with weapon attack
-
-========================
-| 5. AutoSpell Bonuses |
-========================
-NOTES:
- - For all AutoSpell bonuses, target must be within the spell's range to go off.
- - By default, AutoSpell skills are casted on target unless it is a self or support skill (inf = 4/16).
-
-bonus4 bAutoSpellOnSkill,sk,x,y,n; Adds a n/10% chance to autospell skill x at level y when using skill sk
-bonus5 bAutoSpellOnSkill,sk,x,y,n,i; Adds a n/10% chance to autospell skill x at level y when using skill sk
- i: Flags (bitfield)
- &1: Forces the skill to be casted on self, rather than on the target of skill sk
- &2: Random skill level between 1 and l is chosen.
-
-bonus4 bAutoSpell,sk,y,n,i; n/10% chance to cast skill sk of level y when attacking
-bonus5 bAutoSpell,sk,y,n,bf,i; n/10% chance to cast skill sk of level y when attacking
-bonus4 bAutoSpellWhenHit,sk,y,n,i; n/10% chance to cast skill sk of level y when being hit by a direct attack
-bonus5 bAutoSpellWhenHit,sk,y,n,bf,i; n/10% chance to cast skill sk of level y when being hit by a direct attack
- i:
- 0 = cast on self
- 1 = cast on enemy, not on self
- 2 = use random skill lv in [1..y]
- 3 = 1+2 (random lv on enemy)
-
-bonus3 bAutoSpellWhenHit,sk,x,n; n/10% chance to cast skill sk of level x on attacker when being hit by a direct attack
-bonus3 bAutoSpell,sk,x,n; Auto Spell casting on attack of spell sk at level x with n/10% chance
-
-===================
-| 6. Misc Bonuses |
-===================
-
-HP/SP Drain
------------
-bonus bHPDrainValue,n; Heals +n HP with weapon attack.
-bonus2 bHPDrainValue,n,x; Heals +n HP with weapon attack. When x is non-zero, the HP is drained instead.
-bonus2 bHPDrainRate,n,x; n/10% probability to drain x% HP when attacking
-
-bonus bSPDrainValue,n; When hitting a monster by physical attack, you gain n SP
-bonus2 bSPDrainRate,n,x; n/10% probability to drain x% SP when attacking
-bonus2 bSPDrainValue,n,x; When hitting a monster by physical attack
- x:
- 0: Gain n SP
- 1: drain n SP from target
-bonus3 bSPDrainRate,n,x,y; When attacking there is a n/10% chance to either gain SP equivalent to x% of damage dealt,
- OR drain the amount of sp from the enemy.
- y:
- 0: Gain SP
- 1: Drain SP from target
-
-bonus2 bHPDrainValueRace,r,n; Heals +n HP when attacking a monster of race r with weapon attack.
-bonus2 bSPDrainValueRace,r,n; Heals +n SP when attacking a monster of race r with weapon attack.
-
-bonus3 bHPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as HP from a monster of race r with weapon attack.
-bonus3 bSPDrainRateRace,r,n,x; Adds a n/10% chance to receive x% of damage dealt as SP from a monster of race r with weapon attack.
-
-HP/SP Vanish
-------------
-bonus2 bHPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy HP amount by x% when attacking
-bonus2 bSPVanishRate,n,x; Add the (n/10)% chance of decreasing enemy SP amount by x% when attacking
-
-bonus3 bHPVanishRate,n,x,bf; Add the (n/10)% chance of decreasing enemy HP amount by x% when attacking for criteria bf
-bonus3 bSPVanishRate,n,x,bf; Add the (n/10)% chance of decreasing enemy SP amount by x% when attacking for criteria bf
-
-HP/SP Gain
-----------
-bonus bHPGainValue,n; When killing a monster by physical attack, you gain n HP
-bonus bSPGainValue,n; When killing a monster by physical attack, you gain n SP
-
-bonus bMagicHPGainValue,n; Gains +n HP when killing an enemy with magic attack
-bonus bMagicSPGainValue,n; Gains +n SP when killing an enemy with magic attack
-
-bonus2 bHPGainRaceAttack,r,n; Heals n HP when attacking Race r on every hit
-bonus2 bSPGainRaceAttack,r,n; Heals n SP when attacking Race r on every hit
-
-bonus2 bSPGainRace,r,n; When killing a monster of race r by physical attack gain n SP
-
-Damage return
--------------
-bonus bMagicDamageReturn,n; Adds a n% chance to reflect targetted magic spells back to the enemy that caused it
-bonus bShortWeaponDamageReturn,n; Reflects n% of received melee damage back to the enemy that caused it
-bonus bLongWeaponDamageReturn,n; Reflects n% of received ranged damage back to the enemy that caused it
-
-Strip/Break equipment
----------------------
-NOTE:
- - n is meaningless if not mentioned.
-bonus bUnstripable,n; Equipment cannot be taken off via strip skills
-bonus bUnstripableWeapon,n; Weapon cannot be taken off via Strip skills
-bonus bUnstripableArmor,n; Armor cannot be taken off via Strip skills
-bonus bUnstripableHelm,n; Helm cannot be taken off via Strip skills
-bonus bUnstripableShield,n; Shield cannot be taken off via Strip skills
-
-bonus bUnbreakable,n; Reduces the break chance of all equipped equipment by n%.
-bonus bUnbreakableGarment,n; Garment cannot be damaged/broken by any means
-bonus bUnbreakableWeapon,n; Weapon cannot be damaged/broken by any means
-bonus bUnbreakableArmor,n; Armor cannot be damaged/broken by any means
-bonus bUnbreakableHelm,n; Helm cannot be damaged/broken by any means
-bonus bUnbreakableShield,n; Shield cannot be damaged/broken by any means
-bonus bUnbreakableShoes,n; Shoes cannot be damaged/broken by any means
-
-bonus bBreakWeaponRate,n; Adds a n/100% chance to break enemy's weapon while attacking (Stackable)
-bonus bBreakArmorRate,n; Adds a n/100% chance to break enemy's armor while attacking (Stackable)
-
-Monster Related
----------------
-bonus3 bAddClassDropItem,id,c,n; Adds a n/100% chance of dropping item id when killing monster mid
-
-bonus2 bAddMonsterDropItem,id,n; Adds a n/100% chance for item id to be dropped, when killing any monster.
-bonus3 bAddMonsterDropItem,id,r,n; Adds a n/100% chance for item id to be dropped, when killing any monster of race r.
- If 'n' is negative value, then it's a part of formula
- chance = -y*(killed_mob_level/10)+1
-
-bonus bAddMonsterDropChainItem,ic; Able to get Item of chain ic when you kill a monster
-bonus2 bAddMonsterDropChainItem,ic,r; Able to get item of chain ic when you kill a monster of race r
-
-bonus2 bGetZenyNum,x,n; When killing a monster, there is a n% chance of gaining 1~x zeny (only the highest among all is applied).
-bonus2 bAddGetZenyNum,x,n; When killing a monster, there is a n% chance of gaining 1~x zeny (Stackable)
- x:
- < 0: Max Zeny gain is (-x*monster_level)
-
-Misc effects
-------------
-skill i,n; Gives skill #i at level n
-
-bonus bDoubleRate,n; Double Attack probability +n% (works with all weapons | only the highest among all is applied)
-bonus bDoubleAddRate,n; Double Attack probability +n% (works with all weapons)
-
-bonus bSplashRange,n; Splash attack radius +n (highest is applied)
-bonus bSplashAddRange,n; Splash attack radius + n (e.g. n=1 makes a 3*3 cells area, n=2 a 5*5 area, etc)
- n:
- 1: 3*3 Area
- 2: 5*5 Area
- ...
-
-bonus bClassChange,n; Gives a n/100% chance to change the attacked monster's class with normal attack.
-bonus bAddStealRate,n; n/100% increase to Steal skill success chance
-bonus bRestartFullRecover,n; When reviving, HP and SP are fully healed
-bonus bNoSizeFix,n; The attack revision with the size of the monster is not received
-bonus bNoGemStone,n; Skills requiring Gemstones do no require them (Hocus Pocus will still require 1 Yellow Gemstone)
-bonus bIntravision,n; Always see Hiding and Cloaking players/mobs
- n: is meaningless
-
-bonus2 bAddSkillBlow,sk,n; Knockbacks the target by n cells when using skill sk
-bonus bNoKnockback,n; Character is no longer knocked back by enemy skills with such effect (n is meaningless)
-
-bonus bPerfectHide,n; Hidden/cloaked character is no longer detected by monsters with 'detector' mode (n is meaningless).
diff --git a/doc/sample/getiteminfo.txt b/doc/sample/getiteminfo.txt
index 57407c072..9d5121635 100644
--- a/doc/sample/getiteminfo.txt
+++ b/doc/sample/getiteminfo.txt
@@ -9,12 +9,12 @@
//============================================================
prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
- mes "Please enter an item ID.";
- input .@value;
+ mes("Please enter an item ID.");
+ input(.@value);
// This line uses an INTERNAL function of your client to show item name by its ID!
// ^nItemID^XXXX -> Item Name
- mes "Item ID: "+.@value+" ^nItemID^"+.@value;
+ mesf("Item ID: %d ^nItemID^%d", .@value, .@value);
mes("Current item info:");
mesf("Buy Price: %d", getiteminfo(.@value, ITEMINFO_BUYPRICE));
@@ -34,5 +34,8 @@ prontera,156,179,6 script test_getiteminfo 4_F_KAFRA1,{
mesf("View ID: %d", getiteminfo(.@value, ITEMINFO_VIEWID));
mesf("MATK: %d", getiteminfo(.@value, ITEMINFO_MATK));
mesf("View Sprite: %d", getiteminfo(.@value, ITEMINFO_VIEWSPRITE));
+
+ .@trade$ = callfunc("F_GetTradeRestriction", .@value);
+ mesf("Trade Restriction: %s", .@trade$);
close;
}
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index f3dd3b844..90d4d77cc 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -714,6 +714,8 @@ 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_MENU_OPTIONS - Maximum NPC menu options
+MAX_MENU_LENGTH - Maximum NPC menu string length
Send targets and status options are also hard-coded and can be found
in 'doc/constants.md'.
@@ -1600,21 +1602,24 @@ perfectly equivalent.
---------------------------------------
*select("<option>"{, "<option>", ...})
-*prompt("<option>"{, "<option>", ...})
This function is a handy replacement for 'menu' that doesn't use a complex
-label structure. It will return the number of menu option picked,
-starting with 1. Like 'menu', it will also set the variable @menu to
-contain the option the user picked.
+label structure. It will return the number of the menu option picked,
+starting with 1. If the player presses cancel, the script is terminated.
- if (select("Yes:No") == 1)
+ if (select("Yes", "No") == 1)
mes("You said yes, I know.");
And like 'menu', the selected option is consistent with grouped options
and empty options.
-'prompt' works almost the same as select, except that when a character
-clicks the Cancel button, this function will return 255 instead.
+---------------------------------------
+
+*prompt("<option>"{, "<option>", ...})
+
+This function behaves exactly like select(), but when a player presses cancel
+it returns MAX_MENU_OPTIONS and the script is not terminated. You almost always
+want to use select() rather than prompt().
---------------------------------------
@@ -3236,6 +3241,7 @@ Valid types are:
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)
Check sample in doc/sample/getiteminfo.txt
@@ -8595,6 +8601,18 @@ Example:
---------------------------------------
+*data_to_string(<data>)
+
+Returns a string representation of the given data, similar to the .toString()
+method in JavaScript.
+
+Example:
+
+ data_to_string(DATATYPE_VAR) // "DATATYPE_VAR"
+ data_to_string(.@foo) // ".@foo"
+
+---------------------------------------
+
*charisalpha("<string>", <position>)
This function will return true if the character number Position in the given
@@ -9426,6 +9444,7 @@ supported types: values
QINFO_HOMUN_LEVEL: min
QINFO_HOMUN_TYPE: homunculus_type (0 - regular, 1 - evolved, 2 - S)
QINFO_QUEST: quest_id, state // append to the quests list on each use
+ QINFO_MERCENARY_CLASS: mercenary_class
---------------------------------------
@@ -10196,3 +10215,25 @@ camera.
Works for 20160525 clients or newer.
---------------------------------------
+
+*achievement_progress(<ach_id>, <obj_idx>, <progress>, <incremental>{, <account_id>});
+
+Make the player progress in the specified achievement.
+aid - achievement ID
+obj_idx - achievement objective index.
+progress - objective progress towards goal.
+incremental - (boolean) true to add the progress towards the goal,
+ false to use the progress only as a comparand.
+account_id - (optional) AID to perform on (default to attached player).
+
+returns progress on success and false on failure
+
+---------------------------------------
+
+*itempreview(<index>)
+
+Update already opened preview window with item from
+ inventory with given index.
+Works for 20181017 RE and main clients or newer.
+
+---------------------------------------