diff options
Diffstat (limited to 'doc')
-rw-r--r-- | doc/constants.md | 511 | ||||
-rw-r--r-- | doc/global_configuration.md | 65 | ||||
-rw-r--r-- | doc/global_configuration.txt | 69 | ||||
-rw-r--r-- | doc/item_bonus.md | 436 | ||||
-rw-r--r-- | doc/item_bonus.txt | 444 | ||||
-rw-r--r-- | doc/sample/getiteminfo.txt | 9 | ||||
-rw-r--r-- | doc/script_commands.txt | 55 |
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 64468ed49..219c71205 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(). --------------------------------------- @@ -3239,6 +3244,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 @@ -8598,6 +8604,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 @@ -9429,6 +9447,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 --------------------------------------- @@ -10199,3 +10218,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. + +--------------------------------------- |