diff options
-rw-r--r-- | conf-tmpl/charcommand_athena.conf | 36 | ||||
-rw-r--r-- | db/item_db.txt | 3394 | ||||
-rw-r--r-- | db/skill_nocast_db.txt | 32 | ||||
-rw-r--r-- | doc/effect_list.txt | 720 | ||||
-rw-r--r-- | doc/miscnotes.txt | 1102 | ||||
-rw-r--r-- | npc/cities/louyang.txt | 128 | ||||
-rw-r--r-- | src/login_sql/char_int.c | 982 | ||||
-rw-r--r-- | src/login_sql/char_int.h | 4 | ||||
-rw-r--r-- | src/login_sql/login_int.c | 740 | ||||
-rw-r--r-- | src/login_sql/login_int.h | 2 | ||||
-rw-r--r-- | src/map/charcommand.c | 1406 | ||||
-rw-r--r-- | src/map/charcommand.h | 100 | ||||
-rw-r--r-- | src/webserver/Changelog.txt | 4 | ||||
-rw-r--r-- | src/webserver/Makefile | 64 | ||||
-rw-r--r-- | src/webserver/Makefile.win | 70 | ||||
-rw-r--r-- | src/webserver/WEBSER~1.layout | 48 | ||||
-rw-r--r-- | src/webserver/Webserver.dev | 194 | ||||
-rw-r--r-- | src/webserver/Webserver.layout | 76 | ||||
-rw-r--r-- | src/webserver/conf/webserver-athena.conf | 72 | ||||
-rw-r--r-- | src/webserver/main.c | 288 | ||||
-rw-r--r-- | src/webserver/webserver.c | 272 | ||||
-rw-r--r-- | src/webserver/webserver.h | 42 |
22 files changed, 4888 insertions, 4888 deletions
diff --git a/conf-tmpl/charcommand_athena.conf b/conf-tmpl/charcommand_athena.conf index dceae69c3..17329c997 100644 --- a/conf-tmpl/charcommand_athena.conf +++ b/conf-tmpl/charcommand_athena.conf @@ -1,18 +1,18 @@ -// Athena charcommand Configuration file.
-// Translated by Peter Kieser <pfak@telus.net>
-
-// Set here the symbol that you want to use for your commands
-// Only 1 character is get (default is '#'). You can set any character,
-// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
-// and '@' (Standard GM Commands)
-// With default character, all commands begin by a '#', example: #save SomePlayer
-command_symbol: #
-
-job: 60
-jobchange: 60
-petrename: 50
-petfriendly: 50
-stats: 40
-option: 60
-save: 60
-statsall: 40
+// Athena charcommand Configuration file. +// Translated by Peter Kieser <pfak@telus.net> + +// Set here the symbol that you want to use for your commands +// Only 1 character is get (default is '#'). You can set any character, +// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands) +// and '@' (Standard GM Commands) +// With default character, all commands begin by a '#', example: #save SomePlayer +command_symbol: # + +job: 60 +jobchange: 60 +petrename: 50 +petfriendly: 50 +stats: 40 +option: 60 +save: 60 +statsall: 40 diff --git a/db/item_db.txt b/db/item_db.txt index d67450a84..09ee0f183 100644 --- a/db/item_db.txt +++ b/db/item_db.txt @@ -1,1697 +1,1697 @@ -//ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Gender,Loc,wLV,eLV,View,{UseScript},{EquipScript}
-
-// Healing Items
-//=============================================================
-0,DEFAULT,Default,0,20,,10,,,,,0,2,0,0,,,{},{},,
-501,Red_Potion,Red Potion,0,50,0,70,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{}
-502,Orange_Potion,Orange Potion,0,200,0,100,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{}
-503,Yellow_Potion,Yellow Potion,0,550,0,130,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{}
-504,White_Potion,White Potion,0,1200,0,150,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{}
-505,Blue_Potion,Blue Potion,0,5000,0,150,,,,,10477567,2,,,,,{ itemheal 0,rand(40,59); },{}
-506,Green_Potion,Green Potion,0,40,0,70,,,,,10477567,2,,,,,{ sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; },{}
-507,Red_Herb,Red Herb,0,18,0,30,,,,,10477567,2,,,,,{ itemheal rand(18,27),0; },{}
-508,Yellow_Herb,Yellow Herb,0,40,0,50,,,,,10477567,2,,,,,{ itemheal rand(38,57),0; },{}
-509,White_Herb,White Herb,0,120,0,70,,,,,10477567,2,,,,,{ itemheal rand(75,114),0; },{}
-510,Blue_Herb,Blue Herb,0,60,0,70,,,,,10477567,2,,,,,{ itemheal 0,rand(15,29); },{}
-511,Green_Herb,Green Herb,0,10,0,30,,,,,10477567,2,,,,,{ sc_end SC_Poison; },{}
-512,mace,Apple,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(16,21),0; },{}
-513,Banana,Banana,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(17,20),0; },{}
-514,Grape,Grape,0,200,0,20,,,,,10477567,2,,,,,{ itemheal 0,rand(10,14); },{}
-515,Carrot,Carrot,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(18,19),0; },{}
-516,Sweet_Potato,Sweet Potato,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(15,22),0; },{}
-517,Meat,Meat,0,50,0,150,,,,,10477567,2,,,,,{ itemheal rand(70,99),0; },{}
-518,Honey,Honey,0,500,0,100,,,,,10477567,2,,,,,{ itemheal rand(70,99),rand(20,39); },{}
-519,Milk,Milk,0,25,0,30,,,,,10477567,2,,,,,{ itemheal rand(27,36),0; },{}
-520,Hinalle_Leaflet,Hinalle Leaflet,0,150,0,10,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{}
-521,Aloe_Leaflet,Aloe Leaflet,0,360,0,20,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{}
-522,Mastela_Fruit,Mastela Fruit,0,840,0,30,,,,,10477567,2,,,,,{ itemheal rand(400,599),0; },{}
-523,Holy_Water,Holy Water,0,20,0,30,,,,,10477567,2,,,,,{ sc_end SC_Curse; },{}
-525,Panacea,Panacea,0,500,0,100,,,,,10477567,2,,,,,{ sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; },{}
-526,Royal_Jelly,Royal Jelly,0,7000,0,150,,,,,10477567,2,,,,,{ itemheal rand(325,404),rand(40,59); sc_end SC_Posion; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; },{}
-528,Monster's_Feed,Monster Food,0,60,0,150,,,,,10477567,2,,,,,{ itemheal rand(72,107),0; },{}
-529,Candy,Candy,0,10,0,30,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{}
-530,Candy_Cane,Candy Cane,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{}
-531,Apple_Juice,Apple Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(25,34),0; },{}
-532,Banana_Juice,Banana Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(26,33),0; },{}
-533,Grape_Juice,Grape Juice,0,250,0,40,,,,,10477567,2,,,,,{ itemheal 0,rand(15,24); },{}
-534,Carrot_Juice,Carrot Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(27,32),0; },{}
-535,Pumkin,Pumpkin,0,15,0,20,,,,,10477567,2,,,,,{ itemheal 19,0; },{}
-536,Ice_Cream,Ice Cream,0,150,0,80,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{}
-537,Pet_Food,Pet Food,0,1000,0,10,,,,,10477567,2,,,,,{ itemheal rand(50,89),0; },{}
-538,Well-baked_Cookie,Well-baked Cookie,0,1000,0,30,,,,,10477567,2,,,,,{ itemheal rand(160,199),0; },{}
-539,Piece_of_Cake,Piece of Cake,0,3000,0,100,,,,,10477567,2,,,,,{ itemheal rand(270,329),0; },{}
-540,Falcon_food,Falcon food,0,20,0,50,,,,,10477567,2,,,,,{},{}
-541,Pecopeco_food,Pecopeco food,0,20,0,50,,,,,10477567,2,,,,,{},{}
-542,Festive_Cookie,Festive Cookie,0,10,0,10,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{}
-543,Festive_Rainbow_Cake,Festive Rainbow Cake,0,20,0,10,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{}
-544,Raw_Fish,Raw Fish,0,20,0,30,,,,,10477567,2,,,,,{ itemheal rand(25,59),0; },{}
-545,Condensed_Red_Potion,Condensed Red Potion,0,20,0,20,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{}
-546,Condensed_Yellow_Potion,Condensed Yellow Potion,0,20,0,30,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{}
-547,Condensed_White_Potion,Condensed White Potion,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{}
-548,Cheese,Cheese,0,2800,0,50,,,,,10477567,2,,,,,{ itemheal 0,rand(10,14); },{}
-549,Yam,Hot Potato,0,180,0,80,,,,,10477567,2,,,,,{ itemheal rand(50,99),0; },{}
-550,Rice_Cake,Rice Popper,0,20,5,10,,,,,10477567,2,,,,,{ itemheal rand(10,14),0; },{}
-551,Sushi,Sushi,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(50,60),0; },{}
-552,Ketupat,Ketupat,0,20,0,10,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-553,Dumpling,Dumpling,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(39,68),0; },{}
-554,Mochi,Mochi,0,100,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-556,Rolled_Rice,Rolled Rice,0,20,0,10,,,,,10477567,3,,,,,{ itemheal rand(10,50),0; },{}
-557,Cut_Rice_Rolls,Cut Rice Rolls,0,20,0,10,,,,,0,3,,,,,{ itemheal rand(10,200),0; },{}
-558,Chocolate,Chocolate,0,500,0,20,,,,,10477567,2,,,,,{ itemheal 1,1; },{}
-559,Hand-made_Chocolate,Hand-made Chocolate,0,5000,0,80,,,,,10477567,2,,,,,{ itemheal 50,50; },{}
-560,White_Chocolate,White Chocolate,0,0,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-561,Milk_Chocolate_Bar,Milk Chocolate,0,0,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-562,Pizza,Pizza,0,20,0,150,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-563,Double_Growing_Swiss_Pong_Tyu_,Unknown Item,0,20,0,150,,,,,10477567,3,,,,,{ itemheal rand(100,200),0; },{}
-564,Meat_Dumpling,Meat Dumpling,0,20,0,30,,,,,0,2,,,,,{ itemheal rand(175,234),0; },{}
-565,Vita_500_Bottle,Vita 500,0,2000,0,30,,,,,10477567,2,,,,,{ itemheal 500,0; },{}
-566,Tom_Yum_Goong,Tom_Yum_Goong,0,20,150,0,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{}
-567,Prawn,Prawn,0,20,40,0,,,,,10477567,3,,,,,{ itemheal rand(50,100),0; },{}
-568,Lemon,Lemon,0,20,40,0,,,,,0,3,,,,,{},{}
-
-// Usable Items
-//===================================================================
-601,Fly_Wing,Fly Wing,2,60,0,50,,,,,10477567,2,,,,,{ warp "Random",0,0; },{}
-602,Butterfly_Wing,Butterfly Wing,2,300,0,50,,,,,10477567,2,,,,,{ warp "SavePoint",0,0; },{}
-603,Old_Blue_Box,Old Blue Box,2,10000,0,200,,,,,10477567,2,,,,,{ getitem -1,1; },{}
-604,Dead_Branch,Dead Branch,2,50,0,50,,,,,10477567,2,,,,,{ monster "this",0,0,"--ja--",-1,1,; },{}
-605,Anodyne,Anodyne,2,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1,"??????????"; },{}
-606,Aloevera,Aloevera,2,1500,0,100,,,,,10477567,2,,,,,{ itemskill 6,1,"?????"; },{}
-607,Yggdrasilberry,Yggdrasilberry,0,2,0,300,,,,,10477567,2,,,,,{ percentheal 100,100; },{}
-608,Yggdrasil_Seed,Yggdrasil Seed,0,5000,0,300,,,,,10477567,2,,,,,{ percentheal 50,50; },{}
-609,Amulet,Amulet,2,100,0,100,,,,,10477567,2,,,,,{},{}
-610,Yggdrasil_Leaf,Yggdrasil Leaf,2,4000,0,100,,,,,10477567,2,,,,,{ itemskill 54,1,"????????"; },{}
-611,Magnifier,Magnifier,2,40,0,50,,,,,10477567,2,,,,,{ itemskill 40,1,"???"; },{}
-// Smithing Items
-612,Mini_Furnace,Mini Furnace,2,150,0,200,,,,,10477567,2,,,,,{ produce 16; },{}
-613,Iron_Hammer,Iron Hammer,2,1000,0,200,,,,,10477567,2,,,,,{ produce 1; },{}
-614,Golden_Hammer,Golden Hammer,2,3000,0,300,,,,,10477567,2,,,,,{ produce 2; },{}
-615,Oridecon_Hammer,Oridecon Hammer,2,5000,0,400,,,,,10477567,2,,,,,{ produce 3; },{}
-// Item Givers
-616,Old_Card_Album,Old Card Album,2,10000,0,50,,,,,10477567,2,,,,,{ getitem -3,1; },{}
-617,Old_Violet_Box,Old Violet Box,2,10000,0,200,,,,,10477567,2,,,,,{ getitem -2,1; },{}
-618,Worn_Out_Scroll,Worn Out Scroll,2,50,0,20,,,,,10477567,2,,,,,{ getitem -5,1; },{}
-
-// Pet Tames
-//===================================================================
-619,Unripe_Apple,Unripe Apple,2,1000,0,50,,,,,10477567,2,,,,,{ pet 1002; },{}
-620,Orange_Juice,Orange Juice,2,1500,0,50,,,,,10477567,2,,,,,{ pet 1113; },{}
-621,Bitter_Herb,Bitter Herb,2,20,0,50,,,,,10477567,2,,,,,{ pet 1031; },{},
-622,Rainbow_Carrot,Rainbow Carrot,2,2500,0,50,,,,,10477567,2,,,,,{ pet 1063; },{},
-623,Earthworm_the_Dude,Earthworm the Dude,2,4000,0,50,,,,,10477567,2,,,,,{ pet 1049; },{},
-624,Rotten_Fish,Rotten Fish,2,2500,0,50,,,,,10477567,2,,,,,{ pet 1011; },{},
-625,Rusty_Iron,Rusty Iron,2,100,0,50,,,,,10477567,2,,,,,{ pet 1042; },{},
-626,Monster_Juice,Monster Juice,2,1500,0,50,,,,,10477567,2,,,,,{ pet 1035; },{}
-627,Sweet_Milk,Sweet Milk,2,7000,0,50,,,,,10477567,2,,,,,{ pet 1167; },{}
-628,Well_Dried_Bone,Well Dried Bone,2,10000,0,50,,,,,10477567,2,,,,,{ pet 1107; },{}
-629,Singing_Flower,Singing Flower,2,300,0,50,,,,,10477567,2,,,,,{ pet 1052; },{}
-630,Dew_Laden_Moss,Dew Laden Moss,2,10,0,50,,,,,10477567,2,,,,,{ pet 1014; },{},
-631,Deadly_Noxious_Herb,Deadly Noxious Herb,2,20,0,50,,,,,10477567,2,,,,,{ pet 1077; },{},
-632,Fatty_Chubby_Earthworm,Fatty Chubby Earthworm,2,5000,0,50,,,,,10477567,2,,,,,{ pet 1019; },{},
-633,Baked_Yam,Baked Yam,2,20,0,50,,,,,10477567,2,,,,,{ pet 1056; },{},,
-634,Tropical_Banana,Tropical Banana,2,20,0,50,,,,,10477567,2,,,,,{ pet 1057; },{},,
-635,Horror_of_Tribe,Horror of Tribe,2,300,0,50,,,,,10477567,2,,,,,{ pet 1023; },{},,
-636,No_Recipient,No Recipient,2,100,0,50,,,,,10477567,2,,,,,{ pet 1026; },{},,
-637,Old_Broom,Old Broom,2,350,0,50,,,,,10477567,2,,,,,{ pet 1110; },{},,
-638,Silver_Knife_of_Chastity,Silver Knife of Chastity,2,12000,0,50,,,,,10477567,2,,,,,{ pet 1170; },{},,
-639,Armlet_of_Obedience,Armlet of Obedience,2,18000,0,50,,,,,10477567,2,,,,,{ pet 1029; },{},,
-640,Shining_Stone,Shining Stone,2,3000,0,50,,,,,10477567,2,,,,,{ pet 1155; },{},,
-641,Contract_in_Shadow,Contracts in Shadow,2,100,0,50,,,,,10477567,2,,,,,{ pet 1109; },{},,
-642,Book_of_Devil,Book of Devil,2,1800,0,50,,,,,10477567,2,,,,,{ pet 1101; },{},,
-643,Pet_Incubator,Pet Incubator,2,3000,,30,,,,,10477567,2,,,,,{ if((countitem(9030)<1)&&(countitem(9031)<1)&&(countitem(9032)<1)&&(countitem(9033)<1)&&(countitem(9034)<1)&&(countitem(9035)<1)&&(countitem(9036)<1)&&(countitem(9037)<1)&&(countitem(9038)<1)&&(countitem(9039)<1)) bpet; },{},,
-
-// Misc Items
-//===================================================================
-644,Gift_Box,Gift Box,2,2,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{},
-645,Concentration_Potion,Concentration Potion,2,800,0,100,,,,,10477567,2,,,,,{ sc_start SC_SpeedPot0,1800,0; },{}
-656,Awakening_Potion,Awakening Potion,2,1500,0,150,,,,,8904431,2,,,40,,{ sc_start SC_SpeedPot1,1800,0; },{}
-657,Berserk_Potion,Berserk Potion,2,3000,0,200,,,,,410786,2,,,85,,{ sc_start SC_SpeedPot2,1800,0; },{}
-658,Tribal_Solidarity,Tribal Solidarity,3,1000,0,500,,,,,,,,,,,{},{}
-659,Her_Heart,Her Heart,2,500,0,50,,,,,10477567,2,,,,,{ pet 1188; },{},,
-660,Forbidden_Red_Candle,Red Candle,2,20,0,50,,,,,10477567,2,,,,,{ pet 1200; },{},,
-661,Sky_Apron,Soft Apron,2,20,0,50,,,,,10477567,2,,,,,{ pet 1275; },{}
-
-// Newer Items
-664,Gift_Box_,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{},
-665,Gift_Box__,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{},
-666,Gift_Box___,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{},
-667,Gift_Box____,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{},
-668,Angpow,Angpow,0,1,0,2,,,,,10477567,2,,,,,{ set Zeny,Zeny+rand(100,10000); },{}
-669,Rice_Cake_Soup,Rice Cake Soup,2,20,0,100,,,,,,,,,,,{},{},,
-670,Gold_Coin_Pouch,Gold Coin Pouch,2,20,0,400,,,,,,,,,,,{},{},,
-671,Gold_Coin,Gold Coin,2,20,0,40,,,,,,,,,,,{},{},,
-672,Copper_Coin_Pouch,Copper Coin Pouch,2,20,0,400,,,,,,,,,,,{},{},,
-673,Copper_Coin,Copper Coin,2,20,0,40,,,,,,,,,,,{},{},,
-674,Mysterious_Ore_Coin,Mysterious Ore Coin,2,20,0,40,,,,,0,3,,,,,{},{}
-675,Silver_Coin,Silver Coin,2,20,0,40,,,,,0,3,,,,,{},{}
-676,Silver_Coin_Pouch,Silver Coin Pouch,2,20,0,400,,,,,0,3,,,,,{},{}
-677,Platinum_Coin,Platinum Coin,2,20,0,40,,,,,0,3,,,,,{},{}
-678,Deadly_Poison_Bottle,Deadly Poison Bottle,2,20,0,100,,,,,0,3,,,,,{},{}
-679,Recall_Pills,Recall Pills,2,20,0,300,,,,,0,3,,,,,{},{}
-680,Carnation,Carnation,2,20,0,1000,,,,,0,3,,,,,{},{}
-681,Wedding_Photo_Album,Wedding_Photo_Album,2,20,0,10,,,,,0,3,,,,,{},{}
-682,Realgar_Wine,Realgar Wine,2,20,0,50,,,,,10477567,2,,,,,{ sc_start SC_ATKPOT,30,30; },{}
-683,Exorcize_Herb,Exorcize Herb,2,20,0,50,,,,,10477567,2,,,,,{ sc_start SC_MATKPOT,30,30; },{}
-684,Durian,Durian,2,20,0,10,,,,,0,3,,,,,{},{}
-685,Ramadan,Ramadan,2,20,10,10,,,,,0,3,,,,,{},{}
-
-701,Ora_Ora,Ora Ora,3,55000,0,200,,,,,,,,,,,{},{}
-702,Animal_Gore,Animal Gore,3,2,0,100,,,,,,,,,,,{},{}
-703,Hinalle,Hinalle,3,2,0,10,,,,,,,,,,,{},{}
-704,Aloe,Aloe,3,2,0,10,,,,,,,,,,,{},{}
-705,Clover,Clover,3,10,0,10,,,,,,,,,,,{},{}
-706,Four_Leaf_Clover,Four-Leaf Clover,3,80000,0,10,,,,,,,,,,,{},{}
-707,Singing_Plant,Singing Plant,3,2,0,10,,,,,,,,,,,{},{}
-708,Ment,Ment,3,2,0,10,,,,,,,,,,,{},{}
-709,Izidor,Izidor,3,2,0,10,,,,,,,,,,,{},{}
-710,Illusion_Flower,Illusion Flower,3,2,0,10,,,,,,,,,,,{},{}
-711,Shoot,Shoot,3,16,0,10,,,,,,,,,,,{},{}
-712,Flower,Flower,3,2,0,10,,,,,,,,,,,{},{}
-713,Empty_Bottle,Empty Bottle,3,6,0,20,,,,,,,,,,,{},{}
-714,Emperium,Emperium,3,2,0,1000,,,,,,,,,,,{},{}
-715,Yellow_Gemstone,Yellow Gemstone,3,600,0,30,,,,,,,,,,,{},{}
-716,Red_Gemstone,Red Gemstone,3,600,0,30,,,,,,,,,,,{},{}
-717,Blue_Gemstone,Blue Gemstone,3,600,0,30,,,,,,,,,,,{},{}
-718,Garnet,Garnet,3,6000,0,100,,,,,,,,,,,{},{}
-719,Amethyst,Amethyst,3,6000,0,100,,,,,,,,,,,{},{}
-720,Aquamarine,Aquamarine,3,6000,0,100,,,,,,,,,,,{},{}
-721,Emerald,Emerald,3,6000,0,100,,,,,,,,,,,{},{}
-722,Pearl,Pearl,3,6000,0,100,,,,,,,,,,,{},{}
-723,Ruby,Ruby,3,6000,0,100,,,,,,,,,,,{},{}
-724,Cursed_Ruby,Cursed Ruby,3,1000,0,100,,,,,,,,,,,{},{}
-725,Sardonyx,Sardonyx,3,6000,0,100,,,,,,,,,,,{},{}
-726,Sapphire,Sapphire,3,6000,0,100,,,,,,,,,,,{},{}
-727,Opal,Opal,3,6000,0,100,,,,,,,,,,,{},{}
-728,Topaz,Topaz,3,6000,0,100,,,,,,,,,,,{},{}
-729,Zircon,Zircon,3,6000,0,100,,,,,,,,,,,{},{}
-730,1_Carat_Diamond,1 Carat Diamond,3,10000,0,100,,,,,,,,,,,{},{}
-731,2_Carat_Diamond,2 Carat Diamond,3,25000,0,100,,,,,,,,,,,{},{}
-732,3_Carat_Diamond,3 Carat Diamond,3,55000,0,100,,,,,,,,,,,{},{}
-733,Cracked_Diamond,Cracked Diamond,3,2,0,100,,,,,,,,,,,{},{}
-734,Red_Frame,Red Frame,3,3000,0,200,,,,,,,,,,,{},{}
-735,Chung_Jah,Chung Jah,3,5000,0,500,,,,,,,,,,,{},{}
-736,China,China,3,1000,0,300,,,,,,,,,,,{},{}
-737,Black_Ladle,Black Ladle,3,400,0,50,,,,,,,,,,,{},{}
-738,Pencil_Case,Pencil Case,3,300,0,100,,,,,,,,,,,{},{}
-739,Rouge,Rouge,3,10000,0,10,,,,,,,,,,,{},{}
-740,Puppet,Puppet,3,1000,0,100,,,,,,,,,,,{},{}
-741,Poring_Doll,Poring Doll,3,1800,0,100,,,,,,,,,,,{},{}
-742,Chonchon_Doll,Chonchon Doll,3,3000,1000,100,,,,,,,,,,,{},{}
-743,Spore_Doll,Spore Doll,3,5500,0,100,,,,,,,,,,,{},{}
-744,Bouquet,Bouquet,3,2000,0,50,,,,,,,,,,,{},{}
-745,Wedding_Bouquet,Wedding Bouquet,3,10000,0,50,,,,,,,,,,,{},{}
-746,Glass_Bead,Glass Bead,3,1400,0,50,,,,,,,,,,,{},{}
-747,Crystal_Mirror,Crystal Mirror,3,15000,0,50,,,,,,,,,,,{},{}
-748,Witherless_Rose,Witherless Rose,3,55000,0,10,,,,,,,,,,,{},{}
-749,Frozen_Rose,Frozen Rose,3,35000,0,10,,,,,,,,,,,{},{}
-750,Baphomet_Doll,Baphomet Doll,3,18000,0,100,,,,,,,,,,,{},{}
-751,Osiris_Doll,Osiris Doll,3,14000,0,100,,,,,,,,,,,{},{}
-752,Rocker_Doll,Grasshopper Doll,3,4000,0,100,,,,,,,,,,,{},{}
-753,Yoyo_Doll,Yoyo Doll,3,6000,0,100,,,,,,,,,,,{},{}
-754,Raccoon_Doll,Raccoon Doll,3,5000,0,100,,,,,,,,,,,{},{}
-756,Rough_Oridecon,Rough Oridecon,3,548,0,200,,,,,,,,,,,{},{}
-757,Rough_Elunium,Rough Elunium,3,648,0,200,,,,,,,,,,,{},{}
-901,Danggie,Danggie,3,250,0,10,,,,,,,,,,,{},{}
-902,Tree_Root,Tree Root,3,12,0,10,,,,,,,,,,,{},{}
-903,Reptile_Tongue,Reptile Tongue,3,50,0,10,,,,,,,,,,,{},{}
-904,Scorpion_Tail,Scorpion Tail,3,124,0,10,,,,,,,,,,,{},{}
-905,Stem,Stem,3,58,0,10,,,,,,,,,,,{},{}
-906,Pointed_Scale,Pointed Scale,3,70,0,10,,,,,,,,,,,{},{}
-907,Resin,Resin,3,120,0,10,,,,,,,,,,,{},{}
-908,Spawn,Spawn,3,148,0,10,,,,,,,,,,,{},{}
-909,Jellopy,Jellopy,3,6,0,10,,,,,,,,,,,{},{}
-910,Garlet,Garlet,3,40,0,10,,,,,,,,,,,{},{}
-911,Scell,Scell,3,160,0,10,,,,,,,,,,,{},{}
-912,Zargon,Zargon,3,480,0,10,,,,,,,,,,,{},{}
-913,Tooth_of_Bat,Tooth of Bat,3,34,0,10,,,,,,,,,,,{},{}
-914,Fluff,Fluff,3,8,0,10,,,,,,,,,,,{},{}
-915,Chrysalis,Chrysalis,3,8,0,10,,,,,,,,,,,{},{}
-916,Feather_of_Birds,Feather of Birds,3,10,0,10,,,,,,,,,,,{},{}
-917,Talon,Talon,3,20,0,10,,,,,,,,,,,{},{}
-918,Sticky_Webfoot,Sticky Webfoot,3,20,0,10,,,,,,,,,,,{},{}
-919,Animal_Skin,Animal Skin,3,36,0,10,,,,,,,,,,,{},{}
-920,Wolf_Claw,Wolf Claw,3,58,0,10,,,,,,,,,,,{},{}
-921,Mushroom_Spore,Mushroom Spore,3,36,0,10,,,,,,,,,,,{},{}
-922,Orc's_Fang,Orcish Fang,3,220,0,10,,,,,,,,,,,{},{}
-923,Evil_Horn,Evil Horn,3,1020,0,10,,,,,,,,,,,{},{}
-924,Powder_of_Butterfly,Powder of Butterfly,3,90,0,10,,,,,,,,,,,{},{}
-925,Bill_of_Birds,Bill of Birds,3,64,0,10,,,,,,,,,,,{},{}
-926,Snake_Scale,Snake Scale,3,82,0,10,,,,,,,,,,,{},{}
-928,Insect_Feeler,Insect Feeler,3,114,0,10,,,,,,,,,,,{},{}
-929,Immortal_Heart,Immortal Heart,3,374,0,10,,,,,,,,,,,{},{}
-930,Rotten_Bandage,Rotten Bandage,3,358,0,10,,,,,,,,,,,{},{}
-931,Orcish_Voucher,Orcish Voucher,3,168,0,10,,,,,,,,,,,{},{}
-932,Skel-Bone,Skel-Bone,3,232,0,10,,,,,,,,,,,{},{}
-934,Memento,Memento,3,600,0,10,,,,,,,,,,,{},{}
-935,Shell,Shell,3,14,0,10,,,,,,,,,,,{},{}
-936,Scale_Shell,Scale Shell,3,466,0,10,,,,,,,,,,,{},{}
-937,Venom_Canine,Venom Canine,3,148,0,10,,,,,,,,,,,{},{}
-938,Sticky_Mucus,Sticky Mucus,3,70,0,10,,,,,,,,,,,{},{}
-939,Bee_Sting,Bee Sting,3,32,0,10,,,,,,,,,,,{},{}
-940,Grasshopper's_Leg,Grasshoppers Leg,3,36,0,10,,,,,,,,,,,{},{}
-941,Nose_Ring,Nose Ring,3,568,0,10,,,,,,,,,,,{},{}
-942,Yoyo_Tail,Yoyo Tail,3,114,0,10,,,,,,,,,,,{},{}
-943,Solid_Shell,Solid Shell,3,448,0,10,,,,,,,,,,,{},{}
-944,Horseshoe,Horseshoe,3,588,0,10,,,,,,,,,,,{},{}
-945,Raccoon_Leaf,Raccoon Leaf,3,106,0,10,,,,,,,,,,,{},{}
-946,Snail's_Shell,Snails Shell,3,64,0,10,,,,,,,,,,,{},{}
-947,Horn,Horn,3,116,0,10,,,,,,,,,,,{},{}
-948,Bear's_Footskin,Bears Footskin,3,174,0,10,,,,,,,,,,,{},{}
-949,Feather,Feather,3,20,0,10,,,,,,,,,,,{},{}
-950,Heart_of_Mermaid,Heart of Mermaid,3,264,0,10,,,,,,,,,,,{},{}
-951,Fin,Fin,3,412,0,10,,,,,,,,,,,{},{}
-952,Cactus_Needle,Cactus Needle,3,82,0,10,,,,,,,,,,,{},{}
-953,Stone_Heart,Stone Heart,3,184,0,10,,,,,,,,,,,{},{}
-954,Shining_Scale,Shining Scale,3,466,0,10,,,,,,,,,,,{},{}
-955,Worm_Peeling,Worm Peeling,3,52,0,10,,,,,,,,,,,{},{}
-956,Gill,Gill,3,342,0,10,,,,,,,,,,,{},{}
-957,Decayed_Nail,Decayed Nail,3,82,0,10,,,,,,,,,,,{},{}
-958,Horrendous_Mouth,Horrendous Mouth,3,390,0,10,,,,,,,,,,,{},{}
-959,Stinky_Scale,Stinky Scale,3,168,0,10,,,,,,,,,,,{},{}
-960,Nipper,Nipper,3,114,0,10,,,,,,,,,,,{},{}
-961,Conch,Conch,3,158,0,10,,,,,,,,,,,{},{}
-962,Tentacle,Tentacle,3,70,0,10,,,,,,,,,,,{},{}
-963,Sharp_scale,Sharp Scale,3,250,0,10,,,,,,,,,,,{},{}
-964,Crab_Shell,Crab Shell,3,90,5,10,,,,,,,,,,,{},{}
-965,Clam_Shell,Clam Shell,3,56,5,10,,,,,,,,,,,{},{}
-966,Clam_Flesh,Clam Flesh,3,158,0,10,,,,,,,,,,,{},{}
-967,Turtle_Shell,Turtle Shell,3,680,0,10,,,,,,,,,,,{},{}
-968,Heroic_Emblem,Heroic Emblem,3,3000,0,10,,,,,,,,,,,{},{}
-969,Gold,Gold,3,200000,0,200,,,,,,,,,,,{},{}
-970,Alcohol,Alcohol,3,400,0,30,,,,,,,,,,,{},{}
-971,Detrimindexta,Detrimindexta,3,400,0,30,,,,,,,,,,,{},{}
-972,Karvodailnirol,Karvodailnirol,3,400,0,30,,,,,,,,,,,{},{}
-973,Counteragent,Counteragent,3,200,0,70,,,,,,,,,,,{},{}
-974,Mixture,Mixture,3,200,0,70,,,,,,,,,,,{},{}
-975,Scarlet_Dyestuffs,Scarlet Dyestuffs,3,1000,0,150,,,,,,,,,,,{},{}
-976,Lemon_Dyestuffs,Lemon Dyestuffs,3,1000,0,150,,,,,,,,,,,{},{}
-978,Cobaltblue_Dyestuff,Cobaltblue Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-979,Darkgreen_Dyestuff,Darkgreen Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-980,Orange_Dyestuff,Orange Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-981,Violet_Dyestuff,Violet Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-982,White_Dyestuff,White Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-983,Black_Dyestuff,Black Dyestuff,3,1000,0,150,,,,,,,,,,,{},{}
-984,Oridecon,Oridecon,3,1100,0,200,,,,,,,,,,,{},{}
-985,Elunium,Elunium,3,1100,0,200,,,,,,,,,,,{},{}
-986,Anvil,Anvil,3,30000,0,500,,,,,,,,,,,{},{}
-987,Oridecon_Anvil,Oridecon Anvil,3,120000,0,700,,,,,,,,,,,{},{}
-988,Golden_Anvil,Golden Anvil,3,300000,0,900,,,,,,,,,,,{},{}
-989,Emperium_Anvil,Emperium Anvil,3,600000,0,1000,,,,,,,,,,,{},{}
-990,Red_Blood,Red Blood,3,1000,0,50,,,,,,,,,,,{},{}
-991,Crystal_Blue,Crystal Blue,3,1000,0,50,,,,,,,,,,,{},{}
-992,Wind_of_Verdure,Wind of Verdure,3,1000,0,50,,,,,,,,,,,{},{}
-993,Green_Live,Green Live,3,1000,0,50,,,,,,,,,,,{},{}
-994,Flame_Heart,Flame Heart,3,3000,0,300,,,,,,,,,,,{},{}
-995,Mystic_Frozen,Mystic Frozen,3,3000,0,300,,,,,,,,,,,{},{}
-996,Rough_Wind,Rough Wind,3,3000,0,300,,,,,,,,,,,{},{}
-997,Great_Nature,Great Nature,3,3000,0,300,,,,,,,,,,,{},{}
-998,Iron,Iron,3,100,0,50,,,,,,,,,,,{},{}
-999,Steel,Steel,3,1000,0,100,,,,,,,,,,,{},{}
-1000,Star_Crumb,Star Crumb,3,4500,0,100,,,,,,,,,,,{},{}
-1001,Star_Dust,Star Dust,3,1500,0,10,,,,,,,,,,,{},{}
-1002,Iron_Ore,Iron Ore,3,50,0,150,,,,,,,,,,,{},{}
-1003,Coal,Coal,3,500,0,50,,,,,,,,,,,{},{}
-1004,Chivalry_Emblem,Chivalry Emblem,3,2,0,100,,,,,,,,,,,{},{}
-1005,Hammer_of_Blacksmith,Hammer of Blacksmith,3,2,0,800,,,,,,,,,,,{},{}
-1006,Old_Magic_Book,Old Magic Book,3,2,0,30,,,,,,,,,,,{},{}
-1007,Necklace_of_Wisdom,Necklace of Wisdom,3,2,0,40,,,,,,,,,,,{},{}
-1008,Necklace_of_Oblivion,Necklace of Oblivion,3,2,0,100,,,,,,,,,,,{},{}
-1009,Hand_of_God,Hand of God,3,2,0,20,,,,,,,,,,,{},{}
-1010,Phracon,Phracon,3,200,0,200,,,,,,,,,,,{},{}
-1011,Emveretarcon,Emveretarcon,3,1000,0,200,,,,,,,,,,,{},{}
-1012,Frill,Frill,3,250,0,10,,,,,,,,,,,{},{}
-1013,Rainbow_Shell,Rainbow Shell,3,90,0,10,,,,,,,,,,,{},{}
-1014,Ant_Jaw,Ant Jaw,3,232,0,10,,,,,,,,,,,{},{}
-1015,Tongue,Tongue,3,528,0,10,,,,,,,,,,,{},{}
-1016,Rat_Tail,Rat Tail,3,52,0,10,,,,,,,,,,,{},{}
-1017,Mole_Whiskers,Mole Whiskers,3,106,0,10,,,,,,,,,,,{},{}
-1018,Mole_Claw,Mole Claw,3,210,0,10,,,,,,,,,,,{},{}
-1019,Trunk,Trunk,3,60,0,10,,,,,,,,,,,{},{}
-1020,Black_Hair,Black Hair,3,292,0,10,,,,,,,,,,,{},{}
-1021,Dokkaebi_Horn,Dokkaebi Horn,3,292,0,10,,,,,,,,,,,{},{}
-1022,Nine_Tails,Nine Tails,3,650,0,10,,,,,,,,,,,{},{}
-1023,Fish_Tail,Fish Tail,3,196,0,10,,,,,,,,,,,{},{}
-1024,Squid_Ink,Squid Ink,3,264,0,10,,,,,,,,,,,{},{}
-1025,Cobweb,Cobweb,3,184,0,10,,,,,,,,,,,{},{}
-1026,Acorn,Acorn,3,98,0,10,,,,,,,,,,,{},{}
-1027,Porcupine_Quill,Porcupine Quill,3,158,0,10,,,,,,,,,,,{},{}
-1028,Mane,Mane,3,196,0,10,,,,,,,,,,,{},{}
-1029,Tiger_Skin,Tiger Skin,3,548,0,10,,,,,,,,,,,{},{}
-1030,Tiger's_Footskin,Tigers Footskin,3,1500,0,10,,,,,,,,,,,{},{}
-1031,Mantis_Scythe,Mantis Scythe,3,196,0,10,,,,,,,,,,,{},{}
-1032,Maneater_Blossom,Maneater Blossom,3,196,0,10,,,,,,,,,,,{},{}
-1033,Maneater_Root,Maneater Root,3,208,0,10,,,,,,,,,,,{},{}
-1034,Blue_Hair,Blue Hair,3,342,0,10,,,,,,,,,,,{},{}
-1035,Dragon_Canine,Dragon Canine,3,484,0,10,,,,,,,,,,,{},{}
-1036,Dragon_Scale,Dragon Scale,3,500,0,10,,,,,,,,,,,{},{}
-1037,Dragon_Tail,Dragon Tail,3,1200,0,10,,,,,,,,,,,{},{}
-1038,Little_Evil_Horn,Little Evil Horn,3,528,0,10,,,,,,,,,,,{},{}
-1039,Little_Evil_Wing,Little Evil Wing,3,2000,0,10,,,,,,,,,,,{},{}
-1040,Elder_Pixie's_Moustache,Elder Pixies Moustache,3,232,0,10,,,,,,,,,,,{},{}
-1041,Lantern,Lantern,3,250,0,10,,,,,,,,,,,{},{}
-1042,Bug_Leg,Bug Leg,3,430,0,10,,,,,,,,,,,{},{}
-1043,Orc_Claw,Orc Claw,3,168,0,10,,,,,,,,,,,{},{}
-1044,Zenorc's_Fang,Zenorcs Fang,3,264,0,10,,,,,,,,,,,{},{}
-1045,Cultish_Masque,Cultish Masque,3,412,0,10,,,,,,,,,,,{},{}
-1046,Scorpion_Nipper,Scorpion Nipper,3,614,0,10,,,,,,,,,,,{},{}
-1047,Dead_Medusa,Dead Medusa,3,548,0,10,,,,,,,,,,,{},{}
-1048,Horrendous_Hair,Horrendous Hair,3,800,0,10,,,,,,,,,,,{},{}
-1049,Skirt_of_Virgin,Skirt of Virgin,3,1700,0,10,,,,,,,,,,,{},{}
-1050,Tendon,Tendon,3,220,0,10,,,,,,,,,,,{},{}
-1051,Detonator,Detonator,3,450,0,10,,,,,,,,,,,{},{}
-1052,Single_Cell,Single Cell,3,46,0,10,,,,,,,,,,,{},{}
-1053,Ancient_Tooth,Ancient Tooth,3,548,0,10,,,,,,,,,,,{},{}
-1054,Ancient_Lips,Ancient Lips,3,1000,0,10,,,,,,,,,,,{},{}
-1055,Earthworm_Peeling,Earthworm Peeling,3,196,0,10,,,,,,,,,,,{},{}
-1056,Grit,Grit,3,306,0,10,,,,,,,,,,,{},{}
-1057,Moth_Dust,Moth Dust,3,138,0,10,,,,,,,,,,,{},{}
-1058,Moth_Wings,Moth Wings,3,200,0,10,,,,,,,,,,,{},{}
-1059,Fabric,Fabric,3,306,0,10,,,,,,,,,,,{},{}
-1060,Golden_Hair,Golden Hair,3,430,0,10,,,,,,,,,,,{},{}
-1061,Witched_Starsand,Witched Starsand,3,484,0,10,,,,,,,,,,,{},{}
-1062,Jack_o'_Pumpkin,Jack o' Pumpkin,3,374,0,10,,,,,,,,,,,{},{}
-1063,Fang,Fang,3,680,0,10,,,,,,,,,,,{},{}
-1064,Reins,Reins,3,802,0,10,,,,,,,,,,,{},{}
-1065,Trap,Trap,3,100,0,10,,,,,,,,,,,{},{}
-1066,Fine-grained_Trunk,Fine-grained Trunk,3,2,0,10,,,,,,,,,,,{},{}
-1067,Solid_Trunk,Solid Trunk,3,2,0,10,,,,,,,,,,,{},{}
-1068,Barren_Trunk,Barren Trunk,3,2,0,10,,,,,,,,,,,{},{}
-1069,Orange_Net_Mushroom,Orange Net Mushroom,3,2,0,10,,,,,,,,,,,{},{}
-1070,Orange_Gooey_Mushroom_,Orange Gooey Mushroom,3,2,0,10,,,,,,,,,,,{},{}
-1071,Unknown_Test_Tube,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{}
-1072,Delivery_Message,DEL Message,3,2,0,10,,,,,,,,,,,{},{}
-1073,Voucher,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1074,Voucher_,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1075,Voucher__,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1076,Voucher___,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1077,Voucher____,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1078,Voucher_____,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1079,Voucher______,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1080,Voucher_______,Voucher,3,2,0,10,,,,,,,,,,,{},{}
-1081,Delivery_Box,DEL Box,3,2,0,1200,,,,,,,,,,,{},{}
-1082,Delivery_Box_,DEL Box,3,2,0,1200,,,,,,,,,,,{},{}
-1083,Delivery_Box__,DEL Box,3,2,0,1200,,,,,,,,,,,{},{}
-1084,Kafra_Pass,Kafra Pass,3,0,0,10,,,,,,,,,,,{},{}
-1085,Unknown_Test_Tube_,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{}
-1086,Unknown_Test_Tube__,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{}
-1087,Unknown_Test_Tube___,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{}
-1088,Morroc_Solution,Morocc Solution,3,2,0,30,,,,,,,,,,,{},{}
-1089,Payon_Solution,Payon Solution,3,2,0,30,,,,,,,,,,,{},{}
-1090,Unknown_Test_Tube____,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{}
-1092,Empty_Test_Tube,Empty Testtube,3,3,0,20,,,,,,,,,,,{},{}
-1093,Empty_Potion_Bottle,Empty Potion Bottle,3,10,0,10,,,,,,,,,,,{},{}
-1094,Short_Daenggie,Short Daenggie,3,278,0,10,,,,,,,,,,,{},{}
-1095,Clock_Hand,Needle of Alarm,3,546,0,10,,,,,,,,,,,{},{}
-1096,Round_Shell,Round Shell,3,954,0,10,,,,,,,,,,,{},{}
-1097,Worn_Out_Page,Worn Out Page,3,820,0,10,,,,,,,,,,,{},{}
-1098,Manacles,Manacles,3,658,0,10,,,,,,,,,,,{},{}
-1099,Worn-out_Prison_Uniform,Worn-out Prison Uniform,3,680,0,10,,,,,,,,,,,{},{}
-
-// Weapons
-//===================================================================
-// 1 Handed Swords
-1101,Sword,Sword,4,100,0,500,25,,1,3,8803555,2,2,1,2,2,{},{}
-1102,Sword_,Sword,4,100,0,500,25,,1,4,8803555,2,2,1,2,2,{},{}
-1103,Sword__,Sword,4,100,0,500,25,,1,0,8803555,2,2,1,2,2,{},{}
-1104,Falchion,Falchion,4,1500,0,600,39,,1,3,8803555,2,2,1,2,2,{},{}
-1105,Falchion_,Falchion,4,1500,0,600,39,,1,4,8803555,2,2,1,2,2,{},{}
-1106,Falchion__,Falchion,4,1500,0,600,39,,1,0,8803555,2,2,1,2,2,{},{}
-1107,Blade,Blade,4,2900,0,700,53,,1,3,8803555,2,2,1,2,2,{},{}
-1108,Blade_,Blade,4,2900,0,700,53,,1,4,8803555,2,2,1,2,2,{},{}
-1109,Blade__,Blade,4,2900,0,700,53,,1,0,8803555,2,2,1,2,2,{},{}
-1110,Rapier,Rapier,4,10000,0,500,70,,1,2,8803555,2,2,2,14,2,{},{}
-1111,Rapier_,Rapier,4,10000,0,500,70,,1,3,8803555,2,2,2,14,2,{},{}
-1112,Rapier__,Rapier,4,10000,0,500,70,,1,0,8803555,2,2,2,14,2,{},{}
-1113,Scimiter,Scimiter,4,17000,0,700,85,,1,2,8803555,2,2,2,14,2,{},{}
-1114,Scimiter_,Scimiter,4,17000,0,700,85,,1,3,8803555,2,2,2,14,2,{},{}
-1115,Scimiter__,Scimiter,4,17000,0,700,85,,1,0,8803555,2,2,2,14,2,{},{}
-1116,Katana,Katana,4,2000,0,1000,60,,1,3,16514,2,34,1,4,3,{},{}
-1117,Katana_,Katana,4,2000,0,1000,60,,1,4,16514,2,34,1,4,3,{},{}
-1118,Katana__,Katana,4,2000,0,1000,60,,1,0,16514,2,34,1,4,3,{},{}
-1119,Tsurugi,Tsurugi,4,51000,0,1200,130,,1,1,414946,2,2,3,27,2,{},{}
-1120,Tsurugi_,Tsurugi,4,51000,0,1200,130,,1,2,414946,2,2,3,27,2,{},{}
-1121,Tsurugi__,Tsurugi,4,51000,0,1200,130,,1,0,414946,2,2,3,27,2,{},{}
-1122,Ring_Pommel_Saber,Ring Pommel Saber,4,24000,0,900,100,,1,2,414946,2,2,2,14,2,{},{}
-1123,Haedonggum,Haedonggum,4,50000,0,900,120,,1,1,414946,2,2,3,27,2,{},{ bonus bInt,3; },,,,,,
-1124,Orcish_Sword,Orcish sword,4,20,0,800,90,,1,0,8803555,2,2,3,5,2,{},{ bonus bUnbreakable,100; },,,,,,,
-1125,Ring_Pommel_Saber_,Ring Pommel Saber,4,24000,0,900,100,,1,3,414946,2,2,2,14,2,{},{},,,,,,,
-1126,Saber,Saber,4,49000,0,1000,115,,1,2,414946,2,2,3,27,2,{},{},,,,,,,
-1127,Saber_,Saber,4,49000,0,1000,115,,1,3,414946,2,2,3,27,2,{},{},,,,,,,
-1128,Haedonggum_,Haedonggum,4,50000,0,900,120,,1,2,414946,2,2,3,27,2,{},{ bonus bInt,3; },,,,,,
-1129,Flamberge,Flamberge,4,60000,0,1500,150,,1,0,16512,2,2,3,27,2,{},{},,,,,,,
-1130,Nagan,Nagan,4,20,0,500,120,,1,0,414946,2,2,4,40,2,{},{ bonus bDoubleRate,25; bonus2 bAddRace,7,5; },,,,
-1131,Ice_Falchion,Ice Falchion,4,20,0,600,100,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,1; skill 14,3; bonus2 bAddEff,Eff_Freeze,500; bonus3 bAutoSpell,14,3,25; }
-1132,Edge,Edge,4,20,0,700,115,,1,0,414946,2,2,4,40,2,{},{ bonus2 bAddEff,Eff_Curse,300; bonus2 bWeaponComaRace,11,10; },,,
-1133,Fire_Brand,Fire Brand,4,20,0,500,100,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,3; skill 19,3; bonus3 bAutoSpell,19,3,25; },,
-1134,Caesar's_Sword,Caesar's Sword,4,20,0,700,140,,1,0,414946,2,2,4,40,2,{},{ bonus2 bAddRace,3,25; bonus bIgnoreDefRace,3; },,,,
-1135,Cutlas,Cutlas,4,20,0,900,150,,1,0,414946,2,2,4,40,2,{},{ skill 5,5; bonus bStr,2; bonus bDef,1; },,,,
-1136,Solar_Sword,Solar Sword,4,20,0,1200,85,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,3; bonus2 bHPDrainRate,100,1; bonus2 bSPDrainRate,5,-15; },,,,
-1137,Excalibur,Excalibur,4,20,0,1200,150,,1,0,414946,2,2,4,40,2,{},{ bonus bInt,5; bonus bLuk,10; bonus bDex,-1; bonus bAtkEle,6; },,,
-1138,Mysteltainn_,Mysteltainn,4,20,0,1000,170,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,7; bonus2 bAddEle,8,15; bonus2 bAddEff,Eff_Stone,100; bonus bDex,3; },
-1139,Talefing_,Talefing,4,20,0,1000,200,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,7; bonus2 bSPDrainRate,5,-35; },,,,,,,,,
-1140,Byeollungum,Byeollungum,4,20,0,900,150,,1,0,414946,2,2,4,40,2,{},{ bonus2 bSubRace,11,-10; bonus2 bAddRace,10,50; bonus bAllStats,2; }
-1141,Immaterial_Sword,Immaterial Sword,4,20,0,900,140,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,8; bonus2 bSPDrainRate,1,30; bonus2 bSPDrainRate,100,-1; },,,,,,,,,
-1142,Jewel_Sword,Crystal Sword,4,20,0,2200,104,,1,0,414946,2,2,3,68,2,{},{},,,,,,,,,,
-1143,Gaia_Sword,Gaia Sword,4,20,0,2500,115,,1,0,414946,2,2,3,74,2,{},{ bonus3 bAddMonsterDropItem,1002,50,25000; },,,,,,,,,,
-1144,Sashimi,Sashimi,4,20,0,1400,75,,1,0,414946,2,2,3,48,2,{},{ bonus bAtkEle,4; bonus3 bAddMonsterDropItem,544,5,4000; },,,,,,
-1145,Holy_Avenger,Holy Avenger,4,20,0,1350,125,,1,0,16384,2,2,3,75,2,{},{ bonus bAtkEle,6; },,,,,,,,
-// 2 Handed Swords
-1151,Slayer,Slayer,4,15000,0,1300,90,,1,2,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1152,Slayer_,Slayer,4,15000,0,1300,90,,1,3,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1153,Slayer__,Slayer,4,15000,0,1300,90,,1,0,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1154,Bastard_Sword,Bastard Sword,4,22500,0,1600,115,,1,2,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1155,Bastard_Sword_,Bastard Sword,4,22500,0,1600,115,,1,3,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1156,Bastard_Sword__,Bastard Sword,4,22500,0,1600,115,,1,0,16514,2,34,2,18,3,{},{},,,,,,,,,,
-1157,Two_handed_Sword,Two-handed Sword,4,60000,0,2200,160,,1,1,16514,2,34,3,33,3,{},{},,,,,,,,,,
-1158,Two_handed_Sword_,Two-handed Sword,4,60000,0,2200,160,,1,2,16514,2,34,3,33,3,{},{},,,,,,,,,,
-1159,Two_handed_Sword__,Two-handed Sword,4,60000,0,2200,160,,1,0,16514,2,34,3,33,3,{},{},,,,,,
-1160,Broad_Sword,Broad Sword,4,65000,0,2000,140,,1,1,16514,2,34,3,33,3,{},{ bonus bDef,5; },,,,,
-1161,Balmung,Balmung,4,20,0,1000,250,,2,0,2088959,2,2,4,48,1,{},{ bonus bInt,20; bonus bLuk,20; },,,,
-1162,Broad_Sword_,Broad Sword,4,65000,0,2000,140,,1,2,16514,2,34,3,33,3,{},{ bonus bDef,5; },,,,,
-1163,Claymore,Claymore,4,74000,0,2500,180,,1,0,16512,2,34,3,33,3,{},{},,,,,,
-1164,Muramasa,Muramasa,4,20,0,1000,155,,1,0,16514,2,34,4,48,3,{},{ bonus bCritical,30; bonus bAspdAddRate,8; bonus2 bAddEff2,Eff_Curse,200; },,
-1165,Masamune,Masamune,4,20,0,1000,200,,1,0,16514,2,34,4,48,3,{},{ bonus bFlee,30; bonus bStr,-5; bonus bAspd,2; bonus bDefRate,-50; bonus bDef2Rate,-50; },
-1166,Dragon_Slayer,Dragon Slayer,4,20,0,1300,150,,1,0,16514,2,34,4,48,3,{},{ bonus bIgnoreDefRace,9; bonus2 bAddRace,9,15; },,,
-1167,Schweizersabel,Schweizersabel,4,20,0,1600,160,,1,0,16514,2,34,4,48,3,{},{ bonus bAtkEle,4; skill 20,3; bonus bDef,1; bonus3 bAutoSpell,20,3,25; }
-1168,Zweihander,Zweihander,4,20,0,2200,200,,1,0,16514,2,34,4,48,3,{},{bonus bUnbreakable,100; },,,,,,
-1169,Executioner_,Executioner,4,20,0,2200,155,,1,0,16514,2,34,4,48,3,{},{ bonus bIgnoreDefRace,7; bonus2 bAddRace,7,20; bonus2 bSubRace,7,-10; bonus bAtkEle,7; }
-1170,Katzbalger,Katzbalger,4,20,0,2000,175,,1,0,16514,2,34,4,48,3,{},{ bonus bVit,10; bonus bDef,10; },,,,
-// Knifes and Daggers
-1201,Knife,Knife,4,50,0,400,17,,1,3,10444527,2,2,1,1,1,{},{},,,,,,
-1202,Knife_,Knife,4,50,0,400,17,,1,4,10444527,2,2,1,1,1,{},{},,,,,,
-1203,Knife__,Knife,4,50,0,400,17,,1,0,10444527,2,2,1,1,1,{},{},,,,,,
-1204,Cutter,Cutter,4,1250,0,500,30,,1,3,10444527,2,2,1,1,1,{},{}
-1205,Cutter_,Cutter,4,1250,0,500,30,,1,4,10444527,2,2,1,1,1,{},{}
-1206,Cutter__,Cutter,4,1250,0,500,30,,1,0,10444527,2,2,1,1,1,{},{}
-1207,Main_Gauche,Main Gauche,4,2400,0,600,43,,1,3,10444527,2,2,1,1,1,{},{}
-1208,Main_Gauche_,Main Gauche,4,2400,0,600,43,,1,4,10444527,2,2,1,1,1,{},{}
-1209,Main_Gauche__,Main Gauche,4,2400,0,600,43,,1,0,10444527,2,2,1,1,1,{},{}
-1210,Dirk,Dirk,4,8500,0,500,59,,1,2,10444527,2,2,2,12,1,{},{}
-1211,Dirk_,Dirk,4,8500,0,500,59,,1,3,10444527,2,2,2,12,1,{},{}
-1212,Dirk__,Dirk,4,8500,0,500,59,,1,0,10444527,2,2,2,12,1,{},{}
-1213,Dagger,Dagger,4,14000,0,600,73,,1,2,10444527,2,2,2,12,1,{},{}
-1214,Dagger_,Dagger,4,14000,0,600,73,,1,3,10444527,2,2,2,12,1,{},{}
-1215,Dagger__,Dagger,4,14000,0,600,73,,1,0,10444527,2,2,2,12,1,{},{}
-1216,Stiletto,Stiletto,4,19500,0,700,87,,1,2,10444527,2,2,2,12,1,{},{}
-1217,Stiletto_,Stiletto,4,19500,0,700,87,,1,3,10444527,2,2,2,12,1,{},{}
-1218,Stiletto__,Stiletto,4,19500,0,700,87,,1,0,10444527,2,2,2,12,1,{},{}
-1219,Gladius,Gladius,4,43000,0,700,105,,1,2,2055918,2,2,3,24,1,{},{}
-1220,Gladius_,Gladius,4,43000,0,700,105,,1,3,2055918,2,2,3,24,1,{},{},,,,,,
-1221,Gladius__,Gladius,4,43000,0,700,105,,1,0,2055918,2,2,3,24,1,{},{},,,,,,
-1222,Damascus,Damascus,4,49000,0,800,118,,1,1,2055918,2,2,3,24,1,{},{},,,,,,
-1223,Fortune_Sword,Fortune Sword,4,20,0,500,90,,1,0,2055918,2,2,4,24,1,{},{ bonus bLuk,5; bonus bFlee2,20; },,,,
-1224,Sword_Breaker,Swordbreaker,4,20,0,1000,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bBreakWeaponRate,500; },,,,,,
-1225,Mail_Breaker,Mailbreaker,4,20,0,1000,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bBreakArmorRate,500; },,,,,,
-1226,Damascus_,Damascus,4,49000,0,800,118,,1,2,2055918,2,2,3,24,1,{},{},,,,,,
-1227,Weeder_Knife,Weeder Knife,4,20,0,400,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,3; bonus2 bAddRace,3,15; bonus2 bSubRace,3,15; },
-1228,Combat_Knife,Combat Knife,4,20,0,400,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,7; bonus2 bSubRace,7,10; bonus2 bSubRace,6,-10; },
-1229,Mama's_Knife,Mama's Knife,4,20,0,500,75,,1,0,2055918,2,2,4,36,1,{},{ bonus bCritical,30; bonus2 bAddRace,7,3; bonus3 bAddMonsterDropItem,517,2,5000; }
-1230,House_Auger,House Auger,4,20,0,600,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bDefRatioAtkRace,10; bonus bDefRatioAtkRace,11; },,,,
-1231,Bazerald,Bazerald,4,20,0,500,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bAtkEle,3; bonus bInt,5; bonus bMatkRate,10; },,,
-1232,Assassin_Dagger,Assasin Dagger,4,20,0,600,140,,1,0,4096,2,2,4,36,1,{},{ bonus bMaxHPrate,20; bonus bMaxSPrate,15; bonus bAspdAddRate,2; bonus bAtkEle,7; },,
-1233,Exercise,Excorcise,4,20,0,700,90,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,6; bonus2 bSubRace,6,5; bonus2 bSubRace,7,-10; },
-1234,Moonlight_Sword,Walgwanggum,4,20,0,700,50,,1,0,2055918,2,2,4,36,1,{},{ bonus bMaxSPrate,10; bonus2 bSPDrainRate,100,3; },,,,,
-1235,Azoth,Azoth,4,20,0,700,110,,1,0,262144,2,2,4,36,1,{},{ bonus bClassChange,50; },,,,,,
-1236,Sucsamad,Sucsamad,4,20,0,800,140,,1,0,2055918,2,2,4,36,1,{},{ bonus2 bAddEle,2,10; bonus2 bAddEle,4,10; bonus bUnbreakable,100; },,
-1237,Grimtooth_,Grimtooth,4,20,0,800,180,,1,0,2055918,2,2,4,36,1,{},{ bonus bFlee,10; bonus bFlee2,5; bonus bDefRate,-50; bonus bDef2Rate,-50; },,
-1238,Zeny_Knife,Zeny Knife,4,20,0,1200,64,,1,0,2055918,2,2,3,40,1,{},{ bonus bGetZenyNum,100; },,,,,
-1239,Poison_Knife,Poison Knife,4,20,0,800,64,,1,0,2055918,2,2,3,65,1,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,2000; },,,,,
-1240,Princess_Knife,Princess Knife,4,20,0,400,84,,1,0,2055918,2,2,4,1,1,{},{ bonus bAllStats,1; }
-1241,Cursed_Dagger,Cursed Dagger,4,20,0,400,55,,1,0,66052,2,2,4,85,1,{},{ bonus2 bAddEff,Eff_Curse,500; },,,,
-1242,Counter_Dagger,Counter Dagger,4,20,0,550,75,,1,0,66052,2,2,4,55,1,{},{ bonus bCritical,5; bonus3 bAutoSpell,61,1,25; },,,,,
-1243,Main_Gauche_For_Novice,Novice Main Gauche,4,20,0,1,45,,1,0,8388609,2,2,1,1,1,{},{},,,,,,
-// Katars
-1250,Jur,Jur,4,19500,0,800,125,,1,2,4096,2,34,2,18,16,{},{},,,,,,
-1251,Jur_,Jur,4,19500,0,800,125,,1,3,4096,2,34,2,18,16,{},{},,,,,,
-1252,Katar,Katar,4,41000,0,1200,148,,1,1,4096,2,34,3,33,16,{},{ bonus bDex,1; },,,,,
-1253,Katar_,Katar,4,41000,0,1200,148,,1,2,4096,2,34,3,33,16,{},{ bonus bDex,1; },,,,,
-1254,Jamadhar,Jamadhar,4,37200,0,1500,165,,1,0,4096,2,34,3,33,16,{},{},,,,,,
-1255,Jamadhar_,Jamadhar,4,37200,0,1500,165,,1,1,4096,2,34,3,33,16,{},{},,,,,,
-1256,Katar_of_Cold_Icicle,Katar of Cold Icicle,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,1; bonus2 bAddEff,Eff_Freeze,500; },,,
-1257,Katar_of_Thornbush,Katar of Dusty Thornbush,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,2; bonus2 bAddEff,Eff_Blind,500; },,
-1258,Katar_of_Raging_Blaze,Katar of Raging Blaze,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,3; bonus2 bAddEff,Eff_Silence,500; },,
-1259,Katar_of_Piercing_Wind,Katar of Piercing Wind,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,4; bonus2 bAddEff,Eff_Sleep,500; },,
-1260,Sharpened_Legbone_of_Ghoul,Sharpened Legbone of Ghoul,4,52500,0,1700,150,,1,0,4096,2,34,3,65,16,{},{ bonus bAtkEle,9; },,,,
-1261,Infiltrator,Infiltrator,4,57000,0,1500,140,,1,0,4096,2,34,4,75,16,{},{ bonus2 bAddRace,7,50; bonus bDef,3; bonus bFlee,5; bonus bFlee2,2; }
-// Axes
-1301,Axe,Axe,4,500,0,800,38,,1,3,8803555,2,2,1,3,6,{},{},,,,,
-1302,Axe_,Axe,4,500,0,800,38,,1,4,8803555,2,2,1,3,6,{},{},,,,,
-1303,Axe__,Axe,4,500,0,800,38,,1,0,8803555,2,2,1,3,6,{},{},,,,,
-1304,Orcish_Axe,Orcish Axe,4,20,0,1500,75,,1,0,8803555,2,2,3,3,6,{},{},,,,,
-1305,Cleaver,Cleaver,4,20,0,1200,140,,1,0,279714,2,2,4,44,6,{},{ bonus2 bAddRace,7,5; bonus3 bAddMonsterDropItem,517,2,3000; }
-1306,War_Axe,War Axe,4,20,0,4200,145,,1,1,263168,2,2,3,76,6,{},{ bonus bDex,2; bonus bLuk,2; },,,
-1351,Battle_Axe,Battle Axe,4,5400,0,1500,80,,1,3,279714,2,34,1,3,7,{},{},,,,,
-1352,Battle_Axe_,Battle Axe,4,5400,0,1500,80,,1,4,279714,2,34,1,3,7,{},{},,,,,
-1353,Battle_Axe__,Battle Axe,4,5400,0,1500,80,,1,0,279714,2,34,1,3,7,{},{},,,,,
-1354,Hammer,Hammer,4,15500,0,2000,120,,1,2,279714,2,34,2,16,7,{},{},,,,
-1355,Hammer_,Hammer,4,15500,0,2000,120,,1,3,279714,2,34,2,16,7,{},{},,,,
-1356,Hammer__,Hammer,4,15500,0,2200,120,,1,0,279714,2,34,2,16,7,{},{},,,,
-1357,Buster,Buster,4,34000,0,2200,155,,1,1,279714,2,34,3,30,7,{},{},,,,
-1358,Buster_,Buster,4,34000,0,2200,155,,1,2,279714,2,34,3,30,7,{},{},,,,
-1359,Buster__,Buster,4,34000,0,2200,155,,1,0,279714,2,34,3,30,7,{},{},,,,
-1360,Two_handed_Axe,Two-handed Axe,4,55000,0,2500,185,,1,1,279714,2,34,3,30,7,{},{},,,,
-1361,Two_handed_Axe_,Two-handed Axe,4,55000,0,2500,185,,1,2,279714,2,34,3,30,7,{},{},,,,
-1362,Two_handed_Axe__,Two-handed Axe,4,55000,0,2500,185,,1,0,279714,2,34,3,30,7,{},{},,,,
-1363,Blood_Axe,Bloody Axe,4,20,0,400,170,,1,0,279714,2,34,4,44,7,{},{ bonus bStr,10; bonus bSpeedRate,25; },,
-1364,Great_Axe,Great Axe,4,20,0,1800,187,,1,0,279714,2,34,4,44,7,{},{ bonus2 bAddEff,Eff_Stan,1500; },,
-1365,Sabbath,Sabbath,4,20,0,2300,120,,1,0,279714,2,34,4,44,7,{},{ bonus2 bWeaponComaRace,6,50; bonus bAtkEle,7; },
-1366,Light_Epsilon,Light Epsilon,4,20,0,2300,180,,1,0,279714,2,34,4,44,7,{},{ bonus bAtkEle,6; skill 28,3; bonus2 bAddRace,6,3; }
-1367,Slaughter,Slaughter,4,20,0,2500,120,,1,0,279714,2,34,4,44,7,{},{ bonus bIgnoreDefRace,2; bonus2 bWeaponComaRace,2,50; },
-1368,Tomahawk,Tomahawk,4,20,0,2500,165,,1,0,279714,2,34,4,44,7,{},{ bonus bAtkEle,4; },,,
-1369,Guillotine,Guillotine,4,20,0,3000,215,,1,0,279714,2,34,4,44,7,{},{ bonus2 bWeaponComaRace,7,30; bonus2 bSPDrainRate,5,2; },,
-// Spears
-1401,Javelin,Javelin,4,150,0,700,28,,3,3,16514,2,2,1,4,4,{},{},,,
-1402,Javelin_,Javelin,4,150,0,700,28,,3,4,16514,2,2,1,4,4,{},{},,,
-1403,Javelin__,Javelin,4,150,0,700,28,,3,0,16514,2,2,1,4,4,{},{},,,
-1404,Spear,Spear,4,1700,0,850,44,,3,3,16514,2,2,1,4,4,{},{},,,
-1405,Spear_,Spear,4,1700,0,850,44,,3,4,16514,2,2,1,4,4,{},{},,,
-1406,Spear__,Spear,4,1700,0,850,44,,3,0,16514,2,2,1,4,4,{},{},,,
-1407,Pike,Pike,4,3450,0,1000,60,,3,3,16514,2,2,1,4,4,{},{},,,
-1408,Pike_,Pike,4,3450,0,1000,60,,3,4,16514,2,2,1,4,4,{},{},,,
-1409,Pike__,Pike,4,3450,0,1000,60,,3,0,16514,2,2,1,4,4,{},{},,,
-1410,Lance,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,,
-1411,Lance_,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,,
-1412,Lance__,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,,
-1413,Gungnir,Gungnir,4,20,0,500,120,,3,0,16514,2,2,4,4,4,{},{ bonus bPerfectHitRate,25; bonus bHit,30; }
-1414,Gelerdria,Gelerdria,4,20,0,700,145,,3,0,16514,2,2,4,48,4,{},{ bonus bAtkEle,2; bonus bMaxHP,500; bonus bMaxSP,-50; }
-1415,Skewer,Brocca,4,20,0,850,100,,3,0,16514,2,2,4,48,4,{},{ bonus bIgnoreDefRace,11; bonus2 bAddEle,0,25; }
-1416,Tjungkuletti,Tjungkuletti,4,20,0,1000,95,,3,0,16514,2,2,4,48,4,{},{ bonus2 bSPDrainRate,100,1; bonus2 bSPDrainRate,1,5; },,,
-1417,Pole_Axe,Pole Axe,4,20,0,3800,160,,3,1,16514,2,2,3,71,4,{},{ bonus bStr,1; bonus bInt,2; bonus bDex,1; }
-1451,Guisarme,Guisarme,4,13000,0,1000,84,,3,2,16514,2,34,2,18,5,{},{},,,
-1452,Guisarme_,Guisarme,4,13000,0,1000,84,,3,3,16514,2,34,2,18,5,{},{},,,
-1453,Guisarme__,Guisarme,4,13000,0,1000,84,,3,0,16514,2,34,2,18,5,{},{},,,
-1454,Glaive,Glaive,4,20000,0,1200,104,,3,2,16514,2,34,2,18,5,{},{},,,
-1455,Glaive_,Glaive,4,20000,0,1200,104,,3,3,16514,2,34,2,18,5,{},{},,,
-1456,Glaive__,Glaive,4,20000,0,1200,104,,3,0,16514,2,34,2,18,5,{},{},,,
-1457,Partizan,Partizan,4,27000,0,2000,124,,3,1,16514,2,34,2,18,5,{},{},,,
-1458,Partizan_,Partizan,4,27000,0,2000,124,,3,2,16514,2,34,2,18,5,{},{},,,
-1459,Partizan__,Partizan,4,27000,0,2000,124,,3,0,16514,2,34,3,33,5,{},{},,,
-1460,Trident,Trident,4,51000,0,1200,150,,3,2,16514,2,34,3,33,5,{},{},,,
-1461,Trident_,Trident,4,51000,0,1200,150,,3,3,16514,2,34,3,33,5,{},{},,,
-1462,Trident__,Trident,4,51000,0,1200,150,,3,0,16514,2,34,3,33,5,{},{},,,
-1463,Halberd,Halberd,4,54000,0,2500,165,,3,1,16514,2,34,3,33,5,{},{},,,
-1464,Halberd_,Halberd,4,54000,0,2500,165,,3,2,16514,2,34,3,33,5,{},{},,,,,,,
-1465,Halberd__,Halberd,4,54000,0,2500,165,,3,0,16514,2,34,3,33,5,{},{},,,,,,,
-1466,Crescent_Scythe,Crescent Scythe,4,20,0,2500,180,,3,0,16514,2,34,4,48,5,{},{ bonus bCritical,30; bonus bHit,10; },,,,,
-1467,Bill_Guisarme,Bill Guisarme,4,20,0,1000,183,,3,0,16514,2,34,4,48,5,{},{ bonus2 bAddRace,2,10; bonus2 bAddRace,7,5; },,,
-1468,Zephyrus,Zephyrus,4,20,0,2000,170,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,4; skill 21,3; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,21,3,25; }
-1469,Longinus's_Spear,Longinus's Spear,4,20,0,2500,180,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,7; bonus2 bAddRace,7,10; bonus2 bAddRace,8,10; },,
-1470,Brionac,Brionac,4,20,0,3000,190,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,6; skill 28,5; skill 13,3; bonus3 bAutoSpell,13,3,25; bonus2 bAddRace,10,5; },
-1471,Hellfire,Hellfire,4,20,0,3500,200,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,3; skill 17,3; bonus3 bAutoSpell,17,3,25; bonus bStr,3; },,
-// 2 Handed Staffs
-1472,Staff_of_Soul,Soul Staff,4,20,0,1400,25,,1,0,66052,2,34,3,73,10,{},{ bonus bInt,5; bonus bAgi,2; bonus bMatkRate,15; },,,,
-1473,Wizardy_Staff,Wizardy Staff,4,20,0,2400,120,,1,0,66052,2,34,4,90,10,{},{ bonus bInt,6; bonus bDex,2; bonus bMatkRate,15; },,,,
-// Clubs and Maces
-1501,Club,Club,4,120,0,700,23,,1,3,8701363,2,2,1,2,8,{},{},,,,,,,
-1502,Club_,Club,4,120,0,700,23,,1,4,8701363,2,2,1,2,8,{},{},,,,,,,
-1503,Club__,Club,4,120,0,700,23,,1,0,8701363,2,2,1,2,8,{},{},,,,,,,
-1504,Mace,Mace,4,1600,0,800,37,,1,3,8701363,2,2,1,2,8,{},{},,,,,,,
-1505,Mace_,Mace,4,1600,0,800,37,,1,4,8701363,2,2,1,2,8,{},{},,,,,,,
-1506,Mace__,Mace,4,1600,0,800,37,,1,0,8701363,2,2,1,2,8,{},{}
-1507,Smasher,Smasher,4,9000,0,1000,54,,1,2,8701363,2,2,2,14,8,{},{}
-1508,Smasher_,Smasher,4,9000,0,1000,54,,1,3,8701363,2,2,2,14,8,{},{}
-1509,Smasher__,Smasher,4,9000,0,1000,54,,1,3,8701363,2,2,2,14,8,{},{}
-1510,Flail,Flail,4,16000,0,900,69,,1,2,312754,2,2,2,14,8,{},{}
-1511,Flail_,Flail,4,16000,0,900,69,,1,3,312754,2,2,2,14,8,{},{}
-1512,Flail__,Flail,4,16000,0,900,69,,1,3,312754,2,2,2,14,8,{},{}
-1513,Morning_Star,Morning Star,4,41000,0,1500,110,,1,1,312754,2,2,3,27,8,{},{}
-1514,Morning_Star_,Morning Star,4,41000,0,1500,110,,1,2,312754,2,2,3,27,8,{},{}
-1515,Morning_Star__,Morning Star,4,41000,0,1500,110,,1,2,312754,2,2,3,27,8,{},{}
-1516,Sword_Mace,Sword Mace,4,50000,0,1200,130,,1,0,312754,2,2,3,27,8,{},{}
-1517,Sword_Mace_,Sword Mace,4,50000,0,1200,130,,1,1,312754,2,2,3,27,8,{},{}
-1518,Sword_Mace__,Sword Mace,4,50000,0,1200,130,,1,1,312754,2,2,3,27,8,{},{}
-1519,Chain,Chain,4,23000,0,800,84,,1,2,312754,2,2,2,14,8,{},{}
-1520,Chain_,Chain,4,23000,0,800,84,,1,3,312754,2,2,2,14,8,{},{}
-1521,Chain__,Chain,4,23000,0,800,84,,1,3,312754,2,2,2,14,8,{},{}
-1522,Stunner,Stunner,4,60000,0,2000,140,,1,0,256,2,2,3,27,8,{},{ bonus2 bAddEff,Eff_Stan,1000; },,,,
-1523,Spike,Spike,4,20,0,700,85,,1,0,33040,2,2,4,40,8,{},{ bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67; },,,
-1524,Golden_Mace,Golden Mace,4,20,0,800,110,,1,1,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,10; bonus bUnbreakable,100; },,,,
-1525,Long_Mace,Long Mace,4,20,0,800,135,,3,0,33040,2,2,4,40,8,{},{ bonus bLongAtkDef,10; },,,,,
-1526,Slash,Slash,4,20,0,1000,145,,1,0,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,15; bonus2 bWeaponComaRace,1,50; },,
-1527,Quadrille,Quadrille,4,20,0,900,165,,1,0,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,10; bonus2 bAddRace,7,10; bonus2 bAddEle,2,10; }
-1528,Grand_Cross,Grand Cross,4,20,0,1500,140,,1,0,33040,2,2,4,40,8,{},{ bonus bAtkEle,6; skill 77,3; bonus3 bAutoSpell,77,3,25; bonus2 bHPDrainRate,100,1; },
-1529,Iron_Driver,Iron Driver,4,20,0,3000,155,,1,0,33024,2,2,3,78,8,{},{},,,,,,
-1530,Mjolnir,Mjolnir,4,20,0,6000,250,,1,0,8701363,2,2,4,98,8,{},{ bonus bAtkEle,4; bonus bDex,40; bonus bStr,15; bonus bAspdRate,30; },,
-1531,Spanner,Spanner,4,20,0,2500,115,,1,0,33040,2,2,3,55,8,{},{ bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stan,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100; },,,,,,
-// Books
-1550,Book,Book,4,30000,0,600,85,,1,3,65792,2,2,2,14,15,{},{},,,,,,
-1551,Bible,Bible,4,60000,0,1000,115,,1,2,65792,2,2,3,27,15,{},{ bonus bInt,2; },,,,,
-1552,Tablet,Tablet,4,51000,0,800,125,,1,1,65792,2,2,3,27,15,{},{},,,,,,
-1553,Book_of_Billows,Book of Billows,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,1; },,,,,
-1554,Book_of_Mother_Earth,Book of Mother Earth,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,2; },,,,,
-1555,Book_of_Blazing_Sun,Book of Blazing Sun,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,3; },,,,,,,,,,
-1556,Book_of_Gust_of_Wind,Book of Gust of Wind,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,4; },,,,,,,,,,
-1557,Book_of_the_Apocalypse,Book of the Apocalypse,4,35000,0,800,120,,1,0,65792,2,2,4,40,15,{},{ bonus bAtkEle,7; bonus2 bSubEle,6,-5; bonus2 bAddEle,1,7; bonus2 bAddEle,2,7; bonus2 bAddEle,3,7; bonus2 bAddEle,4,7; }
-1558,Girl's_Diary,Girl's Diary,4,20,0,300,60,,1,1,65792,2,2,4,40,15,{},{ bonus2 bAddDamageClass,1188,150; },,,,,,,,,
-1599,Angra_Manyu,Angra Manyu,4,120,0,10,1,,1,5,10477567,2,2,4,2,8,{},{},,,,,,,,,,,
-// Rods and Staffs
-1601,Rod,Rod,4,50,0,400,15,,1,3,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,,
-1602,Rod_,Rod,4,50,0,400,15,,1,4,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,,
-1603,Rod__,Rod,4,50,0,400,15,,1,0,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,,
-1604,Wand,Wand,4,2500,0,400,25,,1,2,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,,
-1605,Wand_,Wand,4,2500,0,400,25,,1,3,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,,
-1606,Wand__,Wand,4,2500,0,400,25,,1,0,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,,
-1607,Staff,Staff,4,9500,0,400,40,,1,2,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,,
-1608,Staff_,Staff,4,9500,0,400,40,,1,3,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,,
-1609,Staff__,Staff,4,9500,0,400,40,,1,0,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,,
-1610,Arc_Wand,Arc Wand,4,45000,0,400,60,,1,1,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; },
-1611,Arc_Wand_,Arc Wand,4,45000,0,400,60,,1,2,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; },
-1612,Arc_Wand__,Arc Wand,4,45000,0,400,60,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; },
-1613,Mighty_Staff,Mighty Staff,4,20,0,700,130,,1,0,99092,2,2,3,24,10,{},{ bonus bStr,10; bonus bMatkRate,15; bonus2 bSpDrainRate,100,-2; },
-1614,Blessed_Wand,Wand of Occult,4,20,0,700,75,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; },
-1615,Bone_Wand,Bone Wand,4,20,0,700,40,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,4; bonus bAtkEle,9; bonus bMatkRate,15; }
-// Bows
-1701,Bow,Bow,4,1000,0,500,15,,5,3,1706056,2,34,1,4,11,{},{},,,
-1702,Bow_,Bow,4,1000,0,500,15,,5,4,1706056,2,34,1,4,11,{},{},,,
-1703,Bow__,Bow,4,1000,0,500,15,,5,0,1706056,2,34,1,4,11,{},{},,,
-1704,Composite_Bow,Composite Bow,4,2500,0,600,29,,5,3,1706056,2,34,1,4,11,{},{},,,
-1705,Composite_Bow_,Composite Bow,4,2500,0,600,29,,5,4,1706056,2,34,1,4,11,{},{},,,
-1706,Composite_Bow__,Composite Bow,4,2500,0,600,29,,5,0,1706056,2,34,1,4,11,{},{},,,
-1707,Great_Bow,Great Bow,4,10000,0,1000,50,,5,2,1706056,2,34,2,18,11,{},{},,,
-1708,Great_Bow_,Great Bow,4,10000,0,1000,50,,5,3,1706056,2,34,2,18,11,{},{},,,
-1709,Great_Bow__,Great Bow,4,10000,0,1000,50,,5,0,1706056,2,34,2,18,11,{},{},,,
-1710,CrossBow,Cross Bow,4,17000,0,900,65,,5,2,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,,
-1711,CrossBow_,Cross Bow,4,17000,0,900,65,,5,3,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,,
-1712,CrossBow__,Cross Bow,4,17000,0,900,65,,5,0,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,,
-1713,Arbalest,Arbalest,4,48000,0,1000,90,,5,1,1706056,2,34,3,33,11,{},{ bonus bDex,2; },,,,,,,,,,,,,
-1714,Gakkung,Gakkung,4,42000,0,1100,100,,5,1,1706056,2,34,3,33,11,{},{},,,,,,,,,,,,,,
-1715,Arbalest_,Arbalest,4,48000,0,1000,90,,5,2,1706056,2,34,3,33,11,{},{ bonus bDex,2; },,,,,,,,,,,,,
-1716,Gakkung_,Gakkung,4,42000,0,1100,100,,5,2,1706056,2,34,3,33,11,{},{},,,,,,,,,,,,,,
-1718,Hunter_Bow,Hunter Bow,4,64000,0,1500,125,,5,0,2048,2,34,3,33,11,{},{},,,,,,,,,,,,,,
-1719,Bow_of_Roguemaster,Roguemaster's Bow,4,20,0,500,75,,11,0,131136,2,34,4,48,11,{},{ bonus2 bAddStealRate,100,0; },,,,,,,,,,,,,,
-1720,Bow_of_Rudra,Rudra's Bow,4,20,0,1200,150,,5,0,1705992,2,34,4,48,11,{},{ bonus bAtkEle,6; bonus bInt,5; skill 35,1; skill 28,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000; }
-1721,Repeating_Crossbow,Repeating Crossbow,4,89000,0,2000,95,,9,1,133184,2,34,3,65,11,{},{},,,,,,,,,,,,,,
-1722,Ballista,Ballista,4,20,0,3500,145,,5,0,1574912,2,34,4,77,11,{},{},,,,,,,,,,,,,,
-// Arrows
-1750,Arrow,Arrow,10,1,0,1,25,,,,1706056,2,32768,,1,,{},{},,,,,,,,,,,,,,
-1751,Silver_Arrow,Silver Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,6; },,,,,,,,,,,,,
-1752,Fire_Arrow,Fire Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,3; },,
-1753,Steel_Arrow,Steel Arrow,10,3,0,2,40,,,,1706056,2,32768,,1,,{},{},,,
-1754,Crystal_Arrow,Crystal Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,1; },,
-1755,Arrow_of_Wind,Arrow of Wind,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,4; },,
-1756,Stone_Arrow,Stone Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,2; },,
-1757,Immaterial_Arrow,Immaterial Arrow,10,3,0,1,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,8; },,
-1758,Stun_Arrow,Stun Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Stan,500; },
-1759,Freezing_Arrow,Freeze Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,1; bonus2 bAddEff,Eff_Freeze,500; }
-1760,Flash_Arrow,Flash Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Blind,500; },
-1761,Curse_Arrow,Curse Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Curse,500; },
-1762,Rusty_Arrow,Rusted Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,5; },,
-1763,Poison_Arrow,Poison Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,500; }
-1764,Incisive_Arrow,Sharp Arrow,10,3,0,3,10,,,,1706056,2,32768,,1,,{},{ bonus bCritical,10; },,
-1765,Oridecon_Arrow,Oridecon Arrow,10,3,0,3,50,,,,1706056,2,32768,,1,,{},{},,,
-1766,Arrow_of_Counter_Evil,Arrow of Counter Evil,10,40,0,3,50,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,6; },,
-1767,Arrow_of_Shadow,Shadow Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,7; },,
-1768,Sleep_Arrow,Sleep Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Sleep,500; }
-1769,Silence_Arrow,Mute Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Silence,500; }
-1770,Iron_Arrow,Iron Arrow,10,2,0,1,30,,,,1706056,2,32768,,1,,{},{},,
-// Knuckles
-1801,Waghnakh,Waghnakh,4,8000,0,400,30,,1,3,33024,2,2,1,1,12,{},{},,
-1802,Waghnakh_,Waghnakh,4,8000,0,400,30,,1,4,33024,2,2,1,1,12,{},{},,
-1803,Knuckle_Duster,Knuckle Duster,4,25000,0,450,50,,1,2,33024,2,2,2,12,12,{},{},,
-1804,Knuckle_Duster_,Knuckle Duster,4,25000,0,450,50,,1,3,33024,2,2,2,12,12,{},{},,
-1805,Hora,Hora,4,32000,0,450,65,,1,2,33024,2,2,2,12,12,{},{},,
-1806,Hora_,Hora,4,32000,0,450,65,,1,3,33024,2,2,2,12,12,{},{},,
-1807,Fist,Fist,4,53000,0,650,115,,1,0,33024,2,2,3,24,12,{},{},,
-1808,Fist_,Fist,4,53000,0,650,115,,1,1,33024,2,2,3,24,12,{},{},,
-1809,Claw,Claw,4,55000,0,500,86,,1,1,33024,2,2,3,24,12,{},{ bonus bStr,2; },
-1810,Claw_,Claw,4,55000,0,500,86,,1,2,33024,2,2,3,24,12,{},{ bonus bStr,2; },
-1811,Finger,Finger,4,58000,0,500,97,,1,1,33024,2,2,3,24,12,{},{},,
-1812,Finger_,Finger,4,58000,0,500,97,,1,2,33024,2,2,3,24,12,{},{},,
-1813,Kaiser_Knuckle,Kaiser Knuckle,4,20,0,450,110,,1,0,33024,2,2,4,36,12,{},{ bonus bAtkEle,4; bonus2 bAddRace,1,5; bonus2 bAddEle,1,10; bonus2 bAddEle,2,10; bonus2 bAddEle,3,10; bonus2 bAddEle,4,10; }
-1814,Berserk,Berserk,4,20,0,500,120,,1,0,33024,2,2,4,36,12,{},{ bonus bAspdRate,12; },,,,,,,,,,
-// Instruments
-1901,Violin,Violin,4,4000,0,700,50,,1,3,524288,2,2,1,2,13,{},{},,,,,,,,,,,
-1902,Violin_,Violin,4,4000,0,700,50,,1,4,524288,2,2,1,2,13,{},{},,,,,,,,,,,
-1903,Mandolin,Mandolin,4,18000,0,400,90,,1,2,524288,2,2,2,14,13,{},{},,,,,,,,,,,
-1904,Mandolin_,Mandolin,4,18000,0,400,90,,1,3,524288,2,2,2,14,13,{},{},,,,,,,,,,,
-1905,Lute,Lute,4,24500,0,500,105,,1,2,524288,2,2,2,14,13,{},{},,,,,,,,,,,
-1906,Lute_,Lute,4,24500,0,500,105,,1,3,524288,2,2,2,14,13,{},{},,,,,,,,,,,
-1907,Guitar,Guitar,4,47000,0,900,142,,1,0,524288,2,2,3,27,13,{},{},,,,,,,,,,,
-1908,Guitar_,Guitar,4,47000,0,900,142,,1,1,524288,2,2,3,27,13,{},{},,,,,,,,,,,
-1909,Harp,Harp,4,62000,0,900,114,,1,1,524288,2,2,3,27,13,{},{ bonus bInt,2; },,,,,,,,,,
-1910,Harp_,Harp,4,62000,0,900,114,,1,2,524288,2,2,3,27,13,{},{ bonus bInt,2; },,,,,,,,,,
-1911,Guh_Moon_Goh,Guhmoongoh,4,54000,0,1300,126,,1,1,524288,2,2,3,27,13,{},{},,,,,,,,,,,
-1912,Guh_Moon_Goh_,Guhmoongoh,4,54000,0,1300,126,,1,2,524288,2,2,3,27,13,{},{},,,,,,,,,,,
-1913,Electric_Guitar,Electric Guitar,4,20,0,1800,110,,1,0,524288,2,2,4,70,13,{},{ bonus3 bAutoSpell,84,1,25; bonus bAtkEle,4; bonus bInt,2; bonus bAgi,1; }
-// Whips
-1950,Rope,Rope,4,2500,0,400,45,,2,3,1048576,2,2,1,3,14,{},{},,,
-1951,Rope_,Rope,4,2500,0,400,45,,2,4,1048576,2,2,1,3,14,{},{},,,
-1952,Line,Line,4,12000,0,300,80,,2,2,1048576,2,2,2,16,14,{},{},,,
-1953,Line_,Line,4,12000,0,300,80,,2,3,1048576,2,2,2,16,14,{},{},,,
-1954,Wire,Wire,4,17500,0,1000,95,,2,2,1048576,2,2,2,16,14,{},{},,,
-1955,Wire_,Wire,4,17500,0,1000,95,,2,3,1048576,2,2,2,16,14,{},{},,,
-1956,Rante_Whip,Rante Whip,4,32000,0,900,135,,2,0,1048576,2,2,3,30,14,{},{},,,
-1957,Rante_Whip_,Rante Whip,4,32000,0,900,135,,2,1,1048576,2,2,3,30,14,{},{},,,
-1958,Tail,Tail,4,41000,0,700,105,,2,1,1048576,2,2,3,30,14,{},{ bonus bLuk,3; },,
-1959,Tail_,Tail,4,41000,0,700,105,,2,2,1048576,2,2,3,30,14,{},{ bonus bLuk,3; },,
-1960,Whip,Whip,4,38000,0,700,120,,2,1,1048576,2,2,3,30,14,{},{},,,
-1961,Whip_,Whip,4,38000,0,700,120,,2,2,1048576,2,2,3,30,14,{},{},,,
-1962,Lariat,Lariat,4,20,0,400,100,,2,0,1048576,2,2,4,44,14,{},{ bonus bDex,5; bonus bAgi,1; },
-1963,Rapture_Rose,Rapture Rose,4,20,0,300,115,,2,0,1048576,2,2,4,44,14,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,5000; }
-1964,Chemeti,Chemeti,4,20,0,700,135,,2,0,1048576,2,2,4,44,14,{},{ bonus bCritical,5; bonus bFlee,10; bonus bFlee2,2; }
-
-1998,Jeramiah's_Jur,Jeramiah's Jur,3,20,0,10,,,,,,,,,,,{},{}
-1999,Zed's_Staff,Zed's Staff,3,20,0,10,,,,,,,,,,,{},{}
-
-// Shields
-//===================================================================
-2101,Guard,Guard,5,500,0,300,,3,,0,10477567,2,32,,0,1,{},{},,,
-2102,Guard_,Guard,5,500,0,300,,3,,1,10477567,2,32,,0,1,{},{},,,
-2103,Buckler,Buckler,5,14000,0,600,,4,,0,2020850,2,32,,0,2,{},{},,,
-2104,Buckler_,Buckler,5,14000,0,600,,4,,1,2020850,2,32,,0,2,{},{},,,
-2105,Shield,Shield,5,56000,0,1300,,6,,0,16514,2,32,,0,3,{},{},,,
-2106,Shield_,Shield,5,56000,0,1300,,6,,1,16514,2,32,,0,3,{},{},,,
-2107,Mirror_Shield,Mirror Shield,5,60000,0,1000,,4,,0,16514,2,32,,0,4,{},{ bonus bMdef,5; },,
-2108,Mirror_Shield_,Mirror Shield,5,60000,0,1000,,4,,1,16514,2,32,,0,4,{},{ bonus bMdef,5; },,
-2109,Memorize_Book,Book of Summoning,5,20,0,1000,,3,,0,66052,2,32,,0,,{},{ bonus bInt,1; bonus bMdef,2; },
-2110,Holy_Guard,Holy Guard,5,20,0,1400,,5,,0,16384,2,32,,68,3,{},{ bonus bVit,2; bonus bMdef,2; },
-2111,Evangelist,Evangelist,5,20,0,1400,,5,,0,16384,2,32,,83,3,{},{ bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakable,100; }
-2112,Novice_Guard,Novice Guard,5,20,0,1,,3,,0,8388609,2,32,,0,1,{},{},,,
-2199,Ahura_Mazda,Ahura Mazda,5,20,0,100,,,,0,10477567,2,32,,,,{},{ bonus bMdef,1; bonus bDef,1; bonus bFlee2,1; bonus2 bSubEle,0,1; }
-
-// Headgear items
-//===================================================================
-2201,Sunglasses,Sunglasses,5,5000,0,100,,0,,0,10477567,2,512,,0,12,{},{ bonus2 bResEff,Eff_Blind,500; },
-2202,Sunglasses_,Sunglasses,5,5000,0,100,,0,,1,10477567,2,512,,0,12,{},{ bonus2 bResEff,Eff_Blind,500; }
-2203,Glasses,Glasses,5,4000,0,100,,0,,0,10477567,2,512,,0,3,{},{},,
-2204,Glasses_,Glasses,5,4000,0,100,,0,,1,10477567,2,512,,0,3,{},{},,
-2205,Diver's_Goggles,Diver Goggles,5,3500,0,100,,0,,0,10477567,2,512,,0,10,{},{},,
-2206,Wedding_Veil,Wedding Veil,5,23000,0,100,,0,,0,10477567,0,256,,0,44,{},{ bonus bMdef,5; },
-2207,Fancy_Flower,Fancy Flower,5,20,0,100,,0,,0,10477567,2,256,,0,4,{},{ bonus2 bSubRace,3,10; }
-2208,Ribbon,Ribbon,5,800,0,100,,1,,0,10477567,2,256,,0,17,{},{ bonus bMdef,3; },
-2209,Ribbon_,Ribbon,5,800,0,100,,1,,1,10477567,2,256,,0,17,{},{ bonus bMdef,3; },
-2210,Hair_Band,Hair Band,5,500,0,100,,1,,0,10477567,2,256,,0,9,{},{},,
-2211,Bandana,Bandana,5,400,0,100,,1,,0,10477567,2,256,,0,6,{},{},,
-2212,Eye_Bandage,Eye Patch,5,1000,0,100,,0,,0,10477567,2,512,,0,13,{},{},,
-2213,Kitty_Band,Kitty Band,5,20,0,100,,2,,0,10477567,2,256,,0,2,{},{},,
-2214,Bunny_Band,Bunny Band,5,20,0,100,,2,,0,10477567,2,256,,0,15,{},{ bonus bLuk,2; },
-2215,Flower_Hairband,Flower Band,5,20,0,100,,2,,0,10477567,2,256,,0,5,{},{},,
-2216,Biretta,Biretta,5,9000,0,100,,4,,0,33040,2,256,,0,11,{},{},,
-2217,Biretta_,Biretta,5,9000,0,100,,4,,1,33040,2,256,,0,11,{},{},,
-2218,Flu_Mask,Flu Mask,5,300,0,100,,0,,0,10477567,2,1,,0,8,{},{ bonus2 bResEff,Eff_Silence,1000; }
-2219,Flu_Mask_,Flu Mask,5,300,0,100,,0,,1,10477567,2,1,,0,8,{},{ bonus2 bResEff,Eff_Silence,1000; }
-2220,Hat,Hat,5,1000,0,200,,2,,0,10477567,2,256,,0,16,{},{},,
-2221,Hat_,Hat,5,1000,0,200,,2,,1,10477567,2,256,,0,16,{},{},,
-2222,Turban,Turban,5,4500,0,300,,3,,0,2088958,2,256,,0,7,{},{},,
-2223,Turban_,Turban,5,4500,0,300,,3,,1,2088958,2,256,,0,7,{},{},,
-2224,Goggles,Goggles,5,10000,0,300,,5,,0,1989866,2,768,,0,1,{},{},,
-2225,Goggles_,Goggles,5,10000,0,300,,5,,1,1989866,2,768,,0,1,{},{},,
-2226,Cap,Cap,5,12000,0,400,,4,,0,1989866,2,256,,0,14,{},{},,
-2227,Cap_,Cap,5,12000,0,400,,4,,1,1989866,2,256,,0,14,{},{},,
-2228,Helm,Helm,5,44000,0,600,,6,,0,16514,2,256,,0,40,{},{},,
-2229,Helm_,Helm,5,44000,0,600,,6,,1,16514,2,256,,0,40,{},{},,
-2230,Gemmed_Sallet,Gemmed Sallet,5,50000,0,500,,4,,0,414946,2,256,,0,0,{},{ bonus bMdef,3; },
-2231,Gemmed_Sallet_,Gemmed Sallet,5,50000,0,500,,4,,1,414946,2,256,,0,0,{},{ bonus bMdef,3; },
-2232,Circlet,Circlet,5,7500,0,300,,3,,0,99092,2,256,,0,18,{},{ bonus bMdef,3; },
-2233,Circlet_,Circlet,5,7500,0,300,,3,,1,99092,2,256,,0,18,{},{ bonus bMdef,3; },
-2234,Tiara,Tiara,5,20,0,400,,4,,0,2088958,0,256,,45,19,{},{ bonus bInt,2; },
-2235,Crown,Crown,5,20,0,400,,4,,0,2088958,1,256,,45,45,{},{ bonus bInt,2; },
-2236,Santa's_Hat,Santa's Hat,5,20,0,100,,1,,0,10477567,2,256,,0,20,{},{ bonus bMdef,1; bonus bLuk,1; }
-2237,Bandit_Beard,Bandit Beard,5,2,0,100,,0,,0,10477567,2,1,,0,21,{},{},,
-2238,Moustache,Moustache,5,2,0,100,,0,,0,10477567,2,1,,0,22,{},{},,
-2239,Single_Glass,Single Glass,5,10000,0,100,,0,,0,10477567,2,512,,0,23,{},{},,
-2240,Beard,Beard,5,2,0,100,,0,,0,10477567,2,1,,0,24,{},{},,
-2241,Granpa_Beard,Granpa Beard,5,5000,0,100,,0,,0,10477567,2,1,,0,25,{},{},,
-2242,Purple_Sunglasses,Purple Glasses,5,24000,0,100,,1,,0,10477567,2,512,,0,26,{},{ bonus2 bResEff,Eff_Blind,1000; }
-2243,Geek_Glasses,Geek Glasses,5,20000,0,100,,1,,0,10477567,2,512,,0,27,{},{ bonus2 bResEff,Eff_Blind,1500; }
-2244,Big_Ribbon,Big Ribbon,5,15000,0,200,,2,,0,2088958,2,256,,0,28,{},{ bonus bMdef,3; },
-2245,Sweet_Gent,Sweet Gent,5,15000,0,400,,3,,0,2088958,2,256,,0,29,{},{},,
-2246,Golden_Gear,Golden Gear,5,20,0,900,,5,,0,2088958,2,256,,40,30,{},{ bonus2 bSubEle,0,10; },,
-2247,Romantic_Gent,Romantic Gent,5,15000,0,400,,3,,0,2088958,2,256,,0,31,{},{},,
-2248,Western_Grace,Western Grace,5,15000,0,400,,3,,0,2088958,2,256,,0,32,{},{},,
-2249,Coronet,Coronet,5,20,0,300,,3,,0,2088958,2,256,,0,33,{},{ bonus bInt,1; },
-2250,Fillet,Cute Ribbon,5,500,0,100,,1,,0,2088958,2,256,,0,34,{},{ bonus bMaxSP,20; },,,,
-2251,Holy_Bonnet,Monk Hat,5,30000,0,100,,5,,0,33040,2,256,,0,35,{},{ bonus bMdef,3; },,,,
-2252,Wizard_Hat,Wizard Hat,5,20,0,300,,4,,0,66052,2,256,,0,36,{},{ bonus bMaxSP,100; },,,,
-2253,Sunflower,Sunflower,5,20,0,100,,1,,0,10477567,2,256,,0,37,{},{ bonus2 bSubRace,4,10; },,,
-2254,Angel_Wing,Angel Wing,5,20,0,100,,2,,0,2088958,2,256,,0,38,{},{ bonus bMdef,3; bonus bAgi,1; bonus bLuk,1; bonus2 bSubRace,6,3; }
-2255,Evil_Wing,Evil Wing,5,20,0,100,,3,,0,2088958,2,256,,0,39,{},{ bonus bMdef,2; bonus bStr,1; bonus2 bSubRace,8,3; },
-2256,Majestic_Goat,Majestic Goat,5,20,0,800,,5,,0,279714,2,256,,0,41,{},{ bonus bStr,1; },,,,
-2257,Snow_Horn,Snow Horn,5,20,0,100,,2,,0,10477567,2,256,,0,42,{},{},,,,,
-2258,Spiky_Band,Spiky Band,5,20,0,1000,,6,,0,447986,2,256,,50,43,{},{},,,,,
-2259,Mini_Propeller,Mini Propeller,5,20,0,100,,1,,0,10477567,2,256,,0,46,{},{},,,,,
-2260,Mini_Glasses,Mini Glasses,5,28000,0,100,,1,,0,2088958,2,512,,0,47,{},{},,,,,
-2261,Army_Cap,Army Cap,5,20,0,400,,4,,0,414946,2,256,,0,48,{},{},,,,,
-2262,Pierrot_Nose,Pierrot Nose,5,20,0,100,,0,,0,10477567,2,1,,0,49,{},{},,,,,
-2263,Zorro_Masque,Zorro Masque,5,20,0,100,,0,,0,2088958,2,512,,0,50,{},{},,,,,
-2264,Munak_Hat,Munak Hat,5,20,0,300,,5,,0,10477567,2,769,,0,51,{},{ bonus2 bSubRace,1,10; },,,
-2265,Gangster_Mask,Gangster Mask,5,20,0,100,,0,,0,10477567,2,1,,0,52,{},{ bonus2 bResEff,Eff_Silence,1500; },,,
-2266,Iron_Cain,Iron Cain,5,20,0,300,,1,,0,16514,2,1,,50,53,{},{},,,
-2267,Cigar,Cigar,5,20,0,100,,0,,0,2088958,2,1,,0,54,{},{ bonus2 bSubRace,4,3; },
-2268,Pipe,Pipe,5,20,0,100,,0,,0,2088958,2,1,,0,55,{},{ bonus2 bSubRace,4,3; },
-2269,Centimental_Flower,Romantic Flower,5,20,0,100,,0,,0,2088958,2,1,,0,56,{},{ bonus2 bSubRace,3,3; },
-2270,Centimental_Leaf,Romantic Leaf,5,20,0,100,,0,,0,2088958,2,1,,0,57,{},{ bonus2 bSubRace,3,3; },
-2271,Jack_a_Dandy,Jack a Dandy,5,45000,0,100,,1,,0,2088958,2,256,,0,58,{},{},,,
-2272,Stop_Post,Stop Post,5,20,0,400,,1,,0,10477567,2,256,,0,59,{},{},,,
-2273,Doctor_Cap,Doctor Band,5,20,0,100,,1,,0,2088958,2,256,,0,60,{},{ bonus bInt,1; },,
-2274,Ghost_Bandana,Ghost Bandana,5,20,0,100,,0,,0,2088958,2,256,,0,61,{},{ bonus bAgi,2; bonus2 bSubEle,8,10; }
-2275,Red_Bandana,Red Bandana,5,20,0,100,,2,,0,10477567,2,256,,0,62,{},{},,,
-2276,Eagle_Eyes,Eagle Eyes,5,20,0,100,,1,,0,10477567,2,512,,0,63,{},{},,,
-2277,Nurse_Cap,Nurse Cap,5,20,0,100,,1,,0,33040,2,256,,0,64,{},{ bonus bInt,1; bonus bLuk,1; },
-2278,Mr_Smile,Mr. Smile,5,60,0,100,,1,,0,10477567,2,513,,0,65,{},{},,,
-2279,Bomb_Wick,Bomb Wick,5,20,0,100,,1,,0,10477567,2,256,,0,66,{},{},,,
-2280,Sakkat,Sakkat,5,20,0,300,,3,,0,10477567,2,256,,0,67,{},{ bonus bAgi,1; },,
-2281,Opera_Masque,Opera Masque,5,8000,0,200,,2,,0,2088958,2,513,,0,68,{},{},,,
-2282,Heaven_Ring,Heaven Ring,5,20,0,100,,0,,0,10477567,2,256,,0,69,{},{ bonus2 bSubEle,6,10; }
-2283,Ear_Mufs,Ear Mufs,5,20,0,200,,3,,0,10477567,2,256,,0,70,{},{ bonus2 bResEff,Eff_Curse,1000; }
-2284,Antler,Antler,5,20,0,500,,4,,0,2088958,2,256,,0,71,{},{},,
-2285,Apple_o'_Archer,Apple o' Archer,5,20,0,200,,0,,0,2088958,2,256,,30,72,{},{ bonus bDex,3; },
-2286,Elven_Ears,Elven Ears,5,20,0,100,,0,,0,2088958,2,512,,70,73,{},{},,
-2287,Pirate_Bandana,Pirate Bandana,5,20,0,100,,3,,0,2088958,2,256,,0,74,{},{ bonus bStr,1; },
-2288,Mr_Scream,Mr. Scream,5,20,0,100,,1,,0,2088958,2,513,,0,75,{},{},,
-2289,Poo_Poo_Hat,Poo Poo Hat,5,20,0,700,,0,,0,10477567,2,256,,0,76,{},{ bonus2 bSubRace,7,10; }
-2290,Funeral_Hat,Funeral Hat,5,3000,0,100,,1,,0,10477567,2,256,,0,77,{},{},,
-2291,Masquerade,Masquerade,5,20,0,100,,0,,0,2088958,2,512,,0,78,{},{ bonus2 bAddRace,7,3; }
-2292,Welding_Mask,Welding Mask,5,20,0,300,,2,,0,263200,2,513,,50,79,{},{ bonus2 bSubEle,3,10; }
-2293,Pretend_Murdered,Pretend Murdered,5,20,0,100,,1,,0,10477567,2,256,,0,80,{},{},,
-2294,Stellar,Stellar,5,20,0,100,,1,,0,10477567,2,256,,0,81,{},{},,
-2295,Blinker,Blinker,5,1500,0,100,,0,,0,2088958,2,512,,0,82,{},{ bonus2 bResEff,Eff_Blind,10000; }
-2296,Binoculars,Binoculars,5,20,0,100,,1,,0,1574920,2,512,,50,83,{},{ bonus bDex,1; },
-2297,Goblini_Mask,Goblini Mask,5,20,0,100,,1,,0,2088958,2,513,,0,84,{},{},,
-2298,Green_Feeler,Green Feeler,5,20,0,100,,2,,0,10477567,2,256,,0,85,{},{}
-2299,Viking_Helm,Viking Helm,5,20,0,500,,5,,0,414946,2,256,,0,86,{},{}
-
-// Armor
-//===================================================================
-2301,Cotton_Shirt,Cotton Shirt,5,10,0,100,,1,,0,10477567,2,16,,0,0,{},{}
-2302,Cotton_Shirt_,Cotton Shirt,5,10,0,100,,1,,1,10477567,2,16,,0,0,{},{}
-2303,Leather_Jacket,Leather Jacket,5,200,0,200,,2,,0,10477567,2,16,,0,0,{},{}
-2304,Leather_Jacket_,Leather Jacket,5,200,0,200,,2,,1,10477567,2,16,,0,0,{},{}
-2305,Adventure_Suit,Adventurer's Suit,5,1000,0,300,,3,,0,10477567,2,16,,0,0,{},{}
-2306,Adventure_Suit_,Adventurer's Suit,5,1000,0,300,,3,,1,10477567,2,16,,0,0,{},{}
-2307,Mantle,Mantle,5,10000,0,600,,4,,0,2088958,2,16,,0,0,{},{}
-2308,Mantle_,Mantle,5,10000,0,600,,4,,1,2088958,2,16,,0,0,{},{}
-2309,Coat,Coat,5,22000,0,1200,,5,,0,2088958,2,16,,0,0,{},{}
-2310,Coat_,Coat,5,22000,0,1200,,5,,1,2088958,2,16,,0,0,{},{}
-2311,Mink_Coat,Mink Coat,5,50000,0,2300,,6,,1,2088958,2,16,,30,0,{},{}
-2312,Padded_Armor,Padded Armor,5,48000,0,2800,,7,,0,414946,2,16,,0,0,{},{}
-2313,Padded_Armor_,Padded Armor,5,48000,0,2800,,7,,1,414946,2,16,,0,0,{},{}
-2314,Chain_Mail,Chain Mail,5,65000,0,3300,,8,,0,414946,2,16,,0,0,{},{},,,,,
-2315,Chain_Mail_,Chain Mail,5,65000,0,3300,,8,,1,414946,2,16,,0,0,{},{},,,,,
-2316,Full_Plate,Full Plate,5,80000,0,4500,,10,,0,16514,2,16,,40,0,{},{},,,,,
-2317,Full_Plate_,Full Plate,5,80000,0,4500,,10,,1,16514,2,16,,40,0,{},{},,,,,
-2318,Clothes_of_the_Lord,Lord's Clothes,5,20,0,2500,,8,,1,263200,2,16,,70,0,{},{ bonus bMdef,5; bonus bInt,1; },,,
-2319,Glittering_Clothes,Glittering Jacket,5,20,0,2500,,7,,1,2088958,2,16,,60,0,{},{ bonus bMdef,5; bonus2 bAddEffect,Eff_Blind,500; },,,,
-2320,Formal_Suit,Formal Suit,5,20,0,300,,5,,1,2088958,2,16,,0,0,{},{},,,,,
-2321,Silk_Robe,Silk Robe,5,8000,0,400,,3,,0,378806,2,16,,0,0,{},{ bonus bMdef,10; },,,,
-2322,Silk_Robe_,Silk Robe,5,8000,0,400,,3,,1,378806,2,16,,0,0,{},{ bonus bMdef,10; },,,,
-2323,Scapulare,Scapulare,5,6500,0,400,,4,,0,33040,2,16,,0,0,{},{},,,,,
-2324,Scapulare_,Scapulare,5,6500,0,400,,4,,1,33040,2,16,,0,0,{},{},,,,,
-2325,Saint_Robe,Saint's Robe,5,54000,0,600,,6,,0,296240,2,16,,0,0,{},{ bonus bMdef,5; },,,,
-2326,Saint_Robe_,Saint's Robe,5,54000,0,600,,6,,1,296240,2,16,,0,0,{},{ bonus bMdef,5; },,,,
-2327,Holy_Robe,Holy Robe,5,20,0,1700,,7,,0,33040,2,16,,60,0,{},{ bonus bMdef,5; bonus2 bSubRace,6,15; bonus2 bSubEle,7,10; }
-2328,Wooden_Mail,Wooden Mail,5,5500,0,1000,,4,,0,279714,2,16,,0,0,{},{},,,,,
-2329,Wooden_Mail_,Wooden Mail,5,5500,0,1000,,4,,1,279714,2,16,,0,0,{},{},,,,,
-2330,Tights,Tights,5,71000,0,500,,6,,0,1574920,2,16,,45,0,{},{ bonus bDex,1; },
-2331,Tights_,Tights,5,71000,0,500,,6,,1,1574920,2,16,,45,0,{},{ bonus bDex,1; },
-2332,Silver_Robe,Silver Robe,5,7000,0,700,,4,,0,66052,2,16,,0,0,{},{},,
-2333,Silver_Robe_,Silver Robe,5,7000,0,700,,4,,1,66052,2,16,,0,0,{},{},,
-2334,Mage_Coat,Mage Coat,5,20,0,600,,5,,0,66052,2,16,,50,0,{},{ bonus bMdef,5; bonus bInt,1; }
-2335,Thief_Clothes,Thief Clothes,5,74000,0,100,,6,,0,135232,2,16,,0,0,{},{ bonus bAgi,1; },
-2336,Thief_Clothes_,Thief Clothes,5,74000,0,100,,6,,1,135232,2,16,,0,0,{},{ bonus bAgi,1; },
-2337,Ninja_Suit,Ninja Suit,5,20,0,1500,,7,,0,135232,2,16,,50,0,{},{ bonus bAgi,1; bonus bMdef,3; }
-2338,Wedding_Dress,Wedding Dress,5,43000,0,500,,0,,0,10477566,0,16,,0,0,{},{ bonus bMdef,15; changebase 22; },
-2339,Pantie,Pantie,5,1000,0,100,,4,,0,10477567,2,16,,0,0,{},{},,
-2340,Novice_Breastplate,Novice Breastplate,5,89000,0,500,,4,,1,8388609,2,16,,10,0,{},{},,
-2341,Legion_Plate_Armor,Legion Plate Armor,5,94000,0,5500,,11,,0,16384,2,16,,70,0,{},{},,
-2342,Legion_Plate_Armor_,Legion Plate Armor,5,94000,0,5500,,11,,1,16384,2,16,,70,0,{},{},,
-2343,Robe_of_Casting,Casting Robe,5,20,0,1100,,5,,0,66048,2,16,,75,0,{},{ bonus bCastrate,-3; },
-2344,Armor_of_Fire,Lucias's Volcano Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,3; },
-2345,Armor_of_Fire_,Lucias's Volcano Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,3; },
-2346,Armor_of_Water,Sapien's Ocean Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,1; },
-2347,Armor_of_Water_,Sapien's Ocean Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,1; },
-2348,Armor_of_Wind,Ebeshi's Typhoon Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,4; },
-2349,Armor_of_Wind_,Ebeshi's Typhoon Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,4; },
-2350,Armor_of_Land,Kreitos's Earth Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,2; },
-2351,Armor_of_Land_,Kreitos's Earth Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,2; },
-2352,Armor_For_Novice,Novice Ninja Suit,5,20,0,1,,4,,0,8388609,2,16,,0,0,{},{},,
-
-// Foot gear
-//===================================================================
-2401,Sandals,Sandals,5,400,0,200,,1,,0,10477567,2,64,,0,0,{},{}
-2402,Sandals_,Sandals,5,400,0,200,,1,,1,10477567,2,64,,0,0,{},{}
-2403,Shoes,Shoes,5,3500,0,400,,2,,0,2088958,2,64,,0,0,{},{}
-2404,Shoes_,Shoes,5,3500,0,400,,2,,1,2088958,2,64,,0,0,{},{}
-2405,Boots,Boots,5,18000,0,600,,4,,0,1989866,2,64,,0,0,{},{}
-2406,Boots_,Boots,5,18000,0,600,,4,,1,1989866,2,64,,0,0,{},{}
-2407,Crystal_Pumps,Crystal Pumps,5,20,0,100,,0,,0,2088958,0,64,,0,0,{},{ bonus bMdef,10; bonus bLuk,5; }
-2408,Cuffs,Cuffs,5,5000,0,3000,,3,,0,10477567,2,64,,0,0,{},{}
-2409,Spiky_Heel,Spiky Heel,5,8500,0,600,,2,,0,2088958,2,64,,0,0,{},{ bonus bMdef,5; }
-2410,Sleipnir,Sleipnir,5,20,0,3500,,0,,0,10477567,2,64,,95,0,{},{ bonus bMdef,10; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bSPrecovRate,15; bonus bSpeedRate,25; }
-2411,Greaves,Greaves,5,48000,0,750,,5,,0,16512,2,64,,65,0,{},{},,,,
-2412,Greaves_,Greaves,5,48000,0,750,,5,,1,16512,2,64,,65,0,{},{},,,,
-2413,Safety_Shoes,Safety Shoes,5,20,0,350,,6,,0,16514,2,64,,30,0,{},{},,,,
-2414,Sandal_For_Novice,Novice Sandals,5,20,0,1,,2,,0,8388609,2,64,,0,0,{},{},,,,
-2415,Bunny_Slippers,Bunny Slippers,5,20,0,300,,,,,2088958,0,64,,,0,{},{ bonus bLuk,3; }
-
-// Garments
-//===================================================================
-2501,Hood,Hood,5,1000,0,200,,1,,0,10477567,2,4,,0,0,{},{},,,,
-2502,Hood_,Hood,5,1000,0,200,,1,,1,10477567,2,4,,0,0,{},{},,,,
-2503,Muffler,Muffler,5,5000,0,400,,2,,0,2088958,2,4,,0,0,{},{},,,,
-2504,Muffler_,Muffler,5,5000,0,400,,2,,1,2088958,2,4,,0,0,{},{},,,,
-2505,Manteau,Manteau,5,32000,0,600,,4,,0,414946,2,4,,0,0,{},{},,,,
-2506,Manteau_,Manteau,5,32000,0,600,,4,,1,414946,2,4,,0,0,{},{},,,,
-2507,Cape_Of_Ancient_Lord,Cape of Old Marquess,5,20,0,600,,2,,0,2088958,2,4,,40,0,{},{ bonus bAgi,1; },,,
-2508,Ragamuffin_Cape,Ragamuffin Manteau,5,20,0,500,,1,,0,2088958,2,4,,0,0,{},{ bonus bMdef,10; bonus bUnbreakable,100; },,,
-2509,Manteau_of_Survival,Manteau of Life,5,20,0,550,,0,,0,66052,2,4,,75,0,{},{ bonus bVit,10; },,,
-2510,Hood_For_Novice,Novice Hood,5,20,0,1,,2,,0,8388609,2,4,,0,0,{},{},,
-
-// Accessories
-//===================================================================
-2601,Ring,Ring,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bStr,2; },
-2602,Earring,Earring,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bInt,2; },
-2603,Necklace,Necklace,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bVit,2; },
-2604,Glove,Glove,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bDex,2; },
-2605,Brooch,Brooch,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bAgi,2; },
-2607,Clip,Clip,5,30000,0,100,,0,,1,10477567,2,136,,0,0,{},{ bonus bMaxSP,10; },
-2608,Rosary,Rosary,5,15000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bMdef,5; bonus bLuk,2; }
-2609,Skull_Ring,Skull Ring,5,10000,0,100,,0,,0,10477567,2,136,,0,0,{},{},,
-2610,Gold_Ring,Gold Ring,5,30000,0,100,,0,,0,10477567,2,136,,0,0,{},{},,
-2611,Silver_Ring,Silver Ring,5,20000,0,100,,0,,0,10477567,2,136,,0,0,{},{},,
-2612,Flower_Ring,Flower Ring,5,1500,0,100,,0,,0,10477567,2,136,,0,0,{},{},,
-2613,Diamond_Ring,Diamond Ring,5,45000,0,100,,0,,0,10477567,2,136,,0,0,{},{},,
-2614,Eye_of_Dullahan,Eye of Dullahan,5,90000,0,100,,0,,0,2088958,2,136,,50,0,{},{ bonus2 bResEff,Eff_Poison,1000; bonus2 bResEff,Eff_Curse,1000; bonus2 bResEff,Eff_Silence,1000; bonus2 bResEff,Eff_Confusion,1000; bonus2 bResEff,Eff_Blind,1000; },,
-2615,Safety_Ring,Safety Ring,5,75000,0,100,,3,,0,2088958,2,136,,40,0,{},{ bonus bMdef,3; },,,,
-2616,Critical_Ring,Critical Ring,5,75000,0,100,,0,,0,2088958,2,136,,40,0,{},{ bonus bCritical,5; },,,,
-2617,Celebrant's_Mitten,Celebrant's Mitten,5,20,0,100,,1,,0,2088958,2,136,,35,0,{},{ bonus bInt,1; },,,,
-2618,Matyr's_Leash,Matyr's Leash,5,20,0,100,,1,,0,2088958,2,136,,35,0,{},{ bonus bAgi,1; },,,,
-2619,Thimble_Of_Archer,Bow Thimble,5,30000,0,100,,0,,0,1574920,2,136,,65,0,{},{},,,,,
-2620,Ring_Of_Rogue,Rogue's Treasure,5,30000,0,100,,0,,0,135232,2,136,,70,0,{},{ bonus bAddStealRate,100; },,,,,
-2621,Ring_,Ancient Ring,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bStr,1; },,,,
-2622,Earring_,Ancient Earring,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bInt,1; },,,,
-2623,Necklace_,Ancient Necklace,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bVit,1; },,,,
-2624,Glove_,Ancient Glove,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bDex,1; },,,,
-2625,Brooch_,Ancient Brooch,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bAgi,1; },,,,
-2626,Rosary_,Ancient Rosary,5,15000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bMdef,3; bonus bLuk,1; },,,
-2627,Belt,Ancient Belt,5,20000,0,1200,,0,,1,10477567,2,136,,25,0,{},{},,,,,
-2628,Novice_Armlet,Novice Armlet,5,400,0,200,,0,,1,8388609,2,136,,0,0,{},{ bonus bStr,1; bonus bInt,1; bonus bLuk,1; },,
-2629,Megingjard,Megingjard,5,20,0,8000,,2,,0,10477567,2,136,,90,0,{},{ bonus bStr,40; bonus bMdef,7; },,,
-2630,Brisingamen,Brisingamen,5,20,0,1500,,1,,0,10477567,2,136,,95,0,{},{ bonus bStr,3; bonus bAgi,3; bonus bVit,3; bonus bInt,3; bonus bMdef,5; }
-2631,Celebration_Ring,Celebration Ring,5,20,0,10,,0,,0,10477567,2,136,,0,0,{},{ bonus bStr,2; bonus bAgi,2; bonus bVit,2; bonus bInt,2; bonus bDex,2; bonus bLuk,2; }
-2634,Wedding_Ring_M,Wedding Ring,4,20,0,0,,,,0,10477567,1,2,,0,,{},{ skill 334,1; skill 336,1; }
-2635,Wedding_Ring_F,Wedding Ring,4,20,0,0,,,,0,10477567,0,2,,0,,{},{ skill 335,1; skill 336,1; }
-2636,Gold_Christmas_Ring,Gold Xmas Ring,5,20,0,0,,0,,0,10477567,2,136,,0,,{},{}
-2637,Silver_Christmas_Ring,Silver Xmas Ring,5,20,0,0,,0,,0,10477567,2,136,,0,,{},{}
-2638,Exorcize_Sachet,Exorcize Sachet,5,20,0,100,,0,,,10477567,2,136,,0,,{},{ bonus bStr,1; bonus bLuk,1; },,,
-2639,Purification_Sachet,Purification Sachet,5,20,0,100,,0,,,10477567,2,136,,0,,{},{ bonus bAgi,1; bonus bInt,1; },,,
-2640,Kafra_Ring,Kafra Ring,5,20,0,10,,,,,2088958,2,136,,,,{},{ bonus bStr,1; bonus bAgi,1; bonus bInt,1; bonus bLuk,1; }
-
-// Cards
-//===================================================================
-4001,Poring_Card,Poring Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bLuk,2; bonus bFlee2,1; }
-4002,Fabre_Card,Fabre Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bVit,1; bonus bMaxHP,100; }
-4003,Pupa_Card,Pupa Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHP,700; }
-4004,Drops_Card,Drops Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,1; bonus bHit,3; }
-4005,Poring__Card,Poring Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,7,20; }
-4006,Lunatic_Card,Lunatic Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bLuk,1; bonus bCritical,1; bonus bFlee2,1; }
-4007,Pecopeco_Egg_Card,Pecopeco Egg Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,0,20; }
-4008,Picky_Card,Picky Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,1; bonus bBaseAtk,10; }
-4009,Chonchon_Card,Chonchon Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAgi,1; bonus bFlee,2; }
-4010,Wilow_Card,Wilow Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bMaxSP,80; }
-4011,Picky__Card,Picky Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bVit,1; bonus bMaxHP,100; }
-4012,Thief_Bug_Egg_Card,Thief Bug Egg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHP,400; }
-4013,Andre_Egg_Card,Andre Egg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHPrate,5; }
-4014,Roda_Frog_Card,Roda Frog Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHP,400; bonus bMaxSP,50; }
-4015,Condor_Card,Condor Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bFlee,10; }
-4016,Thief_Bug_Card,Thief Bug Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bAgi,1; }
-4017,Savage_Babe_Card,Savage Babe Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Stan,500; }
-4018,Andre_Larva_Card,Andre Larva Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bInt,1; bonus bMaxSP,10; }
-4019,Hornet_Card,Hornet Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bStr,1; bonus bBaseAtk,3; }
-4020,Farmiliar_Card,Farmiliar Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Blind,500; bonus bBaseAtk,5; }
-4021,Rocker_Card,Rocker Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDex,1; }
-4022,Spore_Card,Spore Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bVit,2; }
-4023,Desert_Wolf_Babe_Card,Desert Wolf Babe Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bInt,1; }
-4024,Plankton_Card,Plankton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Sleep,500; bonus bBaseAtk,5; }
-4025,Skeleton_Card,Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,10; bonus2 bAddEff,Eff_Stan,200; }
-4026,Thief_bug_Female_Card,Thief bug Female Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAgi,1; bonus bFlee,1; }
-4027,Kukre_Card,Kukre Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bAgi,2; }
-4028,Tarou_Card,Tarou Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,2; }
-4029,Wolf_Card,Wolf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,15; bonus bCritical,1; }
-4030,Mandragora_Card,Mandragora Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,4,20; }
-4031,Pecopeco_Card,Pecopeco Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHPrate,10; }
-4032,Ambernite_Card,Ambernite Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bDef,2; }
-4033,Poporing_Card,Poporing Card,6,20,0,10,,,,,,,136,,,,{},{ skill 53,1; }
-4034,Worm_Tail_Card,Worm Tail Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,2; }
-4035,Hydra_Card,Hydra Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,7,20; }
-4036,Muka_Card,Muka Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bHPrecovRate,10; }
-4037,Snake_Card,Snake Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,500; bonus bBaseAtk,5; }
-4038,Zombie_Card,Zombie Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bHPrecovRate,20; }
-4039,Stainer_Card,Stainer Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Silence,2000; bonus bDef,1; }
-4040,Creamy_Card,Creamy Card,6,20,0,10,,,,,,,136,,,,{},{ skill 26,1; }
-4041,Coco_Card,Coco Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Sleep,2000; bonus bDef,1; }
-4042,Steel_Chonchon_Card,Steel Chonchon Card,6,20,0,10,,,,,,,16,,,,{},{ bonus2 bSubEle,4,10; bonus bDef,2; }
-4043,Andre_Card,Andre Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,20; }
-4044,Smokie_Card,Smokie Card,6,20,0,10,,,,,,,136,,,,{},{ skill 51,1; }
-4045,horn_Card,horn Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bLongAtkDef,35; }
-4046,Martin_Card,Martin Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Blind,2000; bonus bDef,1; }
-4047,Ghostring_Card,Ghostring Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,8; bonus bHPrecovRate,-25; }
-4048,Poison_Spore_Card,Poison Spore Card,6,20,0,10,,,,,,,136,,,,{},{ skill 52,3; }
-4049,Vadon_Card,Vadon Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,3,20; }
-4050,Thief_bug_Male_Card,Thief bug Male Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAgi,2; }
-4051,Yoyo_Card,Yoyo Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bFlee2,5; bonus bAgi,1; }
-4052,Elder_Wilow_Card,Elder Wilow Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bInt,2; }
-4053,Vitata_Card,Vitata Card,6,20,0,10,,,,,,,136,,,,{},{ skill 28,1; bonus bUseSPrate,25; }
-4054,Angeling_Card,Angeling Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,6; }
-4055,Marina_Card,Marina Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Freeze,500; bonus bBaseAtk,5; }
-4056,Dustiness_Card,Dustiness Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,4,30; bonus bFlee,5; }
-4057,Metaller_Card,Metaller Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Silence,500; bonus bBaseAtk,5; }
-4058,Thara_Frog_Card,Thara Frog Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,7,30; }
-4059,Soldier_Andre_Card,Soldier Andre Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,3,30; }
-4060,Goblin_Card,Goblin Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,2,20; }
-4061,Cornutus_Card,Cornutus Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDef,1; }
-4062,Anacondaq_Card,Anacondaq Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,5,20; }
-4063,Caramel_Card,Caramel Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,4,20; }
-4064,Zerom_Card,Zerom Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,3; }
-4065,Kaho_Card,Kaho Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,2,20; }
-4066,Orc_Warrior_Card,Orc Warrior Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,2,30; }
-4067,Megalodon_Card,Megalodon Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Freeze,2000; bonus bDef,1; }
-4068,Scorpion_Card,Scorpion Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,3,20; }
-4069,Drainliar_Card,Drainliar Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,1,20; }
-4070,Eggyra_Card,Eggyra Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bSPrecovRate,15; }
-4071,Orc_Zombie_Card,Orc Zombie Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,9,30; bonus bFlee,5; }
-4072,Golem_Card,Golem Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,5; }
-4073,Pirate_Skel_Card,Pirate Skel Card,6,20,0,10,,,,,,,136,,,,{},{ skill 37,5; }
-4074,BigFoot_Card,BigFoot Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,4,30; }
-4075,Argos_Card,Argos Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Stone,2000; bonus bDef,1; }
-4076,Magnolia_Card,Magnolia Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Curse,500; bonus bBaseAtk,5; }
-4077,Phen_Card,Phen Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bNoCastCancel,0; bonus bCastrate,25; }
-4078,Savage_Card,Savage Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bVit,3; }
-4079,Mantis_Card,Mantis Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,3; }
-4080,Flora_Card,Flora Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,5,20; }
-4081,Hode_Card,Hode Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,2,30; bonus bFlee,5; }
-4082,Desert_Wolf_Card,Desert Wolf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,0,15; bonus bBaseAtk,5; }
-4083,Rafflesia_Card,Rafflesia Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,5,30; }
-4084,Marine_Sphere_Card,Marine Sphere Card,6,20,0,10,,,,,,,136,,,,{},{ skill 7,3; }
-4085,Orc_Skeleton_Card,Orc Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,6,20; }
-4086,Soldier_Skeleton_Card,Soldier Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bCritical,9; }
-4087,Giearth_Card,Giearth Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Confusion,10000; bonus2 bSubEle,2,15; }
-4088,Frilldora_Card,Frilldora Card,6,20,0,10,,,,,,,4,,,,{},{ skill 135,1; }
-4089,Sword_Fish_Card,Sword Fish Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,1; bonus bDef,1; }
-4090,Munak_Card,Munak Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Stone,1500; bonus2 bSubEle,2,5; bonus bDef,1; }
-4091,Kobold_Card,Kobold Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,1; bonus bCritical,4; }
-4092,Skel_Worker_Card,Skel Worker Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,1,15; bonus bBaseAtk,5; }
-4093,Obeaune_Card,Obeaune Card,6,20,0,10,,,,,,,136,,,,{},{ skill 35,1; }
-4094,Archer_Skeleton_Card,Archer Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{}
-4095,Marse_Card,Marse Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,1,30; }
-4096,Zenorc_Card,Zenorc Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,400; bonus bBaseAtk,10; }
-4097,Matyr_Card,Matyr Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxHPrate,10; bonus bAgi,1; }
-4098,Dokebi_Card,Dokebi Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,4; bonus bDef,1; }
-4099,Pasana_Card,Pasana Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,3; bonus bDef,1; }
-4100,Sohee_Card,Sohee Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxSPrate,15; bonus bSPrecovRate,3; }
-4101,Sand_Man_Card,Sand Man Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,2; bonus bDef,1; }
-4102,Whisper_Card,Whisper Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bFlee,20; bonus2 bSubEle,8,-50; }
-4103,Horong_Card,Horong Card,6,20,0,10,,,,,,,136,,,,{},{ skill 10,1; }
-4104,Requiem_Card,Requiem Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Confusion,500; }
-4105,Marc_Card,Marc Card,6,20,0,10,,,,,,,16,,,,{},{ bonus2 bSubEle,1,5; bonus2 bResEff,Eff_Freeze,10000; }
-4106,Mummy_Card,Mummy Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,20; }
-4107,Verit_Card,Verit Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxHPrate,8; bonus bMaxSPrate,8; }
-4108,Myst_Card,Myst Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,5,30; bonus bFlee,5; }
-4109,Jakk_Card,Jakk Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,3,30; bonus bFlee,5; }
-4110,Ghoul_Card,Ghoul Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Poison,2000; bonus bDef,1; }
-4111,Strouf_Card,Strouf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,6,20; }
-4112,Marduk_Card,Marduk Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Silence,10000; }
-4113,Marionette_Card,Marionette Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,8,30; bonus bFlee,5; }
-4114,Argiope_Card,Argiope Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,5; bonus bDef,1; }
-4115,Hunter_Fly_Card,Hunter Fly Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bHpDrainRate,3,15; }
-4116,Isis_Card,Isis Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,7,30; bonus bFlee,5; }
-4117,Side_Winder_Card,Side Winder Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDoubleRate,5; }
-4118,Petit_Card,Petit Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,9,20; }
-4119,Bathory_Card,Bathory Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,7; }
-4120,Petit__Card,Petit Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,9,30; }
-4121,Phreeoni_Card,Phreeoni Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,100; }
-4122,Deviruchi_Card,Deviruchi Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; }
-4123,Eddga_Card,Eddga Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bInfiniteEndure,0; bonus bMaxHPrate,-25; }
-4124,Medusa_Card,Medusa Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,6,15; bonus2 bResEff,Eff_Stone,10000; }
-4125,Deviace_Card,Deviace Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,7,7; bonus2 bAddRace,2,7; bonus2 bAddRace,3,7; bonus2 bAddRace,4,7; }
-4126,Minorous_Card,Minorous Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,2,15; bonus bBaseAtk,5; }
-4127,Nightmare_Card,Nightmare Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Sleep,10000; bonus bAgi,1; }
-4128,Golden_Bug_Card,Golden Bug Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bNoMagicDamage,0; bonus bUseSPrate,100; }
-4129,Baphomet__Card,Baphomet Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bHit,-10; bonus bSplashRange,1; }
-4130,Scorpion_King_Card,Scorpion King Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,9,20; }
-4131,Moonlight_Flower_Card,Moonlight Flower Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bSpeedRate,25; }
-4132,Mistress_Card,Mistress Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bNoGemStone,0; bonus bUseSPrate,25; }
-4133,Daydric_Card,Daydric Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,0,20; }
-4134,Dracula_Card,Dracula Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bSpDrainRate,1,5; }
-4135,Orc_Lord_Card,Orc Lord Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bShortWeaponDamageReturn,30; }
-4136,Khalitzburg_Card,Khalitzburg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,6,30; }
-4137,Drake_Card,Drake Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bNoSizeFix,0; }
-4138,Anubis_Card,Anubis Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,8,30; }
-4139,Joker_Card,Joker Card,6,20,0,10,,,,,,,136,,,,{},{ skill 50,1; }
-4140,Knight_Of_Abyss_Card,Knight Of Abyss Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,10,25; }
-4141,Evil_Druid_Card,Evil Druid Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,9; bonus bInt,1; bonus bDef,1; }
-4142,Doppelganger_Card,Doppelganger Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAspdRate,15; }
-4143,Orc_Hero_Card,Orc Hero Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bVit,3; bonus2 bResEff,Eff_Stan,10000; }
-4144,Osiris_Card,Osiris Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRestartFullRecover,0; }
-4145,Berzebub_Card,Berzebub Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bCastrate,-30; bonus bMaxSPrate,-15; bonus bMaxHPrate,-5; }
-4146,Maya_Card,Maya Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMagicDamageReturn,30; }
-4147,Baphomet_Card,Baphomet Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,-10; bonus bSplashRange,1; }
-4148,Pharaoh_Card,Pharaoh Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bUseSPrate,-30; }
-4149,Bon_Gun_Card,Bon Gun Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bInt,2; }
-4150,Orc_Archer_Card,Orc Archer Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRange,1; }
-4151,Mimic_Card,Mimic Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bAgi,1; bonus bDex,2; bonus bLuk,3; }
-4152,Wraith_Card,Wraith Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bMatk,8; }
-4153,Alarm_Card,Alarm Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bCastrate,-10; }
-4154,Arclouse_Card,Arclouse Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bStr,2; }
-4155,Rideword_Card,Rideword Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bDex,4; }
-4156,Skeleton_Prisoner_Card,Skel Prisoner Card,6,20,0,10,,,,,,,136,,,,{},{ skill 45,3; }
-4157,Zombie_Prisoner_Card,Zombie Prisoner Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHPrate,10; }
-4158,Dark_Priest_Card,Dark Priest Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-15; }
-4159,Punk_Card,Punk Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-5; }
-4160,Zherlthsh_Card,Zherlthsh Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-10; }
-4161,Mysteltainn_Card,Mysteltainn Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAtk,30; bonus bMaxHPrate,-22; bonus bCastrate,-10; }
-4162,Tirfing_Card,Tirfing Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAgi,3; bonus bFlee,10; }
-4163,Executioner_Card,Executioner Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bRandomAttackIncrease,300, 4; }
-4164,Anolian_Card,Anolian Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,2; }
-4165,Sting_Card,Sting Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,4; }
-4166,Wander_Man_Card,Wander Man Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,25; bonus bCritical,5; }
-4167,Cramp_Card,Cramp Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bAgi,3; }
-4168,Filamentous_Card,Filamentous Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Stone,100; bonus2 bResEff,Eff_Freeze,100; bonus2 bResEff,Eff_Stan,100; bonus2 bResEff,Eff_Sleep,100; bonus2 bResEff,Eff_Poison,100; bonus2 bResEff,Eff_Curse,100; bonus2 bResEff,Eff_Silence,100; bonus2 bResEff,Eff_Confusion,100; bonus2 bResEff,Eff_Blind,100; }
-4169,Brilight_Card,Brilight Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bAgi,2; bonus bLuk,3; }
-4170,Iron_Fist_Card,Iron Fist Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bVit,2; }
-4171,High_Orc_Card,High Orc Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,2; }
-4172,Choco_Card,Choco Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bStr,1; bonus bAgi,1; bonus bVit,1; bonus bInt,1; bonus bDex,1; bonus bLuk,1; bonus bAtk,10; bonus bDef,1; }
-4173,Stem_Worm_Card,Stem Worm Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,2; }
-4174,Penonema_Card,Penomena Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHPrate, 15; }
-4175,Marin_Card,Marin Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,1,20; }
-4176,Sasquatch_Card,Sasquatch Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bAddSize,1,20; bonus bAtk,-10; }
-4177,Antonio_Card,Antonio Card,6,20,0,10,,,,,,,136,,,,{},{ skill 50,5; skill 210,5; }
-4178,Cruiser_Card,Cruiser Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,3; }
-4179,Mystcase_Card,Mystcase Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bCastrate,-10; bonus bAtk,10; }
-4180,Chepet_Card,Chepet Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bLuk,5; }
-4181,Knight_of_Windstorm_Card,Knight Of Windstorm Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bAddEff,Eff_Freeze,500; bonus bAtk,25; }
-4182,Garm_Card,Garm Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bAddSize,2,20; bonus bAtk,-10; }
-4183,Gargoyle_Card,Gargoyle Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRange,5; }
-4184,Raggler_Card,Raggler Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Sleep,500; }
-4185,Neraid_Card,Neraid Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bAgi,2; }
-4186,Pest_Card,Pest Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,0,20; }
-4187,Injustice_Card,Injustice Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,9,20; }
-4188,Goblin_Archer_Card,Goblin Archer Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,2,20; }
-4189,Gryphon_Card,Gryphon Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Silence,500; bonus bAtk,25; }
-4190,Dark_Frame_Card,Dark Frame Card,6,20,0,10,,,,,,,769,,,,{},{ skill 32,2; }
-4191,Wind_Ghost_Card,Wind Ghost Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,4; }
-4192,Merman_Card,Merman Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,1; }
-4193,Cookie_Card,Cookie Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,7; }
-4194,Aster_Card,Aster Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,3,20; }
-4195,Carat_Card,Carat Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,6,20; }
-4196,Bloody_Knight_Card,Bloody Knight Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Blind,500; bonus bAtk,25; bonus bMaxHPrate,-10; }
-4197,Clock_Card,Clock Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bLuk,10; }
-4198,Clock_Tower_Manager_Card,C Tower Manager Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Curse,500; }
-4199,Alligator_Card,Alligator Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,500; }
-4200,Dark_Lord_Card,Dark Lord Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,9; }
-4201,Orc_Lady_Card,Orc Lady Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,4,20; }
-4202,Megalith_Card,Megalith Card,6,20,0,10,,,,,,,4,,,,{},{ skill 9,1; }
-4203,Alice_Card,Alice Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,6; }
-4204,Raydric_Archer_Card,Raydric Archer Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,3; }
-4205,Greatest_General_Card,Greatest General Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,5,20; }
-4206,Stalatic_Golem_Card,Stalactic Golem Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHP,500; bonus bDex,-3; }
-4207,Tri_Joint_Card,Tri Joint Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,7,20; }
-4208,Steamrider_Goblin_Card,Steam Goblin Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,8,20; }
-4209,Sage_Worm_Card,Sage Worm Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,8; }
-4210,Kobold_Archer_Card,Kobold archer Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,15; bonus bAtk,15; }
-4211,Chimera_Card,Chimera Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Stan,500; bonus bAtk,25; }
-
-// Extra Headgears
-//===================================================================
-5001,Headset,Headset,5,20,0,200,,3,,0,2088958,2,256,,0,87,{},{ bonus2 bResEff,Eff_Curse,1000; },
-5002,Jewel_Crown,Jewel Crown,5,20,0,600,,4,,0,414946,2,256,,60,88,{},{ bonus bMdef,3; bonus bInt,2; bonus bLuk,1; }
-5003,Joker_Jester,Joker Jester,5,20,0,100,,1,,0,2088958,2,256,,0,89,{},{ bonus bMdef,5; bonus bLuk,2; },
-5004,Oxygen_Mask,Oxygen Mask,5,20,0,200,,0,,0,2088958,2,1,,0,90,{},{ bonus2 bResEff,Eff_Poison,2000; },,,,
-5005,Gas_Mask,Gas Mask,5,20,0,100,,1,,0,2088958,2,513,,0,91,{},{ bonus2 bResEff,Eff_Poison,3000; },,,,
-5006,Machoman_Glasses,Machoman's Glasses,5,36000,0,100,,1,,0,2088958,2,512,,0,92,{},{},,,,,,
-5007,Grand_Circlet,Grand Circlet,5,20,0,200,,3,,0,2088958,2,256,,55,93,{},{ bonus bMdef,4; bonus bStr,1; bonus bInt,1; bonus bLuk,1; },,
-5008,Puppy_Love,Puppy Love,5,20,0,100,,1,,0,2088958,2,256,,0,94,{},{},,,,,,
-5009,Safety_Helmet,Safety Helmet,5,20,0,500,,3,,0,2088958,2,256,,0,95,{},{ bonus bMdef,3; bonus bUnbreakable,100; },,,,,
-5010,Indian_Hair_Piece,Indian Fillet,5,20,0,100,,3,,0,10477567,2,256,,0,96,{},{},,,,,,
-5011,Aerial,Aerial,5,20,0,100,,3,,0,10477567,2,256,,0,97,{},{},,,,,,
-5012,Ph.D_Hat,Ph.D Hat,5,20,0,200,,3,,0,2088958,2,256,,0,98,{},{ bonus bMdef,3; },,,,,
-5013,Horn_Of_Lord_Kaho,Lord Kaho's Horn,5,20,0,100,,5,,0,10477567,2,256,,0,99,{},{ bonus bMdef,10; bonus bStr,5; bonus bAgi,10; bonus bVit,10; bonus bInt,5; bonus bLuk,20; }
-5014,Fin_Helm,Fin Helm,5,20,0,300,,2,,0,16514,2,512,,65,100,{},{},,,,,,
-5015,Egg_Shell,Egg Shell,5,20,0,200,,3,,0,10477567,2,256,,0,101,{},{},,,,,,
-5016,Boy's_Cap,Boy's Cap,5,20,0,100,,2,,0,2088958,2,256,,0,102,{},{},,,,,,
-5017,Bone_Helm,Bone Helm,5,20,0,800,,7,,0,279714,2,256,,70,103,{},{ bonus2 bSubEle,7,-15; },,,,
-5018,Feather_Bonnet,Feather Bonnet,5,20,0,300,,4,,0,1574920,2,256,,0,104,{},{ bonus bAgi,1; },,,,,
-5019,Corsair,Corsair,5,20,0,500,,5,,0,2088958,2,256,,0,105,{},{ bonus bVit,1; },,,,,
-5020,Kafra_Band,Kafra's Band,5,20,0,500,,3,,0,10477567,2,256,,0,106,{},{ bonus bMdef,3; },,
-5021,Bankruptcy_of_Heart,Money Loser's Grief,5,20,0,1200,,4,,0,263200,2,256,,38,107,{},{ bonus bInt,1; bonus bDex,1; },
-5022,Solar_God_Helm,Solar God Helm,5,20,0,2400,,4,,0,2088832,2,768,,0,138,{},{ bonus bStr,3; bonus bInt,2; },
-5023,Parcel_Hat,Parcel Hat,5,20,0,1000,,0,,0,263200,2,256,,0,108,{},{},,,
-5024,Cake_Hat,Cake Hat,5,20,0,1500,,1,,0,10477567,2,256,,0,109,{},{},,,
-5025,Angel_Helm,Angel Helm,5,20,0,1600,,5,,0,2088832,2,256,,74,110,{},{ bonus bAgi,1; bonus bLuk,1; bonus bMdef,3; }
-5026,Chef_Hat,Chef's Hat,5,20,0,300,,1,,0,2088958,2,256,,50,111,{},{ bonus bDex,1; },,
-5027,Mage_Hat,Mage Hat,5,20,0,300,,1,,0,66052,2,256,,0,112,{},{ bonus bInt,2; bonus bMaxSP,150; },
-5028,Candle,Candle,5,20,0,150,,5,,0,10477567,2,256,,0,113,{},{},,,
-5029,Spore_Hat,Spore Hat,5,20,0,900,,3,,0,2088958,2,256,,20,114,{},{},,,
-5030,Panda_Hat,Panda Hat,5,20,0,800,,3,,0,2088958,2,256,,40,115,{},{},,,
-5031,Miner's_Helmet,Miner's Helmet,5,20,0,1500,,4,,0,447986,2,256,,55,116,{},{ bonus bDex,2; },,
-5032,Sunday_Hat,Sunday Hat,5,20,0,800,,1,,0,2088958,2,256,,0,117,{},{},,,
-5033,Smokie_Hat,Smokie Hat,5,20,0,900,,3,,0,2088958,2,256,,50,118,{},{},,,
-5034,Lightbulb_Hairband,Lightbulb Hairband,5,20,0,500,,0,,0,2088958,2,256,,0,119,{},{},,,
-5035,Poring_Hat,Poring Hat,5,20,0,700,,2,,0,2088958,2,256,,38,120,{},{},,,
-5036,Cross_Hairband,Cross Hairband,5,20,0,250,,1,,0,2088958,2,256,,10,121,{},{},,,
-5037,Fruit_Shell,Apple Hat,5,20,0,150,,4,,0,10477567,2,256,,5,122,{},{},,,
-5038,Deviruchi_Hat,Deviruchi Hat,5,20,0,800,,2,,0,2088958,2,256,,64,123,{},{ bonus bStr,1; bonus bInt,1; },
-5039,Rainbow_Eggshell,Rainbow Eggshell,5,20,0,400,,4,,0,10477567,2,256,,19,124,{},{},,,
-5040,Blush,Blush,5,20,0,100,,0,,0,10477567,2,512,,0,125,{},{},,,
-5041,Heart_Hairpin,Heart Hairpin,5,20,0,100,,0,,0,10477567,2,256,,0,126,{},{},,,
-5042,Hair_Protector,Dumpling Decoration,5,20,0,150,,0,,0,2088958,2,256,,14,127,{},{},,,
-5043,Opera_Ghost_Mask,Opera Ghost Mask,5,20,0,200,,1,,0,2088958,2,512,,20,128,{},{},,,
-5044,Wing_Of_Demon,Wings of Demon,5,20,0,350,,2,,0,10477567,2,256,,45,129,{},{},,,
-5045,Magician_Hat,Magic Hat,5,20,0,500,,3,,0,554319315732,2,256,,50,130,{},{ bonus bDex,1; bonus bAgi,1; bonus bMaxSP,50; }
-5046,Bongun_Hat,Bongun Hat,5,20,0,300,,5,,0,10477567,2,769,,0,139,{},{},,,
-5047,Fashion_Sunglasses,Fashion Sunglasses,5,20,0,100,,0,,0,2088958,2,256,,0,131,{},{},,,
-5048,Cresent_Hairpin,Cresent Hairpin,5,20,0,100,,0,,0,10477567,2,256,,0,132,{},{},,,
-5049,Striped_Bandana,Striped Bandana,5,20,0,150,,1,,0,10477567,2,256,,0,133,{},{},,,
-5050,Mysterious_Fruit_Shell,Mysterious Fruit Shell,5,20,0,300,,5,,0,10477567,2,256,,30,134,{},{},,,
-5051,Bell_of_Pussycat,Bell of Pussycat,5,20,0,100,,5,,0,10477567,2,1,,0,135,{},{},,,
-5052,Blue_Bandana,Blue Bandana,5,20,0,150,,1,,0,10477567,2,256,,0,136,{},{},,,
-5053,Sphinx_Hat,Sphinx Hat,5,20,0,3000,,5,,0,16514,2,256,,65,137,{},{ bonus bStr,2; },,
-5054,Assassin_Mask,Assassin Mask,5,20,0,100,,0,,0,4096,2,1,,70,180,{},{},,,
-5055,Novice_Eggshell,Novice Eggshell,5,20,0,10,,3,,0,8388609,2,256,,0,101,{},{},,,
-5056,Seed_Of_Love,Seed Of Love,5,20,0,200,,0,,0,2088958,2,256,,0,140,{},{}
-5057,Black_Cat_Ears,Black Cat Ears,5,20,0,200,,2,,0,10477567,2,256,,45,141,{},{}
-5058,Resting_Cat,Resting Cat,5,20,0,500,,1,,0,2088958,2,256,,0,142,{},{ bonus2 bResEff,Eff_Curse,3000; bonus bMdef,15; }
-5059,Bear_Hat,Bear Hat,5,20,0,800,,3,,0,10477567,2,256,,50,143,{},{}
-5060,Pointy_Cap,Pointy Cap,5,20,0,300,,3,,0,10477567,2,256,,0,144,{},{ bonus bLuk,1; }
-5061,Flower_Hairpin,Flower Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,145,{},{}
-5062,Straw_Hat,Straw Hat,5,20,0,200,,3,,0,10477567,2,256,,50,146,{},{ bonus bAgi,1; }
-5063,Bandaid,Bandaid,5,20,0,100,,1,,0,2088958,2,256,,0,147,{},{}
-5064,Transformation_Leaf,Transformation Leaf,5,20,0,100,,1,,0,10477567,2,256,,0,148,{},{}
-5065,Fresh_Blueish_Fish,Fresh Blueish Fish,5,20,0,500,,2,,0,10477567,2,256,,50,149,{},{ bonus2 bAddRace,5,10; }
-5066,Horns_Of_Succubus,Horns of Succubus,5,20,0,800,,4,,0,2088958,2,256,,70,150,{},{ bonus bInt,1; bonus bMdef,10; }
-5067,Sombrero,Sombrero,5,20,0,350,,4,,0,2088958,2,256,,0,151,{},{ bonus bAgi,1; }
-5068,Ears_of_Demon,Ears Of Demon,5,20,0,100,,1,,0,10477567,2,512,,70,152,{},{ bonus bStr,1; }
-5069,Fox_Mask,Fox Mask,5,20,0,300,,1,,0,2088958,2,256,,0,153,{},{ bonus bAgi,1; bonus bLuk,1; }
-5070,Bandage,Bandage,5,20,0,100,,1,,0,2088958,2,256,,0,154,{},{ bonus bStr,2; }
-5071,Indian_Headband,Indian Headband,5,20,0,200,,1,,0,2088958,2,256,,0,155,{},{ bonus bDex,1; }
-5072,Horns_Of_Incubus,Horns Of Incubus,5,20,0,800,,4,,0,2088958,2,256,,70,156,{},{ bonus bAgi,1; bonus bMdef,10; }
-5073,Campus_Hat,Campus Hat,5,20,0,700,,2,,0,2088958,2,256,,0,157,{},{ bonus bDex,2; }
-5074,Ears_of_Angel,Ears of Angel,5,20,0,100,,1,,0,10477567,2,512,,70,158,{},{ bonus bStr,1; }
-5075,Cowboy_Hat,Cowboy Hat,5,20,0,500,,4,,0,10477567,2,256,,0,159,{},{}
-5076,Furry_Hat,Furry Hat,5,20,0,350,,2,,0,10477567,2,256,,0,160,{},{ bonus bLuk,1; }
-5077,Tulip_Hairpin,Tulip Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,161,{},{}
-5078,Sea_Otter_Hat,Sea Otter Hat,5,20,0,800,,3,,0,10477567,2,256,,50,162,{},{ bonus bVit,1; }
-5079,X_Hairpin,X Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,163,{},{}
-5080,Crown_of_the_Ancient_Queen,Crown of The Ancient Queen,5,20,0,400,,4,,0,10477567,2,256,,45,164,{},{}
-5081,Crown_of_Mistress,Crown of Mistress,5,20,0,100,,1,,0,2088958,0,256,,75,165,{},{ bonus bInt,2; bonus bMaxSP,100; }
-5082,Mushroom_Hairband,Mushroom Hairband,5,20,0,100,,2,,0,10477567,2,256,,0,166,{},{}
-5083,Back_Ribbon,Back Ribbon,5,20,0,200,,1,,0,10477567,0,256,,45,167,{},{ bonus bMdef,10; }
-5084,Lazy_Raccoon_Hat,Lazy Racoon Hat,5,20,0,500,,1,,0,2088958,2,256,,0,168,{},{ bonus2 bResEff,Eff_Sleep,2000; }
-5085,Small_Twin_Ribbons,Small Twin Ribbons,5,20,0,100,,1,,0,10477567,0,512,,45,169,{},{}
-5086,Sad_Mask,Sad Mask,5,20,0,100,,2,,0,10477567,2,513,,0,170,{},{ bonus2 bResEff,Eff_Blind,5000; }
-5087,Expressionless_Mask,Expressionless Mask,5,20,0,100,,1,,0,10477567,2,513,,0,171,{},{}
-5088,Surprised_Mask,Surprised Mask,5,20,0,100,,1,,0,10477567,2,513,,0,172,{},{}
-5089,Annoyed_Mask,Annoyed Mask,5,20,0,100,,1,,0,10477567,2,513,,0,173,{},{}
-5090,Mask_of_the_Goblin_Leader,Mask of The Goblin Leader,5,20,0,100,,2,,0,10477567,2,513,,0,174,{},{}
-5091,Big_Golden_Bell,Big Golden Bell,5,20,0,200,,2,,0,2088958,2,768,,35,175,{},{}
-5092,Nun_Hat,Nun Hat,5,20,0,300,,5,,0,33024,0,768,,65,176,{},{}
-5093,Nun_Hat_,Nun Hat,5,20,0,300,,5,,0,33024,0,768,,65,177,{},{ bonus bMaxSP,100; }
-5094,Orc_Hero_Helm,Orc Hero Helm,5,20,0,900,,5,,0,2088958,2,768,,55,178,{},{ bonus bStr,2; bonus bVit,1; }
-5096,Assassin_Mask_,Assassin Mask,5,20,0,100,,0,,0,4096,2,1,,70,180,{},{},,,
-5097,Annual_Commemoration_Hat,Annual Commemoration Hat,5,20,0,30,,3,,0,10477567,2,256,,0,166,{},{ bonus bAllStats,3; }
-5098,Tiger_Mask,Tiger Mask,5,20,0,400,,2,,,10477567,2,768,,,181,{},{ bonus bStr,3; bonus bMaxHP,100; }
-
-// Misc items
-//===================================================================
-7001,Mold_Powder,Mould Powder,3,680,0,10,,,,,,,,,,,{},{}
-7002,Ogre_Tooth,Ogre Tooth,3,658,0,10,,,,,,,,,,,{},{}
-7003,Anolian_Skin,Anolian Skin,3,928,0,10,,,,,,,,,,,{},{}
-7004,Mud_Lump,Mud Lump,3,876,0,10,,,,,,,,,,,{},{}
-7005,Skull,Skull,3,1044,0,10,,,,,,,,,,,{},{}
-7006,Wing_of_Red_Bat,Wing of Red Bat,3,168,0,10,,,,,,,,,,,{},{}
-7007,Claw_of_Rat,Claw of Rat,3,748,0,10,,,,,,,,,,,{},{}
-7008,Stiff_Horn,Stiff Horn,3,636,0,10,,,,,,,,,,,{},{}
-7009,Glitter_Shell,Glitter Shell,3,528,0,10,,,,,,,,,,,{},{}
-7010,Tail_of_Steel_Scorpion,Tail of Steel Scorpion,3,548,0,10,,,,,,,,,,,{},{}
-7011,Claw_of_Monkey,Claw of Monkey,3,466,0,10,,,,,,,,,,,{},{}
-7012,Tough_Scalelike_Stem,Tough Scalelike Stem,3,412,0,10,,,,,,,,,,,{},{}
-7013,Coral_Reef,Coral Reef,3,772,0,10,,,,,,,,,,,{},{}
-7014,Old_Portrait,Old Portrait,3,1500,0,100,,,,,,,,,,,{},{}
-7015,Bookclip_in_Memory,Bookclip in Memory,3,3000,0,20,,,,,,,,,,,{},{}
-7016,Spoon_Stub,Spoon Stub,3,2500,0,20,,,,,,,,,,,{},{}
-7017,Executioner's_Mitten,Executioner's Mitten,3,4500,0,30,,,,,,,,,,,{},{}
-7018,Young_Twig,Young Twig,3,50,0,10,,,,,,,,,,,{},{}
-7019,Loki's_Whispers,Loki's Whispers,3,20,0,10,,,,,,,,,,,{},{}
-7020,Mother's_Nightmare,Mother's Nightmare,3,20,0,10,,,,,,,,,,,{},{}
-7021,Foolishness_of_the_Blind,Foolishness of the Blind,3,20,0,10,,,,,,,,,,,{},{}
-7022,Old_Hilt,Old Hilt,3,150,0,30,,,,,,,,,,,{},{}
-7023,Blade_Lost_in_Darkness,Blade Lost in Darkness,3,12000,0,40,,,,,,,,,,,{},{}
-7024,Bloody_Edge,Bloody Edge,3,10000,0,40,,,,,,,,,,,{},{}
-7025,Lucifer's_Lament,Lucifer's Lament,3,30000,0,50,,,,,,,,,,,{},{}
-7026,Key_of_Clock_Tower,Key of Clock Tower,3,2,0,30,,,,,,,,,,,{},{}
-7027,Key_of_Underground,Key of Underground,3,2,0,30,,,,,,,,,,,{},{}
-7028,Invite_for_Duel,Invite for Duel,3,0,0,10,,,,,,,,,,,{},{}
-7029,Admission_for_Duel,Admission for Duel,3,20,0,10,,,,,,,,,,,{},{}
-7030,Claw_of_Desert_Wolf,Claw of Desert Wolf,3,208,0,10,,,,,,,,,,,{},{}
-7031,Old_Frying_Pan,Old Frying Pan,3,196,0,10,,,,,,,,,,,{},{}
-7032,Piece_of_Egg_Shell,Piece of Egg Shell,3,168,0,10,,,,,,,,,,,{},{}
-7033,Poison_Spore,Poison Spore,3,114,0,10,,,,,,,,,,,{},{}
-7034,Red_Socks_with_Holes,Red Socks with Holes,3,100,0,10,,,,,,,,,,,{},{}
-7035,Matchstick,Matchstick,3,100,0,10,,,,,,,,,,,{},{}
-7036,Fang_of_Garm,Fang of Garm,3,100,0,10,,,,,,,,,,,{},{}
-7037,Coupon,Coupon,3,2000,0,10,,,,,,,,,,,{},{}
-7038,Yarn,Yarn,3,20,0,10,,,,,,,,,,,{},{}
-7039,Novice_Nametag,Novice Nametag,3,20,0,10,,,,,,,,,,,{},{}
-7040,Megaphone,Megaphone,3,20,0,10,,,,,,,,,,,{},{}
-7041,Fine_Grit,Fine Grit,3,20,0,10,,,,,,,,,,,{},{}
-7042,Leather_Bag_of_Infinity,Leather Bag of Infinity,3,20,0,10,,,,,,,,,,,{},{}
-7043,Fine_Sand,Fine Sand,3,100,0,10,,,,,,,,,,,{},{}
-7044,Vigorgra,Vigorgra,3,20,0,10,,,,,,,,,,,{},{}
-7045,Magic_Paint,Magic Paint,3,20,0,10,,,,,,,,,,,{},{}
-7046,Cart_Parts,Cart Parts,3,20,0,10,,,,,,,,,,,{},{}
-7047,Alice's_Apron,Alice's Apron,3,2424,0,10,,,,,,,,,,,{},{}
-7048,Talon_of_Griffon,Talon of Griffon,3,100,0,10,,,,,,,,,,,{},{}
-7049,Stone,Stone,3,0,0,30,,,,,,,,,,,{},{}
-7050,Cotton_Mat,Cotton Mat,3,20,0,10,,,,,,,,,,,{},{}
-7051,Silk_Mat,Silk Mat,3,20,0,10,,,,,,,,,,,{},{}
-7052,Wasted_Magazine,Wasted Magazine,3,20,0,10,,,,,,,,,,,{},{}
-7053,Cyfar,Cyfar,3,772,0,10,,,,,,,,,,,{},{}
-7054,Brigan,Brigan,3,746,0,10,,,,,,,,,,,{},{}
-7055,Animal_Poop,Animal Poop,3,20,0,50,,,,,,,,,,,{},{}
-7056,Payment_Statement_for_Kafra_Employee,Payment Statement for Ka,3,20,0,50,,,,,,,,,,,{},{}
-7057,Gjallar,Gjallar,3,20,0,500,,,,,,,,,,,{},{}
-7058,Gleipnir,Gleipnir,3,20,0,500,,,,,,,,,,,{},{}
-7059,Free_Ticket_for_Kafra_Storage,Free Ticket for Kafra St,3,20,0,10,,,,,,,,,,,{},{}
-7060,Free_Ticket_for_Kafra_Transportation,Free Ticket for Kafra Tr,3,20,0,10,,,,,,,,,,,{},{}
-7061,Free_Ticket_for_the_Cart_Service,Free Ticket for the Cart,3,20,0,10,,,,,,,,,,,{},{}
-7062,Broken_Turtle_Shell,Broken Turtle Shell,3,20,0,10,,,,,,,,,,,{},{}
-7063,Soft_Feather,Soft Feather,3,280,0,10,,,,,,,,,,,{},{}
-7064,Wing_of_Dragonfly,Wing of Dragonfly,3,520,0,10,,,,,,,,,,,{},{}
-7065,Sea-otter_Fur,Sea Otter Fur,3,820,0,10,,,,,,,,,,,{},{}
-7066,Ice_Cubic,Ice Cubic,3,660,0,10,,,,,,,,,,,{},{}
-7067,Stone_Fragment,Stone Fragment,3,640,0,10,,,,,,,,,,,{},{}
-7068,Burnt_Tree,Burnt Tree,3,722,0,10,,,,,,,,,,,{},{}
-7069,Destroyed_Armor,Destroyed Armor,3,1042,0,10,,,,,,,,,,,{},{}
-7070,Broken_Shell,Broken Shell,3,900,0,10,,,,,,,,,,,{},{}
-7071,Tattered_Clothes,Tattered Clothes,3,640,0,10,,,,,,,,,,,{},{}
-7072,Old_Shuriken,Old Shuriken,3,1780,0,10,,,,,,,,,,,{},{}
-7073,Freya's_Jewel,Freya's Jewel,3,20,0,500,,,,,,,,,,,{},{}
-7074,Thor's_Gauntlet,Thor's Gauntlet,3,20,0,500,,,,,,,,,,,{},{}
-7075,Iron_Maiden,Iron Maiden,3,20,0,500,,,,,,,,,,,{},{}
-7076,Wheel_of_the_Unknown,Wheel of the Unknown,3,20,0,500,,,,,,,,,,,{},{}
-7077,Silver_Ornament,Silver Ornament,3,20,0,500,,,,,,,,,,,{},{}
-7078,Wrath_of_Valkyrie,Wrath of Valkyrie,3,20,0,500,,,,,,,,,,,{},{}
-7079,Feather_of_Angel_Wing,Feather of Angel Wing,3,20,0,500,,,,,,,,,,,{},{}
-7080,Cat_Tread,Footprints of Cat,3,20,0,500,,,,,,,,,,,{},{}
-7081,Woman's_Moustache,Woman's Moustache,3,20,0,500,,,,,,,,,,,{},{}
-7082,Root_of_Stone,Root of Stone,3,20,0,500,,,,,,,,,,,{},{}
-7083,Spirit_of_Fish,Spirit of Fish,3,20,0,500,,,,,,,,,,,{},{}
-7084,Sputum_of_Bird,Sputum of Bird,3,20,0,500,,,,,,,,,,,{},{}
-7085,Sinew_of_Bear,Sinew of Bear,3,20,0,500,,,,,,,,,,,{},{}
-7086,Emblem_of_the_Sun_God,Emblem of the Sun God,3,20,0,500,,,,,,,,,,,{},{}
-7087,Breath_of_Spirit,Breath of Soul,3,20,0,500,,,,,,,,,,,{},{}
-7088,Snow_Crystal,Snow Crystal,3,20,0,500,,,,,,,,,,,{},{}
-7089,Omen_of_Tempest,Omen of Tempest,3,20,0,500,,,,,,,,,,,{},{}
-7090,Ripple,Ripple,3,20,0,500,,,,,,,,,,,{},{}
-7091,Billow,Billow,3,20,0,500,,,,,,,,,,,{},{}
-7092,Drifting_Air,Drifting Air,3,20,0,500,,,,,,,,,,,{},{}
-7093,Cogwheel,Metal Wheel,3,20,0,10,,,,,,,,,,,{},{}
-7094,Fragment,Cabinet Chip,3,20,0,10,,,,,,,,,,,{},{}
-7095,Metal_Fragment,Tooth Fragment,3,20,0,10,,,,,,,,,,,{},{}
-7096,Lava,Hardened Lava,3,1108,0,10,,,,,,,,,,,{},{}
-7097,Burning_Heart,Burning Heart,3,924,0,10,,,,,,,,,,,{},{}
-7098,Live_Coal,Fire Seed,3,638,0,10,,,,,,,,,,,{},{}
-7099,Worn-out_Magic_Scroll,Old Magical Circle,3,20,0,10,,,,,,,,,,,{},{}
-7100,Sharp_Leaf,Sharpened Leaf,3,20,0,10,,,,,,,,,,,{},{}
-7101,PecoPeco_Feather,Peco Feather,3,454,0,10,,,,,,,,,,,{},{}
-7102,Nightmare,Nightmare,3,20,0,10,,,,,,,,,,,{},{}
-7103,Unknown_Liquid_Bottle,Yellow Liquid Bottle,3,20,0,10,,,,,,,,,,,{},{}
-7104,Fake_Angel's_Wing,Fake Angel's Wing,3,756,0,10,,,,,,,,,,,{},{}
-7105,Fake_Heaven_Ring,Imitation Soul's Band,3,924,0,10,,,,,,,,,,,{},{}
-7106,Antelope_Horn,Antelope Horn,3,672,0,10,,,,,,,,,,,{},{}
-7107,Antelope_Skin,Antelope Skin,3,756,0,10,,,,,,,,,,,{},{}
-7108,Piece_of_Shield,Broken Shield,3,20,0,10,,,,,,,,,,,{},{}
-7109,Shining_Spear_Blade,Shiny Spear Tip,3,20,0,10,,,,,,,,,,,{},{}
-7110,Broken_Sword,Broken Sword,3,588,0,10,,,,,,,,,,,{},{}
-7111,Slick_Paper,String Paper,3,706,0,10,,,,,,,,,,,{},{}
-7112,Sharp_Paper,Transparent Paper,3,906,0,10,,,,,,,,,,,{},{}
-7113,Broken_Symbol_of_Pharaoh,Broken Symbol of Pharaoh,3,20,0,10,,,,,,,,,,,{},{}
-7114,Masque_of_Tutankhamen,Sphinx Mask,3,20,0,10,,,,,,,,,,,{},{}
-7115,Harpy_Feather,Blood Feather,3,1142,0,10,,,,,,,,,,,{},{}
-7116,Harpy_Talon,Tooth of Lowblood,3,1210,0,10,,,,,,,,,,,{},{}
-7117,Torn_Magic_Book,Torn Spell Book,3,20,0,10,,,,,,,,,,,{},{}
-7118,Torn_Scroll,Torn Scroll,3,20,0,10,,,,,,,,,,,{},{}
-7119,Bacillus,Hypha Body,3,1024,0,10,,,,,,,,,,,{},{}
-7120,Burning_Horseshoe,Burning Horseshoe,3,822,0,10,,,,,,,,,,,{},{}
-7121,Honey_Pot,Honey Jar,3,622,0,10,,,,,,,,,,,{},{}
-7122,Burning_Hair,Hot Feather,3,974,0,10,,,,,,,,,,,{},{}
-7123,Dragon_Skin,Dragon Skin,3,1024,0,10,,,,,,,,,,,{},{}
-7124,Sand_Clump,Sand Lump,3,706,0,10,,,,,,,,,,,{},{}
-7125,Scorpion_Claw,Crab Shot,3,706,0,10,,,,,,,,,,,{},{}
-7126,Large_Jellopy,Large Jellopy,3,840,0,10,,,,,,,,,,,{},{}
-7127,Alcohol_Creation_Book,Alcohol Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7128,Bottle_Grenade_Creation_Book,Fire Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7129,Acid_Bottle_Creation_Book,Acid Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7130,Plant_Bottle_Creation_Book,Plant Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7131,Mine_Bottle_Creation_Book,Mine Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7132,Glistening_Coat_Creation_Book,Glistening Coat Creation Book,3,100000,0,10,,,,,,,,,,,{},{}
-7133,Condensed_Potion_Creation_Book,Condensed Potion Creation Book,3,240000,0,10,,,,,,,,,,,{},{}
-7134,Medicine_Bowl,Medicine Bowl,3,8,0,10,,,,,,,,,,,{},{}
-7135,Bottle_Grenade,Fire Bottle,3,20,0,10,,,,,,,,,,,{},{}
-7136,Acid_Bottle,Hydrobolic Acid Bottle,3,20,0,10,,,,,,,,,,,{},{}
-7137,Plant_Bottle,Water Bottle,3,20,0,10,,,,,,,,,,,{},{}
-7138,Marine_Sphere_Bottle,Mine Bottle,3,20,0,10,,,,,,,,,,,{},{}
-7139,Glistening_Coat,Coating Wax,3,20,0,10,,,,,,,,,,,{},{}
-7140,Seed_of_Life,Seed of Life,3,20,0,10,,,,,,,,,,,{},{}
-7141,Morning_Dew_of_Yggdrasil,Water Flow,3,20,0,10,,,,,,,,,,,{},{}
-7142,Ancient_Life,Embryo,3,20,0,10,,,,,,,,,,,{},{}
-7143,Glass_Tube,Seperation Tubes,2,50000,,1000,,,,,262144,2,,,,,{ bpet; },{}
-7144,Potion_Creation_Gude,Potion Making Book,3,100000,0,10,,,,,,,,,,,{},{}
-7145,Ragnarok_T-shirt,Ragnarok T-Shirt,3,20,0,10,,,,,,,,,,,{},{}
-7146,Vacation_Ticket,Vacation Ticket,3,20,0,10,,,,,,,,,,,{},{}
-7147,Jasmine,Jasmine,3,20,0,10,,,,,,,,,,,{},{}
-7148,Mother's_Letter,Mother's Letter,3,20,0,10,,,,,,,,,,,{},{}
-7149,Yellow_Plate,Yellow Plate,3,220,0,10,,,,,,,,,,,{},{}
-7150,A_piece_of_Bamboo,Bamboo Trunk,3,310,0,10,,,,,,,,,,,{},{}
-7151,Oil_Paper,Oiled Paper,3,310,0,10,,,,,,,,,,,{},{}
-7152,Glossy_Hair,Glossy Hair,3,340,0,10,,,,,,,,,,,{},{}
-7153,Worn-out_Kimono,Old Kimono,3,590,0,10,,,,,,,,,,,{},{}
-7154,Poisonous_Powder,Poison Powder,3,160,0,10,,,,,,,,,,,{},{}
-7155,Skin_of_Poisonous_Toad,Poisonous Toad Skin,3,280,0,10,,,,,,,,,,,{},{}
-7156,Broken_Shuriken,Broken Shuriken,3,470,0,10,,,,,,,,,,,{},{}
-7157,Black_Mask,Black Mask,3,20,0,10,,,,,,,,,,,{},{}
-7158,Broken_Liquor_Bottle,Broken Liquor Bottle,3,160,0,10,,,,,,,,,,,{},{}
-7159,Demon's_Nose,Demon's Nose,3,400,0,10,,,,,,,,,,,{},{}
-7160,Passport_From_King,Passport From King,3,20,0,10,,,,,,,,,,,{},{}
-7161,Skin_of_the_Black_Bear,Skin of the Black Bear,3,384,0,10,,,,,,,,,,,{},{}
-7162,Piece_of_Cloud,Piece of Cloud,3,390,0,10,,,,,,,,,,,{},{}
-7163,Hard_Antennae,Hard Antennae,3,570,0,10,,,,,,,,,,,{},{}
-7164,Very_Hard_Peach,Very Hard Peach,3,400,0,10,,,,,,,,,,,{},{}
-7165,Etherial_Winged_Clothing,Etherial Winged Clothing,3,650,0,10,,,,,,,,,,,{},{}
-7166,Soft_Silk_Fabric,Soft Silk Fabric,3,1200,0,10,,,,,,,,,,,{},{}
-7167,Strange_Piece_of_Iron,Strange Piece of Iron,3,430,0,10,,,,,,,,,,,{},{}
-7168,Big_Wing_of_Butterfly,Big Wing of Butterfly,3,614,0,10,,,,,,,,,,,{},{}
-7169,Tae_Guk_Tablet,Tae Guk Tablet,3,20,0,10,,,,,,,,,,,{},{}
-7170,Tuxedo,Tuxedo,5,43000,0,10,,0,,0,10477566,1,16,,0,0,{},{ changebase 22; }
-7171,Skin_of_Panther,Skin of Panther,3,282,0,10,,,,,,,,,,,{},{}
-7172,Claw_of_Panther,Claw of Panther,3,290,0,10,,,,,,,,,,,{},{}
-7173,Bun_Buster_Bag,Bun Buster Bag,3,20,0,10,,,,,,,,,,,{},{}
-7174,Wrapping_Thread,Wrapping Thread,3,20,0,10,,,,,,,,,,,{},{}
-7175,Wrapper,Wrapper,3,20,0,10,,,,,,,,,,,{},{}
-7176,King's_Proof_Document,King's Proof Document,3,20,0,10,,,,,,,,,,,{},{}
-7177,Piece_of_Starlight's_Sorrow,Piece of Starlight's Sorrow,3,20,0,10,,,,,,,,,,,{},{}
-7178,Starlight's_Sorrow,Starlight's Sorrow,3,20,0,10,,,,,,,,,,,{},{}
-7179,Donation_Ticket,Donation Ticket,3,20,0,10,,,,,,,,,,,{},{}
-7180,Letter_of_Introduction,Letter of Introduction,3,20,0,10,,,,,,,,,,,{},{}
-7181,Commodity_Receipt,Commodity Receipt,3,20,0,10,,,,,,,,,,,{},{}
-7182,Cacao,Cacao,3,200,0,20,,,,,,,,,,,{},{}
-7183,Letter_of_Younger_Sister,Letter of Younger Sister,3,20,0,10,,,,,,,,,,,{},{}
-7184,Piano_Key,Piano Key,3,20,0,10,,,,,,,,,,,{},{}
-7185,Quiz_Participation_Ticket,Quiz Participation Ticket,3,20,0,10,,,,,,,,,,,{},{}
-7186,Thin_Trunk,Thin Trunk,3,20,0,10,,,,,,,,,,,{},{}
-7187,Festival_Mask,Festival Mask,3,20,0,10,,,,,,,,,,,{},{}
-7188,Brown_Root,Brown_Root,3,20,0,10,,,,,,,,,,,{},{}
-7189,Wooden_Heart,Wooden Heart,3,20,0,10,,,,,,,,,,,{},{}
-7190,Hard_Back_Shell,Hard Back Shell,3,20,0,10,,,,,,,,,,,{},{}
-7191,Paper_Lantern,Paper Lantern,3,20,0,10,,,,,,,,,,,{},{}
-7192,Pin_Wheel,Pin Wheel,3,20,0,10,,,,,,,,,,,{},{}
-7193,Sprout,Sprout,3,20,0,10,,,,,,,,,,,{},{}
-7194,Soft_Grass_Leaf,Soft Grass Leaf,3,20,0,10,,,,,,,,,,,{},{}
-7195,Slingshot,Slingshot,3,20,0,10,,,,,,,,,,,{},{}
-7196,Shoulder_Guard,Shoulder Guard,3,20,0,10,,,,,,,,,,,{},{}
-7197,Durable_Vine,Durable Vine,3,20,0,10,,,,,,,,,,,{},{}
-7198,Huge_Leaf,Huge Leaf,3,20,0,10,,,,,,,,,,,{},{}
-7199,Hieroglyphic,Hieroglyphic,3,20,0,10,,,,,,,,,,,{},{}
-7200,Elastic_Band,Elastic Band,3,20,0,10,,,,,,,,,,,{},{}
-7201,Log,Log,3,20,0,10,,,,,,,,,,,{},{}
-7202,Insect_Pinchers,Insect Pinchers,3,20,0,10,,,,,,,,,,,{},{}
-7203,Healthy_Branch,Healthy Branch,3,20,0,10,,,,,,,,,,,{},{}
-7204,Gun_Powder,Gun Powder,3,20,0,10,,,,,,,,,,,{},{}
-7205,Black_Piece_of_Cloth,Black Piece of Cloth,3,20,0,10,,,,,,,,,,,{},{}
-7206,Cat_Doll,Black Cat Doll,3,20,0,10,,,,,,,,,,,{},{}
-7207,Old_Mantle,Old Mantle,3,20,0,10,,,,,,,,,,,{},{}
-7208,Rusted_Knife,Rusted Knife,3,20,0,10,,,,,,,,,,,{},{}
-7209,Dullahan's_Helm,Dullahan's Helm,3,20,0,10,,,,,,,,,,,{},{}
-7210,Piece_of_Dullahan's_Armor,Dullahan's Armor Piece,3,20,0,10,,,,,,,,,,,{},{}
-7211,Rosetta_Stone_Fragment,Rosetta Stone Fragment,3,20,0,10,,,,,,,,,,,{},{}
-7212,Hanging_Doll,Hanging Doll,3,20,0,10,,,,,,,,,,,{},{}
-7213,Pin_Cusion,Pin Cusion,3,20,0,10,,,,,,,,,,,{},{}
-7214,Bat_Cage,Bat Cage,3,20,0,10,,,,,,,,,,,{},{}
-7215,Broken_Needle,Broken Needle,3,20,0,10,,,,,,,,,,,{},{}
-7216,Red_Scarf,Red Scarf,3,20,0,10,,,,,,,,,,,{},{}
-7217,Spool_of_Thread,Spool of Thread,3,20,0,10,,,,,,,,,,,{},{}
-7218,Rotted_Rope,Rotted Rope,3,20,0,10,,,,,,,,,,,{},{}
-7219,Striped_Socks,Striped Socks,3,20,0,10,,,,,,,,,,,{},{}
-7220,Ectoplasm,Ectoplasm,3,20,0,10,,,,,,,,,,,{},{}
-7221,Chains,Chains,3,20,0,10,,,,,,,,,,,{},{}
-7222,Old_Tree_Branch,Old Tree Branch,3,20,0,10,,,,,,,,,,,{},{}
-7223,Ruined_Self_Portrait,Ruined Self Portrait,3,20,0,10,,,,,,,,,,,{},{}
-7224,Philosophers_Stone,Philosopher's Stone,3,20,0,10,,,,,,,,,,,{},{}
-7225,Silk_Lantern,Silk Lantern,3,20,0,10,,,,,,,,,,,{},{}
-7226,Hallucination_Pill,Hallucination Pill,3,20,0,10,,,,,,,,,,,{},{}
-7227,TCG_Card,TCG Card,3,20,0,10,,,,,,,,,,,{},{}
-7228,Gold_Nugget,Gold Nugget,3,20,0,300,,,,,,,,,,,{},{}
-7229,Iron_Nugget,Iron Nugget,3,20,0,300,,,,,,,,,,,{},{}
-7230,Silver_Nugget,Silver Nugget,3,20,0,30,,,,,,,,,,,{},{}
-7231,Gold_Ore,Gold Ore,3,20,0,150,,,,,,,,,,,{},{}
-7232,Silver_Ore,Silver Ore,3,20,0,150,,,,,,,,,,,{},{}
-7233,Mysterious_Ore,Mysterious Ore,3,20,0,150,,,,,,,,,,,{},{}
-
-// RWC Reward items
-7234,Spirit_of_Guild,Spirit of Guild,3,20,0,10,,,,,,,,,,,{},{}
-7235,Spirit_of_Assault,Spirit of Assault,3,20,0,10,,,,,,,,,,,{},{}
-7236,Spirit_of_Defense,Spirit of Defense,3,20,0,10,,,,,,,,,,,{},{}
-7237,Spirit_of_Cooperation,Spirit of Cooperation,3,20,0,10,,,,,,,,,,,{},{}
-7238,Spirit_of_Harmony,Spirit of Harmony,3,20,0,10,,,,,,,,,,,{},{}
-7239,Spirit_of_Advancement,Spirit of Advancement,3,20,0,10,,,,,,,,,,,{},{}
-7240,Spirit_of_Trust,Spirit of Trust,3,20,0,10,,,,,,,,,,,{},{}
-7241,Spirit_of_Concentration,Spirit of Concentration,3,20,0,10,,,,,,,,,,,{},{}
-7242,Spirit_of_Unity,Spirit of Unity,3,20,0,10,,,,,,,,,,,{},{}
-7243,Spirit_of_Integrity,Spirit of Integrity,3,20,0,10,,,,,,,,,,,{},{}
-7244,Spirit_of_Communion,Spirit of Communion,3,20,0,10,,,,,,,,,,,{},{}
-7245,Spirit_of_Friendship,Spirit of Friendship,3,20,0,10,,,,,,,,,,,{},{}
-7246,Spirit_of_Peace,Spirit of Peace,3,20,0,10,,,,,,,,,,,{},{}
-7247,Spirit_of_Nature,Spirit of Nature,3,20,0,10,,,,,,,,,,,{},{}
-7248,Spirit_of_Fame,Spirit of Fame,3,20,0,10,,,,,,,,,,,{},{}
-7249,Spirit_of_Contribution,Spirit of Contribution,3,20,0,10,,,,,,,,,,,{},{}
-7250,Spirit_of_Glory,Spirit of Glory,3,20,0,10,,,,,,,,,,,{},{}
-7251,Spirit_of_Victory,Spirit of Victory,3,20,0,10,,,,,,,,,,,{},{}
-
-//Gonryun Items
-7252,Chinese_Medicine,Chinese Medicine,3,20,0,10,,,,,,,,,,,{},{}
-7253,Golden_Flag,Golden Flag,3,20,0,10,,,,,,,,,,,{},{}
-7254,Digitally_Printed_Ticket,Digitally Printed Ticket,3,20,0,10,,,,,,,,,,,{},{}
-7262,Paper_Fan,Paper Fan,3,233,0,,,,,,,,,,,,{},{}
-7263,Cat's_Eye,Cat's-Eye,3,20,477,10,,,,,,,,,,,{},{}
-7264,Dried_Sand,Dried Sand,3,20,161,10,,,,,,,,,,,{},{}
-7265,Dragon_Horn,Dragon Horn,3,20,0,10,,,,,,,,,,,{},{}
-7266,Dragon_Teeth,Dragon Teeth,3,218,0,,,,,,,,,,,,{},{}
-7267,Tigerskin_Underwear,Tigerskin Underwear,3,20,107,10,,,,,,,,,,,{},{}
-7268,Ghost_Doll,Ghost Doll,3,20,605,10,,,,,,,,,,,{},{}
-7269,Baby_Bib,Baby Bib,3,20,0,10,,,,,,,,,,,{},{}
-7270,Baby_Bottle,Baby Bottle,3,20,0,,,,,,,,,,,,{},{}
-7271,Novice_Statue,Novice Statue,3,20,0,10,,,,,,,,,,,{},{}
-7272,Dumpling_Doll,Dumpling Doll,3,20,0,10,,,,,,,,,,,{},{}
-7273,RWC_Necklace,RWC_Necklace,3,20,0,10,,,,,,,,,,,{},{}
-7274,Ancient_Language_Book,Ancient_Language_Book,3,20,0,10,,,,,,,,,,,{},{}
-7275,Ancient_Language_Document,Ancient_Language_Document,3,20,0,10,,,,,,,,,,,{},{}
-7276,Picture_Letter,Picture Letter,3,20,0,10,,,,,,,,,,,{},{}
-7277,Munak_Doll,Munak Doll,3,20,0,10,,,,,,,,,,,{},{}
-7278,Welfare_Letter,Welfare Letter,3,20,0,10,,,,,,,,,,,{},{}
-7279,Vita_500_Bottlecap,Vita 500 Bottlecap,3,20,0,10,,,,,,,,,,,{},{}
-7280,Quiz_Participation_Certificate_1,QP Certificate 1,3,20,0,10,,,,,,,,,,,{},{}
-7281,Quiz_Participation_Certificate_2,QP Certificate 2,3,20,0,10,,,,,,,,,,,{},{}
-7282,Quiz_Participation_Certificate_3,QP Certificate 3,3,20,0,10,,,,,,,,,,,{},{}
-7283,Quiz_Participation_Certificate_4,QP Certificate 4,3,20,0,10,,,,,,,,,,,{},{}
-7284,Quiz_Participation_Certificate_5,QP Certificate 5,3,20,0,10,,,,,,,,,,,{},{}
-
-// 11/09(Ayothana) Items
-7285,Sacred_Wool_Charm,Sacred_Wool_Charm,3,20,10,0,,,,,,,,,,,{},{},,
-7286,Red_Chili,Red_Chili,3,20,10,0,,,,,,,,,,,{},{},,
-7287,Sacred_Wool_Charm_2,Sacred_Wool_Charm_2,3,20,10,0,,,,,,,,,,,{},{},,
-7288,Engagement_Ring,Engagement_Ring,3,20,10,0,,,,,,,,,,,{},{},,
-7289,Olivite,Olivite,3,20,100,0,,,,,,,,,,,{},{},,
-7290,Gold_Mica,Gold_Mica,3,20,100,0,,,,,,,,,,,{},{},,
-7291,Agate,Agate,3,20,100,0,,,,,,,,,,,{},{},,
-7292,White_Mica,White_Mica,3,20,100,0,,,,,,,,,,,{},{},,
-7293,Rose_Quartz,Rose_Quartz,3,20,100,0,,,,,,,,,,,{},{},,
-7294,Turquoise,Turquoise,3,20,100,0,,,,,,,,,,,{},{},,
-7295,Citrine,Citrine,3,20,100,0,,,,,,,,,,,{},{}
-7296,Augite,Augite,3,20,100,0,,,,,,,,,,,{},{},,
-7297,Black_Mica,Black_Mica,3,20,100,0,,,,,,,,,,,{},{},,
-7298,Leaf_Cloth,Leaf_Cloth,3,20,10,0,,,,,,,,,,,{},{},,
-7299,Bamboo_Basket,Bamboo_Basket,3,20,10,0,,,,,,,,,,,{},{},,
-7300,Jeweled_Ore,Jeweled_Ore,3,20,10,0,,,,,,,,,,,{},{}
-7301,Knife_Decoration,Knife_Decoration,3,20,10,0,,,,,,,,,,,{},{},,
-7302,Krathong,Krathong,3,20,10,0,,,,,,,,,,,{},{},,
-
-7500,THG_Membership,THG Membership,3,20,0,10,,,,,,,,,,,{},{}
-7501,Token_Bag,Token Bag,3,20,0,10,,,,,,,,,,,{},{}
-
-// Pet Eggs
-//===================================================================
-9001,Poring_Egg,Poring Egg,7,20,0,0,,,,,,,,,,,{},{}
-9002,Drops_Egg,Drops Egg,7,20,0,0,,,,,,,,,,,{},{}
-9003,Poporing_Egg,Poporing Egg,7,20,0,0,,,,,,,,,,,{},{}
-9004,Lunatic_Egg,Lunatic Egg,7,20,0,0,,,,,,,,,,,{},{}
-9005,Picky_Egg,Picky Egg,7,20,0,0,,,,,,,,,,,{},{}
-9006,Chonchon_Egg,Chonchon Egg,7,20,0,0,,,,,,,,,,,{},{}
-9007,Steel_Chonchon_Egg,Steel Chonchon Egg,7,20,0,0,,,,,,,,,,,{},{}
-9008,Hunter_Fly_Egg,Hunter Fly Egg,7,20,0,0,,,,,,,,,,,{},{}
-9009,Savage_Babe_Egg,Savage Babe Egg,7,20,0,0,,,,,,,,,,,{},{}
-9010,Baby_Desert_Wolf_Egg,Baby Desert Wolf Egg,7,20,0,0,,,,,,,,,,,{},{}
-9011,Rocker_Egg,Rocker Egg,7,20,0,0,,,,,,,,,,,{},{}
-9012,Spore_Egg,Spore Egg,7,20,0,0,,,,,,,,,,,{},{}
-9013,Poison_Spore_Egg,Poison Spore Egg,7,20,0,0,,,,,,,,,,,{},{}
-9014,PecoPeco_Egg,PecoPeco Egg,7,20,0,0,,,,,,,,,,,{},{}
-9015,Smokie_Egg,Smokie Egg,7,20,0,0,,,,,,,,,,,{},{}
-9016,Yoyo_Egg,Yoyo Egg,7,20,0,0,,,,,,,,,,,{},{}
-9017,Orc_Warrior_Egg,Orc Warrior Egg,7,20,0,0,,,,,,,,,,,{},{}
-9018,Munak_Egg,Munak Egg,7,20,0,0,,,,,,,,,,,{},{}
-9019,Dokkaebi_Egg,Dokkaebi Egg,7,20,0,0,,,,,,,,,,,{},{}
-9020,Sohee_Egg,Sohee Egg,7,20,0,0,,,,,,,,,,,{},{}
-9021,Isis_Egg,Isis Egg,7,20,0,0,,,,,,,,,,,{},{}
-9022,Green_Petite_Egg,Green Petite Egg,7,20,0,0,,,,,,,,,,,{},{}
-9023,Deviruchi_Egg,Deviruchi Egg,7,20,0,0,,,,,,,,,,,{},{}
-9024,Bapho_Jr._Egg,Bapho Jr. Egg,7,20,0,0,,,,,,,,,,,{},{}
-9025,Bongun_Egg,Bongun Egg,7,20,0,0,,,,,,,,,,,{},{}
-9026,Alice_Egg,Alice Egg,7,20,0,0,,,,,,,,,,,{},{}
-9027,Zherlthsh_Egg,Zherlthsh Egg,7,20,0,0,,,,,,,,,,,{},{}
-9028,test_Egg,Test Egg,7,20,0,0,,,,,,,,,,,{},{}
-9029,test_Egg_,Test Egg,7,20,0,0,,,,,,,,,,,{},{}
-
-// Pet Accessories
-//===================================================================
-10001,Skull_Helm,Skull Helm,8,20,0,0,,,,,,,,,,,{},{}
-10002,Monster_Oxygen_Mask,Monster Oxygen Mask,8,20,0,0,,,,,,,,,,,{},{}
-10003,Transparent_Head_Protector,Transparent Headgear,8,20,0,0,,,,,,,,,,,{},{}
-10004,Pacifier,Pacifier,8,20,0,0,,,,,,,,,,,{},{}
-10005,Wig,Wig,8,20,0,0,,,,,,,,,,,{},{}
-10006,Queen's_Hair_Ornament,Queen's Hair Ornament,8,20,0,0,,,,,,,,,,,{},{}
-10007,Silk_Ribbon,Silk Ribbon,8,20,0,0,,,,,,,,,,,{},{}
-10008,Punisher,Punisher,8,20,0,0,,,,,,,,,,,{},{}
-10009,Wild_Flower,Wild Flower,8,20,0,0,,,,,,,,,,,{},{}
-10010,Battered_Pot,Battered Pot,8,20,0,0,,,,,,,,,,,{},{}
-10011,Stellar_Hairpin,Stellar Hairpin,8,20,0,0,,,,,,,,,,,{},{}
-10012,Tiny_Egg_Shell,Tiny Egg Shell,8,20,0,0,,,,,,,,,,,{},{}
-10013,Backpack,Backpack,8,1500,0,0,,,,,,,,,,,{},{}
-10014,Rocker_Glasses,Rocker Glasses,8,2000,0,0,,,,,,,,,,,{},{}
-10015,Green_Lace,Green Lace,8,20,0,0,,,,,,,,,,,{},{}
-10016,Golden_Bell,Golden Bell,8,20,0,0,,,,,,,,,,,{},{}
-10017,Bark_Shorts,Bark Shorts,8,20,0,0,,,,,,,,,,,{},{}
-10018,Monkey_Circlet,Monkey Circlet,8,20,0,0,,,,,,,,,,,{},{}
-10019,Red_Muffler,Red Muffler,8,20,0,0,,,,,,,,,,,{},{}
-10020,Sword_of_Chinese_Exorcist,Sword of Chinese Exorcist,8,20,0,0,,,,,,,,,,,{},{}
-
-// History books
-//===================================================================
-11000,Prontera_History_Book,Prontera History Book,3,20,0,0,,,,,,,,,,,{},{}
-11001,Izlude_History_Book,Izlude History Book,3,20,0,0,,,,,,,,,,,{},{}
-11002,Yuno_History_Book,Yuno History Book,3,20,0,0,,,,,,,,,,,{},{}
-11003,Geffen_History_Book,Geffen History Book,3,20,0,0,,,,,,,,,,,{},{}
-11004,Aldebaran_History_Book,Aldebaran History Book,3,20,0,0,,,,,,,,,,,{},{}
-11005,Alberta_History_Book,Alberta History Book,3,20,0,0,,,,,,,,,,,{},{}
-11006,Payon_History_Book,Payon History Book,3,20,0,0,,,,,,,,,,,{},{}
-11007,History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{}
-11009,History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{}
-11010,Archer_Village_History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{}
-11011,Lutie_History_Book,Luite History Book,3,20,0,0,,,,,,,,,,,{},{}
-11012,Jawaii_History_Book,Jawaii History Book,3,20,0,0,,,,,,,,,,,{},{}
-11013,Gonryun_History_Book,Gonryun History Book,3,20,0,0,,,,,,,,,,,{},{}
-11014,Mjolnir_History_Book,Mjolnir History Book,3,20,0,0,,,,,,,,,,,{},{}
-11015,Amatsu_History_Book,Amatsu History Book,3,20,0,0,,,,,,,,,,,{},{}
-11016,Umbala_History_Book,Umbala History Book,3,20,0,0,,,,,,,,,,,{},{}
-11017,Nifleheim_History_Book,Nifflheim History Book,3,20,0,0,,,,,,,,,,,{},{}
-11018,Morroc_History_Book,Morroc History Book,3,20,0,0,,,,,,,,,,,{},{}
-11019,Comodo_History_Book,Comodo History Book,3,20,0,0,,,,,,,,,,,{},{}
-11020,Louyang_History_Book,Louyang History Book,3,20,0,0,,,,,,,,,,,{},{}
+//ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Gender,Loc,wLV,eLV,View,{UseScript},{EquipScript} + +// Healing Items +//============================================================= +0,DEFAULT,Default,0,20,,10,,,,,0,2,0,0,,,{},{},, +501,Red_Potion,Red Potion,0,50,0,70,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{} +502,Orange_Potion,Orange Potion,0,200,0,100,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{} +503,Yellow_Potion,Yellow Potion,0,550,0,130,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{} +504,White_Potion,White Potion,0,1200,0,150,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{} +505,Blue_Potion,Blue Potion,0,5000,0,150,,,,,10477567,2,,,,,{ itemheal 0,rand(40,59); },{} +506,Green_Potion,Green Potion,0,40,0,70,,,,,10477567,2,,,,,{ sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; },{} +507,Red_Herb,Red Herb,0,18,0,30,,,,,10477567,2,,,,,{ itemheal rand(18,27),0; },{} +508,Yellow_Herb,Yellow Herb,0,40,0,50,,,,,10477567,2,,,,,{ itemheal rand(38,57),0; },{} +509,White_Herb,White Herb,0,120,0,70,,,,,10477567,2,,,,,{ itemheal rand(75,114),0; },{} +510,Blue_Herb,Blue Herb,0,60,0,70,,,,,10477567,2,,,,,{ itemheal 0,rand(15,29); },{} +511,Green_Herb,Green Herb,0,10,0,30,,,,,10477567,2,,,,,{ sc_end SC_Poison; },{} +512,mace,Apple,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(16,21),0; },{} +513,Banana,Banana,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(17,20),0; },{} +514,Grape,Grape,0,200,0,20,,,,,10477567,2,,,,,{ itemheal 0,rand(10,14); },{} +515,Carrot,Carrot,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(18,19),0; },{} +516,Sweet_Potato,Sweet Potato,0,15,0,20,,,,,10477567,2,,,,,{ itemheal rand(15,22),0; },{} +517,Meat,Meat,0,50,0,150,,,,,10477567,2,,,,,{ itemheal rand(70,99),0; },{} +518,Honey,Honey,0,500,0,100,,,,,10477567,2,,,,,{ itemheal rand(70,99),rand(20,39); },{} +519,Milk,Milk,0,25,0,30,,,,,10477567,2,,,,,{ itemheal rand(27,36),0; },{} +520,Hinalle_Leaflet,Hinalle Leaflet,0,150,0,10,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{} +521,Aloe_Leaflet,Aloe Leaflet,0,360,0,20,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{} +522,Mastela_Fruit,Mastela Fruit,0,840,0,30,,,,,10477567,2,,,,,{ itemheal rand(400,599),0; },{} +523,Holy_Water,Holy Water,0,20,0,30,,,,,10477567,2,,,,,{ sc_end SC_Curse; },{} +525,Panacea,Panacea,0,500,0,100,,,,,10477567,2,,,,,{ sc_end SC_Poison; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; },{} +526,Royal_Jelly,Royal Jelly,0,7000,0,150,,,,,10477567,2,,,,,{ itemheal rand(325,404),rand(40,59); sc_end SC_Posion; sc_end SC_Silence; sc_end SC_Blind; sc_end SC_Confusion; sc_end SC_Curse; },{} +528,Monster's_Feed,Monster Food,0,60,0,150,,,,,10477567,2,,,,,{ itemheal rand(72,107),0; },{} +529,Candy,Candy,0,10,0,30,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{} +530,Candy_Cane,Candy Cane,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{} +531,Apple_Juice,Apple Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(25,34),0; },{} +532,Banana_Juice,Banana Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(26,33),0; },{} +533,Grape_Juice,Grape Juice,0,250,0,40,,,,,10477567,2,,,,,{ itemheal 0,rand(15,24); },{} +534,Carrot_Juice,Carrot Juice,0,20,0,40,,,,,10477567,2,,,,,{ itemheal rand(27,32),0; },{} +535,Pumkin,Pumpkin,0,15,0,20,,,,,10477567,2,,,,,{ itemheal 19,0; },{} +536,Ice_Cream,Ice Cream,0,150,0,80,,,,,10477567,2,,,,,{ itemheal rand(105,144),0; },{} +537,Pet_Food,Pet Food,0,1000,0,10,,,,,10477567,2,,,,,{ itemheal rand(50,89),0; },{} +538,Well-baked_Cookie,Well-baked Cookie,0,1000,0,30,,,,,10477567,2,,,,,{ itemheal rand(160,199),0; },{} +539,Piece_of_Cake,Piece of Cake,0,3000,0,100,,,,,10477567,2,,,,,{ itemheal rand(270,329),0; },{} +540,Falcon_food,Falcon food,0,20,0,50,,,,,10477567,2,,,,,{},{} +541,Pecopeco_food,Pecopeco food,0,20,0,50,,,,,10477567,2,,,,,{},{} +542,Festive_Cookie,Festive Cookie,0,10,0,10,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{} +543,Festive_Rainbow_Cake,Festive Rainbow Cake,0,20,0,10,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{} +544,Raw_Fish,Raw Fish,0,20,0,30,,,,,10477567,2,,,,,{ itemheal rand(25,59),0; },{} +545,Condensed_Red_Potion,Condensed Red Potion,0,20,0,20,,,,,10477567,2,,,,,{ itemheal rand(45,64),0; },{} +546,Condensed_Yellow_Potion,Condensed Yellow Potion,0,20,0,30,,,,,10477567,2,,,,,{ itemheal rand(175,234),0; },{} +547,Condensed_White_Potion,Condensed White Potion,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(325,404),0; },{} +548,Cheese,Cheese,0,2800,0,50,,,,,10477567,2,,,,,{ itemheal 0,rand(10,14); },{} +549,Yam,Hot Potato,0,180,0,80,,,,,10477567,2,,,,,{ itemheal rand(50,99),0; },{} +550,Rice_Cake,Rice Popper,0,20,5,10,,,,,10477567,2,,,,,{ itemheal rand(10,14),0; },{} +551,Sushi,Sushi,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(50,60),0; },{} +552,Ketupat,Ketupat,0,20,0,10,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +553,Dumpling,Dumpling,0,20,0,50,,,,,10477567,2,,,,,{ itemheal rand(39,68),0; },{} +554,Mochi,Mochi,0,100,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +556,Rolled_Rice,Rolled Rice,0,20,0,10,,,,,10477567,3,,,,,{ itemheal rand(10,50),0; },{} +557,Cut_Rice_Rolls,Cut Rice Rolls,0,20,0,10,,,,,0,3,,,,,{ itemheal rand(10,200),0; },{} +558,Chocolate,Chocolate,0,500,0,20,,,,,10477567,2,,,,,{ itemheal 1,1; },{} +559,Hand-made_Chocolate,Hand-made Chocolate,0,5000,0,80,,,,,10477567,2,,,,,{ itemheal 50,50; },{} +560,White_Chocolate,White Chocolate,0,0,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +561,Milk_Chocolate_Bar,Milk Chocolate,0,0,0,80,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +562,Pizza,Pizza,0,20,0,150,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +563,Double_Growing_Swiss_Pong_Tyu_,Unknown Item,0,20,0,150,,,,,10477567,3,,,,,{ itemheal rand(100,200),0; },{} +564,Meat_Dumpling,Meat Dumpling,0,20,0,30,,,,,0,2,,,,,{ itemheal rand(175,234),0; },{} +565,Vita_500_Bottle,Vita 500,0,2000,0,30,,,,,10477567,2,,,,,{ itemheal 500,0; },{} +566,Tom_Yum_Goong,Tom_Yum_Goong,0,20,150,0,,,,,10477567,2,,,,,{ itemheal rand(100,200),0; },{} +567,Prawn,Prawn,0,20,40,0,,,,,10477567,3,,,,,{ itemheal rand(50,100),0; },{} +568,Lemon,Lemon,0,20,40,0,,,,,0,3,,,,,{},{} + +// Usable Items +//=================================================================== +601,Fly_Wing,Fly Wing,2,60,0,50,,,,,10477567,2,,,,,{ warp "Random",0,0; },{} +602,Butterfly_Wing,Butterfly Wing,2,300,0,50,,,,,10477567,2,,,,,{ warp "SavePoint",0,0; },{} +603,Old_Blue_Box,Old Blue Box,2,10000,0,200,,,,,10477567,2,,,,,{ getitem -1,1; },{} +604,Dead_Branch,Dead Branch,2,50,0,50,,,,,10477567,2,,,,,{ monster "this",0,0,"--ja--",-1,1,; },{} +605,Anodyne,Anodyne,2,2000,0,100,,,,,10477567,2,,,,,{ itemskill 8,1,"??????????"; },{} +606,Aloevera,Aloevera,2,1500,0,100,,,,,10477567,2,,,,,{ itemskill 6,1,"?????"; },{} +607,Yggdrasilberry,Yggdrasilberry,0,2,0,300,,,,,10477567,2,,,,,{ percentheal 100,100; },{} +608,Yggdrasil_Seed,Yggdrasil Seed,0,5000,0,300,,,,,10477567,2,,,,,{ percentheal 50,50; },{} +609,Amulet,Amulet,2,100,0,100,,,,,10477567,2,,,,,{},{} +610,Yggdrasil_Leaf,Yggdrasil Leaf,2,4000,0,100,,,,,10477567,2,,,,,{ itemskill 54,1,"????????"; },{} +611,Magnifier,Magnifier,2,40,0,50,,,,,10477567,2,,,,,{ itemskill 40,1,"???"; },{} +// Smithing Items +612,Mini_Furnace,Mini Furnace,2,150,0,200,,,,,10477567,2,,,,,{ produce 16; },{} +613,Iron_Hammer,Iron Hammer,2,1000,0,200,,,,,10477567,2,,,,,{ produce 1; },{} +614,Golden_Hammer,Golden Hammer,2,3000,0,300,,,,,10477567,2,,,,,{ produce 2; },{} +615,Oridecon_Hammer,Oridecon Hammer,2,5000,0,400,,,,,10477567,2,,,,,{ produce 3; },{} +// Item Givers +616,Old_Card_Album,Old Card Album,2,10000,0,50,,,,,10477567,2,,,,,{ getitem -3,1; },{} +617,Old_Violet_Box,Old Violet Box,2,10000,0,200,,,,,10477567,2,,,,,{ getitem -2,1; },{} +618,Worn_Out_Scroll,Worn Out Scroll,2,50,0,20,,,,,10477567,2,,,,,{ getitem -5,1; },{} + +// Pet Tames +//=================================================================== +619,Unripe_Apple,Unripe Apple,2,1000,0,50,,,,,10477567,2,,,,,{ pet 1002; },{} +620,Orange_Juice,Orange Juice,2,1500,0,50,,,,,10477567,2,,,,,{ pet 1113; },{} +621,Bitter_Herb,Bitter Herb,2,20,0,50,,,,,10477567,2,,,,,{ pet 1031; },{}, +622,Rainbow_Carrot,Rainbow Carrot,2,2500,0,50,,,,,10477567,2,,,,,{ pet 1063; },{}, +623,Earthworm_the_Dude,Earthworm the Dude,2,4000,0,50,,,,,10477567,2,,,,,{ pet 1049; },{}, +624,Rotten_Fish,Rotten Fish,2,2500,0,50,,,,,10477567,2,,,,,{ pet 1011; },{}, +625,Rusty_Iron,Rusty Iron,2,100,0,50,,,,,10477567,2,,,,,{ pet 1042; },{}, +626,Monster_Juice,Monster Juice,2,1500,0,50,,,,,10477567,2,,,,,{ pet 1035; },{} +627,Sweet_Milk,Sweet Milk,2,7000,0,50,,,,,10477567,2,,,,,{ pet 1167; },{} +628,Well_Dried_Bone,Well Dried Bone,2,10000,0,50,,,,,10477567,2,,,,,{ pet 1107; },{} +629,Singing_Flower,Singing Flower,2,300,0,50,,,,,10477567,2,,,,,{ pet 1052; },{} +630,Dew_Laden_Moss,Dew Laden Moss,2,10,0,50,,,,,10477567,2,,,,,{ pet 1014; },{}, +631,Deadly_Noxious_Herb,Deadly Noxious Herb,2,20,0,50,,,,,10477567,2,,,,,{ pet 1077; },{}, +632,Fatty_Chubby_Earthworm,Fatty Chubby Earthworm,2,5000,0,50,,,,,10477567,2,,,,,{ pet 1019; },{}, +633,Baked_Yam,Baked Yam,2,20,0,50,,,,,10477567,2,,,,,{ pet 1056; },{},, +634,Tropical_Banana,Tropical Banana,2,20,0,50,,,,,10477567,2,,,,,{ pet 1057; },{},, +635,Horror_of_Tribe,Horror of Tribe,2,300,0,50,,,,,10477567,2,,,,,{ pet 1023; },{},, +636,No_Recipient,No Recipient,2,100,0,50,,,,,10477567,2,,,,,{ pet 1026; },{},, +637,Old_Broom,Old Broom,2,350,0,50,,,,,10477567,2,,,,,{ pet 1110; },{},, +638,Silver_Knife_of_Chastity,Silver Knife of Chastity,2,12000,0,50,,,,,10477567,2,,,,,{ pet 1170; },{},, +639,Armlet_of_Obedience,Armlet of Obedience,2,18000,0,50,,,,,10477567,2,,,,,{ pet 1029; },{},, +640,Shining_Stone,Shining Stone,2,3000,0,50,,,,,10477567,2,,,,,{ pet 1155; },{},, +641,Contract_in_Shadow,Contracts in Shadow,2,100,0,50,,,,,10477567,2,,,,,{ pet 1109; },{},, +642,Book_of_Devil,Book of Devil,2,1800,0,50,,,,,10477567,2,,,,,{ pet 1101; },{},, +643,Pet_Incubator,Pet Incubator,2,3000,,30,,,,,10477567,2,,,,,{ if((countitem(9030)<1)&&(countitem(9031)<1)&&(countitem(9032)<1)&&(countitem(9033)<1)&&(countitem(9034)<1)&&(countitem(9035)<1)&&(countitem(9036)<1)&&(countitem(9037)<1)&&(countitem(9038)<1)&&(countitem(9039)<1)) bpet; },{},, + +// Misc Items +//=================================================================== +644,Gift_Box,Gift Box,2,2,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{}, +645,Concentration_Potion,Concentration Potion,2,800,0,100,,,,,10477567,2,,,,,{ sc_start SC_SpeedPot0,1800,0; },{} +656,Awakening_Potion,Awakening Potion,2,1500,0,150,,,,,8904431,2,,,40,,{ sc_start SC_SpeedPot1,1800,0; },{} +657,Berserk_Potion,Berserk Potion,2,3000,0,200,,,,,410786,2,,,85,,{ sc_start SC_SpeedPot2,1800,0; },{} +658,Tribal_Solidarity,Tribal Solidarity,3,1000,0,500,,,,,,,,,,,{},{} +659,Her_Heart,Her Heart,2,500,0,50,,,,,10477567,2,,,,,{ pet 1188; },{},, +660,Forbidden_Red_Candle,Red Candle,2,20,0,50,,,,,10477567,2,,,,,{ pet 1200; },{},, +661,Sky_Apron,Soft Apron,2,20,0,50,,,,,10477567,2,,,,,{ pet 1275; },{} + +// Newer Items +664,Gift_Box_,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{}, +665,Gift_Box__,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{}, +666,Gift_Box___,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{}, +667,Gift_Box____,Gift Box,2,20,0,200,,,,,10477567,2,,,,,{ getitem -4,1; },{}, +668,Angpow,Angpow,0,1,0,2,,,,,10477567,2,,,,,{ set Zeny,Zeny+rand(100,10000); },{} +669,Rice_Cake_Soup,Rice Cake Soup,2,20,0,100,,,,,,,,,,,{},{},, +670,Gold_Coin_Pouch,Gold Coin Pouch,2,20,0,400,,,,,,,,,,,{},{},, +671,Gold_Coin,Gold Coin,2,20,0,40,,,,,,,,,,,{},{},, +672,Copper_Coin_Pouch,Copper Coin Pouch,2,20,0,400,,,,,,,,,,,{},{},, +673,Copper_Coin,Copper Coin,2,20,0,40,,,,,,,,,,,{},{},, +674,Mysterious_Ore_Coin,Mysterious Ore Coin,2,20,0,40,,,,,0,3,,,,,{},{} +675,Silver_Coin,Silver Coin,2,20,0,40,,,,,0,3,,,,,{},{} +676,Silver_Coin_Pouch,Silver Coin Pouch,2,20,0,400,,,,,0,3,,,,,{},{} +677,Platinum_Coin,Platinum Coin,2,20,0,40,,,,,0,3,,,,,{},{} +678,Deadly_Poison_Bottle,Deadly Poison Bottle,2,20,0,100,,,,,0,3,,,,,{},{} +679,Recall_Pills,Recall Pills,2,20,0,300,,,,,0,3,,,,,{},{} +680,Carnation,Carnation,2,20,0,1000,,,,,0,3,,,,,{},{} +681,Wedding_Photo_Album,Wedding_Photo_Album,2,20,0,10,,,,,0,3,,,,,{},{} +682,Realgar_Wine,Realgar Wine,2,20,0,50,,,,,10477567,2,,,,,{ sc_start SC_ATKPOT,30,30; },{} +683,Exorcize_Herb,Exorcize Herb,2,20,0,50,,,,,10477567,2,,,,,{ sc_start SC_MATKPOT,30,30; },{} +684,Durian,Durian,2,20,0,10,,,,,0,3,,,,,{},{} +685,Ramadan,Ramadan,2,20,10,10,,,,,0,3,,,,,{},{} + +701,Ora_Ora,Ora Ora,3,55000,0,200,,,,,,,,,,,{},{} +702,Animal_Gore,Animal Gore,3,2,0,100,,,,,,,,,,,{},{} +703,Hinalle,Hinalle,3,2,0,10,,,,,,,,,,,{},{} +704,Aloe,Aloe,3,2,0,10,,,,,,,,,,,{},{} +705,Clover,Clover,3,10,0,10,,,,,,,,,,,{},{} +706,Four_Leaf_Clover,Four-Leaf Clover,3,80000,0,10,,,,,,,,,,,{},{} +707,Singing_Plant,Singing Plant,3,2,0,10,,,,,,,,,,,{},{} +708,Ment,Ment,3,2,0,10,,,,,,,,,,,{},{} +709,Izidor,Izidor,3,2,0,10,,,,,,,,,,,{},{} +710,Illusion_Flower,Illusion Flower,3,2,0,10,,,,,,,,,,,{},{} +711,Shoot,Shoot,3,16,0,10,,,,,,,,,,,{},{} +712,Flower,Flower,3,2,0,10,,,,,,,,,,,{},{} +713,Empty_Bottle,Empty Bottle,3,6,0,20,,,,,,,,,,,{},{} +714,Emperium,Emperium,3,2,0,1000,,,,,,,,,,,{},{} +715,Yellow_Gemstone,Yellow Gemstone,3,600,0,30,,,,,,,,,,,{},{} +716,Red_Gemstone,Red Gemstone,3,600,0,30,,,,,,,,,,,{},{} +717,Blue_Gemstone,Blue Gemstone,3,600,0,30,,,,,,,,,,,{},{} +718,Garnet,Garnet,3,6000,0,100,,,,,,,,,,,{},{} +719,Amethyst,Amethyst,3,6000,0,100,,,,,,,,,,,{},{} +720,Aquamarine,Aquamarine,3,6000,0,100,,,,,,,,,,,{},{} +721,Emerald,Emerald,3,6000,0,100,,,,,,,,,,,{},{} +722,Pearl,Pearl,3,6000,0,100,,,,,,,,,,,{},{} +723,Ruby,Ruby,3,6000,0,100,,,,,,,,,,,{},{} +724,Cursed_Ruby,Cursed Ruby,3,1000,0,100,,,,,,,,,,,{},{} +725,Sardonyx,Sardonyx,3,6000,0,100,,,,,,,,,,,{},{} +726,Sapphire,Sapphire,3,6000,0,100,,,,,,,,,,,{},{} +727,Opal,Opal,3,6000,0,100,,,,,,,,,,,{},{} +728,Topaz,Topaz,3,6000,0,100,,,,,,,,,,,{},{} +729,Zircon,Zircon,3,6000,0,100,,,,,,,,,,,{},{} +730,1_Carat_Diamond,1 Carat Diamond,3,10000,0,100,,,,,,,,,,,{},{} +731,2_Carat_Diamond,2 Carat Diamond,3,25000,0,100,,,,,,,,,,,{},{} +732,3_Carat_Diamond,3 Carat Diamond,3,55000,0,100,,,,,,,,,,,{},{} +733,Cracked_Diamond,Cracked Diamond,3,2,0,100,,,,,,,,,,,{},{} +734,Red_Frame,Red Frame,3,3000,0,200,,,,,,,,,,,{},{} +735,Chung_Jah,Chung Jah,3,5000,0,500,,,,,,,,,,,{},{} +736,China,China,3,1000,0,300,,,,,,,,,,,{},{} +737,Black_Ladle,Black Ladle,3,400,0,50,,,,,,,,,,,{},{} +738,Pencil_Case,Pencil Case,3,300,0,100,,,,,,,,,,,{},{} +739,Rouge,Rouge,3,10000,0,10,,,,,,,,,,,{},{} +740,Puppet,Puppet,3,1000,0,100,,,,,,,,,,,{},{} +741,Poring_Doll,Poring Doll,3,1800,0,100,,,,,,,,,,,{},{} +742,Chonchon_Doll,Chonchon Doll,3,3000,1000,100,,,,,,,,,,,{},{} +743,Spore_Doll,Spore Doll,3,5500,0,100,,,,,,,,,,,{},{} +744,Bouquet,Bouquet,3,2000,0,50,,,,,,,,,,,{},{} +745,Wedding_Bouquet,Wedding Bouquet,3,10000,0,50,,,,,,,,,,,{},{} +746,Glass_Bead,Glass Bead,3,1400,0,50,,,,,,,,,,,{},{} +747,Crystal_Mirror,Crystal Mirror,3,15000,0,50,,,,,,,,,,,{},{} +748,Witherless_Rose,Witherless Rose,3,55000,0,10,,,,,,,,,,,{},{} +749,Frozen_Rose,Frozen Rose,3,35000,0,10,,,,,,,,,,,{},{} +750,Baphomet_Doll,Baphomet Doll,3,18000,0,100,,,,,,,,,,,{},{} +751,Osiris_Doll,Osiris Doll,3,14000,0,100,,,,,,,,,,,{},{} +752,Rocker_Doll,Grasshopper Doll,3,4000,0,100,,,,,,,,,,,{},{} +753,Yoyo_Doll,Yoyo Doll,3,6000,0,100,,,,,,,,,,,{},{} +754,Raccoon_Doll,Raccoon Doll,3,5000,0,100,,,,,,,,,,,{},{} +756,Rough_Oridecon,Rough Oridecon,3,548,0,200,,,,,,,,,,,{},{} +757,Rough_Elunium,Rough Elunium,3,648,0,200,,,,,,,,,,,{},{} +901,Danggie,Danggie,3,250,0,10,,,,,,,,,,,{},{} +902,Tree_Root,Tree Root,3,12,0,10,,,,,,,,,,,{},{} +903,Reptile_Tongue,Reptile Tongue,3,50,0,10,,,,,,,,,,,{},{} +904,Scorpion_Tail,Scorpion Tail,3,124,0,10,,,,,,,,,,,{},{} +905,Stem,Stem,3,58,0,10,,,,,,,,,,,{},{} +906,Pointed_Scale,Pointed Scale,3,70,0,10,,,,,,,,,,,{},{} +907,Resin,Resin,3,120,0,10,,,,,,,,,,,{},{} +908,Spawn,Spawn,3,148,0,10,,,,,,,,,,,{},{} +909,Jellopy,Jellopy,3,6,0,10,,,,,,,,,,,{},{} +910,Garlet,Garlet,3,40,0,10,,,,,,,,,,,{},{} +911,Scell,Scell,3,160,0,10,,,,,,,,,,,{},{} +912,Zargon,Zargon,3,480,0,10,,,,,,,,,,,{},{} +913,Tooth_of_Bat,Tooth of Bat,3,34,0,10,,,,,,,,,,,{},{} +914,Fluff,Fluff,3,8,0,10,,,,,,,,,,,{},{} +915,Chrysalis,Chrysalis,3,8,0,10,,,,,,,,,,,{},{} +916,Feather_of_Birds,Feather of Birds,3,10,0,10,,,,,,,,,,,{},{} +917,Talon,Talon,3,20,0,10,,,,,,,,,,,{},{} +918,Sticky_Webfoot,Sticky Webfoot,3,20,0,10,,,,,,,,,,,{},{} +919,Animal_Skin,Animal Skin,3,36,0,10,,,,,,,,,,,{},{} +920,Wolf_Claw,Wolf Claw,3,58,0,10,,,,,,,,,,,{},{} +921,Mushroom_Spore,Mushroom Spore,3,36,0,10,,,,,,,,,,,{},{} +922,Orc's_Fang,Orcish Fang,3,220,0,10,,,,,,,,,,,{},{} +923,Evil_Horn,Evil Horn,3,1020,0,10,,,,,,,,,,,{},{} +924,Powder_of_Butterfly,Powder of Butterfly,3,90,0,10,,,,,,,,,,,{},{} +925,Bill_of_Birds,Bill of Birds,3,64,0,10,,,,,,,,,,,{},{} +926,Snake_Scale,Snake Scale,3,82,0,10,,,,,,,,,,,{},{} +928,Insect_Feeler,Insect Feeler,3,114,0,10,,,,,,,,,,,{},{} +929,Immortal_Heart,Immortal Heart,3,374,0,10,,,,,,,,,,,{},{} +930,Rotten_Bandage,Rotten Bandage,3,358,0,10,,,,,,,,,,,{},{} +931,Orcish_Voucher,Orcish Voucher,3,168,0,10,,,,,,,,,,,{},{} +932,Skel-Bone,Skel-Bone,3,232,0,10,,,,,,,,,,,{},{} +934,Memento,Memento,3,600,0,10,,,,,,,,,,,{},{} +935,Shell,Shell,3,14,0,10,,,,,,,,,,,{},{} +936,Scale_Shell,Scale Shell,3,466,0,10,,,,,,,,,,,{},{} +937,Venom_Canine,Venom Canine,3,148,0,10,,,,,,,,,,,{},{} +938,Sticky_Mucus,Sticky Mucus,3,70,0,10,,,,,,,,,,,{},{} +939,Bee_Sting,Bee Sting,3,32,0,10,,,,,,,,,,,{},{} +940,Grasshopper's_Leg,Grasshoppers Leg,3,36,0,10,,,,,,,,,,,{},{} +941,Nose_Ring,Nose Ring,3,568,0,10,,,,,,,,,,,{},{} +942,Yoyo_Tail,Yoyo Tail,3,114,0,10,,,,,,,,,,,{},{} +943,Solid_Shell,Solid Shell,3,448,0,10,,,,,,,,,,,{},{} +944,Horseshoe,Horseshoe,3,588,0,10,,,,,,,,,,,{},{} +945,Raccoon_Leaf,Raccoon Leaf,3,106,0,10,,,,,,,,,,,{},{} +946,Snail's_Shell,Snails Shell,3,64,0,10,,,,,,,,,,,{},{} +947,Horn,Horn,3,116,0,10,,,,,,,,,,,{},{} +948,Bear's_Footskin,Bears Footskin,3,174,0,10,,,,,,,,,,,{},{} +949,Feather,Feather,3,20,0,10,,,,,,,,,,,{},{} +950,Heart_of_Mermaid,Heart of Mermaid,3,264,0,10,,,,,,,,,,,{},{} +951,Fin,Fin,3,412,0,10,,,,,,,,,,,{},{} +952,Cactus_Needle,Cactus Needle,3,82,0,10,,,,,,,,,,,{},{} +953,Stone_Heart,Stone Heart,3,184,0,10,,,,,,,,,,,{},{} +954,Shining_Scale,Shining Scale,3,466,0,10,,,,,,,,,,,{},{} +955,Worm_Peeling,Worm Peeling,3,52,0,10,,,,,,,,,,,{},{} +956,Gill,Gill,3,342,0,10,,,,,,,,,,,{},{} +957,Decayed_Nail,Decayed Nail,3,82,0,10,,,,,,,,,,,{},{} +958,Horrendous_Mouth,Horrendous Mouth,3,390,0,10,,,,,,,,,,,{},{} +959,Stinky_Scale,Stinky Scale,3,168,0,10,,,,,,,,,,,{},{} +960,Nipper,Nipper,3,114,0,10,,,,,,,,,,,{},{} +961,Conch,Conch,3,158,0,10,,,,,,,,,,,{},{} +962,Tentacle,Tentacle,3,70,0,10,,,,,,,,,,,{},{} +963,Sharp_scale,Sharp Scale,3,250,0,10,,,,,,,,,,,{},{} +964,Crab_Shell,Crab Shell,3,90,5,10,,,,,,,,,,,{},{} +965,Clam_Shell,Clam Shell,3,56,5,10,,,,,,,,,,,{},{} +966,Clam_Flesh,Clam Flesh,3,158,0,10,,,,,,,,,,,{},{} +967,Turtle_Shell,Turtle Shell,3,680,0,10,,,,,,,,,,,{},{} +968,Heroic_Emblem,Heroic Emblem,3,3000,0,10,,,,,,,,,,,{},{} +969,Gold,Gold,3,200000,0,200,,,,,,,,,,,{},{} +970,Alcohol,Alcohol,3,400,0,30,,,,,,,,,,,{},{} +971,Detrimindexta,Detrimindexta,3,400,0,30,,,,,,,,,,,{},{} +972,Karvodailnirol,Karvodailnirol,3,400,0,30,,,,,,,,,,,{},{} +973,Counteragent,Counteragent,3,200,0,70,,,,,,,,,,,{},{} +974,Mixture,Mixture,3,200,0,70,,,,,,,,,,,{},{} +975,Scarlet_Dyestuffs,Scarlet Dyestuffs,3,1000,0,150,,,,,,,,,,,{},{} +976,Lemon_Dyestuffs,Lemon Dyestuffs,3,1000,0,150,,,,,,,,,,,{},{} +978,Cobaltblue_Dyestuff,Cobaltblue Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +979,Darkgreen_Dyestuff,Darkgreen Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +980,Orange_Dyestuff,Orange Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +981,Violet_Dyestuff,Violet Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +982,White_Dyestuff,White Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +983,Black_Dyestuff,Black Dyestuff,3,1000,0,150,,,,,,,,,,,{},{} +984,Oridecon,Oridecon,3,1100,0,200,,,,,,,,,,,{},{} +985,Elunium,Elunium,3,1100,0,200,,,,,,,,,,,{},{} +986,Anvil,Anvil,3,30000,0,500,,,,,,,,,,,{},{} +987,Oridecon_Anvil,Oridecon Anvil,3,120000,0,700,,,,,,,,,,,{},{} +988,Golden_Anvil,Golden Anvil,3,300000,0,900,,,,,,,,,,,{},{} +989,Emperium_Anvil,Emperium Anvil,3,600000,0,1000,,,,,,,,,,,{},{} +990,Red_Blood,Red Blood,3,1000,0,50,,,,,,,,,,,{},{} +991,Crystal_Blue,Crystal Blue,3,1000,0,50,,,,,,,,,,,{},{} +992,Wind_of_Verdure,Wind of Verdure,3,1000,0,50,,,,,,,,,,,{},{} +993,Green_Live,Green Live,3,1000,0,50,,,,,,,,,,,{},{} +994,Flame_Heart,Flame Heart,3,3000,0,300,,,,,,,,,,,{},{} +995,Mystic_Frozen,Mystic Frozen,3,3000,0,300,,,,,,,,,,,{},{} +996,Rough_Wind,Rough Wind,3,3000,0,300,,,,,,,,,,,{},{} +997,Great_Nature,Great Nature,3,3000,0,300,,,,,,,,,,,{},{} +998,Iron,Iron,3,100,0,50,,,,,,,,,,,{},{} +999,Steel,Steel,3,1000,0,100,,,,,,,,,,,{},{} +1000,Star_Crumb,Star Crumb,3,4500,0,100,,,,,,,,,,,{},{} +1001,Star_Dust,Star Dust,3,1500,0,10,,,,,,,,,,,{},{} +1002,Iron_Ore,Iron Ore,3,50,0,150,,,,,,,,,,,{},{} +1003,Coal,Coal,3,500,0,50,,,,,,,,,,,{},{} +1004,Chivalry_Emblem,Chivalry Emblem,3,2,0,100,,,,,,,,,,,{},{} +1005,Hammer_of_Blacksmith,Hammer of Blacksmith,3,2,0,800,,,,,,,,,,,{},{} +1006,Old_Magic_Book,Old Magic Book,3,2,0,30,,,,,,,,,,,{},{} +1007,Necklace_of_Wisdom,Necklace of Wisdom,3,2,0,40,,,,,,,,,,,{},{} +1008,Necklace_of_Oblivion,Necklace of Oblivion,3,2,0,100,,,,,,,,,,,{},{} +1009,Hand_of_God,Hand of God,3,2,0,20,,,,,,,,,,,{},{} +1010,Phracon,Phracon,3,200,0,200,,,,,,,,,,,{},{} +1011,Emveretarcon,Emveretarcon,3,1000,0,200,,,,,,,,,,,{},{} +1012,Frill,Frill,3,250,0,10,,,,,,,,,,,{},{} +1013,Rainbow_Shell,Rainbow Shell,3,90,0,10,,,,,,,,,,,{},{} +1014,Ant_Jaw,Ant Jaw,3,232,0,10,,,,,,,,,,,{},{} +1015,Tongue,Tongue,3,528,0,10,,,,,,,,,,,{},{} +1016,Rat_Tail,Rat Tail,3,52,0,10,,,,,,,,,,,{},{} +1017,Mole_Whiskers,Mole Whiskers,3,106,0,10,,,,,,,,,,,{},{} +1018,Mole_Claw,Mole Claw,3,210,0,10,,,,,,,,,,,{},{} +1019,Trunk,Trunk,3,60,0,10,,,,,,,,,,,{},{} +1020,Black_Hair,Black Hair,3,292,0,10,,,,,,,,,,,{},{} +1021,Dokkaebi_Horn,Dokkaebi Horn,3,292,0,10,,,,,,,,,,,{},{} +1022,Nine_Tails,Nine Tails,3,650,0,10,,,,,,,,,,,{},{} +1023,Fish_Tail,Fish Tail,3,196,0,10,,,,,,,,,,,{},{} +1024,Squid_Ink,Squid Ink,3,264,0,10,,,,,,,,,,,{},{} +1025,Cobweb,Cobweb,3,184,0,10,,,,,,,,,,,{},{} +1026,Acorn,Acorn,3,98,0,10,,,,,,,,,,,{},{} +1027,Porcupine_Quill,Porcupine Quill,3,158,0,10,,,,,,,,,,,{},{} +1028,Mane,Mane,3,196,0,10,,,,,,,,,,,{},{} +1029,Tiger_Skin,Tiger Skin,3,548,0,10,,,,,,,,,,,{},{} +1030,Tiger's_Footskin,Tigers Footskin,3,1500,0,10,,,,,,,,,,,{},{} +1031,Mantis_Scythe,Mantis Scythe,3,196,0,10,,,,,,,,,,,{},{} +1032,Maneater_Blossom,Maneater Blossom,3,196,0,10,,,,,,,,,,,{},{} +1033,Maneater_Root,Maneater Root,3,208,0,10,,,,,,,,,,,{},{} +1034,Blue_Hair,Blue Hair,3,342,0,10,,,,,,,,,,,{},{} +1035,Dragon_Canine,Dragon Canine,3,484,0,10,,,,,,,,,,,{},{} +1036,Dragon_Scale,Dragon Scale,3,500,0,10,,,,,,,,,,,{},{} +1037,Dragon_Tail,Dragon Tail,3,1200,0,10,,,,,,,,,,,{},{} +1038,Little_Evil_Horn,Little Evil Horn,3,528,0,10,,,,,,,,,,,{},{} +1039,Little_Evil_Wing,Little Evil Wing,3,2000,0,10,,,,,,,,,,,{},{} +1040,Elder_Pixie's_Moustache,Elder Pixies Moustache,3,232,0,10,,,,,,,,,,,{},{} +1041,Lantern,Lantern,3,250,0,10,,,,,,,,,,,{},{} +1042,Bug_Leg,Bug Leg,3,430,0,10,,,,,,,,,,,{},{} +1043,Orc_Claw,Orc Claw,3,168,0,10,,,,,,,,,,,{},{} +1044,Zenorc's_Fang,Zenorcs Fang,3,264,0,10,,,,,,,,,,,{},{} +1045,Cultish_Masque,Cultish Masque,3,412,0,10,,,,,,,,,,,{},{} +1046,Scorpion_Nipper,Scorpion Nipper,3,614,0,10,,,,,,,,,,,{},{} +1047,Dead_Medusa,Dead Medusa,3,548,0,10,,,,,,,,,,,{},{} +1048,Horrendous_Hair,Horrendous Hair,3,800,0,10,,,,,,,,,,,{},{} +1049,Skirt_of_Virgin,Skirt of Virgin,3,1700,0,10,,,,,,,,,,,{},{} +1050,Tendon,Tendon,3,220,0,10,,,,,,,,,,,{},{} +1051,Detonator,Detonator,3,450,0,10,,,,,,,,,,,{},{} +1052,Single_Cell,Single Cell,3,46,0,10,,,,,,,,,,,{},{} +1053,Ancient_Tooth,Ancient Tooth,3,548,0,10,,,,,,,,,,,{},{} +1054,Ancient_Lips,Ancient Lips,3,1000,0,10,,,,,,,,,,,{},{} +1055,Earthworm_Peeling,Earthworm Peeling,3,196,0,10,,,,,,,,,,,{},{} +1056,Grit,Grit,3,306,0,10,,,,,,,,,,,{},{} +1057,Moth_Dust,Moth Dust,3,138,0,10,,,,,,,,,,,{},{} +1058,Moth_Wings,Moth Wings,3,200,0,10,,,,,,,,,,,{},{} +1059,Fabric,Fabric,3,306,0,10,,,,,,,,,,,{},{} +1060,Golden_Hair,Golden Hair,3,430,0,10,,,,,,,,,,,{},{} +1061,Witched_Starsand,Witched Starsand,3,484,0,10,,,,,,,,,,,{},{} +1062,Jack_o'_Pumpkin,Jack o' Pumpkin,3,374,0,10,,,,,,,,,,,{},{} +1063,Fang,Fang,3,680,0,10,,,,,,,,,,,{},{} +1064,Reins,Reins,3,802,0,10,,,,,,,,,,,{},{} +1065,Trap,Trap,3,100,0,10,,,,,,,,,,,{},{} +1066,Fine-grained_Trunk,Fine-grained Trunk,3,2,0,10,,,,,,,,,,,{},{} +1067,Solid_Trunk,Solid Trunk,3,2,0,10,,,,,,,,,,,{},{} +1068,Barren_Trunk,Barren Trunk,3,2,0,10,,,,,,,,,,,{},{} +1069,Orange_Net_Mushroom,Orange Net Mushroom,3,2,0,10,,,,,,,,,,,{},{} +1070,Orange_Gooey_Mushroom_,Orange Gooey Mushroom,3,2,0,10,,,,,,,,,,,{},{} +1071,Unknown_Test_Tube,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{} +1072,Delivery_Message,DEL Message,3,2,0,10,,,,,,,,,,,{},{} +1073,Voucher,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1074,Voucher_,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1075,Voucher__,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1076,Voucher___,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1077,Voucher____,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1078,Voucher_____,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1079,Voucher______,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1080,Voucher_______,Voucher,3,2,0,10,,,,,,,,,,,{},{} +1081,Delivery_Box,DEL Box,3,2,0,1200,,,,,,,,,,,{},{} +1082,Delivery_Box_,DEL Box,3,2,0,1200,,,,,,,,,,,{},{} +1083,Delivery_Box__,DEL Box,3,2,0,1200,,,,,,,,,,,{},{} +1084,Kafra_Pass,Kafra Pass,3,0,0,10,,,,,,,,,,,{},{} +1085,Unknown_Test_Tube_,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{} +1086,Unknown_Test_Tube__,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{} +1087,Unknown_Test_Tube___,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{} +1088,Morroc_Solution,Morocc Solution,3,2,0,30,,,,,,,,,,,{},{} +1089,Payon_Solution,Payon Solution,3,2,0,30,,,,,,,,,,,{},{} +1090,Unknown_Test_Tube____,Unknown Testtube,3,2,0,30,,,,,,,,,,,{},{} +1092,Empty_Test_Tube,Empty Testtube,3,3,0,20,,,,,,,,,,,{},{} +1093,Empty_Potion_Bottle,Empty Potion Bottle,3,10,0,10,,,,,,,,,,,{},{} +1094,Short_Daenggie,Short Daenggie,3,278,0,10,,,,,,,,,,,{},{} +1095,Clock_Hand,Needle of Alarm,3,546,0,10,,,,,,,,,,,{},{} +1096,Round_Shell,Round Shell,3,954,0,10,,,,,,,,,,,{},{} +1097,Worn_Out_Page,Worn Out Page,3,820,0,10,,,,,,,,,,,{},{} +1098,Manacles,Manacles,3,658,0,10,,,,,,,,,,,{},{} +1099,Worn-out_Prison_Uniform,Worn-out Prison Uniform,3,680,0,10,,,,,,,,,,,{},{} + +// Weapons +//=================================================================== +// 1 Handed Swords +1101,Sword,Sword,4,100,0,500,25,,1,3,8803555,2,2,1,2,2,{},{} +1102,Sword_,Sword,4,100,0,500,25,,1,4,8803555,2,2,1,2,2,{},{} +1103,Sword__,Sword,4,100,0,500,25,,1,0,8803555,2,2,1,2,2,{},{} +1104,Falchion,Falchion,4,1500,0,600,39,,1,3,8803555,2,2,1,2,2,{},{} +1105,Falchion_,Falchion,4,1500,0,600,39,,1,4,8803555,2,2,1,2,2,{},{} +1106,Falchion__,Falchion,4,1500,0,600,39,,1,0,8803555,2,2,1,2,2,{},{} +1107,Blade,Blade,4,2900,0,700,53,,1,3,8803555,2,2,1,2,2,{},{} +1108,Blade_,Blade,4,2900,0,700,53,,1,4,8803555,2,2,1,2,2,{},{} +1109,Blade__,Blade,4,2900,0,700,53,,1,0,8803555,2,2,1,2,2,{},{} +1110,Rapier,Rapier,4,10000,0,500,70,,1,2,8803555,2,2,2,14,2,{},{} +1111,Rapier_,Rapier,4,10000,0,500,70,,1,3,8803555,2,2,2,14,2,{},{} +1112,Rapier__,Rapier,4,10000,0,500,70,,1,0,8803555,2,2,2,14,2,{},{} +1113,Scimiter,Scimiter,4,17000,0,700,85,,1,2,8803555,2,2,2,14,2,{},{} +1114,Scimiter_,Scimiter,4,17000,0,700,85,,1,3,8803555,2,2,2,14,2,{},{} +1115,Scimiter__,Scimiter,4,17000,0,700,85,,1,0,8803555,2,2,2,14,2,{},{} +1116,Katana,Katana,4,2000,0,1000,60,,1,3,16514,2,34,1,4,3,{},{} +1117,Katana_,Katana,4,2000,0,1000,60,,1,4,16514,2,34,1,4,3,{},{} +1118,Katana__,Katana,4,2000,0,1000,60,,1,0,16514,2,34,1,4,3,{},{} +1119,Tsurugi,Tsurugi,4,51000,0,1200,130,,1,1,414946,2,2,3,27,2,{},{} +1120,Tsurugi_,Tsurugi,4,51000,0,1200,130,,1,2,414946,2,2,3,27,2,{},{} +1121,Tsurugi__,Tsurugi,4,51000,0,1200,130,,1,0,414946,2,2,3,27,2,{},{} +1122,Ring_Pommel_Saber,Ring Pommel Saber,4,24000,0,900,100,,1,2,414946,2,2,2,14,2,{},{} +1123,Haedonggum,Haedonggum,4,50000,0,900,120,,1,1,414946,2,2,3,27,2,{},{ bonus bInt,3; },,,,,, +1124,Orcish_Sword,Orcish sword,4,20,0,800,90,,1,0,8803555,2,2,3,5,2,{},{ bonus bUnbreakable,100; },,,,,,, +1125,Ring_Pommel_Saber_,Ring Pommel Saber,4,24000,0,900,100,,1,3,414946,2,2,2,14,2,{},{},,,,,,, +1126,Saber,Saber,4,49000,0,1000,115,,1,2,414946,2,2,3,27,2,{},{},,,,,,, +1127,Saber_,Saber,4,49000,0,1000,115,,1,3,414946,2,2,3,27,2,{},{},,,,,,, +1128,Haedonggum_,Haedonggum,4,50000,0,900,120,,1,2,414946,2,2,3,27,2,{},{ bonus bInt,3; },,,,,, +1129,Flamberge,Flamberge,4,60000,0,1500,150,,1,0,16512,2,2,3,27,2,{},{},,,,,,, +1130,Nagan,Nagan,4,20,0,500,120,,1,0,414946,2,2,4,40,2,{},{ bonus bDoubleRate,25; bonus2 bAddRace,7,5; },,,, +1131,Ice_Falchion,Ice Falchion,4,20,0,600,100,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,1; skill 14,3; bonus2 bAddEff,Eff_Freeze,500; bonus3 bAutoSpell,14,3,25; } +1132,Edge,Edge,4,20,0,700,115,,1,0,414946,2,2,4,40,2,{},{ bonus2 bAddEff,Eff_Curse,300; bonus2 bWeaponComaRace,11,10; },,, +1133,Fire_Brand,Fire Brand,4,20,0,500,100,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,3; skill 19,3; bonus3 bAutoSpell,19,3,25; },, +1134,Caesar's_Sword,Caesar's Sword,4,20,0,700,140,,1,0,414946,2,2,4,40,2,{},{ bonus2 bAddRace,3,25; bonus bIgnoreDefRace,3; },,,, +1135,Cutlas,Cutlas,4,20,0,900,150,,1,0,414946,2,2,4,40,2,{},{ skill 5,5; bonus bStr,2; bonus bDef,1; },,,, +1136,Solar_Sword,Solar Sword,4,20,0,1200,85,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,3; bonus2 bHPDrainRate,100,1; bonus2 bSPDrainRate,5,-15; },,,, +1137,Excalibur,Excalibur,4,20,0,1200,150,,1,0,414946,2,2,4,40,2,{},{ bonus bInt,5; bonus bLuk,10; bonus bDex,-1; bonus bAtkEle,6; },,, +1138,Mysteltainn_,Mysteltainn,4,20,0,1000,170,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,7; bonus2 bAddEle,8,15; bonus2 bAddEff,Eff_Stone,100; bonus bDex,3; }, +1139,Talefing_,Talefing,4,20,0,1000,200,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,7; bonus2 bSPDrainRate,5,-35; },,,,,,,,, +1140,Byeollungum,Byeollungum,4,20,0,900,150,,1,0,414946,2,2,4,40,2,{},{ bonus2 bSubRace,11,-10; bonus2 bAddRace,10,50; bonus bAllStats,2; } +1141,Immaterial_Sword,Immaterial Sword,4,20,0,900,140,,1,0,414946,2,2,4,40,2,{},{ bonus bAtkEle,8; bonus2 bSPDrainRate,1,30; bonus2 bSPDrainRate,100,-1; },,,,,,,,, +1142,Jewel_Sword,Crystal Sword,4,20,0,2200,104,,1,0,414946,2,2,3,68,2,{},{},,,,,,,,,, +1143,Gaia_Sword,Gaia Sword,4,20,0,2500,115,,1,0,414946,2,2,3,74,2,{},{ bonus3 bAddMonsterDropItem,1002,50,25000; },,,,,,,,,, +1144,Sashimi,Sashimi,4,20,0,1400,75,,1,0,414946,2,2,3,48,2,{},{ bonus bAtkEle,4; bonus3 bAddMonsterDropItem,544,5,4000; },,,,,, +1145,Holy_Avenger,Holy Avenger,4,20,0,1350,125,,1,0,16384,2,2,3,75,2,{},{ bonus bAtkEle,6; },,,,,,,, +// 2 Handed Swords +1151,Slayer,Slayer,4,15000,0,1300,90,,1,2,16514,2,34,2,18,3,{},{},,,,,,,,,, +1152,Slayer_,Slayer,4,15000,0,1300,90,,1,3,16514,2,34,2,18,3,{},{},,,,,,,,,, +1153,Slayer__,Slayer,4,15000,0,1300,90,,1,0,16514,2,34,2,18,3,{},{},,,,,,,,,, +1154,Bastard_Sword,Bastard Sword,4,22500,0,1600,115,,1,2,16514,2,34,2,18,3,{},{},,,,,,,,,, +1155,Bastard_Sword_,Bastard Sword,4,22500,0,1600,115,,1,3,16514,2,34,2,18,3,{},{},,,,,,,,,, +1156,Bastard_Sword__,Bastard Sword,4,22500,0,1600,115,,1,0,16514,2,34,2,18,3,{},{},,,,,,,,,, +1157,Two_handed_Sword,Two-handed Sword,4,60000,0,2200,160,,1,1,16514,2,34,3,33,3,{},{},,,,,,,,,, +1158,Two_handed_Sword_,Two-handed Sword,4,60000,0,2200,160,,1,2,16514,2,34,3,33,3,{},{},,,,,,,,,, +1159,Two_handed_Sword__,Two-handed Sword,4,60000,0,2200,160,,1,0,16514,2,34,3,33,3,{},{},,,,,, +1160,Broad_Sword,Broad Sword,4,65000,0,2000,140,,1,1,16514,2,34,3,33,3,{},{ bonus bDef,5; },,,,, +1161,Balmung,Balmung,4,20,0,1000,250,,2,0,2088959,2,2,4,48,1,{},{ bonus bInt,20; bonus bLuk,20; },,,, +1162,Broad_Sword_,Broad Sword,4,65000,0,2000,140,,1,2,16514,2,34,3,33,3,{},{ bonus bDef,5; },,,,, +1163,Claymore,Claymore,4,74000,0,2500,180,,1,0,16512,2,34,3,33,3,{},{},,,,,, +1164,Muramasa,Muramasa,4,20,0,1000,155,,1,0,16514,2,34,4,48,3,{},{ bonus bCritical,30; bonus bAspdAddRate,8; bonus2 bAddEff2,Eff_Curse,200; },, +1165,Masamune,Masamune,4,20,0,1000,200,,1,0,16514,2,34,4,48,3,{},{ bonus bFlee,30; bonus bStr,-5; bonus bAspd,2; bonus bDefRate,-50; bonus bDef2Rate,-50; }, +1166,Dragon_Slayer,Dragon Slayer,4,20,0,1300,150,,1,0,16514,2,34,4,48,3,{},{ bonus bIgnoreDefRace,9; bonus2 bAddRace,9,15; },,, +1167,Schweizersabel,Schweizersabel,4,20,0,1600,160,,1,0,16514,2,34,4,48,3,{},{ bonus bAtkEle,4; skill 20,3; bonus bDef,1; bonus3 bAutoSpell,20,3,25; } +1168,Zweihander,Zweihander,4,20,0,2200,200,,1,0,16514,2,34,4,48,3,{},{bonus bUnbreakable,100; },,,,,, +1169,Executioner_,Executioner,4,20,0,2200,155,,1,0,16514,2,34,4,48,3,{},{ bonus bIgnoreDefRace,7; bonus2 bAddRace,7,20; bonus2 bSubRace,7,-10; bonus bAtkEle,7; } +1170,Katzbalger,Katzbalger,4,20,0,2000,175,,1,0,16514,2,34,4,48,3,{},{ bonus bVit,10; bonus bDef,10; },,,, +// Knifes and Daggers +1201,Knife,Knife,4,50,0,400,17,,1,3,10444527,2,2,1,1,1,{},{},,,,,, +1202,Knife_,Knife,4,50,0,400,17,,1,4,10444527,2,2,1,1,1,{},{},,,,,, +1203,Knife__,Knife,4,50,0,400,17,,1,0,10444527,2,2,1,1,1,{},{},,,,,, +1204,Cutter,Cutter,4,1250,0,500,30,,1,3,10444527,2,2,1,1,1,{},{} +1205,Cutter_,Cutter,4,1250,0,500,30,,1,4,10444527,2,2,1,1,1,{},{} +1206,Cutter__,Cutter,4,1250,0,500,30,,1,0,10444527,2,2,1,1,1,{},{} +1207,Main_Gauche,Main Gauche,4,2400,0,600,43,,1,3,10444527,2,2,1,1,1,{},{} +1208,Main_Gauche_,Main Gauche,4,2400,0,600,43,,1,4,10444527,2,2,1,1,1,{},{} +1209,Main_Gauche__,Main Gauche,4,2400,0,600,43,,1,0,10444527,2,2,1,1,1,{},{} +1210,Dirk,Dirk,4,8500,0,500,59,,1,2,10444527,2,2,2,12,1,{},{} +1211,Dirk_,Dirk,4,8500,0,500,59,,1,3,10444527,2,2,2,12,1,{},{} +1212,Dirk__,Dirk,4,8500,0,500,59,,1,0,10444527,2,2,2,12,1,{},{} +1213,Dagger,Dagger,4,14000,0,600,73,,1,2,10444527,2,2,2,12,1,{},{} +1214,Dagger_,Dagger,4,14000,0,600,73,,1,3,10444527,2,2,2,12,1,{},{} +1215,Dagger__,Dagger,4,14000,0,600,73,,1,0,10444527,2,2,2,12,1,{},{} +1216,Stiletto,Stiletto,4,19500,0,700,87,,1,2,10444527,2,2,2,12,1,{},{} +1217,Stiletto_,Stiletto,4,19500,0,700,87,,1,3,10444527,2,2,2,12,1,{},{} +1218,Stiletto__,Stiletto,4,19500,0,700,87,,1,0,10444527,2,2,2,12,1,{},{} +1219,Gladius,Gladius,4,43000,0,700,105,,1,2,2055918,2,2,3,24,1,{},{} +1220,Gladius_,Gladius,4,43000,0,700,105,,1,3,2055918,2,2,3,24,1,{},{},,,,,, +1221,Gladius__,Gladius,4,43000,0,700,105,,1,0,2055918,2,2,3,24,1,{},{},,,,,, +1222,Damascus,Damascus,4,49000,0,800,118,,1,1,2055918,2,2,3,24,1,{},{},,,,,, +1223,Fortune_Sword,Fortune Sword,4,20,0,500,90,,1,0,2055918,2,2,4,24,1,{},{ bonus bLuk,5; bonus bFlee2,20; },,,, +1224,Sword_Breaker,Swordbreaker,4,20,0,1000,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bBreakWeaponRate,500; },,,,,, +1225,Mail_Breaker,Mailbreaker,4,20,0,1000,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bBreakArmorRate,500; },,,,,, +1226,Damascus_,Damascus,4,49000,0,800,118,,1,2,2055918,2,2,3,24,1,{},{},,,,,, +1227,Weeder_Knife,Weeder Knife,4,20,0,400,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,3; bonus2 bAddRace,3,15; bonus2 bSubRace,3,15; }, +1228,Combat_Knife,Combat Knife,4,20,0,400,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,7; bonus2 bSubRace,7,10; bonus2 bSubRace,6,-10; }, +1229,Mama's_Knife,Mama's Knife,4,20,0,500,75,,1,0,2055918,2,2,4,36,1,{},{ bonus bCritical,30; bonus2 bAddRace,7,3; bonus3 bAddMonsterDropItem,517,2,5000; } +1230,House_Auger,House Auger,4,20,0,600,80,,1,0,2055918,2,2,4,36,1,{},{ bonus bDefRatioAtkRace,10; bonus bDefRatioAtkRace,11; },,,, +1231,Bazerald,Bazerald,4,20,0,500,70,,1,0,2055918,2,2,4,36,1,{},{ bonus bAtkEle,3; bonus bInt,5; bonus bMatkRate,10; },,, +1232,Assassin_Dagger,Assasin Dagger,4,20,0,600,140,,1,0,4096,2,2,4,36,1,{},{ bonus bMaxHPrate,20; bonus bMaxSPrate,15; bonus bAspdAddRate,2; bonus bAtkEle,7; },, +1233,Exercise,Excorcise,4,20,0,700,90,,1,0,2055918,2,2,4,36,1,{},{ bonus bIgnoreDefRace,6; bonus2 bSubRace,6,5; bonus2 bSubRace,7,-10; }, +1234,Moonlight_Sword,Walgwanggum,4,20,0,700,50,,1,0,2055918,2,2,4,36,1,{},{ bonus bMaxSPrate,10; bonus2 bSPDrainRate,100,3; },,,,, +1235,Azoth,Azoth,4,20,0,700,110,,1,0,262144,2,2,4,36,1,{},{ bonus bClassChange,50; },,,,,, +1236,Sucsamad,Sucsamad,4,20,0,800,140,,1,0,2055918,2,2,4,36,1,{},{ bonus2 bAddEle,2,10; bonus2 bAddEle,4,10; bonus bUnbreakable,100; },, +1237,Grimtooth_,Grimtooth,4,20,0,800,180,,1,0,2055918,2,2,4,36,1,{},{ bonus bFlee,10; bonus bFlee2,5; bonus bDefRate,-50; bonus bDef2Rate,-50; },, +1238,Zeny_Knife,Zeny Knife,4,20,0,1200,64,,1,0,2055918,2,2,3,40,1,{},{ bonus bGetZenyNum,100; },,,,, +1239,Poison_Knife,Poison Knife,4,20,0,800,64,,1,0,2055918,2,2,3,65,1,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,2000; },,,,, +1240,Princess_Knife,Princess Knife,4,20,0,400,84,,1,0,2055918,2,2,4,1,1,{},{ bonus bAllStats,1; } +1241,Cursed_Dagger,Cursed Dagger,4,20,0,400,55,,1,0,66052,2,2,4,85,1,{},{ bonus2 bAddEff,Eff_Curse,500; },,,, +1242,Counter_Dagger,Counter Dagger,4,20,0,550,75,,1,0,66052,2,2,4,55,1,{},{ bonus bCritical,5; bonus3 bAutoSpell,61,1,25; },,,,, +1243,Main_Gauche_For_Novice,Novice Main Gauche,4,20,0,1,45,,1,0,8388609,2,2,1,1,1,{},{},,,,,, +// Katars +1250,Jur,Jur,4,19500,0,800,125,,1,2,4096,2,34,2,18,16,{},{},,,,,, +1251,Jur_,Jur,4,19500,0,800,125,,1,3,4096,2,34,2,18,16,{},{},,,,,, +1252,Katar,Katar,4,41000,0,1200,148,,1,1,4096,2,34,3,33,16,{},{ bonus bDex,1; },,,,, +1253,Katar_,Katar,4,41000,0,1200,148,,1,2,4096,2,34,3,33,16,{},{ bonus bDex,1; },,,,, +1254,Jamadhar,Jamadhar,4,37200,0,1500,165,,1,0,4096,2,34,3,33,16,{},{},,,,,, +1255,Jamadhar_,Jamadhar,4,37200,0,1500,165,,1,1,4096,2,34,3,33,16,{},{},,,,,, +1256,Katar_of_Cold_Icicle,Katar of Cold Icicle,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,1; bonus2 bAddEff,Eff_Freeze,500; },,, +1257,Katar_of_Thornbush,Katar of Dusty Thornbush,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,2; bonus2 bAddEff,Eff_Blind,500; },, +1258,Katar_of_Raging_Blaze,Katar of Raging Blaze,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,3; bonus2 bAddEff,Eff_Silence,500; },, +1259,Katar_of_Piercing_Wind,Katar of Piercing Wind,4,45000,0,1200,105,,1,0,4096,2,34,3,55,16,{},{ bonus bAtkEle,4; bonus2 bAddEff,Eff_Sleep,500; },, +1260,Sharpened_Legbone_of_Ghoul,Sharpened Legbone of Ghoul,4,52500,0,1700,150,,1,0,4096,2,34,3,65,16,{},{ bonus bAtkEle,9; },,,, +1261,Infiltrator,Infiltrator,4,57000,0,1500,140,,1,0,4096,2,34,4,75,16,{},{ bonus2 bAddRace,7,50; bonus bDef,3; bonus bFlee,5; bonus bFlee2,2; } +// Axes +1301,Axe,Axe,4,500,0,800,38,,1,3,8803555,2,2,1,3,6,{},{},,,,, +1302,Axe_,Axe,4,500,0,800,38,,1,4,8803555,2,2,1,3,6,{},{},,,,, +1303,Axe__,Axe,4,500,0,800,38,,1,0,8803555,2,2,1,3,6,{},{},,,,, +1304,Orcish_Axe,Orcish Axe,4,20,0,1500,75,,1,0,8803555,2,2,3,3,6,{},{},,,,, +1305,Cleaver,Cleaver,4,20,0,1200,140,,1,0,279714,2,2,4,44,6,{},{ bonus2 bAddRace,7,5; bonus3 bAddMonsterDropItem,517,2,3000; } +1306,War_Axe,War Axe,4,20,0,4200,145,,1,1,263168,2,2,3,76,6,{},{ bonus bDex,2; bonus bLuk,2; },,, +1351,Battle_Axe,Battle Axe,4,5400,0,1500,80,,1,3,279714,2,34,1,3,7,{},{},,,,, +1352,Battle_Axe_,Battle Axe,4,5400,0,1500,80,,1,4,279714,2,34,1,3,7,{},{},,,,, +1353,Battle_Axe__,Battle Axe,4,5400,0,1500,80,,1,0,279714,2,34,1,3,7,{},{},,,,, +1354,Hammer,Hammer,4,15500,0,2000,120,,1,2,279714,2,34,2,16,7,{},{},,,, +1355,Hammer_,Hammer,4,15500,0,2000,120,,1,3,279714,2,34,2,16,7,{},{},,,, +1356,Hammer__,Hammer,4,15500,0,2200,120,,1,0,279714,2,34,2,16,7,{},{},,,, +1357,Buster,Buster,4,34000,0,2200,155,,1,1,279714,2,34,3,30,7,{},{},,,, +1358,Buster_,Buster,4,34000,0,2200,155,,1,2,279714,2,34,3,30,7,{},{},,,, +1359,Buster__,Buster,4,34000,0,2200,155,,1,0,279714,2,34,3,30,7,{},{},,,, +1360,Two_handed_Axe,Two-handed Axe,4,55000,0,2500,185,,1,1,279714,2,34,3,30,7,{},{},,,, +1361,Two_handed_Axe_,Two-handed Axe,4,55000,0,2500,185,,1,2,279714,2,34,3,30,7,{},{},,,, +1362,Two_handed_Axe__,Two-handed Axe,4,55000,0,2500,185,,1,0,279714,2,34,3,30,7,{},{},,,, +1363,Blood_Axe,Bloody Axe,4,20,0,400,170,,1,0,279714,2,34,4,44,7,{},{ bonus bStr,10; bonus bSpeedRate,25; },, +1364,Great_Axe,Great Axe,4,20,0,1800,187,,1,0,279714,2,34,4,44,7,{},{ bonus2 bAddEff,Eff_Stan,1500; },, +1365,Sabbath,Sabbath,4,20,0,2300,120,,1,0,279714,2,34,4,44,7,{},{ bonus2 bWeaponComaRace,6,50; bonus bAtkEle,7; }, +1366,Light_Epsilon,Light Epsilon,4,20,0,2300,180,,1,0,279714,2,34,4,44,7,{},{ bonus bAtkEle,6; skill 28,3; bonus2 bAddRace,6,3; } +1367,Slaughter,Slaughter,4,20,0,2500,120,,1,0,279714,2,34,4,44,7,{},{ bonus bIgnoreDefRace,2; bonus2 bWeaponComaRace,2,50; }, +1368,Tomahawk,Tomahawk,4,20,0,2500,165,,1,0,279714,2,34,4,44,7,{},{ bonus bAtkEle,4; },,, +1369,Guillotine,Guillotine,4,20,0,3000,215,,1,0,279714,2,34,4,44,7,{},{ bonus2 bWeaponComaRace,7,30; bonus2 bSPDrainRate,5,2; },, +// Spears +1401,Javelin,Javelin,4,150,0,700,28,,3,3,16514,2,2,1,4,4,{},{},,, +1402,Javelin_,Javelin,4,150,0,700,28,,3,4,16514,2,2,1,4,4,{},{},,, +1403,Javelin__,Javelin,4,150,0,700,28,,3,0,16514,2,2,1,4,4,{},{},,, +1404,Spear,Spear,4,1700,0,850,44,,3,3,16514,2,2,1,4,4,{},{},,, +1405,Spear_,Spear,4,1700,0,850,44,,3,4,16514,2,2,1,4,4,{},{},,, +1406,Spear__,Spear,4,1700,0,850,44,,3,0,16514,2,2,1,4,4,{},{},,, +1407,Pike,Pike,4,3450,0,1000,60,,3,3,16514,2,2,1,4,4,{},{},,, +1408,Pike_,Pike,4,3450,0,1000,60,,3,4,16514,2,2,1,4,4,{},{},,, +1409,Pike__,Pike,4,3450,0,1000,60,,3,0,16514,2,2,1,4,4,{},{},,, +1410,Lance,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,, +1411,Lance_,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,, +1412,Lance__,Lance,4,60000,0,2500,185,,3,0,16514,2,34,3,33,5,{},{},,, +1413,Gungnir,Gungnir,4,20,0,500,120,,3,0,16514,2,2,4,4,4,{},{ bonus bPerfectHitRate,25; bonus bHit,30; } +1414,Gelerdria,Gelerdria,4,20,0,700,145,,3,0,16514,2,2,4,48,4,{},{ bonus bAtkEle,2; bonus bMaxHP,500; bonus bMaxSP,-50; } +1415,Skewer,Brocca,4,20,0,850,100,,3,0,16514,2,2,4,48,4,{},{ bonus bIgnoreDefRace,11; bonus2 bAddEle,0,25; } +1416,Tjungkuletti,Tjungkuletti,4,20,0,1000,95,,3,0,16514,2,2,4,48,4,{},{ bonus2 bSPDrainRate,100,1; bonus2 bSPDrainRate,1,5; },,, +1417,Pole_Axe,Pole Axe,4,20,0,3800,160,,3,1,16514,2,2,3,71,4,{},{ bonus bStr,1; bonus bInt,2; bonus bDex,1; } +1451,Guisarme,Guisarme,4,13000,0,1000,84,,3,2,16514,2,34,2,18,5,{},{},,, +1452,Guisarme_,Guisarme,4,13000,0,1000,84,,3,3,16514,2,34,2,18,5,{},{},,, +1453,Guisarme__,Guisarme,4,13000,0,1000,84,,3,0,16514,2,34,2,18,5,{},{},,, +1454,Glaive,Glaive,4,20000,0,1200,104,,3,2,16514,2,34,2,18,5,{},{},,, +1455,Glaive_,Glaive,4,20000,0,1200,104,,3,3,16514,2,34,2,18,5,{},{},,, +1456,Glaive__,Glaive,4,20000,0,1200,104,,3,0,16514,2,34,2,18,5,{},{},,, +1457,Partizan,Partizan,4,27000,0,2000,124,,3,1,16514,2,34,2,18,5,{},{},,, +1458,Partizan_,Partizan,4,27000,0,2000,124,,3,2,16514,2,34,2,18,5,{},{},,, +1459,Partizan__,Partizan,4,27000,0,2000,124,,3,0,16514,2,34,3,33,5,{},{},,, +1460,Trident,Trident,4,51000,0,1200,150,,3,2,16514,2,34,3,33,5,{},{},,, +1461,Trident_,Trident,4,51000,0,1200,150,,3,3,16514,2,34,3,33,5,{},{},,, +1462,Trident__,Trident,4,51000,0,1200,150,,3,0,16514,2,34,3,33,5,{},{},,, +1463,Halberd,Halberd,4,54000,0,2500,165,,3,1,16514,2,34,3,33,5,{},{},,, +1464,Halberd_,Halberd,4,54000,0,2500,165,,3,2,16514,2,34,3,33,5,{},{},,,,,,, +1465,Halberd__,Halberd,4,54000,0,2500,165,,3,0,16514,2,34,3,33,5,{},{},,,,,,, +1466,Crescent_Scythe,Crescent Scythe,4,20,0,2500,180,,3,0,16514,2,34,4,48,5,{},{ bonus bCritical,30; bonus bHit,10; },,,,, +1467,Bill_Guisarme,Bill Guisarme,4,20,0,1000,183,,3,0,16514,2,34,4,48,5,{},{ bonus2 bAddRace,2,10; bonus2 bAddRace,7,5; },,, +1468,Zephyrus,Zephyrus,4,20,0,2000,170,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,4; skill 21,3; bonus2 bAddEff,Eff_Silence,200; bonus3 bAutoSpell,21,3,25; } +1469,Longinus's_Spear,Longinus's Spear,4,20,0,2500,180,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,7; bonus2 bAddRace,7,10; bonus2 bAddRace,8,10; },, +1470,Brionac,Brionac,4,20,0,3000,190,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,6; skill 28,5; skill 13,3; bonus3 bAutoSpell,13,3,25; bonus2 bAddRace,10,5; }, +1471,Hellfire,Hellfire,4,20,0,3500,200,,3,0,16514,2,34,4,48,5,{},{ bonus bAtkEle,3; skill 17,3; bonus3 bAutoSpell,17,3,25; bonus bStr,3; },, +// 2 Handed Staffs +1472,Staff_of_Soul,Soul Staff,4,20,0,1400,25,,1,0,66052,2,34,3,73,10,{},{ bonus bInt,5; bonus bAgi,2; bonus bMatkRate,15; },,,, +1473,Wizardy_Staff,Wizardy Staff,4,20,0,2400,120,,1,0,66052,2,34,4,90,10,{},{ bonus bInt,6; bonus bDex,2; bonus bMatkRate,15; },,,, +// Clubs and Maces +1501,Club,Club,4,120,0,700,23,,1,3,8701363,2,2,1,2,8,{},{},,,,,,, +1502,Club_,Club,4,120,0,700,23,,1,4,8701363,2,2,1,2,8,{},{},,,,,,, +1503,Club__,Club,4,120,0,700,23,,1,0,8701363,2,2,1,2,8,{},{},,,,,,, +1504,Mace,Mace,4,1600,0,800,37,,1,3,8701363,2,2,1,2,8,{},{},,,,,,, +1505,Mace_,Mace,4,1600,0,800,37,,1,4,8701363,2,2,1,2,8,{},{},,,,,,, +1506,Mace__,Mace,4,1600,0,800,37,,1,0,8701363,2,2,1,2,8,{},{} +1507,Smasher,Smasher,4,9000,0,1000,54,,1,2,8701363,2,2,2,14,8,{},{} +1508,Smasher_,Smasher,4,9000,0,1000,54,,1,3,8701363,2,2,2,14,8,{},{} +1509,Smasher__,Smasher,4,9000,0,1000,54,,1,3,8701363,2,2,2,14,8,{},{} +1510,Flail,Flail,4,16000,0,900,69,,1,2,312754,2,2,2,14,8,{},{} +1511,Flail_,Flail,4,16000,0,900,69,,1,3,312754,2,2,2,14,8,{},{} +1512,Flail__,Flail,4,16000,0,900,69,,1,3,312754,2,2,2,14,8,{},{} +1513,Morning_Star,Morning Star,4,41000,0,1500,110,,1,1,312754,2,2,3,27,8,{},{} +1514,Morning_Star_,Morning Star,4,41000,0,1500,110,,1,2,312754,2,2,3,27,8,{},{} +1515,Morning_Star__,Morning Star,4,41000,0,1500,110,,1,2,312754,2,2,3,27,8,{},{} +1516,Sword_Mace,Sword Mace,4,50000,0,1200,130,,1,0,312754,2,2,3,27,8,{},{} +1517,Sword_Mace_,Sword Mace,4,50000,0,1200,130,,1,1,312754,2,2,3,27,8,{},{} +1518,Sword_Mace__,Sword Mace,4,50000,0,1200,130,,1,1,312754,2,2,3,27,8,{},{} +1519,Chain,Chain,4,23000,0,800,84,,1,2,312754,2,2,2,14,8,{},{} +1520,Chain_,Chain,4,23000,0,800,84,,1,3,312754,2,2,2,14,8,{},{} +1521,Chain__,Chain,4,23000,0,800,84,,1,3,312754,2,2,2,14,8,{},{} +1522,Stunner,Stunner,4,60000,0,2000,140,,1,0,256,2,2,3,27,8,{},{ bonus2 bAddEff,Eff_Stan,1000; },,,, +1523,Spike,Spike,4,20,0,700,85,,1,0,33040,2,2,4,40,8,{},{ bonus bCritical,40; bonus bDefRate,-67; bonus bDef2Rate,-67; },,, +1524,Golden_Mace,Golden Mace,4,20,0,800,110,,1,1,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,10; bonus bUnbreakable,100; },,,, +1525,Long_Mace,Long Mace,4,20,0,800,135,,3,0,33040,2,2,4,40,8,{},{ bonus bLongAtkDef,10; },,,,, +1526,Slash,Slash,4,20,0,1000,145,,1,0,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,15; bonus2 bWeaponComaRace,1,50; },, +1527,Quadrille,Quadrille,4,20,0,900,165,,1,0,33040,2,2,4,40,8,{},{ bonus2 bAddRace,1,10; bonus2 bAddRace,7,10; bonus2 bAddEle,2,10; } +1528,Grand_Cross,Grand Cross,4,20,0,1500,140,,1,0,33040,2,2,4,40,8,{},{ bonus bAtkEle,6; skill 77,3; bonus3 bAutoSpell,77,3,25; bonus2 bHPDrainRate,100,1; }, +1529,Iron_Driver,Iron Driver,4,20,0,3000,155,,1,0,33024,2,2,3,78,8,{},{},,,,,, +1530,Mjolnir,Mjolnir,4,20,0,6000,250,,1,0,8701363,2,2,4,98,8,{},{ bonus bAtkEle,4; bonus bDex,40; bonus bStr,15; bonus bAspdRate,30; },, +1531,Spanner,Spanner,4,20,0,2500,115,,1,0,33040,2,2,3,55,8,{},{ bonus2 bAddEff,Eff_Blind,100; bonus2 bAddEff,Eff_Stan,100; bonus2 bAddEff,Eff_Poison,100; bonus2 bAddEff,Eff_Freeze,100; },,,,,, +// Books +1550,Book,Book,4,30000,0,600,85,,1,3,65792,2,2,2,14,15,{},{},,,,,, +1551,Bible,Bible,4,60000,0,1000,115,,1,2,65792,2,2,3,27,15,{},{ bonus bInt,2; },,,,, +1552,Tablet,Tablet,4,51000,0,800,125,,1,1,65792,2,2,3,27,15,{},{},,,,,, +1553,Book_of_Billows,Book of Billows,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,1; },,,,, +1554,Book_of_Mother_Earth,Book of Mother Earth,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,2; },,,,, +1555,Book_of_Blazing_Sun,Book of Blazing Sun,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,3; },,,,,,,,,, +1556,Book_of_Gust_of_Wind,Book of Gust of Wind,4,35000,0,750,90,,1,0,65792,2,2,3,27,15,{},{ bonus bAtkEle,4; },,,,,,,,,, +1557,Book_of_the_Apocalypse,Book of the Apocalypse,4,35000,0,800,120,,1,0,65792,2,2,4,40,15,{},{ bonus bAtkEle,7; bonus2 bSubEle,6,-5; bonus2 bAddEle,1,7; bonus2 bAddEle,2,7; bonus2 bAddEle,3,7; bonus2 bAddEle,4,7; } +1558,Girl's_Diary,Girl's Diary,4,20,0,300,60,,1,1,65792,2,2,4,40,15,{},{ bonus2 bAddDamageClass,1188,150; },,,,,,,,, +1599,Angra_Manyu,Angra Manyu,4,120,0,10,1,,1,5,10477567,2,2,4,2,8,{},{},,,,,,,,,,, +// Rods and Staffs +1601,Rod,Rod,4,50,0,400,15,,1,3,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,, +1602,Rod_,Rod,4,50,0,400,15,,1,4,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,, +1603,Rod__,Rod,4,50,0,400,15,,1,0,8487701,2,2,1,1,10,{},{ bonus bMatkRate,15; },,,,,,,,,, +1604,Wand,Wand,4,2500,0,400,25,,1,2,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,, +1605,Wand_,Wand,4,2500,0,400,25,,1,3,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,, +1606,Wand__,Wand,4,2500,0,400,25,,1,0,8487701,2,2,2,12,10,{},{ bonus bInt,1; bonus bMatkRate,15; },,,,,,,,, +1607,Staff,Staff,4,9500,0,400,40,,1,2,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,, +1608,Staff_,Staff,4,9500,0,400,40,,1,3,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,, +1609,Staff__,Staff,4,9500,0,400,40,,1,0,99092,2,2,2,12,10,{},{ bonus bInt,2; bonus bMatkRate,15; },,,,,,,,, +1610,Arc_Wand,Arc Wand,4,45000,0,400,60,,1,1,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; }, +1611,Arc_Wand_,Arc Wand,4,45000,0,400,60,,1,2,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; }, +1612,Arc_Wand__,Arc Wand,4,45000,0,400,60,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; }, +1613,Mighty_Staff,Mighty Staff,4,20,0,700,130,,1,0,99092,2,2,3,24,10,{},{ bonus bStr,10; bonus bMatkRate,15; bonus2 bSpDrainRate,100,-2; }, +1614,Blessed_Wand,Wand of Occult,4,20,0,700,75,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,3; bonus bMatkRate,15; }, +1615,Bone_Wand,Bone Wand,4,20,0,700,40,,1,0,99092,2,2,3,24,10,{},{ bonus bInt,4; bonus bAtkEle,9; bonus bMatkRate,15; } +// Bows +1701,Bow,Bow,4,1000,0,500,15,,5,3,1706056,2,34,1,4,11,{},{},,, +1702,Bow_,Bow,4,1000,0,500,15,,5,4,1706056,2,34,1,4,11,{},{},,, +1703,Bow__,Bow,4,1000,0,500,15,,5,0,1706056,2,34,1,4,11,{},{},,, +1704,Composite_Bow,Composite Bow,4,2500,0,600,29,,5,3,1706056,2,34,1,4,11,{},{},,, +1705,Composite_Bow_,Composite Bow,4,2500,0,600,29,,5,4,1706056,2,34,1,4,11,{},{},,, +1706,Composite_Bow__,Composite Bow,4,2500,0,600,29,,5,0,1706056,2,34,1,4,11,{},{},,, +1707,Great_Bow,Great Bow,4,10000,0,1000,50,,5,2,1706056,2,34,2,18,11,{},{},,, +1708,Great_Bow_,Great Bow,4,10000,0,1000,50,,5,3,1706056,2,34,2,18,11,{},{},,, +1709,Great_Bow__,Great Bow,4,10000,0,1000,50,,5,0,1706056,2,34,2,18,11,{},{},,, +1710,CrossBow,Cross Bow,4,17000,0,900,65,,5,2,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,, +1711,CrossBow_,Cross Bow,4,17000,0,900,65,,5,3,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,, +1712,CrossBow__,Cross Bow,4,17000,0,900,65,,5,0,1706056,2,34,2,18,11,{},{},,,,,,,,,,,,,, +1713,Arbalest,Arbalest,4,48000,0,1000,90,,5,1,1706056,2,34,3,33,11,{},{ bonus bDex,2; },,,,,,,,,,,,, +1714,Gakkung,Gakkung,4,42000,0,1100,100,,5,1,1706056,2,34,3,33,11,{},{},,,,,,,,,,,,,, +1715,Arbalest_,Arbalest,4,48000,0,1000,90,,5,2,1706056,2,34,3,33,11,{},{ bonus bDex,2; },,,,,,,,,,,,, +1716,Gakkung_,Gakkung,4,42000,0,1100,100,,5,2,1706056,2,34,3,33,11,{},{},,,,,,,,,,,,,, +1718,Hunter_Bow,Hunter Bow,4,64000,0,1500,125,,5,0,2048,2,34,3,33,11,{},{},,,,,,,,,,,,,, +1719,Bow_of_Roguemaster,Roguemaster's Bow,4,20,0,500,75,,11,0,131136,2,34,4,48,11,{},{ bonus2 bAddStealRate,100,0; },,,,,,,,,,,,,, +1720,Bow_of_Rudra,Rudra's Bow,4,20,0,1200,150,,5,0,1705992,2,34,4,48,11,{},{ bonus bAtkEle,6; bonus bInt,5; skill 35,1; skill 28,1; bonus2 bResEff,Eff_Poison,5000; bonus2 bResEff,Eff_Curse,5000; bonus2 bResEff,Eff_Silence,5000; bonus2 bResEff,Eff_Confusion,5000; bonus2 bResEff,Eff_Blind,5000; } +1721,Repeating_Crossbow,Repeating Crossbow,4,89000,0,2000,95,,9,1,133184,2,34,3,65,11,{},{},,,,,,,,,,,,,, +1722,Ballista,Ballista,4,20,0,3500,145,,5,0,1574912,2,34,4,77,11,{},{},,,,,,,,,,,,,, +// Arrows +1750,Arrow,Arrow,10,1,0,1,25,,,,1706056,2,32768,,1,,{},{},,,,,,,,,,,,,, +1751,Silver_Arrow,Silver Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,6; },,,,,,,,,,,,, +1752,Fire_Arrow,Fire Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,3; },, +1753,Steel_Arrow,Steel Arrow,10,3,0,2,40,,,,1706056,2,32768,,1,,{},{},,, +1754,Crystal_Arrow,Crystal Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,1; },, +1755,Arrow_of_Wind,Arrow of Wind,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,4; },, +1756,Stone_Arrow,Stone Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,2; },, +1757,Immaterial_Arrow,Immaterial Arrow,10,3,0,1,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,8; },, +1758,Stun_Arrow,Stun Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Stan,500; }, +1759,Freezing_Arrow,Freeze Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,1; bonus2 bAddEff,Eff_Freeze,500; } +1760,Flash_Arrow,Flash Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Blind,500; }, +1761,Curse_Arrow,Curse Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Curse,500; }, +1762,Rusty_Arrow,Rusted Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,5; },, +1763,Poison_Arrow,Poison Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,500; } +1764,Incisive_Arrow,Sharp Arrow,10,3,0,3,10,,,,1706056,2,32768,,1,,{},{ bonus bCritical,10; },, +1765,Oridecon_Arrow,Oridecon Arrow,10,3,0,3,50,,,,1706056,2,32768,,1,,{},{},,, +1766,Arrow_of_Counter_Evil,Arrow of Counter Evil,10,40,0,3,50,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,6; },, +1767,Arrow_of_Shadow,Shadow Arrow,10,3,0,2,30,,,,1706056,2,32768,,1,,{},{ bonus bAtkEle,7; },, +1768,Sleep_Arrow,Sleep Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Sleep,500; } +1769,Silence_Arrow,Mute Arrow,10,3,0,3,1,,,,1706056,2,32768,,1,,{},{ bonus2 bAddEff,Eff_Silence,500; } +1770,Iron_Arrow,Iron Arrow,10,2,0,1,30,,,,1706056,2,32768,,1,,{},{},, +// Knuckles +1801,Waghnakh,Waghnakh,4,8000,0,400,30,,1,3,33024,2,2,1,1,12,{},{},, +1802,Waghnakh_,Waghnakh,4,8000,0,400,30,,1,4,33024,2,2,1,1,12,{},{},, +1803,Knuckle_Duster,Knuckle Duster,4,25000,0,450,50,,1,2,33024,2,2,2,12,12,{},{},, +1804,Knuckle_Duster_,Knuckle Duster,4,25000,0,450,50,,1,3,33024,2,2,2,12,12,{},{},, +1805,Hora,Hora,4,32000,0,450,65,,1,2,33024,2,2,2,12,12,{},{},, +1806,Hora_,Hora,4,32000,0,450,65,,1,3,33024,2,2,2,12,12,{},{},, +1807,Fist,Fist,4,53000,0,650,115,,1,0,33024,2,2,3,24,12,{},{},, +1808,Fist_,Fist,4,53000,0,650,115,,1,1,33024,2,2,3,24,12,{},{},, +1809,Claw,Claw,4,55000,0,500,86,,1,1,33024,2,2,3,24,12,{},{ bonus bStr,2; }, +1810,Claw_,Claw,4,55000,0,500,86,,1,2,33024,2,2,3,24,12,{},{ bonus bStr,2; }, +1811,Finger,Finger,4,58000,0,500,97,,1,1,33024,2,2,3,24,12,{},{},, +1812,Finger_,Finger,4,58000,0,500,97,,1,2,33024,2,2,3,24,12,{},{},, +1813,Kaiser_Knuckle,Kaiser Knuckle,4,20,0,450,110,,1,0,33024,2,2,4,36,12,{},{ bonus bAtkEle,4; bonus2 bAddRace,1,5; bonus2 bAddEle,1,10; bonus2 bAddEle,2,10; bonus2 bAddEle,3,10; bonus2 bAddEle,4,10; } +1814,Berserk,Berserk,4,20,0,500,120,,1,0,33024,2,2,4,36,12,{},{ bonus bAspdRate,12; },,,,,,,,,, +// Instruments +1901,Violin,Violin,4,4000,0,700,50,,1,3,524288,2,2,1,2,13,{},{},,,,,,,,,,, +1902,Violin_,Violin,4,4000,0,700,50,,1,4,524288,2,2,1,2,13,{},{},,,,,,,,,,, +1903,Mandolin,Mandolin,4,18000,0,400,90,,1,2,524288,2,2,2,14,13,{},{},,,,,,,,,,, +1904,Mandolin_,Mandolin,4,18000,0,400,90,,1,3,524288,2,2,2,14,13,{},{},,,,,,,,,,, +1905,Lute,Lute,4,24500,0,500,105,,1,2,524288,2,2,2,14,13,{},{},,,,,,,,,,, +1906,Lute_,Lute,4,24500,0,500,105,,1,3,524288,2,2,2,14,13,{},{},,,,,,,,,,, +1907,Guitar,Guitar,4,47000,0,900,142,,1,0,524288,2,2,3,27,13,{},{},,,,,,,,,,, +1908,Guitar_,Guitar,4,47000,0,900,142,,1,1,524288,2,2,3,27,13,{},{},,,,,,,,,,, +1909,Harp,Harp,4,62000,0,900,114,,1,1,524288,2,2,3,27,13,{},{ bonus bInt,2; },,,,,,,,,, +1910,Harp_,Harp,4,62000,0,900,114,,1,2,524288,2,2,3,27,13,{},{ bonus bInt,2; },,,,,,,,,, +1911,Guh_Moon_Goh,Guhmoongoh,4,54000,0,1300,126,,1,1,524288,2,2,3,27,13,{},{},,,,,,,,,,, +1912,Guh_Moon_Goh_,Guhmoongoh,4,54000,0,1300,126,,1,2,524288,2,2,3,27,13,{},{},,,,,,,,,,, +1913,Electric_Guitar,Electric Guitar,4,20,0,1800,110,,1,0,524288,2,2,4,70,13,{},{ bonus3 bAutoSpell,84,1,25; bonus bAtkEle,4; bonus bInt,2; bonus bAgi,1; } +// Whips +1950,Rope,Rope,4,2500,0,400,45,,2,3,1048576,2,2,1,3,14,{},{},,, +1951,Rope_,Rope,4,2500,0,400,45,,2,4,1048576,2,2,1,3,14,{},{},,, +1952,Line,Line,4,12000,0,300,80,,2,2,1048576,2,2,2,16,14,{},{},,, +1953,Line_,Line,4,12000,0,300,80,,2,3,1048576,2,2,2,16,14,{},{},,, +1954,Wire,Wire,4,17500,0,1000,95,,2,2,1048576,2,2,2,16,14,{},{},,, +1955,Wire_,Wire,4,17500,0,1000,95,,2,3,1048576,2,2,2,16,14,{},{},,, +1956,Rante_Whip,Rante Whip,4,32000,0,900,135,,2,0,1048576,2,2,3,30,14,{},{},,, +1957,Rante_Whip_,Rante Whip,4,32000,0,900,135,,2,1,1048576,2,2,3,30,14,{},{},,, +1958,Tail,Tail,4,41000,0,700,105,,2,1,1048576,2,2,3,30,14,{},{ bonus bLuk,3; },, +1959,Tail_,Tail,4,41000,0,700,105,,2,2,1048576,2,2,3,30,14,{},{ bonus bLuk,3; },, +1960,Whip,Whip,4,38000,0,700,120,,2,1,1048576,2,2,3,30,14,{},{},,, +1961,Whip_,Whip,4,38000,0,700,120,,2,2,1048576,2,2,3,30,14,{},{},,, +1962,Lariat,Lariat,4,20,0,400,100,,2,0,1048576,2,2,4,44,14,{},{ bonus bDex,5; bonus bAgi,1; }, +1963,Rapture_Rose,Rapture Rose,4,20,0,300,115,,2,0,1048576,2,2,4,44,14,{},{ bonus bAtkEle,5; bonus2 bAddEff,Eff_Poison,5000; } +1964,Chemeti,Chemeti,4,20,0,700,135,,2,0,1048576,2,2,4,44,14,{},{ bonus bCritical,5; bonus bFlee,10; bonus bFlee2,2; } + +1998,Jeramiah's_Jur,Jeramiah's Jur,3,20,0,10,,,,,,,,,,,{},{} +1999,Zed's_Staff,Zed's Staff,3,20,0,10,,,,,,,,,,,{},{} + +// Shields +//=================================================================== +2101,Guard,Guard,5,500,0,300,,3,,0,10477567,2,32,,0,1,{},{},,, +2102,Guard_,Guard,5,500,0,300,,3,,1,10477567,2,32,,0,1,{},{},,, +2103,Buckler,Buckler,5,14000,0,600,,4,,0,2020850,2,32,,0,2,{},{},,, +2104,Buckler_,Buckler,5,14000,0,600,,4,,1,2020850,2,32,,0,2,{},{},,, +2105,Shield,Shield,5,56000,0,1300,,6,,0,16514,2,32,,0,3,{},{},,, +2106,Shield_,Shield,5,56000,0,1300,,6,,1,16514,2,32,,0,3,{},{},,, +2107,Mirror_Shield,Mirror Shield,5,60000,0,1000,,4,,0,16514,2,32,,0,4,{},{ bonus bMdef,5; },, +2108,Mirror_Shield_,Mirror Shield,5,60000,0,1000,,4,,1,16514,2,32,,0,4,{},{ bonus bMdef,5; },, +2109,Memorize_Book,Book of Summoning,5,20,0,1000,,3,,0,66052,2,32,,0,,{},{ bonus bInt,1; bonus bMdef,2; }, +2110,Holy_Guard,Holy Guard,5,20,0,1400,,5,,0,16384,2,32,,68,3,{},{ bonus bVit,2; bonus bMdef,2; }, +2111,Evangelist,Evangelist,5,20,0,1400,,5,,0,16384,2,32,,83,3,{},{ bonus bVit,3; bonus bInt,2; bonus bMdef,3; bonus bUnbreakable,100; } +2112,Novice_Guard,Novice Guard,5,20,0,1,,3,,0,8388609,2,32,,0,1,{},{},,, +2199,Ahura_Mazda,Ahura Mazda,5,20,0,100,,,,0,10477567,2,32,,,,{},{ bonus bMdef,1; bonus bDef,1; bonus bFlee2,1; bonus2 bSubEle,0,1; } + +// Headgear items +//=================================================================== +2201,Sunglasses,Sunglasses,5,5000,0,100,,0,,0,10477567,2,512,,0,12,{},{ bonus2 bResEff,Eff_Blind,500; }, +2202,Sunglasses_,Sunglasses,5,5000,0,100,,0,,1,10477567,2,512,,0,12,{},{ bonus2 bResEff,Eff_Blind,500; } +2203,Glasses,Glasses,5,4000,0,100,,0,,0,10477567,2,512,,0,3,{},{},, +2204,Glasses_,Glasses,5,4000,0,100,,0,,1,10477567,2,512,,0,3,{},{},, +2205,Diver's_Goggles,Diver Goggles,5,3500,0,100,,0,,0,10477567,2,512,,0,10,{},{},, +2206,Wedding_Veil,Wedding Veil,5,23000,0,100,,0,,0,10477567,0,256,,0,44,{},{ bonus bMdef,5; }, +2207,Fancy_Flower,Fancy Flower,5,20,0,100,,0,,0,10477567,2,256,,0,4,{},{ bonus2 bSubRace,3,10; } +2208,Ribbon,Ribbon,5,800,0,100,,1,,0,10477567,2,256,,0,17,{},{ bonus bMdef,3; }, +2209,Ribbon_,Ribbon,5,800,0,100,,1,,1,10477567,2,256,,0,17,{},{ bonus bMdef,3; }, +2210,Hair_Band,Hair Band,5,500,0,100,,1,,0,10477567,2,256,,0,9,{},{},, +2211,Bandana,Bandana,5,400,0,100,,1,,0,10477567,2,256,,0,6,{},{},, +2212,Eye_Bandage,Eye Patch,5,1000,0,100,,0,,0,10477567,2,512,,0,13,{},{},, +2213,Kitty_Band,Kitty Band,5,20,0,100,,2,,0,10477567,2,256,,0,2,{},{},, +2214,Bunny_Band,Bunny Band,5,20,0,100,,2,,0,10477567,2,256,,0,15,{},{ bonus bLuk,2; }, +2215,Flower_Hairband,Flower Band,5,20,0,100,,2,,0,10477567,2,256,,0,5,{},{},, +2216,Biretta,Biretta,5,9000,0,100,,4,,0,33040,2,256,,0,11,{},{},, +2217,Biretta_,Biretta,5,9000,0,100,,4,,1,33040,2,256,,0,11,{},{},, +2218,Flu_Mask,Flu Mask,5,300,0,100,,0,,0,10477567,2,1,,0,8,{},{ bonus2 bResEff,Eff_Silence,1000; } +2219,Flu_Mask_,Flu Mask,5,300,0,100,,0,,1,10477567,2,1,,0,8,{},{ bonus2 bResEff,Eff_Silence,1000; } +2220,Hat,Hat,5,1000,0,200,,2,,0,10477567,2,256,,0,16,{},{},, +2221,Hat_,Hat,5,1000,0,200,,2,,1,10477567,2,256,,0,16,{},{},, +2222,Turban,Turban,5,4500,0,300,,3,,0,2088958,2,256,,0,7,{},{},, +2223,Turban_,Turban,5,4500,0,300,,3,,1,2088958,2,256,,0,7,{},{},, +2224,Goggles,Goggles,5,10000,0,300,,5,,0,1989866,2,768,,0,1,{},{},, +2225,Goggles_,Goggles,5,10000,0,300,,5,,1,1989866,2,768,,0,1,{},{},, +2226,Cap,Cap,5,12000,0,400,,4,,0,1989866,2,256,,0,14,{},{},, +2227,Cap_,Cap,5,12000,0,400,,4,,1,1989866,2,256,,0,14,{},{},, +2228,Helm,Helm,5,44000,0,600,,6,,0,16514,2,256,,0,40,{},{},, +2229,Helm_,Helm,5,44000,0,600,,6,,1,16514,2,256,,0,40,{},{},, +2230,Gemmed_Sallet,Gemmed Sallet,5,50000,0,500,,4,,0,414946,2,256,,0,0,{},{ bonus bMdef,3; }, +2231,Gemmed_Sallet_,Gemmed Sallet,5,50000,0,500,,4,,1,414946,2,256,,0,0,{},{ bonus bMdef,3; }, +2232,Circlet,Circlet,5,7500,0,300,,3,,0,99092,2,256,,0,18,{},{ bonus bMdef,3; }, +2233,Circlet_,Circlet,5,7500,0,300,,3,,1,99092,2,256,,0,18,{},{ bonus bMdef,3; }, +2234,Tiara,Tiara,5,20,0,400,,4,,0,2088958,0,256,,45,19,{},{ bonus bInt,2; }, +2235,Crown,Crown,5,20,0,400,,4,,0,2088958,1,256,,45,45,{},{ bonus bInt,2; }, +2236,Santa's_Hat,Santa's Hat,5,20,0,100,,1,,0,10477567,2,256,,0,20,{},{ bonus bMdef,1; bonus bLuk,1; } +2237,Bandit_Beard,Bandit Beard,5,2,0,100,,0,,0,10477567,2,1,,0,21,{},{},, +2238,Moustache,Moustache,5,2,0,100,,0,,0,10477567,2,1,,0,22,{},{},, +2239,Single_Glass,Single Glass,5,10000,0,100,,0,,0,10477567,2,512,,0,23,{},{},, +2240,Beard,Beard,5,2,0,100,,0,,0,10477567,2,1,,0,24,{},{},, +2241,Granpa_Beard,Granpa Beard,5,5000,0,100,,0,,0,10477567,2,1,,0,25,{},{},, +2242,Purple_Sunglasses,Purple Glasses,5,24000,0,100,,1,,0,10477567,2,512,,0,26,{},{ bonus2 bResEff,Eff_Blind,1000; } +2243,Geek_Glasses,Geek Glasses,5,20000,0,100,,1,,0,10477567,2,512,,0,27,{},{ bonus2 bResEff,Eff_Blind,1500; } +2244,Big_Ribbon,Big Ribbon,5,15000,0,200,,2,,0,2088958,2,256,,0,28,{},{ bonus bMdef,3; }, +2245,Sweet_Gent,Sweet Gent,5,15000,0,400,,3,,0,2088958,2,256,,0,29,{},{},, +2246,Golden_Gear,Golden Gear,5,20,0,900,,5,,0,2088958,2,256,,40,30,{},{ bonus2 bSubEle,0,10; },, +2247,Romantic_Gent,Romantic Gent,5,15000,0,400,,3,,0,2088958,2,256,,0,31,{},{},, +2248,Western_Grace,Western Grace,5,15000,0,400,,3,,0,2088958,2,256,,0,32,{},{},, +2249,Coronet,Coronet,5,20,0,300,,3,,0,2088958,2,256,,0,33,{},{ bonus bInt,1; }, +2250,Fillet,Cute Ribbon,5,500,0,100,,1,,0,2088958,2,256,,0,34,{},{ bonus bMaxSP,20; },,,, +2251,Holy_Bonnet,Monk Hat,5,30000,0,100,,5,,0,33040,2,256,,0,35,{},{ bonus bMdef,3; },,,, +2252,Wizard_Hat,Wizard Hat,5,20,0,300,,4,,0,66052,2,256,,0,36,{},{ bonus bMaxSP,100; },,,, +2253,Sunflower,Sunflower,5,20,0,100,,1,,0,10477567,2,256,,0,37,{},{ bonus2 bSubRace,4,10; },,, +2254,Angel_Wing,Angel Wing,5,20,0,100,,2,,0,2088958,2,256,,0,38,{},{ bonus bMdef,3; bonus bAgi,1; bonus bLuk,1; bonus2 bSubRace,6,3; } +2255,Evil_Wing,Evil Wing,5,20,0,100,,3,,0,2088958,2,256,,0,39,{},{ bonus bMdef,2; bonus bStr,1; bonus2 bSubRace,8,3; }, +2256,Majestic_Goat,Majestic Goat,5,20,0,800,,5,,0,279714,2,256,,0,41,{},{ bonus bStr,1; },,,, +2257,Snow_Horn,Snow Horn,5,20,0,100,,2,,0,10477567,2,256,,0,42,{},{},,,,, +2258,Spiky_Band,Spiky Band,5,20,0,1000,,6,,0,447986,2,256,,50,43,{},{},,,,, +2259,Mini_Propeller,Mini Propeller,5,20,0,100,,1,,0,10477567,2,256,,0,46,{},{},,,,, +2260,Mini_Glasses,Mini Glasses,5,28000,0,100,,1,,0,2088958,2,512,,0,47,{},{},,,,, +2261,Army_Cap,Army Cap,5,20,0,400,,4,,0,414946,2,256,,0,48,{},{},,,,, +2262,Pierrot_Nose,Pierrot Nose,5,20,0,100,,0,,0,10477567,2,1,,0,49,{},{},,,,, +2263,Zorro_Masque,Zorro Masque,5,20,0,100,,0,,0,2088958,2,512,,0,50,{},{},,,,, +2264,Munak_Hat,Munak Hat,5,20,0,300,,5,,0,10477567,2,769,,0,51,{},{ bonus2 bSubRace,1,10; },,, +2265,Gangster_Mask,Gangster Mask,5,20,0,100,,0,,0,10477567,2,1,,0,52,{},{ bonus2 bResEff,Eff_Silence,1500; },,, +2266,Iron_Cain,Iron Cain,5,20,0,300,,1,,0,16514,2,1,,50,53,{},{},,, +2267,Cigar,Cigar,5,20,0,100,,0,,0,2088958,2,1,,0,54,{},{ bonus2 bSubRace,4,3; }, +2268,Pipe,Pipe,5,20,0,100,,0,,0,2088958,2,1,,0,55,{},{ bonus2 bSubRace,4,3; }, +2269,Centimental_Flower,Romantic Flower,5,20,0,100,,0,,0,2088958,2,1,,0,56,{},{ bonus2 bSubRace,3,3; }, +2270,Centimental_Leaf,Romantic Leaf,5,20,0,100,,0,,0,2088958,2,1,,0,57,{},{ bonus2 bSubRace,3,3; }, +2271,Jack_a_Dandy,Jack a Dandy,5,45000,0,100,,1,,0,2088958,2,256,,0,58,{},{},,, +2272,Stop_Post,Stop Post,5,20,0,400,,1,,0,10477567,2,256,,0,59,{},{},,, +2273,Doctor_Cap,Doctor Band,5,20,0,100,,1,,0,2088958,2,256,,0,60,{},{ bonus bInt,1; },, +2274,Ghost_Bandana,Ghost Bandana,5,20,0,100,,0,,0,2088958,2,256,,0,61,{},{ bonus bAgi,2; bonus2 bSubEle,8,10; } +2275,Red_Bandana,Red Bandana,5,20,0,100,,2,,0,10477567,2,256,,0,62,{},{},,, +2276,Eagle_Eyes,Eagle Eyes,5,20,0,100,,1,,0,10477567,2,512,,0,63,{},{},,, +2277,Nurse_Cap,Nurse Cap,5,20,0,100,,1,,0,33040,2,256,,0,64,{},{ bonus bInt,1; bonus bLuk,1; }, +2278,Mr_Smile,Mr. Smile,5,60,0,100,,1,,0,10477567,2,513,,0,65,{},{},,, +2279,Bomb_Wick,Bomb Wick,5,20,0,100,,1,,0,10477567,2,256,,0,66,{},{},,, +2280,Sakkat,Sakkat,5,20,0,300,,3,,0,10477567,2,256,,0,67,{},{ bonus bAgi,1; },, +2281,Opera_Masque,Opera Masque,5,8000,0,200,,2,,0,2088958,2,513,,0,68,{},{},,, +2282,Heaven_Ring,Heaven Ring,5,20,0,100,,0,,0,10477567,2,256,,0,69,{},{ bonus2 bSubEle,6,10; } +2283,Ear_Mufs,Ear Mufs,5,20,0,200,,3,,0,10477567,2,256,,0,70,{},{ bonus2 bResEff,Eff_Curse,1000; } +2284,Antler,Antler,5,20,0,500,,4,,0,2088958,2,256,,0,71,{},{},, +2285,Apple_o'_Archer,Apple o' Archer,5,20,0,200,,0,,0,2088958,2,256,,30,72,{},{ bonus bDex,3; }, +2286,Elven_Ears,Elven Ears,5,20,0,100,,0,,0,2088958,2,512,,70,73,{},{},, +2287,Pirate_Bandana,Pirate Bandana,5,20,0,100,,3,,0,2088958,2,256,,0,74,{},{ bonus bStr,1; }, +2288,Mr_Scream,Mr. Scream,5,20,0,100,,1,,0,2088958,2,513,,0,75,{},{},, +2289,Poo_Poo_Hat,Poo Poo Hat,5,20,0,700,,0,,0,10477567,2,256,,0,76,{},{ bonus2 bSubRace,7,10; } +2290,Funeral_Hat,Funeral Hat,5,3000,0,100,,1,,0,10477567,2,256,,0,77,{},{},, +2291,Masquerade,Masquerade,5,20,0,100,,0,,0,2088958,2,512,,0,78,{},{ bonus2 bAddRace,7,3; } +2292,Welding_Mask,Welding Mask,5,20,0,300,,2,,0,263200,2,513,,50,79,{},{ bonus2 bSubEle,3,10; } +2293,Pretend_Murdered,Pretend Murdered,5,20,0,100,,1,,0,10477567,2,256,,0,80,{},{},, +2294,Stellar,Stellar,5,20,0,100,,1,,0,10477567,2,256,,0,81,{},{},, +2295,Blinker,Blinker,5,1500,0,100,,0,,0,2088958,2,512,,0,82,{},{ bonus2 bResEff,Eff_Blind,10000; } +2296,Binoculars,Binoculars,5,20,0,100,,1,,0,1574920,2,512,,50,83,{},{ bonus bDex,1; }, +2297,Goblini_Mask,Goblini Mask,5,20,0,100,,1,,0,2088958,2,513,,0,84,{},{},, +2298,Green_Feeler,Green Feeler,5,20,0,100,,2,,0,10477567,2,256,,0,85,{},{} +2299,Viking_Helm,Viking Helm,5,20,0,500,,5,,0,414946,2,256,,0,86,{},{} + +// Armor +//=================================================================== +2301,Cotton_Shirt,Cotton Shirt,5,10,0,100,,1,,0,10477567,2,16,,0,0,{},{} +2302,Cotton_Shirt_,Cotton Shirt,5,10,0,100,,1,,1,10477567,2,16,,0,0,{},{} +2303,Leather_Jacket,Leather Jacket,5,200,0,200,,2,,0,10477567,2,16,,0,0,{},{} +2304,Leather_Jacket_,Leather Jacket,5,200,0,200,,2,,1,10477567,2,16,,0,0,{},{} +2305,Adventure_Suit,Adventurer's Suit,5,1000,0,300,,3,,0,10477567,2,16,,0,0,{},{} +2306,Adventure_Suit_,Adventurer's Suit,5,1000,0,300,,3,,1,10477567,2,16,,0,0,{},{} +2307,Mantle,Mantle,5,10000,0,600,,4,,0,2088958,2,16,,0,0,{},{} +2308,Mantle_,Mantle,5,10000,0,600,,4,,1,2088958,2,16,,0,0,{},{} +2309,Coat,Coat,5,22000,0,1200,,5,,0,2088958,2,16,,0,0,{},{} +2310,Coat_,Coat,5,22000,0,1200,,5,,1,2088958,2,16,,0,0,{},{} +2311,Mink_Coat,Mink Coat,5,50000,0,2300,,6,,1,2088958,2,16,,30,0,{},{} +2312,Padded_Armor,Padded Armor,5,48000,0,2800,,7,,0,414946,2,16,,0,0,{},{} +2313,Padded_Armor_,Padded Armor,5,48000,0,2800,,7,,1,414946,2,16,,0,0,{},{} +2314,Chain_Mail,Chain Mail,5,65000,0,3300,,8,,0,414946,2,16,,0,0,{},{},,,,, +2315,Chain_Mail_,Chain Mail,5,65000,0,3300,,8,,1,414946,2,16,,0,0,{},{},,,,, +2316,Full_Plate,Full Plate,5,80000,0,4500,,10,,0,16514,2,16,,40,0,{},{},,,,, +2317,Full_Plate_,Full Plate,5,80000,0,4500,,10,,1,16514,2,16,,40,0,{},{},,,,, +2318,Clothes_of_the_Lord,Lord's Clothes,5,20,0,2500,,8,,1,263200,2,16,,70,0,{},{ bonus bMdef,5; bonus bInt,1; },,, +2319,Glittering_Clothes,Glittering Jacket,5,20,0,2500,,7,,1,2088958,2,16,,60,0,{},{ bonus bMdef,5; bonus2 bAddEffect,Eff_Blind,500; },,,, +2320,Formal_Suit,Formal Suit,5,20,0,300,,5,,1,2088958,2,16,,0,0,{},{},,,,, +2321,Silk_Robe,Silk Robe,5,8000,0,400,,3,,0,378806,2,16,,0,0,{},{ bonus bMdef,10; },,,, +2322,Silk_Robe_,Silk Robe,5,8000,0,400,,3,,1,378806,2,16,,0,0,{},{ bonus bMdef,10; },,,, +2323,Scapulare,Scapulare,5,6500,0,400,,4,,0,33040,2,16,,0,0,{},{},,,,, +2324,Scapulare_,Scapulare,5,6500,0,400,,4,,1,33040,2,16,,0,0,{},{},,,,, +2325,Saint_Robe,Saint's Robe,5,54000,0,600,,6,,0,296240,2,16,,0,0,{},{ bonus bMdef,5; },,,, +2326,Saint_Robe_,Saint's Robe,5,54000,0,600,,6,,1,296240,2,16,,0,0,{},{ bonus bMdef,5; },,,, +2327,Holy_Robe,Holy Robe,5,20,0,1700,,7,,0,33040,2,16,,60,0,{},{ bonus bMdef,5; bonus2 bSubRace,6,15; bonus2 bSubEle,7,10; } +2328,Wooden_Mail,Wooden Mail,5,5500,0,1000,,4,,0,279714,2,16,,0,0,{},{},,,,, +2329,Wooden_Mail_,Wooden Mail,5,5500,0,1000,,4,,1,279714,2,16,,0,0,{},{},,,,, +2330,Tights,Tights,5,71000,0,500,,6,,0,1574920,2,16,,45,0,{},{ bonus bDex,1; }, +2331,Tights_,Tights,5,71000,0,500,,6,,1,1574920,2,16,,45,0,{},{ bonus bDex,1; }, +2332,Silver_Robe,Silver Robe,5,7000,0,700,,4,,0,66052,2,16,,0,0,{},{},, +2333,Silver_Robe_,Silver Robe,5,7000,0,700,,4,,1,66052,2,16,,0,0,{},{},, +2334,Mage_Coat,Mage Coat,5,20,0,600,,5,,0,66052,2,16,,50,0,{},{ bonus bMdef,5; bonus bInt,1; } +2335,Thief_Clothes,Thief Clothes,5,74000,0,100,,6,,0,135232,2,16,,0,0,{},{ bonus bAgi,1; }, +2336,Thief_Clothes_,Thief Clothes,5,74000,0,100,,6,,1,135232,2,16,,0,0,{},{ bonus bAgi,1; }, +2337,Ninja_Suit,Ninja Suit,5,20,0,1500,,7,,0,135232,2,16,,50,0,{},{ bonus bAgi,1; bonus bMdef,3; } +2338,Wedding_Dress,Wedding Dress,5,43000,0,500,,0,,0,10477566,0,16,,0,0,{},{ bonus bMdef,15; changebase 22; }, +2339,Pantie,Pantie,5,1000,0,100,,4,,0,10477567,2,16,,0,0,{},{},, +2340,Novice_Breastplate,Novice Breastplate,5,89000,0,500,,4,,1,8388609,2,16,,10,0,{},{},, +2341,Legion_Plate_Armor,Legion Plate Armor,5,94000,0,5500,,11,,0,16384,2,16,,70,0,{},{},, +2342,Legion_Plate_Armor_,Legion Plate Armor,5,94000,0,5500,,11,,1,16384,2,16,,70,0,{},{},, +2343,Robe_of_Casting,Casting Robe,5,20,0,1100,,5,,0,66048,2,16,,75,0,{},{ bonus bCastrate,-3; }, +2344,Armor_of_Fire,Lucias's Volcano Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,3; }, +2345,Armor_of_Fire_,Lucias's Volcano Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,3; }, +2346,Armor_of_Water,Sapien's Ocean Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,1; }, +2347,Armor_of_Water_,Sapien's Ocean Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,1; }, +2348,Armor_of_Wind,Ebeshi's Typhoon Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,4; }, +2349,Armor_of_Wind_,Ebeshi's Typhoon Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,4; }, +2350,Armor_of_Land,Kreitos's Earth Armor,5,20,0,2200,,4,,0,279714,2,16,,45,0,{},{ bonus bDefEle,2; }, +2351,Armor_of_Land_,Kreitos's Earth Armor,5,20,0,2200,,4,,1,279714,2,16,,45,0,{},{ bonus bDefEle,2; }, +2352,Armor_For_Novice,Novice Ninja Suit,5,20,0,1,,4,,0,8388609,2,16,,0,0,{},{},, + +// Foot gear +//=================================================================== +2401,Sandals,Sandals,5,400,0,200,,1,,0,10477567,2,64,,0,0,{},{} +2402,Sandals_,Sandals,5,400,0,200,,1,,1,10477567,2,64,,0,0,{},{} +2403,Shoes,Shoes,5,3500,0,400,,2,,0,2088958,2,64,,0,0,{},{} +2404,Shoes_,Shoes,5,3500,0,400,,2,,1,2088958,2,64,,0,0,{},{} +2405,Boots,Boots,5,18000,0,600,,4,,0,1989866,2,64,,0,0,{},{} +2406,Boots_,Boots,5,18000,0,600,,4,,1,1989866,2,64,,0,0,{},{} +2407,Crystal_Pumps,Crystal Pumps,5,20,0,100,,0,,0,2088958,0,64,,0,0,{},{ bonus bMdef,10; bonus bLuk,5; } +2408,Cuffs,Cuffs,5,5000,0,3000,,3,,0,10477567,2,64,,0,0,{},{} +2409,Spiky_Heel,Spiky Heel,5,8500,0,600,,2,,0,2088958,2,64,,0,0,{},{ bonus bMdef,5; } +2410,Sleipnir,Sleipnir,5,20,0,3500,,0,,0,10477567,2,64,,95,0,{},{ bonus bMdef,10; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bSPrecovRate,15; bonus bSpeedRate,25; } +2411,Greaves,Greaves,5,48000,0,750,,5,,0,16512,2,64,,65,0,{},{},,,, +2412,Greaves_,Greaves,5,48000,0,750,,5,,1,16512,2,64,,65,0,{},{},,,, +2413,Safety_Shoes,Safety Shoes,5,20,0,350,,6,,0,16514,2,64,,30,0,{},{},,,, +2414,Sandal_For_Novice,Novice Sandals,5,20,0,1,,2,,0,8388609,2,64,,0,0,{},{},,,, +2415,Bunny_Slippers,Bunny Slippers,5,20,0,300,,,,,2088958,0,64,,,0,{},{ bonus bLuk,3; } + +// Garments +//=================================================================== +2501,Hood,Hood,5,1000,0,200,,1,,0,10477567,2,4,,0,0,{},{},,,, +2502,Hood_,Hood,5,1000,0,200,,1,,1,10477567,2,4,,0,0,{},{},,,, +2503,Muffler,Muffler,5,5000,0,400,,2,,0,2088958,2,4,,0,0,{},{},,,, +2504,Muffler_,Muffler,5,5000,0,400,,2,,1,2088958,2,4,,0,0,{},{},,,, +2505,Manteau,Manteau,5,32000,0,600,,4,,0,414946,2,4,,0,0,{},{},,,, +2506,Manteau_,Manteau,5,32000,0,600,,4,,1,414946,2,4,,0,0,{},{},,,, +2507,Cape_Of_Ancient_Lord,Cape of Old Marquess,5,20,0,600,,2,,0,2088958,2,4,,40,0,{},{ bonus bAgi,1; },,, +2508,Ragamuffin_Cape,Ragamuffin Manteau,5,20,0,500,,1,,0,2088958,2,4,,0,0,{},{ bonus bMdef,10; bonus bUnbreakable,100; },,, +2509,Manteau_of_Survival,Manteau of Life,5,20,0,550,,0,,0,66052,2,4,,75,0,{},{ bonus bVit,10; },,, +2510,Hood_For_Novice,Novice Hood,5,20,0,1,,2,,0,8388609,2,4,,0,0,{},{},, + +// Accessories +//=================================================================== +2601,Ring,Ring,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bStr,2; }, +2602,Earring,Earring,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bInt,2; }, +2603,Necklace,Necklace,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bVit,2; }, +2604,Glove,Glove,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bDex,2; }, +2605,Brooch,Brooch,5,30000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bAgi,2; }, +2607,Clip,Clip,5,30000,0,100,,0,,1,10477567,2,136,,0,0,{},{ bonus bMaxSP,10; }, +2608,Rosary,Rosary,5,15000,0,100,,0,,0,2088958,2,136,,20,0,{},{ bonus bMdef,5; bonus bLuk,2; } +2609,Skull_Ring,Skull Ring,5,10000,0,100,,0,,0,10477567,2,136,,0,0,{},{},, +2610,Gold_Ring,Gold Ring,5,30000,0,100,,0,,0,10477567,2,136,,0,0,{},{},, +2611,Silver_Ring,Silver Ring,5,20000,0,100,,0,,0,10477567,2,136,,0,0,{},{},, +2612,Flower_Ring,Flower Ring,5,1500,0,100,,0,,0,10477567,2,136,,0,0,{},{},, +2613,Diamond_Ring,Diamond Ring,5,45000,0,100,,0,,0,10477567,2,136,,0,0,{},{},, +2614,Eye_of_Dullahan,Eye of Dullahan,5,90000,0,100,,0,,0,2088958,2,136,,50,0,{},{ bonus2 bResEff,Eff_Poison,1000; bonus2 bResEff,Eff_Curse,1000; bonus2 bResEff,Eff_Silence,1000; bonus2 bResEff,Eff_Confusion,1000; bonus2 bResEff,Eff_Blind,1000; },, +2615,Safety_Ring,Safety Ring,5,75000,0,100,,3,,0,2088958,2,136,,40,0,{},{ bonus bMdef,3; },,,, +2616,Critical_Ring,Critical Ring,5,75000,0,100,,0,,0,2088958,2,136,,40,0,{},{ bonus bCritical,5; },,,, +2617,Celebrant's_Mitten,Celebrant's Mitten,5,20,0,100,,1,,0,2088958,2,136,,35,0,{},{ bonus bInt,1; },,,, +2618,Matyr's_Leash,Matyr's Leash,5,20,0,100,,1,,0,2088958,2,136,,35,0,{},{ bonus bAgi,1; },,,, +2619,Thimble_Of_Archer,Bow Thimble,5,30000,0,100,,0,,0,1574920,2,136,,65,0,{},{},,,,, +2620,Ring_Of_Rogue,Rogue's Treasure,5,30000,0,100,,0,,0,135232,2,136,,70,0,{},{ bonus bAddStealRate,100; },,,,, +2621,Ring_,Ancient Ring,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bStr,1; },,,, +2622,Earring_,Ancient Earring,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bInt,1; },,,, +2623,Necklace_,Ancient Necklace,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bVit,1; },,,, +2624,Glove_,Ancient Glove,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bDex,1; },,,, +2625,Brooch_,Ancient Brooch,5,30000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bAgi,1; },,,, +2626,Rosary_,Ancient Rosary,5,15000,0,200,,0,,1,2088958,2,136,,90,0,{},{ bonus bMdef,3; bonus bLuk,1; },,, +2627,Belt,Ancient Belt,5,20000,0,1200,,0,,1,10477567,2,136,,25,0,{},{},,,,, +2628,Novice_Armlet,Novice Armlet,5,400,0,200,,0,,1,8388609,2,136,,0,0,{},{ bonus bStr,1; bonus bInt,1; bonus bLuk,1; },, +2629,Megingjard,Megingjard,5,20,0,8000,,2,,0,10477567,2,136,,90,0,{},{ bonus bStr,40; bonus bMdef,7; },,, +2630,Brisingamen,Brisingamen,5,20,0,1500,,1,,0,10477567,2,136,,95,0,{},{ bonus bStr,3; bonus bAgi,3; bonus bVit,3; bonus bInt,3; bonus bMdef,5; } +2631,Celebration_Ring,Celebration Ring,5,20,0,10,,0,,0,10477567,2,136,,0,0,{},{ bonus bStr,2; bonus bAgi,2; bonus bVit,2; bonus bInt,2; bonus bDex,2; bonus bLuk,2; } +2634,Wedding_Ring_M,Wedding Ring,4,20,0,0,,,,0,10477567,1,2,,0,,{},{ skill 334,1; skill 336,1; } +2635,Wedding_Ring_F,Wedding Ring,4,20,0,0,,,,0,10477567,0,2,,0,,{},{ skill 335,1; skill 336,1; } +2636,Gold_Christmas_Ring,Gold Xmas Ring,5,20,0,0,,0,,0,10477567,2,136,,0,,{},{} +2637,Silver_Christmas_Ring,Silver Xmas Ring,5,20,0,0,,0,,0,10477567,2,136,,0,,{},{} +2638,Exorcize_Sachet,Exorcize Sachet,5,20,0,100,,0,,,10477567,2,136,,0,,{},{ bonus bStr,1; bonus bLuk,1; },,, +2639,Purification_Sachet,Purification Sachet,5,20,0,100,,0,,,10477567,2,136,,0,,{},{ bonus bAgi,1; bonus bInt,1; },,, +2640,Kafra_Ring,Kafra Ring,5,20,0,10,,,,,2088958,2,136,,,,{},{ bonus bStr,1; bonus bAgi,1; bonus bInt,1; bonus bLuk,1; } + +// Cards +//=================================================================== +4001,Poring_Card,Poring Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bLuk,2; bonus bFlee2,1; } +4002,Fabre_Card,Fabre Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bVit,1; bonus bMaxHP,100; } +4003,Pupa_Card,Pupa Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHP,700; } +4004,Drops_Card,Drops Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,1; bonus bHit,3; } +4005,Poring__Card,Poring Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,7,20; } +4006,Lunatic_Card,Lunatic Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bLuk,1; bonus bCritical,1; bonus bFlee2,1; } +4007,Pecopeco_Egg_Card,Pecopeco Egg Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,0,20; } +4008,Picky_Card,Picky Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,1; bonus bBaseAtk,10; } +4009,Chonchon_Card,Chonchon Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAgi,1; bonus bFlee,2; } +4010,Wilow_Card,Wilow Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bMaxSP,80; } +4011,Picky__Card,Picky Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bVit,1; bonus bMaxHP,100; } +4012,Thief_Bug_Egg_Card,Thief Bug Egg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHP,400; } +4013,Andre_Egg_Card,Andre Egg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHPrate,5; } +4014,Roda_Frog_Card,Roda Frog Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHP,400; bonus bMaxSP,50; } +4015,Condor_Card,Condor Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bFlee,10; } +4016,Thief_Bug_Card,Thief Bug Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bAgi,1; } +4017,Savage_Babe_Card,Savage Babe Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Stan,500; } +4018,Andre_Larva_Card,Andre Larva Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bInt,1; bonus bMaxSP,10; } +4019,Hornet_Card,Hornet Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bStr,1; bonus bBaseAtk,3; } +4020,Farmiliar_Card,Farmiliar Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Blind,500; bonus bBaseAtk,5; } +4021,Rocker_Card,Rocker Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDex,1; } +4022,Spore_Card,Spore Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bVit,2; } +4023,Desert_Wolf_Babe_Card,Desert Wolf Babe Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bInt,1; } +4024,Plankton_Card,Plankton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Sleep,500; bonus bBaseAtk,5; } +4025,Skeleton_Card,Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,10; bonus2 bAddEff,Eff_Stan,200; } +4026,Thief_bug_Female_Card,Thief bug Female Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAgi,1; bonus bFlee,1; } +4027,Kukre_Card,Kukre Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bAgi,2; } +4028,Tarou_Card,Tarou Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,2; } +4029,Wolf_Card,Wolf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,15; bonus bCritical,1; } +4030,Mandragora_Card,Mandragora Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,4,20; } +4031,Pecopeco_Card,Pecopeco Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHPrate,10; } +4032,Ambernite_Card,Ambernite Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bDef,2; } +4033,Poporing_Card,Poporing Card,6,20,0,10,,,,,,,136,,,,{},{ skill 53,1; } +4034,Worm_Tail_Card,Worm Tail Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,2; } +4035,Hydra_Card,Hydra Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,7,20; } +4036,Muka_Card,Muka Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bHPrecovRate,10; } +4037,Snake_Card,Snake Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,500; bonus bBaseAtk,5; } +4038,Zombie_Card,Zombie Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bHPrecovRate,20; } +4039,Stainer_Card,Stainer Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Silence,2000; bonus bDef,1; } +4040,Creamy_Card,Creamy Card,6,20,0,10,,,,,,,136,,,,{},{ skill 26,1; } +4041,Coco_Card,Coco Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Sleep,2000; bonus bDef,1; } +4042,Steel_Chonchon_Card,Steel Chonchon Card,6,20,0,10,,,,,,,16,,,,{},{ bonus2 bSubEle,4,10; bonus bDef,2; } +4043,Andre_Card,Andre Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,20; } +4044,Smokie_Card,Smokie Card,6,20,0,10,,,,,,,136,,,,{},{ skill 51,1; } +4045,horn_Card,horn Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bLongAtkDef,35; } +4046,Martin_Card,Martin Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Blind,2000; bonus bDef,1; } +4047,Ghostring_Card,Ghostring Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,8; bonus bHPrecovRate,-25; } +4048,Poison_Spore_Card,Poison Spore Card,6,20,0,10,,,,,,,136,,,,{},{ skill 52,3; } +4049,Vadon_Card,Vadon Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,3,20; } +4050,Thief_bug_Male_Card,Thief bug Male Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAgi,2; } +4051,Yoyo_Card,Yoyo Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bFlee2,5; bonus bAgi,1; } +4052,Elder_Wilow_Card,Elder Wilow Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bInt,2; } +4053,Vitata_Card,Vitata Card,6,20,0,10,,,,,,,136,,,,{},{ skill 28,1; bonus bUseSPrate,25; } +4054,Angeling_Card,Angeling Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,6; } +4055,Marina_Card,Marina Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Freeze,500; bonus bBaseAtk,5; } +4056,Dustiness_Card,Dustiness Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,4,30; bonus bFlee,5; } +4057,Metaller_Card,Metaller Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Silence,500; bonus bBaseAtk,5; } +4058,Thara_Frog_Card,Thara Frog Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,7,30; } +4059,Soldier_Andre_Card,Soldier Andre Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,3,30; } +4060,Goblin_Card,Goblin Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,2,20; } +4061,Cornutus_Card,Cornutus Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDef,1; } +4062,Anacondaq_Card,Anacondaq Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,5,20; } +4063,Caramel_Card,Caramel Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,4,20; } +4064,Zerom_Card,Zerom Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,3; } +4065,Kaho_Card,Kaho Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,2,20; } +4066,Orc_Warrior_Card,Orc Warrior Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,2,30; } +4067,Megalodon_Card,Megalodon Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Freeze,2000; bonus bDef,1; } +4068,Scorpion_Card,Scorpion Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,3,20; } +4069,Drainliar_Card,Drainliar Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,1,20; } +4070,Eggyra_Card,Eggyra Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bSPrecovRate,15; } +4071,Orc_Zombie_Card,Orc Zombie Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,9,30; bonus bFlee,5; } +4072,Golem_Card,Golem Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bBaseAtk,5; } +4073,Pirate_Skel_Card,Pirate Skel Card,6,20,0,10,,,,,,,136,,,,{},{ skill 37,5; } +4074,BigFoot_Card,BigFoot Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,4,30; } +4075,Argos_Card,Argos Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Stone,2000; bonus bDef,1; } +4076,Magnolia_Card,Magnolia Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Curse,500; bonus bBaseAtk,5; } +4077,Phen_Card,Phen Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bNoCastCancel,0; bonus bCastrate,25; } +4078,Savage_Card,Savage Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bVit,3; } +4079,Mantis_Card,Mantis Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,3; } +4080,Flora_Card,Flora Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,5,20; } +4081,Hode_Card,Hode Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,2,30; bonus bFlee,5; } +4082,Desert_Wolf_Card,Desert Wolf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,0,15; bonus bBaseAtk,5; } +4083,Rafflesia_Card,Rafflesia Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,5,30; } +4084,Marine_Sphere_Card,Marine Sphere Card,6,20,0,10,,,,,,,136,,,,{},{ skill 7,3; } +4085,Orc_Skeleton_Card,Orc Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,6,20; } +4086,Soldier_Skeleton_Card,Soldier Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bCritical,9; } +4087,Giearth_Card,Giearth Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Confusion,10000; bonus2 bSubEle,2,15; } +4088,Frilldora_Card,Frilldora Card,6,20,0,10,,,,,,,4,,,,{},{ skill 135,1; } +4089,Sword_Fish_Card,Sword Fish Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,1; bonus bDef,1; } +4090,Munak_Card,Munak Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bResEff,Eff_Stone,1500; bonus2 bSubEle,2,5; bonus bDef,1; } +4091,Kobold_Card,Kobold Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bStr,1; bonus bCritical,4; } +4092,Skel_Worker_Card,Skel Worker Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,1,15; bonus bBaseAtk,5; } +4093,Obeaune_Card,Obeaune Card,6,20,0,10,,,,,,,136,,,,{},{ skill 35,1; } +4094,Archer_Skeleton_Card,Archer Skeleton Card,6,20,0,10,,,,,,,2,,,,{},{} +4095,Marse_Card,Marse Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,1,30; } +4096,Zenorc_Card,Zenorc Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,400; bonus bBaseAtk,10; } +4097,Matyr_Card,Matyr Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxHPrate,10; bonus bAgi,1; } +4098,Dokebi_Card,Dokebi Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,4; bonus bDef,1; } +4099,Pasana_Card,Pasana Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,3; bonus bDef,1; } +4100,Sohee_Card,Sohee Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxSPrate,15; bonus bSPrecovRate,3; } +4101,Sand_Man_Card,Sand Man Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,2; bonus bDef,1; } +4102,Whisper_Card,Whisper Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bFlee,20; bonus2 bSubEle,8,-50; } +4103,Horong_Card,Horong Card,6,20,0,10,,,,,,,136,,,,{},{ skill 10,1; } +4104,Requiem_Card,Requiem Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Confusion,500; } +4105,Marc_Card,Marc Card,6,20,0,10,,,,,,,16,,,,{},{ bonus2 bSubEle,1,5; bonus2 bResEff,Eff_Freeze,10000; } +4106,Mummy_Card,Mummy Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,20; } +4107,Verit_Card,Verit Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bMaxHPrate,8; bonus bMaxSPrate,8; } +4108,Myst_Card,Myst Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,5,30; bonus bFlee,5; } +4109,Jakk_Card,Jakk Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,3,30; bonus bFlee,5; } +4110,Ghoul_Card,Ghoul Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Poison,2000; bonus bDef,1; } +4111,Strouf_Card,Strouf Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,6,20; } +4112,Marduk_Card,Marduk Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Silence,10000; } +4113,Marionette_Card,Marionette Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,8,30; bonus bFlee,5; } +4114,Argiope_Card,Argiope Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,5; bonus bDef,1; } +4115,Hunter_Fly_Card,Hunter Fly Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bHpDrainRate,3,15; } +4116,Isis_Card,Isis Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,7,30; bonus bFlee,5; } +4117,Side_Winder_Card,Side Winder Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDoubleRate,5; } +4118,Petit_Card,Petit Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,9,20; } +4119,Bathory_Card,Bathory Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,7; } +4120,Petit__Card,Petit Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,9,30; } +4121,Phreeoni_Card,Phreeoni Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,100; } +4122,Deviruchi_Card,Deviruchi Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bStr,1; bonus2 bResEff,Eff_Blind,10000; } +4123,Eddga_Card,Eddga Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bInfiniteEndure,0; bonus bMaxHPrate,-25; } +4124,Medusa_Card,Medusa Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,6,15; bonus2 bResEff,Eff_Stone,10000; } +4125,Deviace_Card,Deviace Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,7,7; bonus2 bAddRace,2,7; bonus2 bAddRace,3,7; bonus2 bAddRace,4,7; } +4126,Minorous_Card,Minorous Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddSize,2,15; bonus bBaseAtk,5; } +4127,Nightmare_Card,Nightmare Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Sleep,10000; bonus bAgi,1; } +4128,Golden_Bug_Card,Golden Bug Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bNoMagicDamage,0; bonus bUseSPrate,100; } +4129,Baphomet__Card,Baphomet Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bHit,-10; bonus bSplashRange,1; } +4130,Scorpion_King_Card,Scorpion King Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEle,9,20; } +4131,Moonlight_Flower_Card,Moonlight Flower Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bSpeedRate,25; } +4132,Mistress_Card,Mistress Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bNoGemStone,0; bonus bUseSPrate,25; } +4133,Daydric_Card,Daydric Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bSubEle,0,20; } +4134,Dracula_Card,Dracula Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bSpDrainRate,1,5; } +4135,Orc_Lord_Card,Orc Lord Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bShortWeaponDamageReturn,30; } +4136,Khalitzburg_Card,Khalitzburg Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,6,30; } +4137,Drake_Card,Drake Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bNoSizeFix,0; } +4138,Anubis_Card,Anubis Card,6,20,0,10,,,,,,,32,,,,{},{ bonus2 bSubRace,8,30; } +4139,Joker_Card,Joker Card,6,20,0,10,,,,,,,136,,,,{},{ skill 50,1; } +4140,Knight_Of_Abyss_Card,Knight Of Abyss Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddRace,10,25; } +4141,Evil_Druid_Card,Evil Druid Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bDefEle,9; bonus bInt,1; bonus bDef,1; } +4142,Doppelganger_Card,Doppelganger Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAspdRate,15; } +4143,Orc_Hero_Card,Orc Hero Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bVit,3; bonus2 bResEff,Eff_Stan,10000; } +4144,Osiris_Card,Osiris Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRestartFullRecover,0; } +4145,Berzebub_Card,Berzebub Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bCastrate,-30; bonus bMaxSPrate,-15; bonus bMaxHPrate,-5; } +4146,Maya_Card,Maya Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMagicDamageReturn,30; } +4147,Baphomet_Card,Baphomet Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,-10; bonus bSplashRange,1; } +4148,Pharaoh_Card,Pharaoh Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bUseSPrate,-30; } +4149,Bon_Gun_Card,Bon Gun Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bInt,2; } +4150,Orc_Archer_Card,Orc Archer Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRange,1; } +4151,Mimic_Card,Mimic Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bAgi,1; bonus bDex,2; bonus bLuk,3; } +4152,Wraith_Card,Wraith Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bMatk,8; } +4153,Alarm_Card,Alarm Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bCastrate,-10; } +4154,Arclouse_Card,Arclouse Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bStr,2; } +4155,Rideword_Card,Rideword Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bDex,4; } +4156,Skeleton_Prisoner_Card,Skel Prisoner Card,6,20,0,10,,,,,,,136,,,,{},{ skill 45,3; } +4157,Zombie_Prisoner_Card,Zombie Prisoner Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bMaxHPrate,10; } +4158,Dark_Priest_Card,Dark Priest Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-15; } +4159,Punk_Card,Punk Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-5; } +4160,Zherlthsh_Card,Zherlthsh Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bUseSPrate,-10; } +4161,Mysteltainn_Card,Mysteltainn Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bAtk,30; bonus bMaxHPrate,-22; bonus bCastrate,-10; } +4162,Tirfing_Card,Tirfing Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAgi,3; bonus bFlee,10; } +4163,Executioner_Card,Executioner Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bRandomAttackIncrease,300, 4; } +4164,Anolian_Card,Anolian Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,2; } +4165,Sting_Card,Sting Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bDex,4; } +4166,Wander_Man_Card,Wander Man Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,25; bonus bCritical,5; } +4167,Cramp_Card,Cramp Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bAgi,3; } +4168,Filamentous_Card,Filamentous Card,6,20,0,10,,,,,,,769,,,,{},{ bonus2 bResEff,Eff_Stone,100; bonus2 bResEff,Eff_Freeze,100; bonus2 bResEff,Eff_Stan,100; bonus2 bResEff,Eff_Sleep,100; bonus2 bResEff,Eff_Poison,100; bonus2 bResEff,Eff_Curse,100; bonus2 bResEff,Eff_Silence,100; bonus2 bResEff,Eff_Confusion,100; bonus2 bResEff,Eff_Blind,100; } +4169,Brilight_Card,Brilight Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bAgi,2; bonus bLuk,3; } +4170,Iron_Fist_Card,Iron Fist Card,6,20,0,10,,,,,,,769,,,,{},{ bonus bVit,2; } +4171,High_Orc_Card,High Orc Card,6,20,0,10,,,,,,,16,,,,{},{ bonus bStr,2; } +4172,Choco_Card,Choco Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bStr,1; bonus bAgi,1; bonus bVit,1; bonus bInt,1; bonus bDex,1; bonus bLuk,1; bonus bAtk,10; bonus bDef,1; } +4173,Stem_Worm_Card,Stem Worm Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,2; } +4174,Penonema_Card,Penomena Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHPrate, 15; } +4175,Marin_Card,Marin Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,1,20; } +4176,Sasquatch_Card,Sasquatch Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bAddSize,1,20; bonus bAtk,-10; } +4177,Antonio_Card,Antonio Card,6,20,0,10,,,,,,,136,,,,{},{ skill 50,5; skill 210,5; } +4178,Cruiser_Card,Cruiser Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bDex,3; } +4179,Mystcase_Card,Mystcase Card,6,20,0,10,,,,,,,64,,,,{},{ bonus bCastrate,-10; bonus bAtk,10; } +4180,Chepet_Card,Chepet Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bLuk,5; } +4181,Knight_of_Windstorm_Card,Knight Of Windstorm Card,6,20,0,10,,,,,,,4,,,,{},{ bonus2 bAddEff,Eff_Freeze,500; bonus bAtk,25; } +4182,Garm_Card,Garm Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bAddSize,2,20; bonus bAtk,-10; } +4183,Gargoyle_Card,Gargoyle Card,6,20,0,10,,,,,,,136,,,,{},{ bonus bRange,5; } +4184,Raggler_Card,Raggler Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Sleep,500; } +4185,Neraid_Card,Neraid Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bAgi,2; } +4186,Pest_Card,Pest Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,0,20; } +4187,Injustice_Card,Injustice Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,9,20; } +4188,Goblin_Archer_Card,Goblin Archer Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,2,20; } +4189,Gryphon_Card,Gryphon Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Silence,500; bonus bAtk,25; } +4190,Dark_Frame_Card,Dark Frame Card,6,20,0,10,,,,,,,769,,,,{},{ skill 32,2; } +4191,Wind_Ghost_Card,Wind Ghost Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,4; } +4192,Merman_Card,Merman Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,1; } +4193,Cookie_Card,Cookie Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,7; } +4194,Aster_Card,Aster Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,3,20; } +4195,Carat_Card,Carat Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,6,20; } +4196,Bloody_Knight_Card,Bloody Knight Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Blind,500; bonus bAtk,25; bonus bMaxHPrate,-10; } +4197,Clock_Card,Clock Card,6,20,0,10,,,,,,,4,,,,{},{ bonus bLuk,10; } +4198,Clock_Tower_Manager_Card,C Tower Manager Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Curse,500; } +4199,Alligator_Card,Alligator Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Poison,500; } +4200,Dark_Lord_Card,Dark Lord Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,9; } +4201,Orc_Lady_Card,Orc Lady Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,4,20; } +4202,Megalith_Card,Megalith Card,6,20,0,10,,,,,,,4,,,,{},{ skill 9,1; } +4203,Alice_Card,Alice Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,6; } +4204,Raydric_Archer_Card,Raydric Archer Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,3; } +4205,Greatest_General_Card,Greatest General Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,5,20; } +4206,Stalatic_Golem_Card,Stalactic Golem Card,6,20,0,10,,,,,,,32,,,,{},{ bonus bMaxHP,500; bonus bDex,-3; } +4207,Tri_Joint_Card,Tri Joint Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,7,20; } +4208,Steamrider_Goblin_Card,Steam Goblin Card,6,20,0,10,,,,,,,64,,,,{},{ bonus2 bSubEle,8,20; } +4209,Sage_Worm_Card,Sage Worm Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bAtkEle,8; } +4210,Kobold_Archer_Card,Kobold archer Card,6,20,0,10,,,,,,,2,,,,{},{ bonus bHit,15; bonus bAtk,15; } +4211,Chimera_Card,Chimera Card,6,20,0,10,,,,,,,2,,,,{},{ bonus2 bAddEff,Eff_Stan,500; bonus bAtk,25; } + +// Extra Headgears +//=================================================================== +5001,Headset,Headset,5,20,0,200,,3,,0,2088958,2,256,,0,87,{},{ bonus2 bResEff,Eff_Curse,1000; }, +5002,Jewel_Crown,Jewel Crown,5,20,0,600,,4,,0,414946,2,256,,60,88,{},{ bonus bMdef,3; bonus bInt,2; bonus bLuk,1; } +5003,Joker_Jester,Joker Jester,5,20,0,100,,1,,0,2088958,2,256,,0,89,{},{ bonus bMdef,5; bonus bLuk,2; }, +5004,Oxygen_Mask,Oxygen Mask,5,20,0,200,,0,,0,2088958,2,1,,0,90,{},{ bonus2 bResEff,Eff_Poison,2000; },,,, +5005,Gas_Mask,Gas Mask,5,20,0,100,,1,,0,2088958,2,513,,0,91,{},{ bonus2 bResEff,Eff_Poison,3000; },,,, +5006,Machoman_Glasses,Machoman's Glasses,5,36000,0,100,,1,,0,2088958,2,512,,0,92,{},{},,,,,, +5007,Grand_Circlet,Grand Circlet,5,20,0,200,,3,,0,2088958,2,256,,55,93,{},{ bonus bMdef,4; bonus bStr,1; bonus bInt,1; bonus bLuk,1; },, +5008,Puppy_Love,Puppy Love,5,20,0,100,,1,,0,2088958,2,256,,0,94,{},{},,,,,, +5009,Safety_Helmet,Safety Helmet,5,20,0,500,,3,,0,2088958,2,256,,0,95,{},{ bonus bMdef,3; bonus bUnbreakable,100; },,,,, +5010,Indian_Hair_Piece,Indian Fillet,5,20,0,100,,3,,0,10477567,2,256,,0,96,{},{},,,,,, +5011,Aerial,Aerial,5,20,0,100,,3,,0,10477567,2,256,,0,97,{},{},,,,,, +5012,Ph.D_Hat,Ph.D Hat,5,20,0,200,,3,,0,2088958,2,256,,0,98,{},{ bonus bMdef,3; },,,,, +5013,Horn_Of_Lord_Kaho,Lord Kaho's Horn,5,20,0,100,,5,,0,10477567,2,256,,0,99,{},{ bonus bMdef,10; bonus bStr,5; bonus bAgi,10; bonus bVit,10; bonus bInt,5; bonus bLuk,20; } +5014,Fin_Helm,Fin Helm,5,20,0,300,,2,,0,16514,2,512,,65,100,{},{},,,,,, +5015,Egg_Shell,Egg Shell,5,20,0,200,,3,,0,10477567,2,256,,0,101,{},{},,,,,, +5016,Boy's_Cap,Boy's Cap,5,20,0,100,,2,,0,2088958,2,256,,0,102,{},{},,,,,, +5017,Bone_Helm,Bone Helm,5,20,0,800,,7,,0,279714,2,256,,70,103,{},{ bonus2 bSubEle,7,-15; },,,, +5018,Feather_Bonnet,Feather Bonnet,5,20,0,300,,4,,0,1574920,2,256,,0,104,{},{ bonus bAgi,1; },,,,, +5019,Corsair,Corsair,5,20,0,500,,5,,0,2088958,2,256,,0,105,{},{ bonus bVit,1; },,,,, +5020,Kafra_Band,Kafra's Band,5,20,0,500,,3,,0,10477567,2,256,,0,106,{},{ bonus bMdef,3; },, +5021,Bankruptcy_of_Heart,Money Loser's Grief,5,20,0,1200,,4,,0,263200,2,256,,38,107,{},{ bonus bInt,1; bonus bDex,1; }, +5022,Solar_God_Helm,Solar God Helm,5,20,0,2400,,4,,0,2088832,2,768,,0,138,{},{ bonus bStr,3; bonus bInt,2; }, +5023,Parcel_Hat,Parcel Hat,5,20,0,1000,,0,,0,263200,2,256,,0,108,{},{},,, +5024,Cake_Hat,Cake Hat,5,20,0,1500,,1,,0,10477567,2,256,,0,109,{},{},,, +5025,Angel_Helm,Angel Helm,5,20,0,1600,,5,,0,2088832,2,256,,74,110,{},{ bonus bAgi,1; bonus bLuk,1; bonus bMdef,3; } +5026,Chef_Hat,Chef's Hat,5,20,0,300,,1,,0,2088958,2,256,,50,111,{},{ bonus bDex,1; },, +5027,Mage_Hat,Mage Hat,5,20,0,300,,1,,0,66052,2,256,,0,112,{},{ bonus bInt,2; bonus bMaxSP,150; }, +5028,Candle,Candle,5,20,0,150,,5,,0,10477567,2,256,,0,113,{},{},,, +5029,Spore_Hat,Spore Hat,5,20,0,900,,3,,0,2088958,2,256,,20,114,{},{},,, +5030,Panda_Hat,Panda Hat,5,20,0,800,,3,,0,2088958,2,256,,40,115,{},{},,, +5031,Miner's_Helmet,Miner's Helmet,5,20,0,1500,,4,,0,447986,2,256,,55,116,{},{ bonus bDex,2; },, +5032,Sunday_Hat,Sunday Hat,5,20,0,800,,1,,0,2088958,2,256,,0,117,{},{},,, +5033,Smokie_Hat,Smokie Hat,5,20,0,900,,3,,0,2088958,2,256,,50,118,{},{},,, +5034,Lightbulb_Hairband,Lightbulb Hairband,5,20,0,500,,0,,0,2088958,2,256,,0,119,{},{},,, +5035,Poring_Hat,Poring Hat,5,20,0,700,,2,,0,2088958,2,256,,38,120,{},{},,, +5036,Cross_Hairband,Cross Hairband,5,20,0,250,,1,,0,2088958,2,256,,10,121,{},{},,, +5037,Fruit_Shell,Apple Hat,5,20,0,150,,4,,0,10477567,2,256,,5,122,{},{},,, +5038,Deviruchi_Hat,Deviruchi Hat,5,20,0,800,,2,,0,2088958,2,256,,64,123,{},{ bonus bStr,1; bonus bInt,1; }, +5039,Rainbow_Eggshell,Rainbow Eggshell,5,20,0,400,,4,,0,10477567,2,256,,19,124,{},{},,, +5040,Blush,Blush,5,20,0,100,,0,,0,10477567,2,512,,0,125,{},{},,, +5041,Heart_Hairpin,Heart Hairpin,5,20,0,100,,0,,0,10477567,2,256,,0,126,{},{},,, +5042,Hair_Protector,Dumpling Decoration,5,20,0,150,,0,,0,2088958,2,256,,14,127,{},{},,, +5043,Opera_Ghost_Mask,Opera Ghost Mask,5,20,0,200,,1,,0,2088958,2,512,,20,128,{},{},,, +5044,Wing_Of_Demon,Wings of Demon,5,20,0,350,,2,,0,10477567,2,256,,45,129,{},{},,, +5045,Magician_Hat,Magic Hat,5,20,0,500,,3,,0,554319315732,2,256,,50,130,{},{ bonus bDex,1; bonus bAgi,1; bonus bMaxSP,50; } +5046,Bongun_Hat,Bongun Hat,5,20,0,300,,5,,0,10477567,2,769,,0,139,{},{},,, +5047,Fashion_Sunglasses,Fashion Sunglasses,5,20,0,100,,0,,0,2088958,2,256,,0,131,{},{},,, +5048,Cresent_Hairpin,Cresent Hairpin,5,20,0,100,,0,,0,10477567,2,256,,0,132,{},{},,, +5049,Striped_Bandana,Striped Bandana,5,20,0,150,,1,,0,10477567,2,256,,0,133,{},{},,, +5050,Mysterious_Fruit_Shell,Mysterious Fruit Shell,5,20,0,300,,5,,0,10477567,2,256,,30,134,{},{},,, +5051,Bell_of_Pussycat,Bell of Pussycat,5,20,0,100,,5,,0,10477567,2,1,,0,135,{},{},,, +5052,Blue_Bandana,Blue Bandana,5,20,0,150,,1,,0,10477567,2,256,,0,136,{},{},,, +5053,Sphinx_Hat,Sphinx Hat,5,20,0,3000,,5,,0,16514,2,256,,65,137,{},{ bonus bStr,2; },, +5054,Assassin_Mask,Assassin Mask,5,20,0,100,,0,,0,4096,2,1,,70,180,{},{},,, +5055,Novice_Eggshell,Novice Eggshell,5,20,0,10,,3,,0,8388609,2,256,,0,101,{},{},,, +5056,Seed_Of_Love,Seed Of Love,5,20,0,200,,0,,0,2088958,2,256,,0,140,{},{} +5057,Black_Cat_Ears,Black Cat Ears,5,20,0,200,,2,,0,10477567,2,256,,45,141,{},{} +5058,Resting_Cat,Resting Cat,5,20,0,500,,1,,0,2088958,2,256,,0,142,{},{ bonus2 bResEff,Eff_Curse,3000; bonus bMdef,15; } +5059,Bear_Hat,Bear Hat,5,20,0,800,,3,,0,10477567,2,256,,50,143,{},{} +5060,Pointy_Cap,Pointy Cap,5,20,0,300,,3,,0,10477567,2,256,,0,144,{},{ bonus bLuk,1; } +5061,Flower_Hairpin,Flower Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,145,{},{} +5062,Straw_Hat,Straw Hat,5,20,0,200,,3,,0,10477567,2,256,,50,146,{},{ bonus bAgi,1; } +5063,Bandaid,Bandaid,5,20,0,100,,1,,0,2088958,2,256,,0,147,{},{} +5064,Transformation_Leaf,Transformation Leaf,5,20,0,100,,1,,0,10477567,2,256,,0,148,{},{} +5065,Fresh_Blueish_Fish,Fresh Blueish Fish,5,20,0,500,,2,,0,10477567,2,256,,50,149,{},{ bonus2 bAddRace,5,10; } +5066,Horns_Of_Succubus,Horns of Succubus,5,20,0,800,,4,,0,2088958,2,256,,70,150,{},{ bonus bInt,1; bonus bMdef,10; } +5067,Sombrero,Sombrero,5,20,0,350,,4,,0,2088958,2,256,,0,151,{},{ bonus bAgi,1; } +5068,Ears_of_Demon,Ears Of Demon,5,20,0,100,,1,,0,10477567,2,512,,70,152,{},{ bonus bStr,1; } +5069,Fox_Mask,Fox Mask,5,20,0,300,,1,,0,2088958,2,256,,0,153,{},{ bonus bAgi,1; bonus bLuk,1; } +5070,Bandage,Bandage,5,20,0,100,,1,,0,2088958,2,256,,0,154,{},{ bonus bStr,2; } +5071,Indian_Headband,Indian Headband,5,20,0,200,,1,,0,2088958,2,256,,0,155,{},{ bonus bDex,1; } +5072,Horns_Of_Incubus,Horns Of Incubus,5,20,0,800,,4,,0,2088958,2,256,,70,156,{},{ bonus bAgi,1; bonus bMdef,10; } +5073,Campus_Hat,Campus Hat,5,20,0,700,,2,,0,2088958,2,256,,0,157,{},{ bonus bDex,2; } +5074,Ears_of_Angel,Ears of Angel,5,20,0,100,,1,,0,10477567,2,512,,70,158,{},{ bonus bStr,1; } +5075,Cowboy_Hat,Cowboy Hat,5,20,0,500,,4,,0,10477567,2,256,,0,159,{},{} +5076,Furry_Hat,Furry Hat,5,20,0,350,,2,,0,10477567,2,256,,0,160,{},{ bonus bLuk,1; } +5077,Tulip_Hairpin,Tulip Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,161,{},{} +5078,Sea_Otter_Hat,Sea Otter Hat,5,20,0,800,,3,,0,10477567,2,256,,50,162,{},{ bonus bVit,1; } +5079,X_Hairpin,X Hairpin,5,20,0,100,,1,,0,10477567,2,256,,0,163,{},{} +5080,Crown_of_the_Ancient_Queen,Crown of The Ancient Queen,5,20,0,400,,4,,0,10477567,2,256,,45,164,{},{} +5081,Crown_of_Mistress,Crown of Mistress,5,20,0,100,,1,,0,2088958,0,256,,75,165,{},{ bonus bInt,2; bonus bMaxSP,100; } +5082,Mushroom_Hairband,Mushroom Hairband,5,20,0,100,,2,,0,10477567,2,256,,0,166,{},{} +5083,Back_Ribbon,Back Ribbon,5,20,0,200,,1,,0,10477567,0,256,,45,167,{},{ bonus bMdef,10; } +5084,Lazy_Raccoon_Hat,Lazy Racoon Hat,5,20,0,500,,1,,0,2088958,2,256,,0,168,{},{ bonus2 bResEff,Eff_Sleep,2000; } +5085,Small_Twin_Ribbons,Small Twin Ribbons,5,20,0,100,,1,,0,10477567,0,512,,45,169,{},{} +5086,Sad_Mask,Sad Mask,5,20,0,100,,2,,0,10477567,2,513,,0,170,{},{ bonus2 bResEff,Eff_Blind,5000; } +5087,Expressionless_Mask,Expressionless Mask,5,20,0,100,,1,,0,10477567,2,513,,0,171,{},{} +5088,Surprised_Mask,Surprised Mask,5,20,0,100,,1,,0,10477567,2,513,,0,172,{},{} +5089,Annoyed_Mask,Annoyed Mask,5,20,0,100,,1,,0,10477567,2,513,,0,173,{},{} +5090,Mask_of_the_Goblin_Leader,Mask of The Goblin Leader,5,20,0,100,,2,,0,10477567,2,513,,0,174,{},{} +5091,Big_Golden_Bell,Big Golden Bell,5,20,0,200,,2,,0,2088958,2,768,,35,175,{},{} +5092,Nun_Hat,Nun Hat,5,20,0,300,,5,,0,33024,0,768,,65,176,{},{} +5093,Nun_Hat_,Nun Hat,5,20,0,300,,5,,0,33024,0,768,,65,177,{},{ bonus bMaxSP,100; } +5094,Orc_Hero_Helm,Orc Hero Helm,5,20,0,900,,5,,0,2088958,2,768,,55,178,{},{ bonus bStr,2; bonus bVit,1; } +5096,Assassin_Mask_,Assassin Mask,5,20,0,100,,0,,0,4096,2,1,,70,180,{},{},,, +5097,Annual_Commemoration_Hat,Annual Commemoration Hat,5,20,0,30,,3,,0,10477567,2,256,,0,166,{},{ bonus bAllStats,3; } +5098,Tiger_Mask,Tiger Mask,5,20,0,400,,2,,,10477567,2,768,,,181,{},{ bonus bStr,3; bonus bMaxHP,100; } + +// Misc items +//=================================================================== +7001,Mold_Powder,Mould Powder,3,680,0,10,,,,,,,,,,,{},{} +7002,Ogre_Tooth,Ogre Tooth,3,658,0,10,,,,,,,,,,,{},{} +7003,Anolian_Skin,Anolian Skin,3,928,0,10,,,,,,,,,,,{},{} +7004,Mud_Lump,Mud Lump,3,876,0,10,,,,,,,,,,,{},{} +7005,Skull,Skull,3,1044,0,10,,,,,,,,,,,{},{} +7006,Wing_of_Red_Bat,Wing of Red Bat,3,168,0,10,,,,,,,,,,,{},{} +7007,Claw_of_Rat,Claw of Rat,3,748,0,10,,,,,,,,,,,{},{} +7008,Stiff_Horn,Stiff Horn,3,636,0,10,,,,,,,,,,,{},{} +7009,Glitter_Shell,Glitter Shell,3,528,0,10,,,,,,,,,,,{},{} +7010,Tail_of_Steel_Scorpion,Tail of Steel Scorpion,3,548,0,10,,,,,,,,,,,{},{} +7011,Claw_of_Monkey,Claw of Monkey,3,466,0,10,,,,,,,,,,,{},{} +7012,Tough_Scalelike_Stem,Tough Scalelike Stem,3,412,0,10,,,,,,,,,,,{},{} +7013,Coral_Reef,Coral Reef,3,772,0,10,,,,,,,,,,,{},{} +7014,Old_Portrait,Old Portrait,3,1500,0,100,,,,,,,,,,,{},{} +7015,Bookclip_in_Memory,Bookclip in Memory,3,3000,0,20,,,,,,,,,,,{},{} +7016,Spoon_Stub,Spoon Stub,3,2500,0,20,,,,,,,,,,,{},{} +7017,Executioner's_Mitten,Executioner's Mitten,3,4500,0,30,,,,,,,,,,,{},{} +7018,Young_Twig,Young Twig,3,50,0,10,,,,,,,,,,,{},{} +7019,Loki's_Whispers,Loki's Whispers,3,20,0,10,,,,,,,,,,,{},{} +7020,Mother's_Nightmare,Mother's Nightmare,3,20,0,10,,,,,,,,,,,{},{} +7021,Foolishness_of_the_Blind,Foolishness of the Blind,3,20,0,10,,,,,,,,,,,{},{} +7022,Old_Hilt,Old Hilt,3,150,0,30,,,,,,,,,,,{},{} +7023,Blade_Lost_in_Darkness,Blade Lost in Darkness,3,12000,0,40,,,,,,,,,,,{},{} +7024,Bloody_Edge,Bloody Edge,3,10000,0,40,,,,,,,,,,,{},{} +7025,Lucifer's_Lament,Lucifer's Lament,3,30000,0,50,,,,,,,,,,,{},{} +7026,Key_of_Clock_Tower,Key of Clock Tower,3,2,0,30,,,,,,,,,,,{},{} +7027,Key_of_Underground,Key of Underground,3,2,0,30,,,,,,,,,,,{},{} +7028,Invite_for_Duel,Invite for Duel,3,0,0,10,,,,,,,,,,,{},{} +7029,Admission_for_Duel,Admission for Duel,3,20,0,10,,,,,,,,,,,{},{} +7030,Claw_of_Desert_Wolf,Claw of Desert Wolf,3,208,0,10,,,,,,,,,,,{},{} +7031,Old_Frying_Pan,Old Frying Pan,3,196,0,10,,,,,,,,,,,{},{} +7032,Piece_of_Egg_Shell,Piece of Egg Shell,3,168,0,10,,,,,,,,,,,{},{} +7033,Poison_Spore,Poison Spore,3,114,0,10,,,,,,,,,,,{},{} +7034,Red_Socks_with_Holes,Red Socks with Holes,3,100,0,10,,,,,,,,,,,{},{} +7035,Matchstick,Matchstick,3,100,0,10,,,,,,,,,,,{},{} +7036,Fang_of_Garm,Fang of Garm,3,100,0,10,,,,,,,,,,,{},{} +7037,Coupon,Coupon,3,2000,0,10,,,,,,,,,,,{},{} +7038,Yarn,Yarn,3,20,0,10,,,,,,,,,,,{},{} +7039,Novice_Nametag,Novice Nametag,3,20,0,10,,,,,,,,,,,{},{} +7040,Megaphone,Megaphone,3,20,0,10,,,,,,,,,,,{},{} +7041,Fine_Grit,Fine Grit,3,20,0,10,,,,,,,,,,,{},{} +7042,Leather_Bag_of_Infinity,Leather Bag of Infinity,3,20,0,10,,,,,,,,,,,{},{} +7043,Fine_Sand,Fine Sand,3,100,0,10,,,,,,,,,,,{},{} +7044,Vigorgra,Vigorgra,3,20,0,10,,,,,,,,,,,{},{} +7045,Magic_Paint,Magic Paint,3,20,0,10,,,,,,,,,,,{},{} +7046,Cart_Parts,Cart Parts,3,20,0,10,,,,,,,,,,,{},{} +7047,Alice's_Apron,Alice's Apron,3,2424,0,10,,,,,,,,,,,{},{} +7048,Talon_of_Griffon,Talon of Griffon,3,100,0,10,,,,,,,,,,,{},{} +7049,Stone,Stone,3,0,0,30,,,,,,,,,,,{},{} +7050,Cotton_Mat,Cotton Mat,3,20,0,10,,,,,,,,,,,{},{} +7051,Silk_Mat,Silk Mat,3,20,0,10,,,,,,,,,,,{},{} +7052,Wasted_Magazine,Wasted Magazine,3,20,0,10,,,,,,,,,,,{},{} +7053,Cyfar,Cyfar,3,772,0,10,,,,,,,,,,,{},{} +7054,Brigan,Brigan,3,746,0,10,,,,,,,,,,,{},{} +7055,Animal_Poop,Animal Poop,3,20,0,50,,,,,,,,,,,{},{} +7056,Payment_Statement_for_Kafra_Employee,Payment Statement for Ka,3,20,0,50,,,,,,,,,,,{},{} +7057,Gjallar,Gjallar,3,20,0,500,,,,,,,,,,,{},{} +7058,Gleipnir,Gleipnir,3,20,0,500,,,,,,,,,,,{},{} +7059,Free_Ticket_for_Kafra_Storage,Free Ticket for Kafra St,3,20,0,10,,,,,,,,,,,{},{} +7060,Free_Ticket_for_Kafra_Transportation,Free Ticket for Kafra Tr,3,20,0,10,,,,,,,,,,,{},{} +7061,Free_Ticket_for_the_Cart_Service,Free Ticket for the Cart,3,20,0,10,,,,,,,,,,,{},{} +7062,Broken_Turtle_Shell,Broken Turtle Shell,3,20,0,10,,,,,,,,,,,{},{} +7063,Soft_Feather,Soft Feather,3,280,0,10,,,,,,,,,,,{},{} +7064,Wing_of_Dragonfly,Wing of Dragonfly,3,520,0,10,,,,,,,,,,,{},{} +7065,Sea-otter_Fur,Sea Otter Fur,3,820,0,10,,,,,,,,,,,{},{} +7066,Ice_Cubic,Ice Cubic,3,660,0,10,,,,,,,,,,,{},{} +7067,Stone_Fragment,Stone Fragment,3,640,0,10,,,,,,,,,,,{},{} +7068,Burnt_Tree,Burnt Tree,3,722,0,10,,,,,,,,,,,{},{} +7069,Destroyed_Armor,Destroyed Armor,3,1042,0,10,,,,,,,,,,,{},{} +7070,Broken_Shell,Broken Shell,3,900,0,10,,,,,,,,,,,{},{} +7071,Tattered_Clothes,Tattered Clothes,3,640,0,10,,,,,,,,,,,{},{} +7072,Old_Shuriken,Old Shuriken,3,1780,0,10,,,,,,,,,,,{},{} +7073,Freya's_Jewel,Freya's Jewel,3,20,0,500,,,,,,,,,,,{},{} +7074,Thor's_Gauntlet,Thor's Gauntlet,3,20,0,500,,,,,,,,,,,{},{} +7075,Iron_Maiden,Iron Maiden,3,20,0,500,,,,,,,,,,,{},{} +7076,Wheel_of_the_Unknown,Wheel of the Unknown,3,20,0,500,,,,,,,,,,,{},{} +7077,Silver_Ornament,Silver Ornament,3,20,0,500,,,,,,,,,,,{},{} +7078,Wrath_of_Valkyrie,Wrath of Valkyrie,3,20,0,500,,,,,,,,,,,{},{} +7079,Feather_of_Angel_Wing,Feather of Angel Wing,3,20,0,500,,,,,,,,,,,{},{} +7080,Cat_Tread,Footprints of Cat,3,20,0,500,,,,,,,,,,,{},{} +7081,Woman's_Moustache,Woman's Moustache,3,20,0,500,,,,,,,,,,,{},{} +7082,Root_of_Stone,Root of Stone,3,20,0,500,,,,,,,,,,,{},{} +7083,Spirit_of_Fish,Spirit of Fish,3,20,0,500,,,,,,,,,,,{},{} +7084,Sputum_of_Bird,Sputum of Bird,3,20,0,500,,,,,,,,,,,{},{} +7085,Sinew_of_Bear,Sinew of Bear,3,20,0,500,,,,,,,,,,,{},{} +7086,Emblem_of_the_Sun_God,Emblem of the Sun God,3,20,0,500,,,,,,,,,,,{},{} +7087,Breath_of_Spirit,Breath of Soul,3,20,0,500,,,,,,,,,,,{},{} +7088,Snow_Crystal,Snow Crystal,3,20,0,500,,,,,,,,,,,{},{} +7089,Omen_of_Tempest,Omen of Tempest,3,20,0,500,,,,,,,,,,,{},{} +7090,Ripple,Ripple,3,20,0,500,,,,,,,,,,,{},{} +7091,Billow,Billow,3,20,0,500,,,,,,,,,,,{},{} +7092,Drifting_Air,Drifting Air,3,20,0,500,,,,,,,,,,,{},{} +7093,Cogwheel,Metal Wheel,3,20,0,10,,,,,,,,,,,{},{} +7094,Fragment,Cabinet Chip,3,20,0,10,,,,,,,,,,,{},{} +7095,Metal_Fragment,Tooth Fragment,3,20,0,10,,,,,,,,,,,{},{} +7096,Lava,Hardened Lava,3,1108,0,10,,,,,,,,,,,{},{} +7097,Burning_Heart,Burning Heart,3,924,0,10,,,,,,,,,,,{},{} +7098,Live_Coal,Fire Seed,3,638,0,10,,,,,,,,,,,{},{} +7099,Worn-out_Magic_Scroll,Old Magical Circle,3,20,0,10,,,,,,,,,,,{},{} +7100,Sharp_Leaf,Sharpened Leaf,3,20,0,10,,,,,,,,,,,{},{} +7101,PecoPeco_Feather,Peco Feather,3,454,0,10,,,,,,,,,,,{},{} +7102,Nightmare,Nightmare,3,20,0,10,,,,,,,,,,,{},{} +7103,Unknown_Liquid_Bottle,Yellow Liquid Bottle,3,20,0,10,,,,,,,,,,,{},{} +7104,Fake_Angel's_Wing,Fake Angel's Wing,3,756,0,10,,,,,,,,,,,{},{} +7105,Fake_Heaven_Ring,Imitation Soul's Band,3,924,0,10,,,,,,,,,,,{},{} +7106,Antelope_Horn,Antelope Horn,3,672,0,10,,,,,,,,,,,{},{} +7107,Antelope_Skin,Antelope Skin,3,756,0,10,,,,,,,,,,,{},{} +7108,Piece_of_Shield,Broken Shield,3,20,0,10,,,,,,,,,,,{},{} +7109,Shining_Spear_Blade,Shiny Spear Tip,3,20,0,10,,,,,,,,,,,{},{} +7110,Broken_Sword,Broken Sword,3,588,0,10,,,,,,,,,,,{},{} +7111,Slick_Paper,String Paper,3,706,0,10,,,,,,,,,,,{},{} +7112,Sharp_Paper,Transparent Paper,3,906,0,10,,,,,,,,,,,{},{} +7113,Broken_Symbol_of_Pharaoh,Broken Symbol of Pharaoh,3,20,0,10,,,,,,,,,,,{},{} +7114,Masque_of_Tutankhamen,Sphinx Mask,3,20,0,10,,,,,,,,,,,{},{} +7115,Harpy_Feather,Blood Feather,3,1142,0,10,,,,,,,,,,,{},{} +7116,Harpy_Talon,Tooth of Lowblood,3,1210,0,10,,,,,,,,,,,{},{} +7117,Torn_Magic_Book,Torn Spell Book,3,20,0,10,,,,,,,,,,,{},{} +7118,Torn_Scroll,Torn Scroll,3,20,0,10,,,,,,,,,,,{},{} +7119,Bacillus,Hypha Body,3,1024,0,10,,,,,,,,,,,{},{} +7120,Burning_Horseshoe,Burning Horseshoe,3,822,0,10,,,,,,,,,,,{},{} +7121,Honey_Pot,Honey Jar,3,622,0,10,,,,,,,,,,,{},{} +7122,Burning_Hair,Hot Feather,3,974,0,10,,,,,,,,,,,{},{} +7123,Dragon_Skin,Dragon Skin,3,1024,0,10,,,,,,,,,,,{},{} +7124,Sand_Clump,Sand Lump,3,706,0,10,,,,,,,,,,,{},{} +7125,Scorpion_Claw,Crab Shot,3,706,0,10,,,,,,,,,,,{},{} +7126,Large_Jellopy,Large Jellopy,3,840,0,10,,,,,,,,,,,{},{} +7127,Alcohol_Creation_Book,Alcohol Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7128,Bottle_Grenade_Creation_Book,Fire Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7129,Acid_Bottle_Creation_Book,Acid Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7130,Plant_Bottle_Creation_Book,Plant Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7131,Mine_Bottle_Creation_Book,Mine Bottle Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7132,Glistening_Coat_Creation_Book,Glistening Coat Creation Book,3,100000,0,10,,,,,,,,,,,{},{} +7133,Condensed_Potion_Creation_Book,Condensed Potion Creation Book,3,240000,0,10,,,,,,,,,,,{},{} +7134,Medicine_Bowl,Medicine Bowl,3,8,0,10,,,,,,,,,,,{},{} +7135,Bottle_Grenade,Fire Bottle,3,20,0,10,,,,,,,,,,,{},{} +7136,Acid_Bottle,Hydrobolic Acid Bottle,3,20,0,10,,,,,,,,,,,{},{} +7137,Plant_Bottle,Water Bottle,3,20,0,10,,,,,,,,,,,{},{} +7138,Marine_Sphere_Bottle,Mine Bottle,3,20,0,10,,,,,,,,,,,{},{} +7139,Glistening_Coat,Coating Wax,3,20,0,10,,,,,,,,,,,{},{} +7140,Seed_of_Life,Seed of Life,3,20,0,10,,,,,,,,,,,{},{} +7141,Morning_Dew_of_Yggdrasil,Water Flow,3,20,0,10,,,,,,,,,,,{},{} +7142,Ancient_Life,Embryo,3,20,0,10,,,,,,,,,,,{},{} +7143,Glass_Tube,Seperation Tubes,2,50000,,1000,,,,,262144,2,,,,,{ bpet; },{} +7144,Potion_Creation_Gude,Potion Making Book,3,100000,0,10,,,,,,,,,,,{},{} +7145,Ragnarok_T-shirt,Ragnarok T-Shirt,3,20,0,10,,,,,,,,,,,{},{} +7146,Vacation_Ticket,Vacation Ticket,3,20,0,10,,,,,,,,,,,{},{} +7147,Jasmine,Jasmine,3,20,0,10,,,,,,,,,,,{},{} +7148,Mother's_Letter,Mother's Letter,3,20,0,10,,,,,,,,,,,{},{} +7149,Yellow_Plate,Yellow Plate,3,220,0,10,,,,,,,,,,,{},{} +7150,A_piece_of_Bamboo,Bamboo Trunk,3,310,0,10,,,,,,,,,,,{},{} +7151,Oil_Paper,Oiled Paper,3,310,0,10,,,,,,,,,,,{},{} +7152,Glossy_Hair,Glossy Hair,3,340,0,10,,,,,,,,,,,{},{} +7153,Worn-out_Kimono,Old Kimono,3,590,0,10,,,,,,,,,,,{},{} +7154,Poisonous_Powder,Poison Powder,3,160,0,10,,,,,,,,,,,{},{} +7155,Skin_of_Poisonous_Toad,Poisonous Toad Skin,3,280,0,10,,,,,,,,,,,{},{} +7156,Broken_Shuriken,Broken Shuriken,3,470,0,10,,,,,,,,,,,{},{} +7157,Black_Mask,Black Mask,3,20,0,10,,,,,,,,,,,{},{} +7158,Broken_Liquor_Bottle,Broken Liquor Bottle,3,160,0,10,,,,,,,,,,,{},{} +7159,Demon's_Nose,Demon's Nose,3,400,0,10,,,,,,,,,,,{},{} +7160,Passport_From_King,Passport From King,3,20,0,10,,,,,,,,,,,{},{} +7161,Skin_of_the_Black_Bear,Skin of the Black Bear,3,384,0,10,,,,,,,,,,,{},{} +7162,Piece_of_Cloud,Piece of Cloud,3,390,0,10,,,,,,,,,,,{},{} +7163,Hard_Antennae,Hard Antennae,3,570,0,10,,,,,,,,,,,{},{} +7164,Very_Hard_Peach,Very Hard Peach,3,400,0,10,,,,,,,,,,,{},{} +7165,Etherial_Winged_Clothing,Etherial Winged Clothing,3,650,0,10,,,,,,,,,,,{},{} +7166,Soft_Silk_Fabric,Soft Silk Fabric,3,1200,0,10,,,,,,,,,,,{},{} +7167,Strange_Piece_of_Iron,Strange Piece of Iron,3,430,0,10,,,,,,,,,,,{},{} +7168,Big_Wing_of_Butterfly,Big Wing of Butterfly,3,614,0,10,,,,,,,,,,,{},{} +7169,Tae_Guk_Tablet,Tae Guk Tablet,3,20,0,10,,,,,,,,,,,{},{} +7170,Tuxedo,Tuxedo,5,43000,0,10,,0,,0,10477566,1,16,,0,0,{},{ changebase 22; } +7171,Skin_of_Panther,Skin of Panther,3,282,0,10,,,,,,,,,,,{},{} +7172,Claw_of_Panther,Claw of Panther,3,290,0,10,,,,,,,,,,,{},{} +7173,Bun_Buster_Bag,Bun Buster Bag,3,20,0,10,,,,,,,,,,,{},{} +7174,Wrapping_Thread,Wrapping Thread,3,20,0,10,,,,,,,,,,,{},{} +7175,Wrapper,Wrapper,3,20,0,10,,,,,,,,,,,{},{} +7176,King's_Proof_Document,King's Proof Document,3,20,0,10,,,,,,,,,,,{},{} +7177,Piece_of_Starlight's_Sorrow,Piece of Starlight's Sorrow,3,20,0,10,,,,,,,,,,,{},{} +7178,Starlight's_Sorrow,Starlight's Sorrow,3,20,0,10,,,,,,,,,,,{},{} +7179,Donation_Ticket,Donation Ticket,3,20,0,10,,,,,,,,,,,{},{} +7180,Letter_of_Introduction,Letter of Introduction,3,20,0,10,,,,,,,,,,,{},{} +7181,Commodity_Receipt,Commodity Receipt,3,20,0,10,,,,,,,,,,,{},{} +7182,Cacao,Cacao,3,200,0,20,,,,,,,,,,,{},{} +7183,Letter_of_Younger_Sister,Letter of Younger Sister,3,20,0,10,,,,,,,,,,,{},{} +7184,Piano_Key,Piano Key,3,20,0,10,,,,,,,,,,,{},{} +7185,Quiz_Participation_Ticket,Quiz Participation Ticket,3,20,0,10,,,,,,,,,,,{},{} +7186,Thin_Trunk,Thin Trunk,3,20,0,10,,,,,,,,,,,{},{} +7187,Festival_Mask,Festival Mask,3,20,0,10,,,,,,,,,,,{},{} +7188,Brown_Root,Brown_Root,3,20,0,10,,,,,,,,,,,{},{} +7189,Wooden_Heart,Wooden Heart,3,20,0,10,,,,,,,,,,,{},{} +7190,Hard_Back_Shell,Hard Back Shell,3,20,0,10,,,,,,,,,,,{},{} +7191,Paper_Lantern,Paper Lantern,3,20,0,10,,,,,,,,,,,{},{} +7192,Pin_Wheel,Pin Wheel,3,20,0,10,,,,,,,,,,,{},{} +7193,Sprout,Sprout,3,20,0,10,,,,,,,,,,,{},{} +7194,Soft_Grass_Leaf,Soft Grass Leaf,3,20,0,10,,,,,,,,,,,{},{} +7195,Slingshot,Slingshot,3,20,0,10,,,,,,,,,,,{},{} +7196,Shoulder_Guard,Shoulder Guard,3,20,0,10,,,,,,,,,,,{},{} +7197,Durable_Vine,Durable Vine,3,20,0,10,,,,,,,,,,,{},{} +7198,Huge_Leaf,Huge Leaf,3,20,0,10,,,,,,,,,,,{},{} +7199,Hieroglyphic,Hieroglyphic,3,20,0,10,,,,,,,,,,,{},{} +7200,Elastic_Band,Elastic Band,3,20,0,10,,,,,,,,,,,{},{} +7201,Log,Log,3,20,0,10,,,,,,,,,,,{},{} +7202,Insect_Pinchers,Insect Pinchers,3,20,0,10,,,,,,,,,,,{},{} +7203,Healthy_Branch,Healthy Branch,3,20,0,10,,,,,,,,,,,{},{} +7204,Gun_Powder,Gun Powder,3,20,0,10,,,,,,,,,,,{},{} +7205,Black_Piece_of_Cloth,Black Piece of Cloth,3,20,0,10,,,,,,,,,,,{},{} +7206,Cat_Doll,Black Cat Doll,3,20,0,10,,,,,,,,,,,{},{} +7207,Old_Mantle,Old Mantle,3,20,0,10,,,,,,,,,,,{},{} +7208,Rusted_Knife,Rusted Knife,3,20,0,10,,,,,,,,,,,{},{} +7209,Dullahan's_Helm,Dullahan's Helm,3,20,0,10,,,,,,,,,,,{},{} +7210,Piece_of_Dullahan's_Armor,Dullahan's Armor Piece,3,20,0,10,,,,,,,,,,,{},{} +7211,Rosetta_Stone_Fragment,Rosetta Stone Fragment,3,20,0,10,,,,,,,,,,,{},{} +7212,Hanging_Doll,Hanging Doll,3,20,0,10,,,,,,,,,,,{},{} +7213,Pin_Cusion,Pin Cusion,3,20,0,10,,,,,,,,,,,{},{} +7214,Bat_Cage,Bat Cage,3,20,0,10,,,,,,,,,,,{},{} +7215,Broken_Needle,Broken Needle,3,20,0,10,,,,,,,,,,,{},{} +7216,Red_Scarf,Red Scarf,3,20,0,10,,,,,,,,,,,{},{} +7217,Spool_of_Thread,Spool of Thread,3,20,0,10,,,,,,,,,,,{},{} +7218,Rotted_Rope,Rotted Rope,3,20,0,10,,,,,,,,,,,{},{} +7219,Striped_Socks,Striped Socks,3,20,0,10,,,,,,,,,,,{},{} +7220,Ectoplasm,Ectoplasm,3,20,0,10,,,,,,,,,,,{},{} +7221,Chains,Chains,3,20,0,10,,,,,,,,,,,{},{} +7222,Old_Tree_Branch,Old Tree Branch,3,20,0,10,,,,,,,,,,,{},{} +7223,Ruined_Self_Portrait,Ruined Self Portrait,3,20,0,10,,,,,,,,,,,{},{} +7224,Philosophers_Stone,Philosopher's Stone,3,20,0,10,,,,,,,,,,,{},{} +7225,Silk_Lantern,Silk Lantern,3,20,0,10,,,,,,,,,,,{},{} +7226,Hallucination_Pill,Hallucination Pill,3,20,0,10,,,,,,,,,,,{},{} +7227,TCG_Card,TCG Card,3,20,0,10,,,,,,,,,,,{},{} +7228,Gold_Nugget,Gold Nugget,3,20,0,300,,,,,,,,,,,{},{} +7229,Iron_Nugget,Iron Nugget,3,20,0,300,,,,,,,,,,,{},{} +7230,Silver_Nugget,Silver Nugget,3,20,0,30,,,,,,,,,,,{},{} +7231,Gold_Ore,Gold Ore,3,20,0,150,,,,,,,,,,,{},{} +7232,Silver_Ore,Silver Ore,3,20,0,150,,,,,,,,,,,{},{} +7233,Mysterious_Ore,Mysterious Ore,3,20,0,150,,,,,,,,,,,{},{} + +// RWC Reward items +7234,Spirit_of_Guild,Spirit of Guild,3,20,0,10,,,,,,,,,,,{},{} +7235,Spirit_of_Assault,Spirit of Assault,3,20,0,10,,,,,,,,,,,{},{} +7236,Spirit_of_Defense,Spirit of Defense,3,20,0,10,,,,,,,,,,,{},{} +7237,Spirit_of_Cooperation,Spirit of Cooperation,3,20,0,10,,,,,,,,,,,{},{} +7238,Spirit_of_Harmony,Spirit of Harmony,3,20,0,10,,,,,,,,,,,{},{} +7239,Spirit_of_Advancement,Spirit of Advancement,3,20,0,10,,,,,,,,,,,{},{} +7240,Spirit_of_Trust,Spirit of Trust,3,20,0,10,,,,,,,,,,,{},{} +7241,Spirit_of_Concentration,Spirit of Concentration,3,20,0,10,,,,,,,,,,,{},{} +7242,Spirit_of_Unity,Spirit of Unity,3,20,0,10,,,,,,,,,,,{},{} +7243,Spirit_of_Integrity,Spirit of Integrity,3,20,0,10,,,,,,,,,,,{},{} +7244,Spirit_of_Communion,Spirit of Communion,3,20,0,10,,,,,,,,,,,{},{} +7245,Spirit_of_Friendship,Spirit of Friendship,3,20,0,10,,,,,,,,,,,{},{} +7246,Spirit_of_Peace,Spirit of Peace,3,20,0,10,,,,,,,,,,,{},{} +7247,Spirit_of_Nature,Spirit of Nature,3,20,0,10,,,,,,,,,,,{},{} +7248,Spirit_of_Fame,Spirit of Fame,3,20,0,10,,,,,,,,,,,{},{} +7249,Spirit_of_Contribution,Spirit of Contribution,3,20,0,10,,,,,,,,,,,{},{} +7250,Spirit_of_Glory,Spirit of Glory,3,20,0,10,,,,,,,,,,,{},{} +7251,Spirit_of_Victory,Spirit of Victory,3,20,0,10,,,,,,,,,,,{},{} + +//Gonryun Items +7252,Chinese_Medicine,Chinese Medicine,3,20,0,10,,,,,,,,,,,{},{} +7253,Golden_Flag,Golden Flag,3,20,0,10,,,,,,,,,,,{},{} +7254,Digitally_Printed_Ticket,Digitally Printed Ticket,3,20,0,10,,,,,,,,,,,{},{} +7262,Paper_Fan,Paper Fan,3,233,0,,,,,,,,,,,,{},{} +7263,Cat's_Eye,Cat's-Eye,3,20,477,10,,,,,,,,,,,{},{} +7264,Dried_Sand,Dried Sand,3,20,161,10,,,,,,,,,,,{},{} +7265,Dragon_Horn,Dragon Horn,3,20,0,10,,,,,,,,,,,{},{} +7266,Dragon_Teeth,Dragon Teeth,3,218,0,,,,,,,,,,,,{},{} +7267,Tigerskin_Underwear,Tigerskin Underwear,3,20,107,10,,,,,,,,,,,{},{} +7268,Ghost_Doll,Ghost Doll,3,20,605,10,,,,,,,,,,,{},{} +7269,Baby_Bib,Baby Bib,3,20,0,10,,,,,,,,,,,{},{} +7270,Baby_Bottle,Baby Bottle,3,20,0,,,,,,,,,,,,{},{} +7271,Novice_Statue,Novice Statue,3,20,0,10,,,,,,,,,,,{},{} +7272,Dumpling_Doll,Dumpling Doll,3,20,0,10,,,,,,,,,,,{},{} +7273,RWC_Necklace,RWC_Necklace,3,20,0,10,,,,,,,,,,,{},{} +7274,Ancient_Language_Book,Ancient_Language_Book,3,20,0,10,,,,,,,,,,,{},{} +7275,Ancient_Language_Document,Ancient_Language_Document,3,20,0,10,,,,,,,,,,,{},{} +7276,Picture_Letter,Picture Letter,3,20,0,10,,,,,,,,,,,{},{} +7277,Munak_Doll,Munak Doll,3,20,0,10,,,,,,,,,,,{},{} +7278,Welfare_Letter,Welfare Letter,3,20,0,10,,,,,,,,,,,{},{} +7279,Vita_500_Bottlecap,Vita 500 Bottlecap,3,20,0,10,,,,,,,,,,,{},{} +7280,Quiz_Participation_Certificate_1,QP Certificate 1,3,20,0,10,,,,,,,,,,,{},{} +7281,Quiz_Participation_Certificate_2,QP Certificate 2,3,20,0,10,,,,,,,,,,,{},{} +7282,Quiz_Participation_Certificate_3,QP Certificate 3,3,20,0,10,,,,,,,,,,,{},{} +7283,Quiz_Participation_Certificate_4,QP Certificate 4,3,20,0,10,,,,,,,,,,,{},{} +7284,Quiz_Participation_Certificate_5,QP Certificate 5,3,20,0,10,,,,,,,,,,,{},{} + +// 11/09(Ayothana) Items +7285,Sacred_Wool_Charm,Sacred_Wool_Charm,3,20,10,0,,,,,,,,,,,{},{},, +7286,Red_Chili,Red_Chili,3,20,10,0,,,,,,,,,,,{},{},, +7287,Sacred_Wool_Charm_2,Sacred_Wool_Charm_2,3,20,10,0,,,,,,,,,,,{},{},, +7288,Engagement_Ring,Engagement_Ring,3,20,10,0,,,,,,,,,,,{},{},, +7289,Olivite,Olivite,3,20,100,0,,,,,,,,,,,{},{},, +7290,Gold_Mica,Gold_Mica,3,20,100,0,,,,,,,,,,,{},{},, +7291,Agate,Agate,3,20,100,0,,,,,,,,,,,{},{},, +7292,White_Mica,White_Mica,3,20,100,0,,,,,,,,,,,{},{},, +7293,Rose_Quartz,Rose_Quartz,3,20,100,0,,,,,,,,,,,{},{},, +7294,Turquoise,Turquoise,3,20,100,0,,,,,,,,,,,{},{},, +7295,Citrine,Citrine,3,20,100,0,,,,,,,,,,,{},{} +7296,Augite,Augite,3,20,100,0,,,,,,,,,,,{},{},, +7297,Black_Mica,Black_Mica,3,20,100,0,,,,,,,,,,,{},{},, +7298,Leaf_Cloth,Leaf_Cloth,3,20,10,0,,,,,,,,,,,{},{},, +7299,Bamboo_Basket,Bamboo_Basket,3,20,10,0,,,,,,,,,,,{},{},, +7300,Jeweled_Ore,Jeweled_Ore,3,20,10,0,,,,,,,,,,,{},{} +7301,Knife_Decoration,Knife_Decoration,3,20,10,0,,,,,,,,,,,{},{},, +7302,Krathong,Krathong,3,20,10,0,,,,,,,,,,,{},{},, + +7500,THG_Membership,THG Membership,3,20,0,10,,,,,,,,,,,{},{} +7501,Token_Bag,Token Bag,3,20,0,10,,,,,,,,,,,{},{} + +// Pet Eggs +//=================================================================== +9001,Poring_Egg,Poring Egg,7,20,0,0,,,,,,,,,,,{},{} +9002,Drops_Egg,Drops Egg,7,20,0,0,,,,,,,,,,,{},{} +9003,Poporing_Egg,Poporing Egg,7,20,0,0,,,,,,,,,,,{},{} +9004,Lunatic_Egg,Lunatic Egg,7,20,0,0,,,,,,,,,,,{},{} +9005,Picky_Egg,Picky Egg,7,20,0,0,,,,,,,,,,,{},{} +9006,Chonchon_Egg,Chonchon Egg,7,20,0,0,,,,,,,,,,,{},{} +9007,Steel_Chonchon_Egg,Steel Chonchon Egg,7,20,0,0,,,,,,,,,,,{},{} +9008,Hunter_Fly_Egg,Hunter Fly Egg,7,20,0,0,,,,,,,,,,,{},{} +9009,Savage_Babe_Egg,Savage Babe Egg,7,20,0,0,,,,,,,,,,,{},{} +9010,Baby_Desert_Wolf_Egg,Baby Desert Wolf Egg,7,20,0,0,,,,,,,,,,,{},{} +9011,Rocker_Egg,Rocker Egg,7,20,0,0,,,,,,,,,,,{},{} +9012,Spore_Egg,Spore Egg,7,20,0,0,,,,,,,,,,,{},{} +9013,Poison_Spore_Egg,Poison Spore Egg,7,20,0,0,,,,,,,,,,,{},{} +9014,PecoPeco_Egg,PecoPeco Egg,7,20,0,0,,,,,,,,,,,{},{} +9015,Smokie_Egg,Smokie Egg,7,20,0,0,,,,,,,,,,,{},{} +9016,Yoyo_Egg,Yoyo Egg,7,20,0,0,,,,,,,,,,,{},{} +9017,Orc_Warrior_Egg,Orc Warrior Egg,7,20,0,0,,,,,,,,,,,{},{} +9018,Munak_Egg,Munak Egg,7,20,0,0,,,,,,,,,,,{},{} +9019,Dokkaebi_Egg,Dokkaebi Egg,7,20,0,0,,,,,,,,,,,{},{} +9020,Sohee_Egg,Sohee Egg,7,20,0,0,,,,,,,,,,,{},{} +9021,Isis_Egg,Isis Egg,7,20,0,0,,,,,,,,,,,{},{} +9022,Green_Petite_Egg,Green Petite Egg,7,20,0,0,,,,,,,,,,,{},{} +9023,Deviruchi_Egg,Deviruchi Egg,7,20,0,0,,,,,,,,,,,{},{} +9024,Bapho_Jr._Egg,Bapho Jr. Egg,7,20,0,0,,,,,,,,,,,{},{} +9025,Bongun_Egg,Bongun Egg,7,20,0,0,,,,,,,,,,,{},{} +9026,Alice_Egg,Alice Egg,7,20,0,0,,,,,,,,,,,{},{} +9027,Zherlthsh_Egg,Zherlthsh Egg,7,20,0,0,,,,,,,,,,,{},{} +9028,test_Egg,Test Egg,7,20,0,0,,,,,,,,,,,{},{} +9029,test_Egg_,Test Egg,7,20,0,0,,,,,,,,,,,{},{} + +// Pet Accessories +//=================================================================== +10001,Skull_Helm,Skull Helm,8,20,0,0,,,,,,,,,,,{},{} +10002,Monster_Oxygen_Mask,Monster Oxygen Mask,8,20,0,0,,,,,,,,,,,{},{} +10003,Transparent_Head_Protector,Transparent Headgear,8,20,0,0,,,,,,,,,,,{},{} +10004,Pacifier,Pacifier,8,20,0,0,,,,,,,,,,,{},{} +10005,Wig,Wig,8,20,0,0,,,,,,,,,,,{},{} +10006,Queen's_Hair_Ornament,Queen's Hair Ornament,8,20,0,0,,,,,,,,,,,{},{} +10007,Silk_Ribbon,Silk Ribbon,8,20,0,0,,,,,,,,,,,{},{} +10008,Punisher,Punisher,8,20,0,0,,,,,,,,,,,{},{} +10009,Wild_Flower,Wild Flower,8,20,0,0,,,,,,,,,,,{},{} +10010,Battered_Pot,Battered Pot,8,20,0,0,,,,,,,,,,,{},{} +10011,Stellar_Hairpin,Stellar Hairpin,8,20,0,0,,,,,,,,,,,{},{} +10012,Tiny_Egg_Shell,Tiny Egg Shell,8,20,0,0,,,,,,,,,,,{},{} +10013,Backpack,Backpack,8,1500,0,0,,,,,,,,,,,{},{} +10014,Rocker_Glasses,Rocker Glasses,8,2000,0,0,,,,,,,,,,,{},{} +10015,Green_Lace,Green Lace,8,20,0,0,,,,,,,,,,,{},{} +10016,Golden_Bell,Golden Bell,8,20,0,0,,,,,,,,,,,{},{} +10017,Bark_Shorts,Bark Shorts,8,20,0,0,,,,,,,,,,,{},{} +10018,Monkey_Circlet,Monkey Circlet,8,20,0,0,,,,,,,,,,,{},{} +10019,Red_Muffler,Red Muffler,8,20,0,0,,,,,,,,,,,{},{} +10020,Sword_of_Chinese_Exorcist,Sword of Chinese Exorcist,8,20,0,0,,,,,,,,,,,{},{} + +// History books +//=================================================================== +11000,Prontera_History_Book,Prontera History Book,3,20,0,0,,,,,,,,,,,{},{} +11001,Izlude_History_Book,Izlude History Book,3,20,0,0,,,,,,,,,,,{},{} +11002,Yuno_History_Book,Yuno History Book,3,20,0,0,,,,,,,,,,,{},{} +11003,Geffen_History_Book,Geffen History Book,3,20,0,0,,,,,,,,,,,{},{} +11004,Aldebaran_History_Book,Aldebaran History Book,3,20,0,0,,,,,,,,,,,{},{} +11005,Alberta_History_Book,Alberta History Book,3,20,0,0,,,,,,,,,,,{},{} +11006,Payon_History_Book,Payon History Book,3,20,0,0,,,,,,,,,,,{},{} +11007,History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{} +11009,History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{} +11010,Archer_Village_History_Book,Unknown Item,3,20,0,0,,,,,,,,,,,{},{} +11011,Lutie_History_Book,Luite History Book,3,20,0,0,,,,,,,,,,,{},{} +11012,Jawaii_History_Book,Jawaii History Book,3,20,0,0,,,,,,,,,,,{},{} +11013,Gonryun_History_Book,Gonryun History Book,3,20,0,0,,,,,,,,,,,{},{} +11014,Mjolnir_History_Book,Mjolnir History Book,3,20,0,0,,,,,,,,,,,{},{} +11015,Amatsu_History_Book,Amatsu History Book,3,20,0,0,,,,,,,,,,,{},{} +11016,Umbala_History_Book,Umbala History Book,3,20,0,0,,,,,,,,,,,{},{} +11017,Nifleheim_History_Book,Nifflheim History Book,3,20,0,0,,,,,,,,,,,{},{} +11018,Morroc_History_Book,Morroc History Book,3,20,0,0,,,,,,,,,,,{},{} +11019,Comodo_History_Book,Comodo History Book,3,20,0,0,,,,,,,,,,,{},{} +11020,Louyang_History_Book,Louyang History Book,3,20,0,0,,,,,,,,,,,{},{} diff --git a/db/skill_nocast_db.txt b/db/skill_nocast_db.txt index 5159396a8..e27ae3ab7 100644 --- a/db/skill_nocast_db.txt +++ b/db/skill_nocast_db.txt @@ -1,17 +1,17 @@ -//<Skill ID> <Mode>
-//
-// Mode:
-// 1 - Cannot be used in normal maps
-// 2 - Cannot be used in PvP maps
-// 4 - Cannot be used in GvG maps
-// 8 - Cannot be used when WoE is on
-// 16 - Cannot be used in PK Mode maps
-// Example: 8,6 = Endure cannot be used in PvP and GvG maps (2+4)
-8,12
-26,12
-27,12
-87,12
-150,12
-361,12
-362,12
+//<Skill ID> <Mode> +// +// Mode: +// 1 - Cannot be used in normal maps +// 2 - Cannot be used in PvP maps +// 4 - Cannot be used in GvG maps +// 8 - Cannot be used when WoE is on +// 16 - Cannot be used in PK Mode maps +// Example: 8,6 = Endure cannot be used in PvP and GvG maps (2+4) +8,12 +26,12 +27,12 +87,12 +150,12 +361,12 +362,12 389,12
\ No newline at end of file diff --git a/doc/effect_list.txt b/doc/effect_list.txt index d8ec0cafb..715a94a39 100644 --- a/doc/effect_list.txt +++ b/doc/effect_list.txt @@ -1,360 +1,360 @@ -Effect list - #'s I found while testing, lots of possible advanced class effects we missed
-(mixed old effect list of valaris and spira's new list...)
-
-0-5. Attack Display
-6. Being Warped
-7. Being Healed
-8. Yellow Ripple Effect
-9. Different Type of Heal?
-10. Mammomite
-11. Endure
-12. Yellow cast aura
-13. Blue Box
-14. Blue heal? Blue pot?
-15. Soul Strike
-16. Hide animation
-17. Magnum Break
-18. Steal
-19. Invalid
-20. Envenom/Poison
-21. Slow Poison? (Envenom In Blue)
-22. Sight
-23. Stone Curse
-24. FireBall
-25. FireWall
-26. Nothing?
-27. Frost Driver Cast
-28. Frost Driver Hitting
-29. Lightning Bolt
-30. ThunderStorm
-31. Bubbles Appearing From The Character?
-32. Explosion
-33. Ruwach
-34. Warp out aura (blue)
-35. Casting Warp portal (blue)
-36. Warp portal (blue)
-37. Agi up
-38. Agi down
-39. Something being made
-40. Cross thing (paladin skill?)
-41. Angelus bell
-42. Blessing angels
-43. Dex + Agi up
-44. Little fog smoke.
-45. Faint little ball things.
-46. Sand?
-47. Torch
-48. Circle of blue flat things
-49. Firebolt/wall hits
-50. Spinning fire thing
-51. Icebolt hit
-52. JT Hit
-53. Puff of purpulish smoke?
-54-59. Cast animations
-60. Cast target circle
-61. Warp portal (for maps)
-62. Sight rasher
-63. Fire sphere from some skill
-64. Weird purple/red light
-65. some sort of mob hit???
-66. potion effect?
-67. Provoke
-68. MVP
-69. Skid trap sign
-70. Blue purple aura thing
-71. Spiral Yellow balls
-72. Bigger Spiral Yellow balls
-73. Blue/yellow ripple
-74. Icewall sicle
-75. Acolyte skill (3 singing girls)
-76. Big angel that spreads wings (some aco skill)
-77. Resurrection angel
-78. Status recovery
-79. Heaven drive spike? Earth spike?
-80. Spear boomerange
-81. Skill hit
-82. Detect hidden
-83. Another aco skill i don't know (angel comes out of green light)
-84. Yet another stupid angel.
-85. Lex Divinia
-86. Holy water?
-87. Lex aeterna
-88. Another damn priest/aco skill
-89. SG
-90. LoV
-91. Aco priest skill
-92. Meteor Storm
-93. JT ball
-94. JT hit
-95. Quagmire
-96. Some sort of cool looking fire hit?
-97. Firepillar hit
-98.
-99. Big blue light
-100. Yellow ball fountain
-101. Forge?
-102. Hammerfall
-103. Powerthrust?
-104. Weapon perfection?
-105. Nothing?
-106. Fire explosion.
-107. Fire explosion (from trap?)
-108. blue smoke with noise
-109. blue bubbles
-110. yellow smoke (trap?)
-111. some bs skill or something
-117. Waterball
-120. Sound effect
-132. Single Grimtooth
-138. Fire pillar
-139. Fireworks
-154. refine success
-155. refine fail
-156. Jobchange.str (crashes client)
-157. Levelup.str (crashes client)
-158. joblvup
-159. Pvp circle
-160. Woe circle?
-161. Rain
-162. Snow
-163. Sakura leaves
-164. nothing (npc/mob?)
-165. Weird ball thing
-166. turns sprite blue
-167. Taming Success (crashes client)
-168. Taming failed (crashes client)
-169. blue light
-170. explosion
-171. venom dust
-172. black aura
-173. red aura
-174. blue aura
-175. yellow aura
-176. purple aura
-177. red aura
-178. white aura
-179. purple aura
-180. darkness attack hit?
-181. water attack hit?
-182. wind attack hit
-183. self destruction
-184. nothing (npc/mob?)
-185. nothing (npc/mob?)
-186. yellow effect
-187. yellow effect
-188. yellow effect
-189. yellow effect
-190. yellow effect
-191. target (piercing attack or something)
-192. purple cloud hit
-193. mute or something (npc skill)
-194. stun attack?
-195. stone curse
-196. curse
-197. sleep
-198. nothing (npc/mob?)
-199. some weird bubble
-200-203. Parts of the level 99 Aura
-204-211. Healing Items Effect
-212. Damage Effect (9999)
-213. Shield Appears (Guard?)
-214. 3 Weird Things Appear Around You (They All Look The Same)
-215. Hide/Unhide?
-216. 2 Red Balls shoot out
-217. 2 Blue Balls shoot out
-218. Concentration Potion Effect
-219. Other Speed Potion
-220. Berserk Potion
-221. White Alien Abduction Beam
-222. Defender Skill Effect (Black Circle)
-223. Invalid Effect
-224. White Wisp Revolving around you
-225. Volcano Effect
-226. Grand Cross Effect
-227-230. Blank
-231. Yuno Effect (Takes Alittle While)
-232. Blank
-233. Fog
-234. Unknown To Me
-235. Unknown To Me
-236. Deluge Effect
-237. Wind Gale Effect
-238. Land Protect Effect
-239. Volcano Effect 2
-240. Deluge Effect 2
-241. Wind Gale Effect 2
-242. Land Protect Effect 2
-243. Invalid Effect
-244. Unknown To Me.
-245. Holy Cross Effect
-246. Shield Charge Effect
-247. Yuno Effect 2 (Larger)
-248. Status Recovery? (Shows An Angel On Top Of Your Head)
-249. Shield Boomerang
-250. Spear Quicken
-251. Devotion
-252. Reflect Shield (Yellow Circle)
-259. Green Abduction Beam
-260. Orange Abduction Beam
-261. red aura thing
-262. yellow things that shoot out
-263. Yellow ground effect.
-264. nothing (npc/mob?)
-265. laser beam ?!
-266. bunch of white shit flies out
-267. gun shot!
-268. money bag
-269. sword thing
-270. shield thing
-271. armor thing
-272. cape thing?
-273. Outter spinning white balls.
-274. flying gold
-275. spit
-276. stuff that flies out somewhat like crits
-277. white stuff that comes out around sprite
-295. frost joke
-296. scream
-298. fire bottle throwing
-300. Chemical Protection
-301. Blank
-302. Demonstration Fire Effect
-303. Weird Effect you turn yellow and see six lines (3 sets of 2) going slanted
-304. After being warped
-305. Pharmacy Success
-306. Pharmacy Failed
-307. Sunlight through the roof effect in Geffenia
-308. Blank
-309. Unknown to me
-310. Unknown to me
-311. Shout/Yell/Loud (Merchant Skill) Effect
-312-313. Heal Effect?
-314. Another Part of Warp/ Yuno Effect?
-315. Newer Safety Wall (Pink Portal)
-316. Another Part of Warp (The Ripple Floor Part)
-317. Full Warp Effect
-322. daylight
-323. daylight
-324. daylight
-328. asura strike word
-329. tripple strike
-333. Orange Leaves Falling
-334. blind (can stack it)
-335. poison (can stack it)
-336. defender shield?
-337. joblvup
-338. supernovice angel
-341. pink warp portal
-342. pink aura
-343. pink heart thing (cool)
-344. teleport in
-346. big blue ball
-347. wedding effect
-349. waterfall (horizonatal)
-350. waterfall (vertical)
-351. sm waterfall (horizonatal)
-352. sm waterfall (vertical)
-353. drk waterfall (horizonatal)
-354. drk waterfall (vertical)
-355. drk sm waterfall (horizonatal)
-356. drk sm waterfall (vertical)
-358. niflheim ghost
-359. niflheim bat slow
-360. niflheim bat fast
-361. shoots purple wave out
-362. nothing?
-363. valentine's day heart (wings)
-364. valentine's day heart
-365. falling cross
-368. make you red (berserk?)
-369. 2h quicken?
-371. lvup
-372. death
-373. smoke
-375. white outline around sprite
-376. makes red and shoots out stuff
-377. shoots out yellow shit
-380. shakes screen turns you all different colors
-387. spins you around shakes screen flashes white
-394. big red ball around you
-
-403 = mind breaker
-404 = spider web
-405 = nothing
-406 = explosion effect on the head
-407 = effect that starts big and fades in to your characters head
-
-408. Orange Bubble Grows Around
-409. Weird Poision Like Effect
-410. Rainbow
-411. (Usable, Just add in folder effect file called peong1.tga).errors/detoxify like.
-413. nothing?
-417. flash
-418. red critical explosion?
-419. Pulsating grey aura
-420. gradual shrink char (possible minimize effect?)
-421. instant minimize
-422. grow back, but not all the way (baby height)
-423. mega size
-424. makes sprite bright
-425. 4 brownish replicas of sprite fly off?
-426. shakes sprites (works on player sprites!)
-427. nothing? (maybe for npc/mobs)
-428. yellow sparks
-429. blue sparks
-430. blue sparks in different direction
-431. another blue spark variant
-432. can't find effect\elec1.tga
-433. nothing? (npc/mob?)
-434. white sparks
-435. can't find effect\storm2.tga (sometimes works and shows little tornado thing!
-436. white shield (for one of the defense skills?)
-437. blue aura (kinda like a comet!)
-438. another defense aura? blue ripples. blue pulsating shield
-439. can't fine effect\line3.tga
-440. high priest skill angel? Angelus type effect but with a cross
-441. another cast aura
-442. nothing? (npc/mob?)
-443. nothing? (npc/mob?)
-444. white lines that fire out
-445. your sprite flies up and disappears sometime sprite errors
-446. your sprite falls down
-447. nothing? (npc/mob?)
-448. nothing? (npc/mob?)
-449. turns you bright blue real quick
-450. darkcross effect (black grand cross)
-451. red soul strike?! (high wiz skill?)
-452. A jupital thunder type of effect, electricity pulsates around your char
-453. Smoke (electricity type) surrounds char, can move and effect is still their.
-454. black cast aura
-455. red electric that covers body
-456. looks like wind rushes up (reminds me of agi up but slower, bigger, and grey)
-457. forces attack animation. makes a dash like stance
-458. causes sprite to jiggle. char pulsates and distorts (like 426)
-459. effect\storm2.tga error, causes player sprite to spin around and you see a faint tornado aura
-460. same as 459.
-461. faint tornado aura
-462. same as 459.
-463. same as 459.
-464. same as 459.
-465. same as 459.
-466. nothing (npc/mob?)
-467. sprite error (effect\hanmoon1.tga?)
-468. sprite error (effect\hanmoon2.tga?)
-469. sprite error (effect\hanmoon3.tga?)
-470. sprite error (effect\hanmoon4.tga?)
-471. sprite error (effect\hanmoon5.tga?)
-472. sprite error (effect\hanmoon6.tga?)
-473. sprite error (effect\hanmoon7.tga?)
-474. nothing (npc/mob?)
-
-475-484 = slow fade to blind, each one continues to make it smaller and smaller
-485 = white critical explosion thing
-486 = blue critical explosion thing
-487 = black portal ground effect
-488 = orange spikey aura that stretches up to fire type points
-489 = yellow/gold of 488
-489 = blue version
-491 = a small expoision above the head
-492 = creates 1 small venom poison type of point on the ground
-493+ = invalid effects
+Effect list - #'s I found while testing, lots of possible advanced class effects we missed +(mixed old effect list of valaris and spira's new list...) + +0-5. Attack Display +6. Being Warped +7. Being Healed +8. Yellow Ripple Effect +9. Different Type of Heal? +10. Mammomite +11. Endure +12. Yellow cast aura +13. Blue Box +14. Blue heal? Blue pot? +15. Soul Strike +16. Hide animation +17. Magnum Break +18. Steal +19. Invalid +20. Envenom/Poison +21. Slow Poison? (Envenom In Blue) +22. Sight +23. Stone Curse +24. FireBall +25. FireWall +26. Nothing? +27. Frost Driver Cast +28. Frost Driver Hitting +29. Lightning Bolt +30. ThunderStorm +31. Bubbles Appearing From The Character? +32. Explosion +33. Ruwach +34. Warp out aura (blue) +35. Casting Warp portal (blue) +36. Warp portal (blue) +37. Agi up +38. Agi down +39. Something being made +40. Cross thing (paladin skill?) +41. Angelus bell +42. Blessing angels +43. Dex + Agi up +44. Little fog smoke. +45. Faint little ball things. +46. Sand? +47. Torch +48. Circle of blue flat things +49. Firebolt/wall hits +50. Spinning fire thing +51. Icebolt hit +52. JT Hit +53. Puff of purpulish smoke? +54-59. Cast animations +60. Cast target circle +61. Warp portal (for maps) +62. Sight rasher +63. Fire sphere from some skill +64. Weird purple/red light +65. some sort of mob hit??? +66. potion effect? +67. Provoke +68. MVP +69. Skid trap sign +70. Blue purple aura thing +71. Spiral Yellow balls +72. Bigger Spiral Yellow balls +73. Blue/yellow ripple +74. Icewall sicle +75. Acolyte skill (3 singing girls) +76. Big angel that spreads wings (some aco skill) +77. Resurrection angel +78. Status recovery +79. Heaven drive spike? Earth spike? +80. Spear boomerange +81. Skill hit +82. Detect hidden +83. Another aco skill i don't know (angel comes out of green light) +84. Yet another stupid angel. +85. Lex Divinia +86. Holy water? +87. Lex aeterna +88. Another damn priest/aco skill +89. SG +90. LoV +91. Aco priest skill +92. Meteor Storm +93. JT ball +94. JT hit +95. Quagmire +96. Some sort of cool looking fire hit? +97. Firepillar hit +98. +99. Big blue light +100. Yellow ball fountain +101. Forge? +102. Hammerfall +103. Powerthrust? +104. Weapon perfection? +105. Nothing? +106. Fire explosion. +107. Fire explosion (from trap?) +108. blue smoke with noise +109. blue bubbles +110. yellow smoke (trap?) +111. some bs skill or something +117. Waterball +120. Sound effect +132. Single Grimtooth +138. Fire pillar +139. Fireworks +154. refine success +155. refine fail +156. Jobchange.str (crashes client) +157. Levelup.str (crashes client) +158. joblvup +159. Pvp circle +160. Woe circle? +161. Rain +162. Snow +163. Sakura leaves +164. nothing (npc/mob?) +165. Weird ball thing +166. turns sprite blue +167. Taming Success (crashes client) +168. Taming failed (crashes client) +169. blue light +170. explosion +171. venom dust +172. black aura +173. red aura +174. blue aura +175. yellow aura +176. purple aura +177. red aura +178. white aura +179. purple aura +180. darkness attack hit? +181. water attack hit? +182. wind attack hit +183. self destruction +184. nothing (npc/mob?) +185. nothing (npc/mob?) +186. yellow effect +187. yellow effect +188. yellow effect +189. yellow effect +190. yellow effect +191. target (piercing attack or something) +192. purple cloud hit +193. mute or something (npc skill) +194. stun attack? +195. stone curse +196. curse +197. sleep +198. nothing (npc/mob?) +199. some weird bubble +200-203. Parts of the level 99 Aura +204-211. Healing Items Effect +212. Damage Effect (9999) +213. Shield Appears (Guard?) +214. 3 Weird Things Appear Around You (They All Look The Same) +215. Hide/Unhide? +216. 2 Red Balls shoot out +217. 2 Blue Balls shoot out +218. Concentration Potion Effect +219. Other Speed Potion +220. Berserk Potion +221. White Alien Abduction Beam +222. Defender Skill Effect (Black Circle) +223. Invalid Effect +224. White Wisp Revolving around you +225. Volcano Effect +226. Grand Cross Effect +227-230. Blank +231. Yuno Effect (Takes Alittle While) +232. Blank +233. Fog +234. Unknown To Me +235. Unknown To Me +236. Deluge Effect +237. Wind Gale Effect +238. Land Protect Effect +239. Volcano Effect 2 +240. Deluge Effect 2 +241. Wind Gale Effect 2 +242. Land Protect Effect 2 +243. Invalid Effect +244. Unknown To Me. +245. Holy Cross Effect +246. Shield Charge Effect +247. Yuno Effect 2 (Larger) +248. Status Recovery? (Shows An Angel On Top Of Your Head) +249. Shield Boomerang +250. Spear Quicken +251. Devotion +252. Reflect Shield (Yellow Circle) +259. Green Abduction Beam +260. Orange Abduction Beam +261. red aura thing +262. yellow things that shoot out +263. Yellow ground effect. +264. nothing (npc/mob?) +265. laser beam ?! +266. bunch of white shit flies out +267. gun shot! +268. money bag +269. sword thing +270. shield thing +271. armor thing +272. cape thing? +273. Outter spinning white balls. +274. flying gold +275. spit +276. stuff that flies out somewhat like crits +277. white stuff that comes out around sprite +295. frost joke +296. scream +298. fire bottle throwing +300. Chemical Protection +301. Blank +302. Demonstration Fire Effect +303. Weird Effect you turn yellow and see six lines (3 sets of 2) going slanted +304. After being warped +305. Pharmacy Success +306. Pharmacy Failed +307. Sunlight through the roof effect in Geffenia +308. Blank +309. Unknown to me +310. Unknown to me +311. Shout/Yell/Loud (Merchant Skill) Effect +312-313. Heal Effect? +314. Another Part of Warp/ Yuno Effect? +315. Newer Safety Wall (Pink Portal) +316. Another Part of Warp (The Ripple Floor Part) +317. Full Warp Effect +322. daylight +323. daylight +324. daylight +328. asura strike word +329. tripple strike +333. Orange Leaves Falling +334. blind (can stack it) +335. poison (can stack it) +336. defender shield? +337. joblvup +338. supernovice angel +341. pink warp portal +342. pink aura +343. pink heart thing (cool) +344. teleport in +346. big blue ball +347. wedding effect +349. waterfall (horizonatal) +350. waterfall (vertical) +351. sm waterfall (horizonatal) +352. sm waterfall (vertical) +353. drk waterfall (horizonatal) +354. drk waterfall (vertical) +355. drk sm waterfall (horizonatal) +356. drk sm waterfall (vertical) +358. niflheim ghost +359. niflheim bat slow +360. niflheim bat fast +361. shoots purple wave out +362. nothing? +363. valentine's day heart (wings) +364. valentine's day heart +365. falling cross +368. make you red (berserk?) +369. 2h quicken? +371. lvup +372. death +373. smoke +375. white outline around sprite +376. makes red and shoots out stuff +377. shoots out yellow shit +380. shakes screen turns you all different colors +387. spins you around shakes screen flashes white +394. big red ball around you + +403 = mind breaker +404 = spider web +405 = nothing +406 = explosion effect on the head +407 = effect that starts big and fades in to your characters head + +408. Orange Bubble Grows Around +409. Weird Poision Like Effect +410. Rainbow +411. (Usable, Just add in folder effect file called peong1.tga).errors/detoxify like. +413. nothing? +417. flash +418. red critical explosion? +419. Pulsating grey aura +420. gradual shrink char (possible minimize effect?) +421. instant minimize +422. grow back, but not all the way (baby height) +423. mega size +424. makes sprite bright +425. 4 brownish replicas of sprite fly off? +426. shakes sprites (works on player sprites!) +427. nothing? (maybe for npc/mobs) +428. yellow sparks +429. blue sparks +430. blue sparks in different direction +431. another blue spark variant +432. can't find effect\elec1.tga +433. nothing? (npc/mob?) +434. white sparks +435. can't find effect\storm2.tga (sometimes works and shows little tornado thing! +436. white shield (for one of the defense skills?) +437. blue aura (kinda like a comet!) +438. another defense aura? blue ripples. blue pulsating shield +439. can't fine effect\line3.tga +440. high priest skill angel? Angelus type effect but with a cross +441. another cast aura +442. nothing? (npc/mob?) +443. nothing? (npc/mob?) +444. white lines that fire out +445. your sprite flies up and disappears sometime sprite errors +446. your sprite falls down +447. nothing? (npc/mob?) +448. nothing? (npc/mob?) +449. turns you bright blue real quick +450. darkcross effect (black grand cross) +451. red soul strike?! (high wiz skill?) +452. A jupital thunder type of effect, electricity pulsates around your char +453. Smoke (electricity type) surrounds char, can move and effect is still their. +454. black cast aura +455. red electric that covers body +456. looks like wind rushes up (reminds me of agi up but slower, bigger, and grey) +457. forces attack animation. makes a dash like stance +458. causes sprite to jiggle. char pulsates and distorts (like 426) +459. effect\storm2.tga error, causes player sprite to spin around and you see a faint tornado aura +460. same as 459. +461. faint tornado aura +462. same as 459. +463. same as 459. +464. same as 459. +465. same as 459. +466. nothing (npc/mob?) +467. sprite error (effect\hanmoon1.tga?) +468. sprite error (effect\hanmoon2.tga?) +469. sprite error (effect\hanmoon3.tga?) +470. sprite error (effect\hanmoon4.tga?) +471. sprite error (effect\hanmoon5.tga?) +472. sprite error (effect\hanmoon6.tga?) +473. sprite error (effect\hanmoon7.tga?) +474. nothing (npc/mob?) + +475-484 = slow fade to blind, each one continues to make it smaller and smaller +485 = white critical explosion thing +486 = blue critical explosion thing +487 = black portal ground effect +488 = orange spikey aura that stretches up to fire type points +489 = yellow/gold of 488 +489 = blue version +491 = a small expoision above the head +492 = creates 1 small venom poison type of point on the ground +493+ = invalid effects diff --git a/doc/miscnotes.txt b/doc/miscnotes.txt index 4850b77f3..b74a8fba6 100644 --- a/doc/miscnotes.txt +++ b/doc/miscnotes.txt @@ -1,552 +1,552 @@ -// ****************************************************
-// * Miscellaneous Notes (Added by MC Cameri) *
-// ****************************************************
-
-// *****************************************************************
-// * Emotions that will be shown if 'int type' is one of the case. *
-// *****************************************************************
-void clif_emotion(struct block_list *bl,int type);
-case for 'int type':
-0 = ! 10 = KO (Scissor) 20 = Hmmm 30 = Kiss 1 (R) 40 = Tsk tsk tsk (No)
-1 = ? 11 = Fist (Stone) 21 = Number 1! 31 = Kiss 2 (L) 41 = Petting
-2 = Music 12 = Hand (Paper) 22 = No (??) 32 = Smoking 42 = SP! (Timer)
-3 = Heart 1 13 = Korean Flag 23 = OMG!! 33 = Okay 43 = Obsessed 2 (Dumb face, eyes popping)
-4 = Sweat 14 = Heart 2 24 = O 34 = ... (Bugged) 44 = Come (Moving finger)
-5 = Light bulb 15 = Thanks 25 = X 35 = ??? Flag 45 = Yawn (Sleepy)
-6 = Annoyed 16 = Wah (Crying) 26 = Help! 36 = Evil 2 46 = Congratulations
-7 = Smoke cloud 17 = Sorry 27 = Go! 37 = Obsessed 1 47 = HP! (Timer)
-8 = $ 18 = Heh (Laughing) 28 = Sobbing 38 = Two Hearts
-9 = ... 19 = Sweating 29 = Evil 1 39 = Tongue
-
-// ********************************
-// * Elemental Defense Resistance *
-// ********************************
-sd->subele[0] - Neutral Property
-sd->subele[1] - Water Property
-sd->subele[2] - Earth Property
-sd->subele[3] - Fire Property
-sd->subele[4] - Wind Property
-sd->subele[5] - Poison Property
-sd->subele[6] - Holy Property
-sd->subele[7] - Shadow Property
-sd->subele[8] - Ghost Property
-sd->subele[9] - Undead Property
-
-// ***************************************
-// * Elemental Monster Attack Resistance *
-// ***************************************
-
-sd->subrace[0] - Neutral Type
-sd->subrace[1] - Undead Type
-sd->subrace[2] - Brute Type
-sd->subrace[3] - Plant Type
-sd->subrace[4] - Insect Type
-sd->subrace[5] - Fish Type
-sd->subrace[6] - Demon Type
-sd->subrace[7] - Demi-Human Type
-sd->subrace[8] - Angel Type
-sd->subrace[9] - Dragon Type
-sd->subrace[10] - Boss Type #1?
-sd->subrace[11] - Boss Type #2?
-
-// **************
-// * Misc stuff *
-// **************
-
-WFIFOL(fd,2)=1; - Sever Closed
-
-// *******************
-// * Skills List *
-// *******************
-// * ID = Skill Name *
-// *******************
-ID Skill Name
-1 = NV_BASIC
-2 = SM_SWORD
-3 = SM_TWOHAND
-4 = SM_RECOVERY
-5 = SM_BASH
-6 = SM_PROVOKE
-7 = SM_MAGNUM
-8 = SM_ENDURE
-9 = MG_SRECOVERY
-10 = MG_SIGHT
-11 = MG_NAPALMBEAT
-12 = MG_SAFETYWALL
-13 = MG_SOULSTRIKE
-14 = MG_COLDBOLT
-15 = MG_FROSTDIVER
-16 = MG_STONECURSE
-17 = MG_FIREBALL
-18 = MG_FIREWALL
-19 = MG_FIREBOLT
-20 = MG_LIGHTNINGBOLT
-21 = MG_THUNDERSTORM
-22 = AL_DP
-23 = AL_DEMONBANE
-24 = AL_RUWACH
-25 = AL_PNEUMA
-26 = AL_TELEPORT
-27 = AL_WARP
-28 = AL_HEAL
-29 = AL_INCAGI
-30 = AL_DECAGI
-31 = AL_HOLYWATER
-32 = AL_CRUCIS
-33 = AL_ANGELUS
-34 = AL_BLESSING
-35 = AL_CURE
-36 = MC_INCCARRY
-37 = MC_DISCOUNT
-38 = MC_OVERCHARGE
-39 = MC_PUSHCART
-40 = MC_IDENTIFY
-41 = MC_VENDING
-42 = MC_MAMMONITE
-43 = AC_OWL
-44 = AC_VULTURE
-45 = AC_CONCENTRATION
-46 = AC_DOUBLE
-47 = AC_SHOWER
-48 = TF_DOUBLE
-49 = TF_MISS
-50 = TF_STEAL
-51 = TF_HIDING
-52 = TF_POISON
-53 = TF_DETOXIFY
-54 = ALL_RESURRECTION
-55 = KN_SPEARMASTERY
-56 = KN_PIERCE
-57 = KN_BRANDISHSPEAR
-58 = KN_SPEARSTAB
-59 = KN_SPEARBOOMERANG
-60 = KN_TWOHANDQUICKEN
-61 = KN_AUTOCOUNTER
-62 = KN_BOWLINGBASH
-63 = KN_RIDING
-64 = KN_CAVALIERMASTERY
-65 = PR_MACEMASTERY
-66 = PR_IMPOSITIO
-67 = PR_SUFFRAGIUM
-68 = PR_ASPERSIO
-69 = PR_BENEDICTIO
-70 = PR_SANCTUARY
-71 = PR_SLOWPOISON
-72 = PR_STRECOVERY
-73 = PR_KYRIE
-74 = PR_MAGNIFICAT
-75 = PR_GLORIA
-76 = PR_LEXDIVINA
-77 = PR_TURNUNDEAD
-78 = PR_LEXAETERNA
-79 = PR_MAGNUS
-80 = WZ_FIREPILLAR
-81 = WZ_SIGHTRASHER
-83 = WZ_METEOR
-84 = WZ_JUPITEL
-85 = WZ_VERMILION
-86 = WZ_WATERBALL
-87 = WZ_ICEWALL
-88 = WZ_FROSTNOVA
-89 = WZ_STORMGUST
-90 = WZ_EARTHSPIKE
-91 = WZ_HEAVENDRIVE
-92 = WZ_QUAGMIRE
-93 = WZ_ESTIMATION
-94 = BS_IRON
-95 = BS_STEEL
-96 = BS_ENCHANTEDSTONE
-97 = BS_ORIDEOCON
-98 = BS_DAGGER
-99 = BS_SWORD
-100 = BS_TWOHANDSWORD
-101 = BS_AXE
-102 = BS_MACE
-103 = BS_KNUCKLE
-104 = BS_SPEAR
-105 = BS_HILTBINDING
-106 = BS_FINDINGORE
-107 = BS_WEAPONRESEARCH
-108 = BS_REPAIRWEAPON
-109 = BS_SKINTEMPER
-110 = BS_HAMMERFALL
-111 = BS_ADRENALINE
-112 = BS_WEAPONPERFECT
-113 = BS_OVERTHRUST
-114 = BS_MAXIMIZE
-115 = HT_SKIDTRAP
-116 = HT_LANDMINE
-117 = HT_ANKLESNARE
-118 = HT_SHOCKWAVE
-119 = HT_SANDMAN
-120 = HT_FLASHER
-121 = HT_FREEZINGTRAP
-122 = HT_BLASTMINE
-123 = HT_CLAYMORETRAP
-124 = HT_REMOVETRAP
-125 = HT_TALKIEBOX
-126 = HT_BEASTBANE
-127 = HT_FALCON
-128 = HT_STEELCROW
-129 = HT_BLITZBEAT
-130 = HT_DETECTING
-131 = HT_SPRINGTRAP
-132 = AS_RIGHT
-133 = AS_LEFT
-134 = AS_KATAR
-135 = AS_CLOAKING
-136 = AS_SONICBLOW
-137 = AS_GRIMTOOTH
-138 = AS_ENCHANTPOISON
-139 = AS_POISONREACT
-140 = AS_VENOMDUST
-141 = AS_SPLASHER
-142 = NV_FIRSTAID
-143 = NV_TRICKDEAD
-144 = SM_MOVINGRECOVERY
-145 = SM_FATALBLOW
-146 = SM_AUTOBERSERK
-147 = AC_MAKINGARROW
-148 = AC_CHARGEARROW
-149 = TF_SPRINKLESAND
-150 = TF_BACKSLIDING
-151 = TF_PICKSTONE
-152 = TF_THROWSTONE
-153 = MC_CARTREVOLUTION
-154 = MC_CHANGECART
-155 = MC_LOUD
-156 = AL_HOLYLIGHT
-157 = MG_ENERGYCOAT
-158 = NPC_PIERCINGATT
-159 = NPC_MENTALBREAKER
-160 = NPC_RANGEATTACK
-161 = NPC_ATTRICHANGE
-162 = NPC_CHANGEWATER
-163 = NPC_CHANGEGROUND
-164 = NPC_CHANGEFIRE
-165 = NPC_CHANGEWIND
-166 = NPC_CHANGEPOISON
-167 = NPC_CHANGEHOLY
-168 = NPC_CHANGEDARLNESS
-169 = NPC_CHANGETELEKINESIS
-170 = NPC_CRITICALSLASH
-171 = NPC_COMBOATTACK
-172 = NPC_GUIDEATTACK
-173 = NPC_SELFDESTRUCTION
-174 = NPC_SPLASHATTACK
-175 = NPC_SUICIDE
-176 = NPC_POISON
-177 = NPC_BLINDATTACK
-178 = NPC_SILENCEATTACK
-179 = NPC_STUNATTACK
-180 = NPC_PETRIFYATTACK
-181 = NPC_CURSEATTACK
-182 = NPC_SLEEPATTACK
-183 = NPC_RANDOMATTACK
-184 = NPC_WATERATTACK
-185 = NPC_GROUNDATTACK
-186 = NPC_FIREATTACK
-187 = NPC_WINDATTACK
-188 = NPC_POISONATTACK
-189 = NPC_HOLYATTACK
-190 = NPC_DARKNESSATTACK
-191 = NPC_TELEKINESISATTACK
-192 = NPC_MAGICALATTACK
-193 = NPC_METAMORPHOSIS
-194 = NPC_PROVOCATION
-195 = NPC_SMOKING
-196 = NPC_SUMMONSLAVE
-197 = NPC_EMOTION
-198 = NPC_TRANSFORMATION
-199 = NPC_BLOODDRAIN
-200 = NPC_ENERGYDRAIN
-201 = NPC_KEEPING
-202 = NPC_DARKBREATH
-203 = NPC_DARKBLESSING
-204 = NPC_BARRIER
-205 = NPC_DEFENDER
-206 = NPC_LICK
-207 = NPC_HALLUCINATION
-208 = NPC_REBIRTH
-209 = NPC_SUMMONMONSTER
-210 = RG_SNATCHER
-211 = RG_STEALCOIN
-212 = RG_BACKSTAP
-213 = RG_TUNNELDRIVE
-214 = RG_RAID
-215 = RG_STRIPWEAPON
-216 = RG_STRIPSHIELD
-217 = RG_STRIPARMOR
-218 = RG_STRIPHELM
-219 = RG_INTIMIDATE
-220 = RG_GRAFFITI
-221 = RG_FLAGGRAFFITI
-222 = RG_CLEANER
-223 = RG_GANGSTER
-224 = RG_COMPULSION
-225 = RG_PLAGIARISM
-226 = AM_AXEMASTERY
-227 = AM_LEARNINGPOTION
-228 = AM_PHARMACY
-229 = AM_DEMONSTRATION
-230 = AM_ACIDTERROR
-231 = AM_POTIONPITCHER
-232 = AM_CANNIBALIZE
-233 = AM_SPHEREMINE
-234 = AM_CP_WEAPON
-235 = AM_CP_SHIELD
-236 = AM_CP_ARMOR
-237 = AM_CP_HELM
-248 = CR_TRUST
-249 = CR_AUTOGUARD
-250 = CR_SHIELDCHARGE
-251 = CR_SHIELDBOOMERANG
-252 = CR_REFLECTSHIELD
-253 = CR_HOLYCROSS
-254 = CR_GRANDCROSS
-255 = CR_DEVOTION
-256 = CR_PROVIDENCE
-257 = CR_DEFENDER
-258 = CR_SPEARQUICKEN
-259 = MO_IRONHAND
-260 = MO_SPIRITSRECOVERY
-261 = MO_CALLSPIRITS
-262 = MO_ABSORBSPIRITS
-263 = MO_TRIPLEATTACK
-264 = MO_BODYRELOCATION
-265 = MO_DODGE
-266 = MO_INVESTIGATE
-267 = MO_FINGEROFFENSIVE
-268 = MO_STEELBODY
-269 = MO_BLADESTOP
-270 = MO_EXPLOSIONSPIRITS
-271 = MO_EXTREMITYFIST
-272 = MO_CHAINCOMBO
-273 = MO_COMBOFINISH
-274 = SA_ADVANCEDBOOK
-275 = SA_CASTCANCEL
-276 = SA_MAGICROD
-277 = SA_SPELLBREAKER
-278 = SA_FREECAST
-279 = SA_AUTOSPELL
-280 = SA_FLAMELAUNCHER
-281 = SA_FROSTWEAPON
-282 = SA_LIGHTNINGLOADER
-283 = SA_SEISMICWEAPON
-284 = SA_DRAGONOLOGY
-285 = SA_VOLCANO
-286 = SA_DELUGE
-287 = SA_VIOLENTGALE
-288 = SA_LANDPROTECTOR
-289 = SA_DISPELL
-290 = SA_ABRACADABRA
-291 = SA_MONOCELL
-292 = SA_CLASSCHANGE
-293 = SA_SUMMONMONSTER
-294 = SA_REVERSEORCISH
-295 = SA_DEATH
-296 = SA_FORTUNE
-297 = SA_TAMINGMONSTER
-298 = SA_QUESTION
-299 = SA_GRAVITY
-300 = SA_LEVELUP
-301 = SA_INSTANTDEATH
-302 = SA_FULLRECOVERY
-303 = SA_COMA
-304 = BD_ADAPTATION
-305 = BD_ENCORE
-306 = BD_LULLABY
-307 = BD_RICHMANKIM
-308 = BD_ETERNALCHAOS
-309 = BD_DRUMBATTLEFIELD
-310 = BD_RINGNIBELUNGEN
-311 = BD_ROKISWEIL
-312 = BD_INTOABYSS
-313 = BD_SIEGFRIED
-315 = BA_MUSICALLESSON
-316 = BA_MUSICALSTRIKE
-317 = BA_DISSONANCE
-318 = BA_FROSTJOKE
-319 = BA_WHISTLE
-320 = BA_ASSASSINCROSS
-321 = BA_POEMBRAGI
-322 = BA_APPLEIDUN
-323 = DC_DANCINGLESSON
-324 = DC_THROWARROW
-325 = DC_UGLYDANCE
-326 = DC_SCREAM
-327 = DC_HUMMING
-328 = DC_DONTFORGETME
-329 = DC_FORTUNEKISS
-330 = DC_SERVICEFORYOU
-334 = WE_MALE
-335 = WE_FEMALE
-336 = WE_CALLPARTNER
-355 = LK_AURABLADE
-356 = LK_PARRYING
-357 = LK_CONCENTRATION
-358 = LK_TENSIONRELAX
-359 = LK_BERSERK
-361 = HP_ASSUMPTIO
-362 = HP_BASILICA
-363 = HP_MEDITATIO
-364 = HW_SOULDRAIN
-365 = HW_MAGICCRASHER
-366 = HW_MAGICPOWER
-367 = PA_PRESSURE
-368 = PA_SACRIFICE
-369 = PA_GOSPEL
-370 = CH_PALMSTRIKE
-371 = CH_TIGERFIST
-372 = CH_CHAINCRUSH
-373 = PF_HPCONVERSION
-374 = PF_SOULCHANGE
-375 = PF_SOULBURN
-376 = ASC_KATAR
-377 = ASC_HALLUCINATION
-378 = ASC_EDP
-379 = ASC_BREAKER
-380 = SN_SIGHT
-381 = SN_FALCONASSAULT
-382 = SN_SHARPSHOOTING
-383 = SN_WINDWALK
-384 = WS_MELTDOWN
-385 = WS_CREATECOIN
-386 = WS_CREATENUGGET
-387 = WS_CARTBOOST
-388 = WS_SYSTEMCREATE
-389 = ST_CHASEWALK
-390 = ST_REJECTSWORD
-392 = CR_ALCHEMY
-393 = CR_SYNTHESISPOTION
-394 = CG_ARROWVULCAN
-395 = CG_MOONLIT
-396 = CG_MARIONETTE
-397 = LK_SPIRALPIERCE
-398 = LK_HEADCRUSH
-399 = LK_JOINTBEAT
-400 = HW_NAPALMVULCAN
-401 = CH_SOULCOLLECT
-402 = PF_MINDBREAKER
-403 = PF_MEMORIZE
-404 = PF_FOGWALL
-405 = PF_SPIDERWEB
-406 = ASC_METEORASSAULT
-407 = ASC_CDP
-408 = WE_BABY
-409 = WE_CALLPARENT
-410 = WE_CALLBABY
-411 = TK_RUN
-412 = TK_READYSTORM
-413 = TK_STORMKICK
-414 = TK_READYDOWN
-415 = TK_DOWNKICK
-416 = TK_READYTURN
-417 = TK_TURNKICK
-418 = TK_READYCOUNTER
-419 = TK_COUNTER
-420 = TK_DODGE
-421 = TK_JUMPKICK
-422 = TK_HPTIME
-423 = TK_SPTIME
-424 = TK_POWER
-425 = TK_SEVENWIND
-426 = TK_HIGHJUMP
-427 = SG_FEEL
-428 = SG_SUN_WARM
-429 = SG_MOON_WARM
-430 = SG_STAR_WARM
-431 = SG_SUN_COMFORT
-432 = SG_MOON_COMFORT
-433 = SG_STAR_COMFORT
-434 = SG_HATE
-435 = SG_SUN_ANGER
-436 = SG_MOON_ANGER
-437 = SG_STAR_ANGER
-438 = SG_SUN_BLESS
-439 = SG_MOON_BLESS
-440 = SG_STAR_BLESS
-441 = SG_DEVIL
-442 = SG_FRIEND
-443 = SG_KNOWLEDGE
-444 = SG_FUSION
-445 = SL_ALCHEMIST
-446 = AM_BERSERKPITCHER
-447 = SL_MONK
-448 = SL_STAR
-449 = SL_SAGE
-450 = SL_CRUSADER
-451 = SL_SUPERNOVICE
-452 = SL_KNIGHT
-453 = SL_WIZARD
-454 = SL_PRIEST
-455 = SL_BARDDANCER
-456 = SL_ROGUE
-457 = SL_ASSASIN
-458 = SL_BLACKSMITH
-459 = BS_ADRENALINE2
-460 = SL_HUNTER
-461 = SL_SOULLINKER
-462 = SL_KAIZEL
-463 = SL_KAAHI
-464 = SL_KAUPE
-465 = SL_KAITE
-466 = SL_KAINA
-467 = SL_STIN
-468 = SL_STUN
-469 = SL_SMA
-470 = SL_SWOO
-471 = SL_SKE
-472 = SL_SKA
-10000 = GD_APPROVAL
-10001 = GD_KAFRACONTRACT
-10002 = GD_GUARDRESEARCH
-10003 = GD_CHARISMA
-10004 = GD_EXTENSION
-
-// ************************
-// * Item DB - Use Script *
-// ************************
-itemskill:
- -Format: itemskill skill_id,skill_lvl,"name";
- -Example: itemskill 28,3,"Heal"; //Healing skill
-
-itemheal:
- -Format: itemheal hp,sp;
- -Example: itemheal 30,0; //+30 HP, +0 SP.
-
-sc_start:
- -Format: sc_start SC_CONSTANT,duration,value;
- -Example: sc_start SC_POISON,1800,; //Starts Poison Status for 30 seconds
-
-sc_end:
- -Format: sc_end SC_CONSTANT;
- -Example: sc_end SC_BLIND; //Ends Blind Status
-
-warp:
- -Format: warp "map",x,y;
- -Example: warp "Random",0,0; //Fly wing
- -Example: warp "SavePoint",0,0; //Butterfly wing
-
-getitem:
- -Format: getitem item_id,count;
- -Example: getitem 512,2; //Gives you two Apples
-
-produce:
- -Format: produce produce_type;
- -Example: produce 16; //Mini-furnace
-
-pet:
- -Format: pet pet_id;
- -Example: pet 1002; //Taming item for Poring
-
-monster:
- -Example: monster "this",0,0,"--ja--",-1,1,""; //Dead branch
-
-percentheal:
- -Format: percentheal percent_hp,percent_sp;
- -Example: percentheal 100,100; //Heals you 100% of both HP and SP
-
-// **************************
-// * Item DB - Equip Script *
+// **************************************************** +// * Miscellaneous Notes (Added by MC Cameri) * +// **************************************************** + +// ***************************************************************** +// * Emotions that will be shown if 'int type' is one of the case. * +// ***************************************************************** +void clif_emotion(struct block_list *bl,int type); +case for 'int type': +0 = ! 10 = KO (Scissor) 20 = Hmmm 30 = Kiss 1 (R) 40 = Tsk tsk tsk (No) +1 = ? 11 = Fist (Stone) 21 = Number 1! 31 = Kiss 2 (L) 41 = Petting +2 = Music 12 = Hand (Paper) 22 = No (??) 32 = Smoking 42 = SP! (Timer) +3 = Heart 1 13 = Korean Flag 23 = OMG!! 33 = Okay 43 = Obsessed 2 (Dumb face, eyes popping) +4 = Sweat 14 = Heart 2 24 = O 34 = ... (Bugged) 44 = Come (Moving finger) +5 = Light bulb 15 = Thanks 25 = X 35 = ??? Flag 45 = Yawn (Sleepy) +6 = Annoyed 16 = Wah (Crying) 26 = Help! 36 = Evil 2 46 = Congratulations +7 = Smoke cloud 17 = Sorry 27 = Go! 37 = Obsessed 1 47 = HP! (Timer) +8 = $ 18 = Heh (Laughing) 28 = Sobbing 38 = Two Hearts +9 = ... 19 = Sweating 29 = Evil 1 39 = Tongue + +// ******************************** +// * Elemental Defense Resistance * +// ******************************** +sd->subele[0] - Neutral Property +sd->subele[1] - Water Property +sd->subele[2] - Earth Property +sd->subele[3] - Fire Property +sd->subele[4] - Wind Property +sd->subele[5] - Poison Property +sd->subele[6] - Holy Property +sd->subele[7] - Shadow Property +sd->subele[8] - Ghost Property +sd->subele[9] - Undead Property + +// *************************************** +// * Elemental Monster Attack Resistance * +// *************************************** + +sd->subrace[0] - Neutral Type +sd->subrace[1] - Undead Type +sd->subrace[2] - Brute Type +sd->subrace[3] - Plant Type +sd->subrace[4] - Insect Type +sd->subrace[5] - Fish Type +sd->subrace[6] - Demon Type +sd->subrace[7] - Demi-Human Type +sd->subrace[8] - Angel Type +sd->subrace[9] - Dragon Type +sd->subrace[10] - Boss Type #1? +sd->subrace[11] - Boss Type #2? + +// ************** +// * Misc stuff * +// ************** + +WFIFOL(fd,2)=1; - Sever Closed + +// ******************* +// * Skills List * +// ******************* +// * ID = Skill Name * +// ******************* +ID Skill Name +1 = NV_BASIC +2 = SM_SWORD +3 = SM_TWOHAND +4 = SM_RECOVERY +5 = SM_BASH +6 = SM_PROVOKE +7 = SM_MAGNUM +8 = SM_ENDURE +9 = MG_SRECOVERY +10 = MG_SIGHT +11 = MG_NAPALMBEAT +12 = MG_SAFETYWALL +13 = MG_SOULSTRIKE +14 = MG_COLDBOLT +15 = MG_FROSTDIVER +16 = MG_STONECURSE +17 = MG_FIREBALL +18 = MG_FIREWALL +19 = MG_FIREBOLT +20 = MG_LIGHTNINGBOLT +21 = MG_THUNDERSTORM +22 = AL_DP +23 = AL_DEMONBANE +24 = AL_RUWACH +25 = AL_PNEUMA +26 = AL_TELEPORT +27 = AL_WARP +28 = AL_HEAL +29 = AL_INCAGI +30 = AL_DECAGI +31 = AL_HOLYWATER +32 = AL_CRUCIS +33 = AL_ANGELUS +34 = AL_BLESSING +35 = AL_CURE +36 = MC_INCCARRY +37 = MC_DISCOUNT +38 = MC_OVERCHARGE +39 = MC_PUSHCART +40 = MC_IDENTIFY +41 = MC_VENDING +42 = MC_MAMMONITE +43 = AC_OWL +44 = AC_VULTURE +45 = AC_CONCENTRATION +46 = AC_DOUBLE +47 = AC_SHOWER +48 = TF_DOUBLE +49 = TF_MISS +50 = TF_STEAL +51 = TF_HIDING +52 = TF_POISON +53 = TF_DETOXIFY +54 = ALL_RESURRECTION +55 = KN_SPEARMASTERY +56 = KN_PIERCE +57 = KN_BRANDISHSPEAR +58 = KN_SPEARSTAB +59 = KN_SPEARBOOMERANG +60 = KN_TWOHANDQUICKEN +61 = KN_AUTOCOUNTER +62 = KN_BOWLINGBASH +63 = KN_RIDING +64 = KN_CAVALIERMASTERY +65 = PR_MACEMASTERY +66 = PR_IMPOSITIO +67 = PR_SUFFRAGIUM +68 = PR_ASPERSIO +69 = PR_BENEDICTIO +70 = PR_SANCTUARY +71 = PR_SLOWPOISON +72 = PR_STRECOVERY +73 = PR_KYRIE +74 = PR_MAGNIFICAT +75 = PR_GLORIA +76 = PR_LEXDIVINA +77 = PR_TURNUNDEAD +78 = PR_LEXAETERNA +79 = PR_MAGNUS +80 = WZ_FIREPILLAR +81 = WZ_SIGHTRASHER +83 = WZ_METEOR +84 = WZ_JUPITEL +85 = WZ_VERMILION +86 = WZ_WATERBALL +87 = WZ_ICEWALL +88 = WZ_FROSTNOVA +89 = WZ_STORMGUST +90 = WZ_EARTHSPIKE +91 = WZ_HEAVENDRIVE +92 = WZ_QUAGMIRE +93 = WZ_ESTIMATION +94 = BS_IRON +95 = BS_STEEL +96 = BS_ENCHANTEDSTONE +97 = BS_ORIDEOCON +98 = BS_DAGGER +99 = BS_SWORD +100 = BS_TWOHANDSWORD +101 = BS_AXE +102 = BS_MACE +103 = BS_KNUCKLE +104 = BS_SPEAR +105 = BS_HILTBINDING +106 = BS_FINDINGORE +107 = BS_WEAPONRESEARCH +108 = BS_REPAIRWEAPON +109 = BS_SKINTEMPER +110 = BS_HAMMERFALL +111 = BS_ADRENALINE +112 = BS_WEAPONPERFECT +113 = BS_OVERTHRUST +114 = BS_MAXIMIZE +115 = HT_SKIDTRAP +116 = HT_LANDMINE +117 = HT_ANKLESNARE +118 = HT_SHOCKWAVE +119 = HT_SANDMAN +120 = HT_FLASHER +121 = HT_FREEZINGTRAP +122 = HT_BLASTMINE +123 = HT_CLAYMORETRAP +124 = HT_REMOVETRAP +125 = HT_TALKIEBOX +126 = HT_BEASTBANE +127 = HT_FALCON +128 = HT_STEELCROW +129 = HT_BLITZBEAT +130 = HT_DETECTING +131 = HT_SPRINGTRAP +132 = AS_RIGHT +133 = AS_LEFT +134 = AS_KATAR +135 = AS_CLOAKING +136 = AS_SONICBLOW +137 = AS_GRIMTOOTH +138 = AS_ENCHANTPOISON +139 = AS_POISONREACT +140 = AS_VENOMDUST +141 = AS_SPLASHER +142 = NV_FIRSTAID +143 = NV_TRICKDEAD +144 = SM_MOVINGRECOVERY +145 = SM_FATALBLOW +146 = SM_AUTOBERSERK +147 = AC_MAKINGARROW +148 = AC_CHARGEARROW +149 = TF_SPRINKLESAND +150 = TF_BACKSLIDING +151 = TF_PICKSTONE +152 = TF_THROWSTONE +153 = MC_CARTREVOLUTION +154 = MC_CHANGECART +155 = MC_LOUD +156 = AL_HOLYLIGHT +157 = MG_ENERGYCOAT +158 = NPC_PIERCINGATT +159 = NPC_MENTALBREAKER +160 = NPC_RANGEATTACK +161 = NPC_ATTRICHANGE +162 = NPC_CHANGEWATER +163 = NPC_CHANGEGROUND +164 = NPC_CHANGEFIRE +165 = NPC_CHANGEWIND +166 = NPC_CHANGEPOISON +167 = NPC_CHANGEHOLY +168 = NPC_CHANGEDARLNESS +169 = NPC_CHANGETELEKINESIS +170 = NPC_CRITICALSLASH +171 = NPC_COMBOATTACK +172 = NPC_GUIDEATTACK +173 = NPC_SELFDESTRUCTION +174 = NPC_SPLASHATTACK +175 = NPC_SUICIDE +176 = NPC_POISON +177 = NPC_BLINDATTACK +178 = NPC_SILENCEATTACK +179 = NPC_STUNATTACK +180 = NPC_PETRIFYATTACK +181 = NPC_CURSEATTACK +182 = NPC_SLEEPATTACK +183 = NPC_RANDOMATTACK +184 = NPC_WATERATTACK +185 = NPC_GROUNDATTACK +186 = NPC_FIREATTACK +187 = NPC_WINDATTACK +188 = NPC_POISONATTACK +189 = NPC_HOLYATTACK +190 = NPC_DARKNESSATTACK +191 = NPC_TELEKINESISATTACK +192 = NPC_MAGICALATTACK +193 = NPC_METAMORPHOSIS +194 = NPC_PROVOCATION +195 = NPC_SMOKING +196 = NPC_SUMMONSLAVE +197 = NPC_EMOTION +198 = NPC_TRANSFORMATION +199 = NPC_BLOODDRAIN +200 = NPC_ENERGYDRAIN +201 = NPC_KEEPING +202 = NPC_DARKBREATH +203 = NPC_DARKBLESSING +204 = NPC_BARRIER +205 = NPC_DEFENDER +206 = NPC_LICK +207 = NPC_HALLUCINATION +208 = NPC_REBIRTH +209 = NPC_SUMMONMONSTER +210 = RG_SNATCHER +211 = RG_STEALCOIN +212 = RG_BACKSTAP +213 = RG_TUNNELDRIVE +214 = RG_RAID +215 = RG_STRIPWEAPON +216 = RG_STRIPSHIELD +217 = RG_STRIPARMOR +218 = RG_STRIPHELM +219 = RG_INTIMIDATE +220 = RG_GRAFFITI +221 = RG_FLAGGRAFFITI +222 = RG_CLEANER +223 = RG_GANGSTER +224 = RG_COMPULSION +225 = RG_PLAGIARISM +226 = AM_AXEMASTERY +227 = AM_LEARNINGPOTION +228 = AM_PHARMACY +229 = AM_DEMONSTRATION +230 = AM_ACIDTERROR +231 = AM_POTIONPITCHER +232 = AM_CANNIBALIZE +233 = AM_SPHEREMINE +234 = AM_CP_WEAPON +235 = AM_CP_SHIELD +236 = AM_CP_ARMOR +237 = AM_CP_HELM +248 = CR_TRUST +249 = CR_AUTOGUARD +250 = CR_SHIELDCHARGE +251 = CR_SHIELDBOOMERANG +252 = CR_REFLECTSHIELD +253 = CR_HOLYCROSS +254 = CR_GRANDCROSS +255 = CR_DEVOTION +256 = CR_PROVIDENCE +257 = CR_DEFENDER +258 = CR_SPEARQUICKEN +259 = MO_IRONHAND +260 = MO_SPIRITSRECOVERY +261 = MO_CALLSPIRITS +262 = MO_ABSORBSPIRITS +263 = MO_TRIPLEATTACK +264 = MO_BODYRELOCATION +265 = MO_DODGE +266 = MO_INVESTIGATE +267 = MO_FINGEROFFENSIVE +268 = MO_STEELBODY +269 = MO_BLADESTOP +270 = MO_EXPLOSIONSPIRITS +271 = MO_EXTREMITYFIST +272 = MO_CHAINCOMBO +273 = MO_COMBOFINISH +274 = SA_ADVANCEDBOOK +275 = SA_CASTCANCEL +276 = SA_MAGICROD +277 = SA_SPELLBREAKER +278 = SA_FREECAST +279 = SA_AUTOSPELL +280 = SA_FLAMELAUNCHER +281 = SA_FROSTWEAPON +282 = SA_LIGHTNINGLOADER +283 = SA_SEISMICWEAPON +284 = SA_DRAGONOLOGY +285 = SA_VOLCANO +286 = SA_DELUGE +287 = SA_VIOLENTGALE +288 = SA_LANDPROTECTOR +289 = SA_DISPELL +290 = SA_ABRACADABRA +291 = SA_MONOCELL +292 = SA_CLASSCHANGE +293 = SA_SUMMONMONSTER +294 = SA_REVERSEORCISH +295 = SA_DEATH +296 = SA_FORTUNE +297 = SA_TAMINGMONSTER +298 = SA_QUESTION +299 = SA_GRAVITY +300 = SA_LEVELUP +301 = SA_INSTANTDEATH +302 = SA_FULLRECOVERY +303 = SA_COMA +304 = BD_ADAPTATION +305 = BD_ENCORE +306 = BD_LULLABY +307 = BD_RICHMANKIM +308 = BD_ETERNALCHAOS +309 = BD_DRUMBATTLEFIELD +310 = BD_RINGNIBELUNGEN +311 = BD_ROKISWEIL +312 = BD_INTOABYSS +313 = BD_SIEGFRIED +315 = BA_MUSICALLESSON +316 = BA_MUSICALSTRIKE +317 = BA_DISSONANCE +318 = BA_FROSTJOKE +319 = BA_WHISTLE +320 = BA_ASSASSINCROSS +321 = BA_POEMBRAGI +322 = BA_APPLEIDUN +323 = DC_DANCINGLESSON +324 = DC_THROWARROW +325 = DC_UGLYDANCE +326 = DC_SCREAM +327 = DC_HUMMING +328 = DC_DONTFORGETME +329 = DC_FORTUNEKISS +330 = DC_SERVICEFORYOU +334 = WE_MALE +335 = WE_FEMALE +336 = WE_CALLPARTNER +355 = LK_AURABLADE +356 = LK_PARRYING +357 = LK_CONCENTRATION +358 = LK_TENSIONRELAX +359 = LK_BERSERK +361 = HP_ASSUMPTIO +362 = HP_BASILICA +363 = HP_MEDITATIO +364 = HW_SOULDRAIN +365 = HW_MAGICCRASHER +366 = HW_MAGICPOWER +367 = PA_PRESSURE +368 = PA_SACRIFICE +369 = PA_GOSPEL +370 = CH_PALMSTRIKE +371 = CH_TIGERFIST +372 = CH_CHAINCRUSH +373 = PF_HPCONVERSION +374 = PF_SOULCHANGE +375 = PF_SOULBURN +376 = ASC_KATAR +377 = ASC_HALLUCINATION +378 = ASC_EDP +379 = ASC_BREAKER +380 = SN_SIGHT +381 = SN_FALCONASSAULT +382 = SN_SHARPSHOOTING +383 = SN_WINDWALK +384 = WS_MELTDOWN +385 = WS_CREATECOIN +386 = WS_CREATENUGGET +387 = WS_CARTBOOST +388 = WS_SYSTEMCREATE +389 = ST_CHASEWALK +390 = ST_REJECTSWORD +392 = CR_ALCHEMY +393 = CR_SYNTHESISPOTION +394 = CG_ARROWVULCAN +395 = CG_MOONLIT +396 = CG_MARIONETTE +397 = LK_SPIRALPIERCE +398 = LK_HEADCRUSH +399 = LK_JOINTBEAT +400 = HW_NAPALMVULCAN +401 = CH_SOULCOLLECT +402 = PF_MINDBREAKER +403 = PF_MEMORIZE +404 = PF_FOGWALL +405 = PF_SPIDERWEB +406 = ASC_METEORASSAULT +407 = ASC_CDP +408 = WE_BABY +409 = WE_CALLPARENT +410 = WE_CALLBABY +411 = TK_RUN +412 = TK_READYSTORM +413 = TK_STORMKICK +414 = TK_READYDOWN +415 = TK_DOWNKICK +416 = TK_READYTURN +417 = TK_TURNKICK +418 = TK_READYCOUNTER +419 = TK_COUNTER +420 = TK_DODGE +421 = TK_JUMPKICK +422 = TK_HPTIME +423 = TK_SPTIME +424 = TK_POWER +425 = TK_SEVENWIND +426 = TK_HIGHJUMP +427 = SG_FEEL +428 = SG_SUN_WARM +429 = SG_MOON_WARM +430 = SG_STAR_WARM +431 = SG_SUN_COMFORT +432 = SG_MOON_COMFORT +433 = SG_STAR_COMFORT +434 = SG_HATE +435 = SG_SUN_ANGER +436 = SG_MOON_ANGER +437 = SG_STAR_ANGER +438 = SG_SUN_BLESS +439 = SG_MOON_BLESS +440 = SG_STAR_BLESS +441 = SG_DEVIL +442 = SG_FRIEND +443 = SG_KNOWLEDGE +444 = SG_FUSION +445 = SL_ALCHEMIST +446 = AM_BERSERKPITCHER +447 = SL_MONK +448 = SL_STAR +449 = SL_SAGE +450 = SL_CRUSADER +451 = SL_SUPERNOVICE +452 = SL_KNIGHT +453 = SL_WIZARD +454 = SL_PRIEST +455 = SL_BARDDANCER +456 = SL_ROGUE +457 = SL_ASSASIN +458 = SL_BLACKSMITH +459 = BS_ADRENALINE2 +460 = SL_HUNTER +461 = SL_SOULLINKER +462 = SL_KAIZEL +463 = SL_KAAHI +464 = SL_KAUPE +465 = SL_KAITE +466 = SL_KAINA +467 = SL_STIN +468 = SL_STUN +469 = SL_SMA +470 = SL_SWOO +471 = SL_SKE +472 = SL_SKA +10000 = GD_APPROVAL +10001 = GD_KAFRACONTRACT +10002 = GD_GUARDRESEARCH +10003 = GD_CHARISMA +10004 = GD_EXTENSION + +// ************************ +// * Item DB - Use Script * +// ************************ +itemskill: + -Format: itemskill skill_id,skill_lvl,"name"; + -Example: itemskill 28,3,"Heal"; //Healing skill + +itemheal: + -Format: itemheal hp,sp; + -Example: itemheal 30,0; //+30 HP, +0 SP. + +sc_start: + -Format: sc_start SC_CONSTANT,duration,value; + -Example: sc_start SC_POISON,1800,; //Starts Poison Status for 30 seconds + +sc_end: + -Format: sc_end SC_CONSTANT; + -Example: sc_end SC_BLIND; //Ends Blind Status + +warp: + -Format: warp "map",x,y; + -Example: warp "Random",0,0; //Fly wing + -Example: warp "SavePoint",0,0; //Butterfly wing + +getitem: + -Format: getitem item_id,count; + -Example: getitem 512,2; //Gives you two Apples + +produce: + -Format: produce produce_type; + -Example: produce 16; //Mini-furnace + +pet: + -Format: pet pet_id; + -Example: pet 1002; //Taming item for Poring + +monster: + -Example: monster "this",0,0,"--ja--",-1,1,""; //Dead branch + +percentheal: + -Format: percentheal percent_hp,percent_sp; + -Example: percentheal 100,100; //Heals you 100% of both HP and SP + +// ************************** +// * Item DB - Equip Script * // **************************
\ No newline at end of file diff --git a/npc/cities/louyang.txt b/npc/cities/louyang.txt index 14b7fffcb..ddeef2908 100644 --- a/npc/cities/louyang.txt +++ b/npc/cities/louyang.txt @@ -1,65 +1,65 @@ -//===== eAthena Script =======================================
-//= Lou Yang City NPC's
-//===== By: ==================================================
-//= Vidar (1.0)
-//= Mass Zero (1.1)
-//===== Current Version: =====================================
-//= 1.0
-//===== Compatible With: =====================================
-//= Any eAthena Version
-//===== Description: =========================================
-//= Unofficial NPC's for Lou Yang city.
-//===== Additional Comments: =================================
-//= Originally made for Vidar
-//============================================================
-
-louyang.gat,260,96,2 script Chun Hua 770,{
-mes "[^000080Chun Hua^000000]";
-mes "Welcome traveler, you must be hungry and thirsty.";
-mes "Please come inside, there is much to eat.";
-next;
-mes "[^000080Chun Hua^000000]";
-mes "Do not be afraid about how much you ask for, there is much to go around.";
-close;
-}
-
-lou_fild01.gat,188,102,1 script Extraordinary Sailor 100,{
-mes "[Extraordinary Sailor]";
-mes "We run a line to Alberta, we could take you there if you like.";
-next;
-menu "Let me travel to Alberta",L_Menu1,"No, thanks",L_Menu2;
-close;
-L_Menu1:
-warp "alberta.gat",247,44;
-L_Menu2:
-mes "[Extraordinary Sailor]";
-mes "Suit yourself.";
-close;
-}
-
-alberta.gat,247,42,4 script Expert Sailor 100,{
-mes "[Expert Sailor]";
-mes "Have you ever been over seas?";
-next;
-menu "Yes",YES,"No",NO;
-YES:
-mes "Same here! I'm about to head back out that way again.";
-mes "Would you like to come with me?";
-next;
-menu "Sure",L_Menu1,"No, thanks",L_Menu3;
-close;
-L_Menu1:
-warp "lou_fild01.gat",192,105;
-NO:
-mes "What a shame, it is truley a sight to behold. I'm about to head back out that way again.";
-mes "Would you like to come with me?";
-next;
-menu "Sure",L_Menu2,"No, thanks",L_Menu3;
-close;
-L_Menu2:
-warp "lou_fild01.gat",192,105;
-L_Menu3:
-mes "[Expert Sailor]";
-mes "Suit yourself.";
-close;
+//===== eAthena Script ======================================= +//= Lou Yang City NPC's +//===== By: ================================================== +//= Vidar (1.0) +//= Mass Zero (1.1) +//===== Current Version: ===================================== +//= 1.0 +//===== Compatible With: ===================================== +//= Any eAthena Version +//===== Description: ========================================= +//= Unofficial NPC's for Lou Yang city. +//===== Additional Comments: ================================= +//= Originally made for Vidar +//============================================================ + +louyang.gat,260,96,2 script Chun Hua 770,{ +mes "[^000080Chun Hua^000000]"; +mes "Welcome traveler, you must be hungry and thirsty."; +mes "Please come inside, there is much to eat."; +next; +mes "[^000080Chun Hua^000000]"; +mes "Do not be afraid about how much you ask for, there is much to go around."; +close; +} + +lou_fild01.gat,188,102,1 script Extraordinary Sailor 100,{ +mes "[Extraordinary Sailor]"; +mes "We run a line to Alberta, we could take you there if you like."; +next; +menu "Let me travel to Alberta",L_Menu1,"No, thanks",L_Menu2; +close; +L_Menu1: +warp "alberta.gat",247,44; +L_Menu2: +mes "[Extraordinary Sailor]"; +mes "Suit yourself."; +close; +} + +alberta.gat,247,42,4 script Expert Sailor 100,{ +mes "[Expert Sailor]"; +mes "Have you ever been over seas?"; +next; +menu "Yes",YES,"No",NO; +YES: +mes "Same here! I'm about to head back out that way again."; +mes "Would you like to come with me?"; +next; +menu "Sure",L_Menu1,"No, thanks",L_Menu3; +close; +L_Menu1: +warp "lou_fild01.gat",192,105; +NO: +mes "What a shame, it is truley a sight to behold. I'm about to head back out that way again."; +mes "Would you like to come with me?"; +next; +menu "Sure",L_Menu2,"No, thanks",L_Menu3; +close; +L_Menu2: +warp "lou_fild01.gat",192,105; +L_Menu3: +mes "[Expert Sailor]"; +mes "Suit yourself."; +close; }
\ No newline at end of file diff --git a/src/login_sql/char_int.c b/src/login_sql/char_int.c index 09daefe2b..be0de499c 100644 --- a/src/login_sql/char_int.c +++ b/src/login_sql/char_int.c @@ -1,491 +1,491 @@ -#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <string.h>
-
-#include "login.h"
-
-//--------------------------------
-// Send to char
-//--------------------------------
-int charif_sendallwos(int sfd, unsigned char *buf, unsigned int len) {
- int i, c;
- int fd;
-
- c = 0;
- for(i = 0; i < MAX_SERVERS && i < servers_connected; i++) {
- if ((fd = server_fd[i]) > 0 && fd != sfd) {
- memcpy(WFIFOP(fd,0), buf, len);
- WFIFOSET(fd,len);
- c++;
- }
- }
-
- return c;
-}
-
-//--------------------------------
-// Char-server anti-freeze system
-//--------------------------------
-int char_anti_freeze_system(int tid, unsigned int tick, int id, int data) {
- int i;
-
- for(i = 0; i < MAX_SERVERS && i < servers_connected; i++) {
- if (server_fd[i] >= 0) {// if char-server is online
-// printf("char_anti_freeze_system: server #%d '%s', flag: %d.\n", i, server[i].name, server_freezeflag[i]);
- if (server_freezeflag[i]-- < 1) {// Char-server anti-freeze system. Counter. 5 ok, 4...0 freezed
- session[server_fd[i]]->eof = 1;
- }
- }
- }
-
- return 0;
-}
-
-//-------------------------------------------
-// Request for account reg from char-server [Edit: Wizputer]
-//-------------------------------------------
-void send_account_reg(int fd) {
- int account_id = RFIFOL(fd,2);
- int i;
-
- for(i=0;i<AUTH_FIFO_SIZE;i++){
- if (auth_fifo[i].account_id == account_id &&
- auth_fifo[i].login_id1 == RFIFOL(fd,6) &&
-#if CMP_AUTHFIFO_LOGIN2 != 0
- auth_fifo[i].login_id2 == RFIFOL(fd,10) && // relate to the versions higher than 18
-#endif
- auth_fifo[i].sex == RFIFOB(fd,14) &&
-#if CMP_AUTHFIFO_IP != 0
- auth_fifo[i].ip == RFIFOL(fd,15) &&
-#endif
- !auth_fifo[i].delflag) {
- auth_fifo[i].delflag = 1;
- #ifdef DEBUG
- printf("Client: [%d] Auth Number: [%d]\n",fd, i);
- #endif
- break;
- }
- }
-
- if (i != AUTH_FIFO_SIZE) { // send account_reg
- int p;
- time_t connect_until_time = 0;
- char email[40] = "";
-
- sprintf(tmpsql, "SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'", login_db, login_db_account_id, account_id);
- sql_query(tmpsql,"send_account_reg");
-
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if((sql_row = mysql_fetch_row(sql_res))) {
- connect_until_time = atol(sql_row[1]);
- strcpy(email, sql_row[0]);
- }
- }
- mysql_free_result(sql_res);
-
- if (account_id > 0) {
- sprintf(tmpsql, "SELECT `str`,`value` FROM `global_reg_value` WHERE `type`='1' AND `account_id`='%d'",account_id);
- sql_query(tmpsql,"send_account_reg");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- WFIFOW(fd,0) = 0x2729;
- WFIFOL(fd,4) = account_id;
- for(p = 8; (sql_row = mysql_fetch_row(sql_res));p+=36){
- memcpy(WFIFOP(fd,p), sql_row[0], 32);
- WFIFOL(fd,p+32) = atoi(sql_row[1]);
- }
- WFIFOW(fd,2) = p;
- WFIFOSET(fd,p);
- #ifdef DEBUG
- printf("account_reg2 send : login->char (auth fifo)\n");
- #endif
- WFIFOW(fd,0) = 0x2713;
- WFIFOL(fd,2) = account_id;
- WFIFOB(fd,6) = 0;
- memcpy(WFIFOP(fd, 7), email, 40);
- WFIFOL(fd,47) = (unsigned long) connect_until_time;
- WFIFOSET(fd,51);
- }
- mysql_free_result(sql_res);
- }
- } else {
- WFIFOW(fd,0) = 0x2713;
- WFIFOL(fd,2) = account_id;
- WFIFOB(fd,6) = 1;
- WFIFOSET(fd,51);
- }
- RFIFOSKIP(fd,19);
-}
-
-//----------------------------------------------------------
-// Number of users in the world (connected char-server(s)) [Edit: Wizputer]
-//----------------------------------------------------------
-void number_world_users(int fd, int id) {
- #ifdef DEBUG
- if (server[id].users != RFIFOL(fd,2))
- printf("set number users %s : %d\n", server[id].name, RFIFOL(fd,2));
- #endif
-
- server[id].users = RFIFOL(fd,2);
- if(anti_freeze_enable)
- server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed
-
- sprintf(tmpsql,"UPDATE `sstatus` SET `user` = '%d' WHERE `index` = '%d'", server[id].users, id);
- sql_query(tmpsql,"number_world_users");
-
- RFIFOSKIP(fd,6);
-}
-
-//-----------------------------------------
-// Email and Time request from char-server [Edit: Wizputer]
-//-----------------------------------------
-void email_time_request(int fd, int id) {
- int account_id=RFIFOL(fd,2);
- time_t connect_until_time = 0;
- char email[40] = "";
-
- sprintf(tmpsql,"SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'",login_db, login_db_account_id, account_id);
- sql_query(tmpsql,"email_time_request");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if((sql_row = mysql_fetch_row(sql_res))) {
- connect_until_time = atol(sql_row[1]);
- strcpy(email, sql_row[0]);
- }
- }
- mysql_free_result(sql_res);
-
- #ifdef DEBUG
- printf("parse_fromchar: E-mail/limited time request from '%s' server (concerned account: %d)\n", server[id].name, account_id);
- #endif
-
- WFIFOW(fd,0) = 0x2717;
- WFIFOL(fd,2) = account_id;
- memcpy(WFIFOP(fd, 6), email, 40);
- WFIFOL(fd,46) = (unsigned long) connect_until_time;
- WFIFOSET(fd,50);
-
- RFIFOSKIP(fd,6);
-}
-
-//--------------------------------
-// Request to change email [Edit: Wizputer]
-//--------------------------------
-void change_account_email(int fd, int id, char ip[16]) {
- int acc = RFIFOL(fd,2);
- char actual_email[40], new_email[40];
-
- memcpy(actual_email, RFIFOP(fd,6), 40);
- memcpy(new_email, RFIFOP(fd,46), 40);
-
- if (e_mail_check(actual_email) == 0) {
- #ifdef DEBUG
- printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)" RETCODE,
- server[id].name, acc, ip);
- #endif
- } else if (e_mail_check(new_email) == 0) {
- #ifdef DEBUG
- printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)" RETCODE,
- server[id].name, acc, ip);
- #endif
- } else if (strcmpi(new_email, "athena@athena.com") == 0) {
- #ifdef DEBUG
- printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)" RETCODE,
- server[id].name, acc, ip);
- #endif
- } else {
- sprintf(tmpsql, "SELECT `%s`,`email` FROM `%s` WHERE `%s` = '%d'", login_db_userid, login_db, login_db_account_id, acc);
- sql_query(tmpsql,"change_account_email");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if((sql_row = mysql_fetch_row(sql_res))) { //row fetching
- if (strcmpi(sql_row[1], actual_email) == 0) {
- sprintf(tmpsql, "UPDATE `%s` SET `email` = '%s' WHERE `%s` = '%d'", login_db, new_email, login_db_account_id, acc);
- sql_query(tmpsql,"change_account_email");
-
- #ifdef DEBUG
- printf("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s)." RETCODE,
- server[id].name, acc, sql_row[0], actual_email, ip);
- #endif
- }
- }
- }
-
- }
-
- RFIFOSKIP(fd, 86);
-}
-
-//-----------------------------------------------
-// State change request from map server (By Yor) [Edit: Wizputer]
-//-----------------------------------------------
-void status_change_request(int fd) {
- int acc = RFIFOL(fd,2), status = RFIFOL(fd,6);
-
- sprintf(tmpsql, "SELECT `state` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, acc);
- sql_query(tmpsql,"status_change_request");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if((sql_row = mysql_fetch_row(sql_res))) { // row fetching
- if (atoi(sql_row[0]) != status && status != 0) {
- unsigned char buf[16];
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = acc;
- WBUFB(buf,6) = 0; // 0: change of statut, 1: ban
- WBUFL(buf,7) = status; // status or final date of a banishment
- charif_sendallwos(-1, buf, 11);
- }
- }
-
- sprintf(tmpsql,"UPDATE `%s` SET `state` = '%d' WHERE `%s` = '%d'", login_db, status,login_db_account_id,acc);
- sql_query(tmpsql,"status_change_request");
- }
-
- RFIFOSKIP(fd,10);
-}
-//--------------------------------------
-// Ban request from map-server (By Yor) [Edit: Wizputer]
-//--------------------------------------
-void ban_request(int fd) {
- int acc=RFIFOL(fd,2);
- struct tm *tmtime;
- time_t timestamp, tmptime;
-
- sprintf(tmpsql, "SELECT `ban_until` FROM `%s` WHERE `%s` = '%d'",login_db,login_db_account_id,acc);
- sql_query(tmpsql,"ban_request");
-
- if ((sql_res = mysql_store_result(&mysql_handle)) && (sql_row = mysql_fetch_row(sql_res))) {
- tmptime = atol(sql_row[0]);
-
- if (tmptime == 0 || tmptime < time(NULL))
- timestamp = time(NULL);
- else
- timestamp = tmptime;
-
- tmtime = localtime(×tamp);
- tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,6);
- tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,8);
- tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,10);
- tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,12);
- tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,14);
- tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,16);
-
- timestamp = mktime(tmtime);
-
- if (timestamp != -1) {
- if (timestamp <= time(NULL))
- timestamp = 0;
- if (tmptime != timestamp) {
- if (timestamp != 0) {
- unsigned char buf[16];
- WBUFW(buf,0) = 0x2731;
- WBUFL(buf,2) = acc;
- WBUFB(buf,6) = 1; // 0: change of statut, 1: ban
- WBUFL(buf,7) = timestamp; // status or final date of a banishment
- charif_sendallwos(-1, buf, 11);
- }
- #ifdef DEBUG
- printf("Account: [%d] Banned until: [%ld]\n", acc, timestamp);
- #endif
-
- sprintf(tmpsql, "UPDATE `%s` SET `ban_until` = '%ld', `state`='7' WHERE `%s` = '%d'", login_db, timestamp, login_db_account_id, acc);
- sql_query(tmpsql,"ban_request");
- }
- }
- }
-
- RFIFOSKIP(fd,18);
-}
-
-//-----------------------------
-// Change sex [Edit: Wizputer]
-//-----------------------------
-void change_sex(int fd) {
- int sex,acc=RFIFOL(fd,4);
- unsigned char buf[16];
-
- sprintf(tmpsql,"SELECT `sex` FROM `%s` WHERE `%s` = '%d'",login_db,login_db_account_id,acc);
- sql_query(tmpsql,"change_sex");
-
- if ((sql_res = mysql_store_result(&mysql_handle)) && (sql_row = mysql_fetch_row(sql_res))) {
- if (strcmpi(sql_row[0], "M") == 0)
- sex = 1;
- else
- sex = 0;
-
- sprintf(tmpsql,"UPDATE `%s` SET `sex` = '%c' WHERE `%s` = '%d'", login_db, (sex==0?'M':'F'), login_db_account_id, acc);
- sql_query(tmpsql,"change_sex");
-
- WBUFW(buf,0) = 0x2723;
- WBUFL(buf,2) = acc;
- WBUFB(buf,6) = sex;
- charif_sendallwos(-1, buf, 7);
- }
-
- RFIFOSKIP(fd,6);
-}
-
-//-------------------------------
-// Save Account Reg [Edit: Wizputer]
-//-------------------------------
-void save_account_reg(int fd){
- int p,j,value,acc=RFIFOL(fd,4);
- char str[32];
- char temp_str[32];
-
- if (acc>0){
- unsigned char buf[RFIFOW(fd,2)+1];
- for(p=8,j=0;p<RFIFOW(fd,2) && j<ACCOUNT_REG2_NUM;p+=36,j++){
- memcpy(str,RFIFOP(fd,p),32);
- value=RFIFOL(fd,p+32);
-
- sprintf(tmpsql,"REPLACE INTO `global_reg_value` (`type`, `account_id`, `str`, `value`) VALUES ( 1 , '%d' , '%s' , '%d');", acc, jstrescapecpy(temp_str,str), value);
- sql_query(tmpsql,"save_account_reg");
- }
-
- // Send to char
- memcpy(WBUFP(buf,0),RFIFOP(fd,0),RFIFOW(fd,2));
- WBUFW(buf,0)=0x2729;
- charif_sendallwos(fd,buf,WBUFW(buf,2));
- }
-
- RFIFOSKIP(fd,RFIFOW(fd,2));
-
- #ifdef DEBUG
- printf("login: save account_reg (from char)\n");
- #endif
-}
-
-//------------------------------------------------
-// Recieve unban request from map-server (by Yor) [Edit: Wizputer]
-//------------------------------------------------
-void unban_request(int fd) {
- int acc = RFIFOL(fd,2);
-
- sprintf(tmpsql,"UPDATE `%s` SET `ban_until` = '0', `state`='0' WHERE `%s` = '%d' AND `state`='6'", login_db,login_db_account_id,acc);
- sql_query(tmpsql,"unban_request");
-
- RFIFOSKIP(fd,6);
-}
-
-//-----------------------------------------------------
-// char-server packet parse [Edit: Wizputer]
-//-----------------------------------------------------
-int parse_fromchar(int fd){
- int id;
-
- unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
- char ip[16];
-
- sprintf(ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
-
- for(id = 0; id < MAX_SERVERS && id < servers_connected; id++)
- if (server_fd[id] == fd)
- break;
-
- if (id == MAX_SERVERS)
- session[fd]->eof = 1;
-
- if(session[fd]->eof) {
- if (id < MAX_SERVERS) {
- printf("Char-server '%s' has disconnected.\n", server[id].name);
- server_fd[id] = -1;
- memset(&server[id], 0, sizeof(struct mmo_char_server));
- servers_connected--;
- // server delete
- sprintf(tmpsql, "DELETE FROM `sstatus` WHERE `index`='%d'", id);
- sql_query(tmpsql,"parse_fromchar");
- }
- close(fd);
- delete_session(fd);
- return 0;
- }
-
- while(RFIFOREST(fd) >= 2) {
- #ifdef DEBUG_PACKETS
- printf("char_parse: %d %d packet case=%x\n", fd, RFIFOREST(fd), RFIFOW(fd, 0));
- #endif
-
- switch (RFIFOW(fd,0)) {
- case 0x2712:
- if (RFIFOREST(fd) < 19)
- return 0;
- send_account_reg(fd);
- break;
-
- case 0x2714:
- if (RFIFOREST(fd) < 6)
- return 0;
- number_world_users(fd,id);
- break;
-
- case 0x2716:
- if (RFIFOREST(fd) < 6)
- return 0;
- email_time_request(fd, id);
- break;
-
- case 0x2722:
- if (RFIFOREST(fd) < 86)
- return 0;
- change_account_email(fd, id, ip);
- break;
-
- case 0x2724:
- if (RFIFOREST(fd) < 10)
- return 0;
- status_change_request(fd);
- break;
-
- case 0x2725:
- if (RFIFOREST(fd) < 18)
- return 0;
- ban_request(fd);
- break;
-
- case 0x2727:
- if (RFIFOREST(fd) < 6)
- return 0;
- change_sex(fd);
- break;
-
- case 0x2728:
- if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2))
- return 0;
- save_account_reg(fd);
- break;
-
- case 0x272a:
- if (RFIFOREST(fd) < 6)
- return 0;
- unban_request(fd);
- return 0;
-
- case 0x272b: // Set account_id to online [Wizputer]
- if (RFIFOREST(fd) < 6)
- return 0;
- add_online_user(RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
- break;
-
- case 0x272c: // Set account_id to offline [Wizputer]
- if (RFIFOREST(fd) < 6)
- return 0;
- remove_online_user(RFIFOL(fd,2));
- RFIFOSKIP(fd,6);
- break;
-
- default:
- #ifdef DEBUG
- printf("login: unknown packet %x! (from char).\n", RFIFOW(fd,0));
- #endif
- session[fd]->eof = 1;
- }
- }
-
- return 0;
-}
+#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <signal.h> +#include <fcntl.h> +#include <string.h> + +#include "login.h" + +//-------------------------------- +// Send to char +//-------------------------------- +int charif_sendallwos(int sfd, unsigned char *buf, unsigned int len) { + int i, c; + int fd; + + c = 0; + for(i = 0; i < MAX_SERVERS && i < servers_connected; i++) { + if ((fd = server_fd[i]) > 0 && fd != sfd) { + memcpy(WFIFOP(fd,0), buf, len); + WFIFOSET(fd,len); + c++; + } + } + + return c; +} + +//-------------------------------- +// Char-server anti-freeze system +//-------------------------------- +int char_anti_freeze_system(int tid, unsigned int tick, int id, int data) { + int i; + + for(i = 0; i < MAX_SERVERS && i < servers_connected; i++) { + if (server_fd[i] >= 0) {// if char-server is online +// printf("char_anti_freeze_system: server #%d '%s', flag: %d.\n", i, server[i].name, server_freezeflag[i]); + if (server_freezeflag[i]-- < 1) {// Char-server anti-freeze system. Counter. 5 ok, 4...0 freezed + session[server_fd[i]]->eof = 1; + } + } + } + + return 0; +} + +//------------------------------------------- +// Request for account reg from char-server [Edit: Wizputer] +//------------------------------------------- +void send_account_reg(int fd) { + int account_id = RFIFOL(fd,2); + int i; + + for(i=0;i<AUTH_FIFO_SIZE;i++){ + if (auth_fifo[i].account_id == account_id && + auth_fifo[i].login_id1 == RFIFOL(fd,6) && +#if CMP_AUTHFIFO_LOGIN2 != 0 + auth_fifo[i].login_id2 == RFIFOL(fd,10) && // relate to the versions higher than 18 +#endif + auth_fifo[i].sex == RFIFOB(fd,14) && +#if CMP_AUTHFIFO_IP != 0 + auth_fifo[i].ip == RFIFOL(fd,15) && +#endif + !auth_fifo[i].delflag) { + auth_fifo[i].delflag = 1; + #ifdef DEBUG + printf("Client: [%d] Auth Number: [%d]\n",fd, i); + #endif + break; + } + } + + if (i != AUTH_FIFO_SIZE) { // send account_reg + int p; + time_t connect_until_time = 0; + char email[40] = ""; + + sprintf(tmpsql, "SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'", login_db, login_db_account_id, account_id); + sql_query(tmpsql,"send_account_reg"); + + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if((sql_row = mysql_fetch_row(sql_res))) { + connect_until_time = atol(sql_row[1]); + strcpy(email, sql_row[0]); + } + } + mysql_free_result(sql_res); + + if (account_id > 0) { + sprintf(tmpsql, "SELECT `str`,`value` FROM `global_reg_value` WHERE `type`='1' AND `account_id`='%d'",account_id); + sql_query(tmpsql,"send_account_reg"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + WFIFOW(fd,0) = 0x2729; + WFIFOL(fd,4) = account_id; + for(p = 8; (sql_row = mysql_fetch_row(sql_res));p+=36){ + memcpy(WFIFOP(fd,p), sql_row[0], 32); + WFIFOL(fd,p+32) = atoi(sql_row[1]); + } + WFIFOW(fd,2) = p; + WFIFOSET(fd,p); + #ifdef DEBUG + printf("account_reg2 send : login->char (auth fifo)\n"); + #endif + WFIFOW(fd,0) = 0x2713; + WFIFOL(fd,2) = account_id; + WFIFOB(fd,6) = 0; + memcpy(WFIFOP(fd, 7), email, 40); + WFIFOL(fd,47) = (unsigned long) connect_until_time; + WFIFOSET(fd,51); + } + mysql_free_result(sql_res); + } + } else { + WFIFOW(fd,0) = 0x2713; + WFIFOL(fd,2) = account_id; + WFIFOB(fd,6) = 1; + WFIFOSET(fd,51); + } + RFIFOSKIP(fd,19); +} + +//---------------------------------------------------------- +// Number of users in the world (connected char-server(s)) [Edit: Wizputer] +//---------------------------------------------------------- +void number_world_users(int fd, int id) { + #ifdef DEBUG + if (server[id].users != RFIFOL(fd,2)) + printf("set number users %s : %d\n", server[id].name, RFIFOL(fd,2)); + #endif + + server[id].users = RFIFOL(fd,2); + if(anti_freeze_enable) + server_freezeflag[id] = 5; // Char anti-freeze system. Counter. 5 ok, 4...0 freezed + + sprintf(tmpsql,"UPDATE `sstatus` SET `user` = '%d' WHERE `index` = '%d'", server[id].users, id); + sql_query(tmpsql,"number_world_users"); + + RFIFOSKIP(fd,6); +} + +//----------------------------------------- +// Email and Time request from char-server [Edit: Wizputer] +//----------------------------------------- +void email_time_request(int fd, int id) { + int account_id=RFIFOL(fd,2); + time_t connect_until_time = 0; + char email[40] = ""; + + sprintf(tmpsql,"SELECT `email`,`connect_until` FROM `%s` WHERE `%s`='%d'",login_db, login_db_account_id, account_id); + sql_query(tmpsql,"email_time_request"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if((sql_row = mysql_fetch_row(sql_res))) { + connect_until_time = atol(sql_row[1]); + strcpy(email, sql_row[0]); + } + } + mysql_free_result(sql_res); + + #ifdef DEBUG + printf("parse_fromchar: E-mail/limited time request from '%s' server (concerned account: %d)\n", server[id].name, account_id); + #endif + + WFIFOW(fd,0) = 0x2717; + WFIFOL(fd,2) = account_id; + memcpy(WFIFOP(fd, 6), email, 40); + WFIFOL(fd,46) = (unsigned long) connect_until_time; + WFIFOSET(fd,50); + + RFIFOSKIP(fd,6); +} + +//-------------------------------- +// Request to change email [Edit: Wizputer] +//-------------------------------- +void change_account_email(int fd, int id, char ip[16]) { + int acc = RFIFOL(fd,2); + char actual_email[40], new_email[40]; + + memcpy(actual_email, RFIFOP(fd,6), 40); + memcpy(new_email, RFIFOP(fd,46), 40); + + if (e_mail_check(actual_email) == 0) { + #ifdef DEBUG + printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command), but actual email is invalid (account: %d, ip: %s)" RETCODE, + server[id].name, acc, ip); + #endif + } else if (e_mail_check(new_email) == 0) { + #ifdef DEBUG + printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a invalid new e-mail (account: %d, ip: %s)" RETCODE, + server[id].name, acc, ip); + #endif + } else if (strcmpi(new_email, "athena@athena.com") == 0) { + #ifdef DEBUG + printf("Char-server '%s': Attempt to modify an e-mail on an account (@email GM command) with a default e-mail (account: %d, ip: %s)" RETCODE, + server[id].name, acc, ip); + #endif + } else { + sprintf(tmpsql, "SELECT `%s`,`email` FROM `%s` WHERE `%s` = '%d'", login_db_userid, login_db, login_db_account_id, acc); + sql_query(tmpsql,"change_account_email"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if((sql_row = mysql_fetch_row(sql_res))) { //row fetching + if (strcmpi(sql_row[1], actual_email) == 0) { + sprintf(tmpsql, "UPDATE `%s` SET `email` = '%s' WHERE `%s` = '%d'", login_db, new_email, login_db_account_id, acc); + sql_query(tmpsql,"change_account_email"); + + #ifdef DEBUG + printf("Char-server '%s': Modify an e-mail on an account (@email GM command) (account: %d (%s), new e-mail: %s, ip: %s)." RETCODE, + server[id].name, acc, sql_row[0], actual_email, ip); + #endif + } + } + } + + } + + RFIFOSKIP(fd, 86); +} + +//----------------------------------------------- +// State change request from map server (By Yor) [Edit: Wizputer] +//----------------------------------------------- +void status_change_request(int fd) { + int acc = RFIFOL(fd,2), status = RFIFOL(fd,6); + + sprintf(tmpsql, "SELECT `state` FROM `%s` WHERE `%s` = '%d'", login_db, login_db_account_id, acc); + sql_query(tmpsql,"status_change_request"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if((sql_row = mysql_fetch_row(sql_res))) { // row fetching + if (atoi(sql_row[0]) != status && status != 0) { + unsigned char buf[16]; + WBUFW(buf,0) = 0x2731; + WBUFL(buf,2) = acc; + WBUFB(buf,6) = 0; // 0: change of statut, 1: ban + WBUFL(buf,7) = status; // status or final date of a banishment + charif_sendallwos(-1, buf, 11); + } + } + + sprintf(tmpsql,"UPDATE `%s` SET `state` = '%d' WHERE `%s` = '%d'", login_db, status,login_db_account_id,acc); + sql_query(tmpsql,"status_change_request"); + } + + RFIFOSKIP(fd,10); +} +//-------------------------------------- +// Ban request from map-server (By Yor) [Edit: Wizputer] +//-------------------------------------- +void ban_request(int fd) { + int acc=RFIFOL(fd,2); + struct tm *tmtime; + time_t timestamp, tmptime; + + sprintf(tmpsql, "SELECT `ban_until` FROM `%s` WHERE `%s` = '%d'",login_db,login_db_account_id,acc); + sql_query(tmpsql,"ban_request"); + + if ((sql_res = mysql_store_result(&mysql_handle)) && (sql_row = mysql_fetch_row(sql_res))) { + tmptime = atol(sql_row[0]); + + if (tmptime == 0 || tmptime < time(NULL)) + timestamp = time(NULL); + else + timestamp = tmptime; + + tmtime = localtime(×tamp); + tmtime->tm_year = tmtime->tm_year + (short)RFIFOW(fd,6); + tmtime->tm_mon = tmtime->tm_mon + (short)RFIFOW(fd,8); + tmtime->tm_mday = tmtime->tm_mday + (short)RFIFOW(fd,10); + tmtime->tm_hour = tmtime->tm_hour + (short)RFIFOW(fd,12); + tmtime->tm_min = tmtime->tm_min + (short)RFIFOW(fd,14); + tmtime->tm_sec = tmtime->tm_sec + (short)RFIFOW(fd,16); + + timestamp = mktime(tmtime); + + if (timestamp != -1) { + if (timestamp <= time(NULL)) + timestamp = 0; + if (tmptime != timestamp) { + if (timestamp != 0) { + unsigned char buf[16]; + WBUFW(buf,0) = 0x2731; + WBUFL(buf,2) = acc; + WBUFB(buf,6) = 1; // 0: change of statut, 1: ban + WBUFL(buf,7) = timestamp; // status or final date of a banishment + charif_sendallwos(-1, buf, 11); + } + #ifdef DEBUG + printf("Account: [%d] Banned until: [%ld]\n", acc, timestamp); + #endif + + sprintf(tmpsql, "UPDATE `%s` SET `ban_until` = '%ld', `state`='7' WHERE `%s` = '%d'", login_db, timestamp, login_db_account_id, acc); + sql_query(tmpsql,"ban_request"); + } + } + } + + RFIFOSKIP(fd,18); +} + +//----------------------------- +// Change sex [Edit: Wizputer] +//----------------------------- +void change_sex(int fd) { + int sex,acc=RFIFOL(fd,4); + unsigned char buf[16]; + + sprintf(tmpsql,"SELECT `sex` FROM `%s` WHERE `%s` = '%d'",login_db,login_db_account_id,acc); + sql_query(tmpsql,"change_sex"); + + if ((sql_res = mysql_store_result(&mysql_handle)) && (sql_row = mysql_fetch_row(sql_res))) { + if (strcmpi(sql_row[0], "M") == 0) + sex = 1; + else + sex = 0; + + sprintf(tmpsql,"UPDATE `%s` SET `sex` = '%c' WHERE `%s` = '%d'", login_db, (sex==0?'M':'F'), login_db_account_id, acc); + sql_query(tmpsql,"change_sex"); + + WBUFW(buf,0) = 0x2723; + WBUFL(buf,2) = acc; + WBUFB(buf,6) = sex; + charif_sendallwos(-1, buf, 7); + } + + RFIFOSKIP(fd,6); +} + +//------------------------------- +// Save Account Reg [Edit: Wizputer] +//------------------------------- +void save_account_reg(int fd){ + int p,j,value,acc=RFIFOL(fd,4); + char str[32]; + char temp_str[32]; + + if (acc>0){ + unsigned char buf[RFIFOW(fd,2)+1]; + for(p=8,j=0;p<RFIFOW(fd,2) && j<ACCOUNT_REG2_NUM;p+=36,j++){ + memcpy(str,RFIFOP(fd,p),32); + value=RFIFOL(fd,p+32); + + sprintf(tmpsql,"REPLACE INTO `global_reg_value` (`type`, `account_id`, `str`, `value`) VALUES ( 1 , '%d' , '%s' , '%d');", acc, jstrescapecpy(temp_str,str), value); + sql_query(tmpsql,"save_account_reg"); + } + + // Send to char + memcpy(WBUFP(buf,0),RFIFOP(fd,0),RFIFOW(fd,2)); + WBUFW(buf,0)=0x2729; + charif_sendallwos(fd,buf,WBUFW(buf,2)); + } + + RFIFOSKIP(fd,RFIFOW(fd,2)); + + #ifdef DEBUG + printf("login: save account_reg (from char)\n"); + #endif +} + +//------------------------------------------------ +// Recieve unban request from map-server (by Yor) [Edit: Wizputer] +//------------------------------------------------ +void unban_request(int fd) { + int acc = RFIFOL(fd,2); + + sprintf(tmpsql,"UPDATE `%s` SET `ban_until` = '0', `state`='0' WHERE `%s` = '%d' AND `state`='6'", login_db,login_db_account_id,acc); + sql_query(tmpsql,"unban_request"); + + RFIFOSKIP(fd,6); +} + +//----------------------------------------------------- +// char-server packet parse [Edit: Wizputer] +//----------------------------------------------------- +int parse_fromchar(int fd){ + int id; + + unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr; + char ip[16]; + + sprintf(ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); + + for(id = 0; id < MAX_SERVERS && id < servers_connected; id++) + if (server_fd[id] == fd) + break; + + if (id == MAX_SERVERS) + session[fd]->eof = 1; + + if(session[fd]->eof) { + if (id < MAX_SERVERS) { + printf("Char-server '%s' has disconnected.\n", server[id].name); + server_fd[id] = -1; + memset(&server[id], 0, sizeof(struct mmo_char_server)); + servers_connected--; + // server delete + sprintf(tmpsql, "DELETE FROM `sstatus` WHERE `index`='%d'", id); + sql_query(tmpsql,"parse_fromchar"); + } + close(fd); + delete_session(fd); + return 0; + } + + while(RFIFOREST(fd) >= 2) { + #ifdef DEBUG_PACKETS + printf("char_parse: %d %d packet case=%x\n", fd, RFIFOREST(fd), RFIFOW(fd, 0)); + #endif + + switch (RFIFOW(fd,0)) { + case 0x2712: + if (RFIFOREST(fd) < 19) + return 0; + send_account_reg(fd); + break; + + case 0x2714: + if (RFIFOREST(fd) < 6) + return 0; + number_world_users(fd,id); + break; + + case 0x2716: + if (RFIFOREST(fd) < 6) + return 0; + email_time_request(fd, id); + break; + + case 0x2722: + if (RFIFOREST(fd) < 86) + return 0; + change_account_email(fd, id, ip); + break; + + case 0x2724: + if (RFIFOREST(fd) < 10) + return 0; + status_change_request(fd); + break; + + case 0x2725: + if (RFIFOREST(fd) < 18) + return 0; + ban_request(fd); + break; + + case 0x2727: + if (RFIFOREST(fd) < 6) + return 0; + change_sex(fd); + break; + + case 0x2728: + if (RFIFOREST(fd) < 4 || RFIFOREST(fd) < RFIFOW(fd,2)) + return 0; + save_account_reg(fd); + break; + + case 0x272a: + if (RFIFOREST(fd) < 6) + return 0; + unban_request(fd); + return 0; + + case 0x272b: // Set account_id to online [Wizputer] + if (RFIFOREST(fd) < 6) + return 0; + add_online_user(RFIFOL(fd,2)); + RFIFOSKIP(fd,6); + break; + + case 0x272c: // Set account_id to offline [Wizputer] + if (RFIFOREST(fd) < 6) + return 0; + remove_online_user(RFIFOL(fd,2)); + RFIFOSKIP(fd,6); + break; + + default: + #ifdef DEBUG + printf("login: unknown packet %x! (from char).\n", RFIFOW(fd,0)); + #endif + session[fd]->eof = 1; + } + } + + return 0; +} diff --git a/src/login_sql/char_int.h b/src/login_sql/char_int.h index 3194d13e4..195d1be42 100644 --- a/src/login_sql/char_int.h +++ b/src/login_sql/char_int.h @@ -1,2 +1,2 @@ -int char_anti_freeze_system(int, unsigned int, int, int);
-int parse_fromchar(int);
+int char_anti_freeze_system(int, unsigned int, int, int); +int parse_fromchar(int); diff --git a/src/login_sql/login_int.c b/src/login_sql/login_int.c index 3b071f0e7..91dec834e 100644 --- a/src/login_sql/login_int.c +++ b/src/login_sql/login_int.c @@ -1,370 +1,370 @@ -#include <stdio.h>
-#include <stdlib.h>
-#include <time.h>
-#include <signal.h>
-#include <fcntl.h>
-#include <string.h>
-
-#include "login.h"
-#include "char_int.h"
-
-//----------------------
-// Client requesting login [Edit: Wizputer]
-//----------------------
-void client_request_login(int fd,unsigned char *p ) {
- struct mmo_account account;
- char t_uid[32];
- int server_num = 0,result,i;
-
- if( !servers_connected) {
- WFIFOW(fd,0) = 0x81;
- WFIFOL(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
- }
-
- #ifdef DEBUG
- printf("client connection request %s from %d.%d.%d.%d\n", RFIFOP(fd, 6), p[0], p[1], p[2], p[3]);
- #endif
-
- account.userid = RFIFOP(fd, 6);
- account.passwd = RFIFOP(fd, 30);
-#ifdef PASSWORDENC
- account.passwdenc= (RFIFOW(fd,0)==0x64)?0:PASSWORDENC;
-#else
- account.passwdenc=0;
-#endif
- result=mmo_auth(&account, fd);
-
- jstrescapecpy(t_uid,RFIFOP(fd, 6));
- if(result==-1){
- unsigned char gm_level = isGM(account.account_id);
- if (min_level_to_connect > gm_level || !servers_connected) {
- WFIFOW(fd,0) = 0x81;
- WFIFOL(fd,2) = 1; // 01 = Server closed
- WFIFOSET(fd,3);
- } else {
- if (p[0] != 127) {
- sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s','100', 'login ok')", loginlog_db, p[0], p[1], p[2], p[3], t_uid);
- sql_query(tmpsql,"client_request_login");
- }
-
- if (gm_level) {
- #ifdef DEBUG
- printf("Connection of the GM (level:%d) account '%s' accepted.\n", gm_level, account.userid);
- #endif
- } else {
- #ifdef DEBUG
- printf("Connection of the account '%s' accepted.\n", account.userid);
- #endif
- }
-
- for(i = 0; i < MAX_SERVERS || server_num < servers_connected ; i++)
- if (server_fd[i] >= 0) {
- //Lan check added by Kashy
- if (lan_ip_check(p))
- WFIFOL(fd,47+server_num*32) = inet_addr(lan_char_ip);
- else
- WFIFOL(fd,47+server_num*32) = server[i].ip;
-
- WFIFOW(fd,47+server_num*32+4) = server[i].port;
- memcpy(WFIFOP(fd,47+server_num*32+6), server[i].name, 20);
- WFIFOW(fd,47+server_num*32+26) = server[i].users;
- WFIFOW(fd,47+server_num*32+28) = server[i].maintenance;
- WFIFOW(fd,47+server_num*32+30) = server[i].new;
- server_num++;
- }
-
- WFIFOW(fd,0)=0x69;
- WFIFOW(fd,2)=47+32*server_num;
- WFIFOL(fd,4)=account.login_id1;
- WFIFOL(fd,8)=account.account_id;
- WFIFOL(fd,12)=account.login_id2;
- WFIFOL(fd,16)=0;
- memcpy(WFIFOP(fd,20),account.lastlogin,24);
- WFIFOB(fd,46)=account.sex;
- WFIFOSET(fd,47+32*server_num);
-
- if(auth_fifo_pos>=AUTH_FIFO_SIZE)
- auth_fifo_pos=0;
-
- auth_fifo[auth_fifo_pos].account_id=account.account_id;
- auth_fifo[auth_fifo_pos].login_id1=account.login_id1;
- auth_fifo[auth_fifo_pos].login_id2=account.login_id2;
- auth_fifo[auth_fifo_pos].sex=account.sex;
- auth_fifo[auth_fifo_pos].delflag=0;
- auth_fifo[auth_fifo_pos].ip = session[fd]->client_addr.sin_addr.s_addr;
- auth_fifo_pos++;
- }
- } else {
- char error[32];
-
- sprintf(tmpsql,"SELECT `error` FROM `errors` WHERE `result`='%d'",result);
- sql_query(tmpsql,"client_request_login");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if ((sql_row = mysql_fetch_row(sql_res))) {
- sprintf(error,sql_row[0]);
- } else {
- sprintf(error,"No Error!");
- }
- }
-
-
- sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s', '%d','login failed : %s')", loginlog_db, p[0], p[1], p[2], p[3], t_uid, result, error);
-
-
- sql_query(tmpsql,"client_request_login");
-
- if ((result == 1) && (dynamic_pass_failure_ban != 0)){ // failed password
- sprintf(tmpsql,"SELECT count(*) FROM `%s` WHERE `ip` = '%d.%d.%d.%d' AND `rcode` = '1' AND `time` > NOW() - INTERVAL %d MINUTE",
- loginlog_db, p[0], p[1], p[2], p[3], dynamic_pass_failure_ban_time); //how many times filed account? in one ip.
- sql_query(tmpsql,"client_request_login");
-
- if ((sql_res = mysql_store_result(&mysql_handle))) {
- if ((sql_row = mysql_fetch_row(sql_res))) {
- if (atoi(sql_row[0]) >= dynamic_pass_failure_ban_how_many ) {
- sprintf(tmpsql,"INSERT INTO `ipbanlist`(`list`,`btime`,`rtime`,`reason`) VALUES ('%d.%d.%d.*', NOW() , NOW() + INTERVAL %d MINUTE ,'Password error ban: %s')", p[0], p[1], p[2], dynamic_pass_failure_ban_how_long, t_uid);
- sql_query(tmpsql,"client_request_login");
- }
- }
- }
-
-
- mysql_free_result(sql_res);
-
- }
-
- //cannot connect login failed
- memset(WFIFOP(fd,0),'\0',23);
- WFIFOW(fd,0)=0x6a;
- WFIFOB(fd,2)=result-1;
- if (result == 6) { // 6 = Your are Prohibited to log in until %s
- char tmpstr[256];
- strftime(tmpstr, 20, date_format, localtime(&account.ban_until_time));
- tmpstr[19] = '\0';
- memcpy(WFIFOP(fd,3), tmpstr, 20);
- } else { // we send error message
- memcpy(WFIFOP(fd,3), error, 20);
- }
- }
-
- WFIFOSET(fd,23);
-
- RFIFOSKIP(fd,(RFIFOW(fd,0)==0x64)?55:47);
-}
-
-//------------------------------------------------------
-// MD5 Key requested for encypted login [Edit: Wizputer
-//------------------------------------------------------
-void md5_key_request(int fd) {
- #ifdef DEBUG
- printf("Request Password key -%s\n",md5key);
- #endif
-
- RFIFOSKIP(fd,2);
- WFIFOW(fd,0)=0x01dc;
- WFIFOW(fd,2)=4+md5keylen;
- memcpy(WFIFOP(fd,4),md5key,md5keylen);
- WFIFOSET(fd,WFIFOW(fd,2));
-}
-
-//----------------------------------------------------
-// Char-server requesting connection [Edit: Wizputer]
-//-----------------------------------------------------
-void char_request_login(int fd, unsigned char *p) {
- struct mmo_account account;
- unsigned char* server_name;
- char t_uid[32];
- int result;
-
- sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s@%s','100', 'charserver - %s@%d.%d.%d.%d:%d')", loginlog_db, p[0], p[1], p[2], p[3], RFIFOP(fd, 2),RFIFOP(fd, 60),RFIFOP(fd, 60), RFIFOB(fd, 54), RFIFOB(fd, 55), RFIFOB(fd, 56), RFIFOB(fd, 57), RFIFOW(fd, 58));
- sql_query(tmpsql,"char_request_login");
-
- #ifdef DEBUG
- printf("server connection request %s @ %d.%d.%d.%d:%d (%d.%d.%d.%d)\n",
- RFIFOP(fd, 60), RFIFOB(fd, 54), RFIFOB(fd, 55), RFIFOB(fd, 56), RFIFOB(fd, 57), RFIFOW(fd, 58),
- p[0], p[1], p[2], p[3]);
- #endif
-
- account.userid = RFIFOP(fd, 2);
- account.passwd = RFIFOP(fd, 26);
- account.passwdenc = 0;
- server_name = RFIFOP(fd,60);
- result = mmo_auth(&account, fd);
-
- #ifdef DEBUG
- printf("Result: %d - Sex: %d - Account ID: %d\n",result,account.sex,(int) account.account_id);
- #endif
-
- if(result == -1 && account.sex==2 && account.account_id<MAX_SERVERS && server_fd[account.account_id]==-1){
- printf("Connection of the char-server '%s' accepted.\n", server_name);
-
- memset(&server[account.account_id], 0, sizeof(struct mmo_char_server));
-
- server[account.account_id].ip=RFIFOL(fd,54);
- server[account.account_id].port=RFIFOW(fd,58);
- memcpy(server[account.account_id].name,RFIFOP(fd,60),20);
- server[account.account_id].users=0;
- server[account.account_id].maintenance=RFIFOW(fd,82);
- server[account.account_id].new=RFIFOW(fd,84);
- server_fd[account.account_id]=fd;
-
- if(anti_freeze_enable)
- server_freezeflag[account.account_id] = 5; // Char-server anti-freeze system. Counter. 5 ok, 4...0 freezed
-
- jstrescapecpy(t_uid,server[account.account_id].name);
-
- sprintf(tmpsql,"REPLACE DELAYED INTO `sstatus`(`index`,`name`,`user`) VALUES ( '%ld', '%s', '%d')",
- account.account_id, server[account.account_id].name,0);
- sql_query(tmpsql,"char_request_login");
-
- WFIFOW(fd,0)=0x2711;
- WFIFOB(fd,2)=0;
- WFIFOSET(fd,3);
- session[fd]->func_parse=parse_fromchar;
- realloc_fifo(fd,FIFOSIZE_SERVERLINK,FIFOSIZE_SERVERLINK);
-
- servers_connected++;
- } else {
- WFIFOW(fd, 0) =0x2711;
- WFIFOB(fd, 2)=3;
- WFIFOSET(fd, 3);
- }
-
- RFIFOSKIP(fd, 86);
-}
-
-//---------------------------------------------
-// Athena Version Info Request [Edit: Wizputer]
-//---------------------------------------------
-void request_athena_info(int fd) {
- #ifdef DEBUG
- printf ("Athena version check...\n");
- #endif
-
- WFIFOW(fd,0)=0x7531;
- WFIFOB(fd,2)=ATHENA_MAJOR_VERSION;
- WFIFOB(fd,3)=ATHENA_MINOR_VERSION;
- WFIFOB(fd,4)=ATHENA_REVISION;
- WFIFOB(fd,5)=ATHENA_RELEASE_FLAG;
- WFIFOB(fd,6)=ATHENA_OFFICIAL_FLAG;
- WFIFOB(fd,7)=ATHENA_SERVER_LOGIN;
- WFIFOW(fd,8)=ATHENA_MOD_VERSION;
- WFIFOSET(fd,10);
- RFIFOSKIP(fd,2);
-}
-
-//----------------------------------------------------------------------------------------
-// Default packet parsing (normal players or administation/char-server connection requests)
-//----------------------------------------------------------------------------------------
-int parse_login(int fd) {
- char ip[16];
-
- unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr;
- sprintf(ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]);
-
- if (ipban > 0) {
- //ip ban
- //p[0], p[1], p[2], p[3]
- //request DB connection
- //check
- sprintf(tmpsql, "SELECT count(*) FROM `ipbanlist` WHERE `list` = '%d.*.*.*' OR `list` = '%d.%d.*.*' OR `list` = '%d.%d.%d.*' OR `list` = '%d.%d.%d.%d'",
- p[0], p[0], p[1], p[0], p[1], p[2], p[0], p[1], p[2], p[3]);
- sql_query(tmpsql,"parse_login");
-
- if((sql_res = mysql_store_result(&mysql_handle))) {
- if((sql_row = mysql_fetch_row(sql_res))) {//row fetching
- if (atoi(sql_row[0]) >0) {
- // ip ban ok.
- printf ("packet from banned ip : %d.%d.%d.%d" RETCODE, p[0], p[1], p[2], p[3]);
-
- sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', 'unknown','-3', 'ip banned')", loginlog_db, p[0], p[1], p[2], p[3]);
- sql_query(tmpsql,"parse_login");
-
- #ifdef DEBUG
- printf ("close session connection...\n");
- #endif
-
- // close connection
- session[fd]->eof = 1;
- } else {
- #ifdef DEBUG
- printf ("packet from ip (ban check ok) : %d.%d.%d.%d" RETCODE, p[0], p[1], p[2], p[3]);
- #endif
- }
- }
- }
-
- mysql_free_result(sql_res);
- }
-
- if (session[fd]->eof) {
- int i;
- for(i = 0; i < MAX_SERVERS && i < servers_connected; i++)
- if (server_fd[i] == fd) {
- server_fd[i] = -1;
- servers_connected--;
- }
- close(fd);
- delete_session(fd);
- return 0;
- }
-
- while(RFIFOREST(fd)>=2){
- #ifdef DEBUG_PACKETS
- printf("parse_login : %d %d packet case=%x\n", fd, RFIFOREST(fd), RFIFOW(fd,0));
- #endif
-
- switch(RFIFOW(fd,0)){
- case 0x200: // New alive packet: structure: 0x200 <account.userid>.24B. used to verify if client is always alive.
- if (RFIFOREST(fd) < 26)
- return 0;
- RFIFOSKIP(fd,26);
- break;
-
- case 0x204: // New alive packet: structure: 0x204 <encrypted.account.userid>.16B. (new ragexe from 22 june 2004)
- if (RFIFOREST(fd) < 18)
- return 0;
- RFIFOSKIP(fd,18);
- break;
-
- case 0x64:
- case 0x01dd:
- if(RFIFOREST(fd)< ((RFIFOW(fd, 0) ==0x64)?55:47))
- return 0;
- client_request_login(fd, p);
- break;
- case 0x01db:
- if (session[fd]->session_data) {
- #ifdef DEBUG
- printf("login: abnormal request of MD5 key (already opened session).\n");
- #endif
- session[fd]->eof = 1;
- return 0;
- }
- md5_key_request(fd);
- break;
-
- case 0x2710:
- if(RFIFOREST(fd)<86)
- return 0;
- char_request_login(fd,p);
- break;
-
- case 0x7530:
- request_athena_info(fd);
- break;
-
- case 0x7532:
- default:
- #ifdef DEBUG
- printf ("End of connection (ip: %s)" RETCODE, ip);
- #endif
- session[fd]->eof = 1;
- return 0;
- }
- }
-
- return 0;
-}
-
+#include <stdio.h> +#include <stdlib.h> +#include <time.h> +#include <signal.h> +#include <fcntl.h> +#include <string.h> + +#include "login.h" +#include "char_int.h" + +//---------------------- +// Client requesting login [Edit: Wizputer] +//---------------------- +void client_request_login(int fd,unsigned char *p ) { + struct mmo_account account; + char t_uid[32]; + int server_num = 0,result,i; + + if( !servers_connected) { + WFIFOW(fd,0) = 0x81; + WFIFOL(fd,2) = 1; // 01 = Server closed + WFIFOSET(fd,3); + } + + #ifdef DEBUG + printf("client connection request %s from %d.%d.%d.%d\n", RFIFOP(fd, 6), p[0], p[1], p[2], p[3]); + #endif + + account.userid = RFIFOP(fd, 6); + account.passwd = RFIFOP(fd, 30); +#ifdef PASSWORDENC + account.passwdenc= (RFIFOW(fd,0)==0x64)?0:PASSWORDENC; +#else + account.passwdenc=0; +#endif + result=mmo_auth(&account, fd); + + jstrescapecpy(t_uid,RFIFOP(fd, 6)); + if(result==-1){ + unsigned char gm_level = isGM(account.account_id); + if (min_level_to_connect > gm_level || !servers_connected) { + WFIFOW(fd,0) = 0x81; + WFIFOL(fd,2) = 1; // 01 = Server closed + WFIFOSET(fd,3); + } else { + if (p[0] != 127) { + sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s','100', 'login ok')", loginlog_db, p[0], p[1], p[2], p[3], t_uid); + sql_query(tmpsql,"client_request_login"); + } + + if (gm_level) { + #ifdef DEBUG + printf("Connection of the GM (level:%d) account '%s' accepted.\n", gm_level, account.userid); + #endif + } else { + #ifdef DEBUG + printf("Connection of the account '%s' accepted.\n", account.userid); + #endif + } + + for(i = 0; i < MAX_SERVERS || server_num < servers_connected ; i++) + if (server_fd[i] >= 0) { + //Lan check added by Kashy + if (lan_ip_check(p)) + WFIFOL(fd,47+server_num*32) = inet_addr(lan_char_ip); + else + WFIFOL(fd,47+server_num*32) = server[i].ip; + + WFIFOW(fd,47+server_num*32+4) = server[i].port; + memcpy(WFIFOP(fd,47+server_num*32+6), server[i].name, 20); + WFIFOW(fd,47+server_num*32+26) = server[i].users; + WFIFOW(fd,47+server_num*32+28) = server[i].maintenance; + WFIFOW(fd,47+server_num*32+30) = server[i].new; + server_num++; + } + + WFIFOW(fd,0)=0x69; + WFIFOW(fd,2)=47+32*server_num; + WFIFOL(fd,4)=account.login_id1; + WFIFOL(fd,8)=account.account_id; + WFIFOL(fd,12)=account.login_id2; + WFIFOL(fd,16)=0; + memcpy(WFIFOP(fd,20),account.lastlogin,24); + WFIFOB(fd,46)=account.sex; + WFIFOSET(fd,47+32*server_num); + + if(auth_fifo_pos>=AUTH_FIFO_SIZE) + auth_fifo_pos=0; + + auth_fifo[auth_fifo_pos].account_id=account.account_id; + auth_fifo[auth_fifo_pos].login_id1=account.login_id1; + auth_fifo[auth_fifo_pos].login_id2=account.login_id2; + auth_fifo[auth_fifo_pos].sex=account.sex; + auth_fifo[auth_fifo_pos].delflag=0; + auth_fifo[auth_fifo_pos].ip = session[fd]->client_addr.sin_addr.s_addr; + auth_fifo_pos++; + } + } else { + char error[32]; + + sprintf(tmpsql,"SELECT `error` FROM `errors` WHERE `result`='%d'",result); + sql_query(tmpsql,"client_request_login"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if ((sql_row = mysql_fetch_row(sql_res))) { + sprintf(error,sql_row[0]); + } else { + sprintf(error,"No Error!"); + } + } + + + sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s', '%d','login failed : %s')", loginlog_db, p[0], p[1], p[2], p[3], t_uid, result, error); + + + sql_query(tmpsql,"client_request_login"); + + if ((result == 1) && (dynamic_pass_failure_ban != 0)){ // failed password + sprintf(tmpsql,"SELECT count(*) FROM `%s` WHERE `ip` = '%d.%d.%d.%d' AND `rcode` = '1' AND `time` > NOW() - INTERVAL %d MINUTE", + loginlog_db, p[0], p[1], p[2], p[3], dynamic_pass_failure_ban_time); //how many times filed account? in one ip. + sql_query(tmpsql,"client_request_login"); + + if ((sql_res = mysql_store_result(&mysql_handle))) { + if ((sql_row = mysql_fetch_row(sql_res))) { + if (atoi(sql_row[0]) >= dynamic_pass_failure_ban_how_many ) { + sprintf(tmpsql,"INSERT INTO `ipbanlist`(`list`,`btime`,`rtime`,`reason`) VALUES ('%d.%d.%d.*', NOW() , NOW() + INTERVAL %d MINUTE ,'Password error ban: %s')", p[0], p[1], p[2], dynamic_pass_failure_ban_how_long, t_uid); + sql_query(tmpsql,"client_request_login"); + } + } + } + + + mysql_free_result(sql_res); + + } + + //cannot connect login failed + memset(WFIFOP(fd,0),'\0',23); + WFIFOW(fd,0)=0x6a; + WFIFOB(fd,2)=result-1; + if (result == 6) { // 6 = Your are Prohibited to log in until %s + char tmpstr[256]; + strftime(tmpstr, 20, date_format, localtime(&account.ban_until_time)); + tmpstr[19] = '\0'; + memcpy(WFIFOP(fd,3), tmpstr, 20); + } else { // we send error message + memcpy(WFIFOP(fd,3), error, 20); + } + } + + WFIFOSET(fd,23); + + RFIFOSKIP(fd,(RFIFOW(fd,0)==0x64)?55:47); +} + +//------------------------------------------------------ +// MD5 Key requested for encypted login [Edit: Wizputer +//------------------------------------------------------ +void md5_key_request(int fd) { + #ifdef DEBUG + printf("Request Password key -%s\n",md5key); + #endif + + RFIFOSKIP(fd,2); + WFIFOW(fd,0)=0x01dc; + WFIFOW(fd,2)=4+md5keylen; + memcpy(WFIFOP(fd,4),md5key,md5keylen); + WFIFOSET(fd,WFIFOW(fd,2)); +} + +//---------------------------------------------------- +// Char-server requesting connection [Edit: Wizputer] +//----------------------------------------------------- +void char_request_login(int fd, unsigned char *p) { + struct mmo_account account; + unsigned char* server_name; + char t_uid[32]; + int result; + + sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', '%s@%s','100', 'charserver - %s@%d.%d.%d.%d:%d')", loginlog_db, p[0], p[1], p[2], p[3], RFIFOP(fd, 2),RFIFOP(fd, 60),RFIFOP(fd, 60), RFIFOB(fd, 54), RFIFOB(fd, 55), RFIFOB(fd, 56), RFIFOB(fd, 57), RFIFOW(fd, 58)); + sql_query(tmpsql,"char_request_login"); + + #ifdef DEBUG + printf("server connection request %s @ %d.%d.%d.%d:%d (%d.%d.%d.%d)\n", + RFIFOP(fd, 60), RFIFOB(fd, 54), RFIFOB(fd, 55), RFIFOB(fd, 56), RFIFOB(fd, 57), RFIFOW(fd, 58), + p[0], p[1], p[2], p[3]); + #endif + + account.userid = RFIFOP(fd, 2); + account.passwd = RFIFOP(fd, 26); + account.passwdenc = 0; + server_name = RFIFOP(fd,60); + result = mmo_auth(&account, fd); + + #ifdef DEBUG + printf("Result: %d - Sex: %d - Account ID: %d\n",result,account.sex,(int) account.account_id); + #endif + + if(result == -1 && account.sex==2 && account.account_id<MAX_SERVERS && server_fd[account.account_id]==-1){ + printf("Connection of the char-server '%s' accepted.\n", server_name); + + memset(&server[account.account_id], 0, sizeof(struct mmo_char_server)); + + server[account.account_id].ip=RFIFOL(fd,54); + server[account.account_id].port=RFIFOW(fd,58); + memcpy(server[account.account_id].name,RFIFOP(fd,60),20); + server[account.account_id].users=0; + server[account.account_id].maintenance=RFIFOW(fd,82); + server[account.account_id].new=RFIFOW(fd,84); + server_fd[account.account_id]=fd; + + if(anti_freeze_enable) + server_freezeflag[account.account_id] = 5; // Char-server anti-freeze system. Counter. 5 ok, 4...0 freezed + + jstrescapecpy(t_uid,server[account.account_id].name); + + sprintf(tmpsql,"REPLACE DELAYED INTO `sstatus`(`index`,`name`,`user`) VALUES ( '%ld', '%s', '%d')", + account.account_id, server[account.account_id].name,0); + sql_query(tmpsql,"char_request_login"); + + WFIFOW(fd,0)=0x2711; + WFIFOB(fd,2)=0; + WFIFOSET(fd,3); + session[fd]->func_parse=parse_fromchar; + realloc_fifo(fd,FIFOSIZE_SERVERLINK,FIFOSIZE_SERVERLINK); + + servers_connected++; + } else { + WFIFOW(fd, 0) =0x2711; + WFIFOB(fd, 2)=3; + WFIFOSET(fd, 3); + } + + RFIFOSKIP(fd, 86); +} + +//--------------------------------------------- +// Athena Version Info Request [Edit: Wizputer] +//--------------------------------------------- +void request_athena_info(int fd) { + #ifdef DEBUG + printf ("Athena version check...\n"); + #endif + + WFIFOW(fd,0)=0x7531; + WFIFOB(fd,2)=ATHENA_MAJOR_VERSION; + WFIFOB(fd,3)=ATHENA_MINOR_VERSION; + WFIFOB(fd,4)=ATHENA_REVISION; + WFIFOB(fd,5)=ATHENA_RELEASE_FLAG; + WFIFOB(fd,6)=ATHENA_OFFICIAL_FLAG; + WFIFOB(fd,7)=ATHENA_SERVER_LOGIN; + WFIFOW(fd,8)=ATHENA_MOD_VERSION; + WFIFOSET(fd,10); + RFIFOSKIP(fd,2); +} + +//---------------------------------------------------------------------------------------- +// Default packet parsing (normal players or administation/char-server connection requests) +//---------------------------------------------------------------------------------------- +int parse_login(int fd) { + char ip[16]; + + unsigned char *p = (unsigned char *) &session[fd]->client_addr.sin_addr; + sprintf(ip, "%d.%d.%d.%d", p[0], p[1], p[2], p[3]); + + if (ipban > 0) { + //ip ban + //p[0], p[1], p[2], p[3] + //request DB connection + //check + sprintf(tmpsql, "SELECT count(*) FROM `ipbanlist` WHERE `list` = '%d.*.*.*' OR `list` = '%d.%d.*.*' OR `list` = '%d.%d.%d.*' OR `list` = '%d.%d.%d.%d'", + p[0], p[0], p[1], p[0], p[1], p[2], p[0], p[1], p[2], p[3]); + sql_query(tmpsql,"parse_login"); + + if((sql_res = mysql_store_result(&mysql_handle))) { + if((sql_row = mysql_fetch_row(sql_res))) {//row fetching + if (atoi(sql_row[0]) >0) { + // ip ban ok. + printf ("packet from banned ip : %d.%d.%d.%d" RETCODE, p[0], p[1], p[2], p[3]); + + sprintf(tmpsql,"INSERT DELAYED INTO `%s`(`time`,`ip`,`user`,`rcode`,`log`) VALUES (NOW(), '%d.%d.%d.%d', 'unknown','-3', 'ip banned')", loginlog_db, p[0], p[1], p[2], p[3]); + sql_query(tmpsql,"parse_login"); + + #ifdef DEBUG + printf ("close session connection...\n"); + #endif + + // close connection + session[fd]->eof = 1; + } else { + #ifdef DEBUG + printf ("packet from ip (ban check ok) : %d.%d.%d.%d" RETCODE, p[0], p[1], p[2], p[3]); + #endif + } + } + } + + mysql_free_result(sql_res); + } + + if (session[fd]->eof) { + int i; + for(i = 0; i < MAX_SERVERS && i < servers_connected; i++) + if (server_fd[i] == fd) { + server_fd[i] = -1; + servers_connected--; + } + close(fd); + delete_session(fd); + return 0; + } + + while(RFIFOREST(fd)>=2){ + #ifdef DEBUG_PACKETS + printf("parse_login : %d %d packet case=%x\n", fd, RFIFOREST(fd), RFIFOW(fd,0)); + #endif + + switch(RFIFOW(fd,0)){ + case 0x200: // New alive packet: structure: 0x200 <account.userid>.24B. used to verify if client is always alive. + if (RFIFOREST(fd) < 26) + return 0; + RFIFOSKIP(fd,26); + break; + + case 0x204: // New alive packet: structure: 0x204 <encrypted.account.userid>.16B. (new ragexe from 22 june 2004) + if (RFIFOREST(fd) < 18) + return 0; + RFIFOSKIP(fd,18); + break; + + case 0x64: + case 0x01dd: + if(RFIFOREST(fd)< ((RFIFOW(fd, 0) ==0x64)?55:47)) + return 0; + client_request_login(fd, p); + break; + case 0x01db: + if (session[fd]->session_data) { + #ifdef DEBUG + printf("login: abnormal request of MD5 key (already opened session).\n"); + #endif + session[fd]->eof = 1; + return 0; + } + md5_key_request(fd); + break; + + case 0x2710: + if(RFIFOREST(fd)<86) + return 0; + char_request_login(fd,p); + break; + + case 0x7530: + request_athena_info(fd); + break; + + case 0x7532: + default: + #ifdef DEBUG + printf ("End of connection (ip: %s)" RETCODE, ip); + #endif + session[fd]->eof = 1; + return 0; + } + } + + return 0; +} + diff --git a/src/login_sql/login_int.h b/src/login_sql/login_int.h index e245d39aa..712585616 100644 --- a/src/login_sql/login_int.h +++ b/src/login_sql/login_int.h @@ -1 +1 @@ -int parse_login(int);
+int parse_login(int); diff --git a/src/map/charcommand.c b/src/map/charcommand.c index 27dbd260f..de05e20ae 100644 --- a/src/map/charcommand.c +++ b/src/map/charcommand.c @@ -1,703 +1,703 @@ -#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <ctype.h>
-#include <math.h>
-
-#include "../common/socket.h"
-#include "../common/timer.h"
-#include "../common/nullpo.h"
-
-#include "log.h"
-#include "clif.h"
-#include "chrif.h"
-#include "intif.h"
-#include "itemdb.h"
-#include "map.h"
-#include "pc.h"
-#include "skill.h"
-#include "mob.h"
-#include "pet.h"
-#include "battle.h"
-#include "party.h"
-#include "guild.h"
-#include "charcommand.h"
-#include "atcommand.h"
-#include "script.h"
-#include "npc.h"
-#include "trade.h"
-#include "core.h"
-
-static char command_symbol = '#';
-
-static char msg_table[1000][1024]; // Server messages (0-499 reserved for GM commands, 500-999 reserved for others)
-
-#define CCMD_FUNC(x) int charcommand_ ## x (const int fd, struct map_session_data* sd, const char* command, const char* message)
-
-CCMD_FUNC(jobchange);
-CCMD_FUNC(petrename);
-CCMD_FUNC(petfriendly);
-CCMD_FUNC(stats);
-CCMD_FUNC(option);
-CCMD_FUNC(save);
-CCMD_FUNC(stats_all);
-CCMD_FUNC(reset);
-
-#ifdef TXT_ONLY
-/* TXT_ONLY */
-
-/* TXT_ONLY */
-#else
-/* SQL-only */
-
-/* SQL Only */
-#endif
-
-/*==========================================
- *CharCommandInfo charcommand_info[]\‘¢‘Ì‚Ì’è‹`
- *------------------------------------------
- */
-
-// First char of commands is configured in charcommand_athena.conf. Leave @ in this list for default value.
-// to set default level, read charcommand_athena.conf first please.
-static CharCommandInfo charcommand_info[] = {
- { CharCommandJobChange, "#job", 60, charcommand_jobchange },
- { CharCommandJobChange, "#jobchange", 60, charcommand_jobchange },
- { CharCommandPetRename, "#petrename", 50, charcommand_petrename },
- { CharCommandPetFriendly, "#petfriendly", 50, charcommand_petfriendly },
- { CharCommandStats, "#stats", 40, charcommand_stats },
- { CharCommandOption, "#option", 60, charcommand_option },
- { CharCommandReset, "#reset", 60, charcommand_reset },
- { CharCommandSave, "#save", 60, charcommand_save },
- { CharCommandStatsAll, "#statsall", 40, charcommand_stats_all },
-
-#ifdef TXT_ONLY
-/* TXT_ONLY */
-
-/* TXT_ONLY */
-#else
-/* SQL-only */
-
-/* SQL Only */
-#endif
-
-// add new commands before this line
- { CharCommand_Unknown, NULL, 1, NULL }
-};
-
-
-int get_charcommand_level(const CharCommandType type) {
- int i;
-
- for (i = 0; charcommand_info[i].type != CharCommand_None; i++)
- if (charcommand_info[i].type == type)
- return charcommand_info[i].level;
-
- return 100; // 100: command can not be used
-}
-
-/*==========================================
- *is_charcommand @ƒRƒ}ƒ“ƒh‚É‘¶Ý‚·‚é‚©‚Ç‚¤‚©Šm”F‚·‚é
- *------------------------------------------
- */
-CharCommandType
-is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl) {
- const char* str = message;
- int s_flag = 0;
- CharCommandInfo info;
- CharCommandType type;
-
- nullpo_retr(CharCommand_None, sd);
-
- if (!message || !*message)
- return CharCommand_None;
-
- memset(&info, 0, sizeof(info));
- str += strlen(sd->status.name);
- while (*str && (isspace(*str) || (s_flag == 0 && *str == ':'))) {
- if (*str == ':')
- s_flag = 1;
- str++;
- }
- if (!*str)
- return CharCommand_None;
-
- type = charcommand(gmlvl > 0 ? gmlvl : pc_isGM(sd), str, &info);
- if (type != CharCommand_None) {
- char command[100];
- char output[200];
- const char* p = str;
- memset(command, '\0', sizeof(command));
- memset(output, '\0', sizeof(output));
- while (*p && !isspace(*p))
- p++;
- if (p - str >= sizeof(command)) // too long
- return CharCommand_Unknown;
- strncpy(command, str, p - str);
- while (isspace(*p))
- p++;
-
- if (type == CharCommand_Unknown || info.proc == NULL) {
- snprintf(output, sizeof(output),msg_txt(153), command); // %s is Unknown Command.
- clif_displaymessage(fd, output);
- } else {
- if (info.proc(fd, sd, command, p) != 0) {
- // Command can not be executed
- snprintf(output, sizeof(output), msg_txt(154), command); // %s failed.
- clif_displaymessage(fd, output);
- }
- }
-
- return info.type;
- }
-
- return CharCommand_None;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-CharCommandType charcommand(const int level, const char* message, struct CharCommandInfo* info) {
- char* p = (char *)message;
-
- if (!info)
- return CharCommand_None;
- if (battle_config.atc_gmonly != 0 && !level) // level = pc_isGM(sd)
- return CharCommand_None;
- if (!p || !*p) {
- fprintf(stderr, "char command message is empty\n");
- return CharCommand_None;
- }
-
- if (*p == command_symbol) { // check first char.
- char command[101];
- int i = 0;
- memset(info, 0, sizeof(CharCommandInfo));
- sscanf(p, "%100s", command);
- command[sizeof(command)-1] = '\0';
-
- while (charcommand_info[i].type != CharCommand_Unknown) {
- if (strcmpi(command+1, charcommand_info[i].command+1) == 0 && level >= charcommand_info[i].level) {
- p[0] = charcommand_info[i].command[0]; // set correct first symbol for after.
- break;
- }
- i++;
- }
-
- if (charcommand_info[i].type == CharCommand_Unknown) {
- // doesn't return Unknown if player is normal player (display the text, not display: unknown command)
- if (level == 0)
- return CharCommand_None;
- else
- return CharCommand_Unknown;
- }
- memcpy(info, &charcommand_info[i], sizeof charcommand_info[i]);
- } else {
- return CharCommand_None;
- }
-
- return info->type;
-}
-
-
-/*==========================================
- *
- *------------------------------------------
- */
-static CharCommandInfo* get_charcommandinfo_byname(const char* name) {
- int i;
-
- for (i = 0; charcommand_info[i].type != CharCommand_Unknown; i++)
- if (strcmpi(charcommand_info[i].command + 1, name) == 0)
- return &charcommand_info[i];
-
- return NULL;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_config_read(const char *cfgName) {
- char line[1024], w1[1024], w2[1024];
- CharCommandInfo* p;
- FILE* fp;
-
- if ((fp = fopen(cfgName, "r")) == NULL) {
- printf("CharCommands configuration file not found: %s\n", cfgName);
- return 1;
- }
-
- while (fgets(line, sizeof(line)-1, fp)) {
- if (line[0] == '/' && line[1] == '/')
- continue;
-
- if (sscanf(line, "%1023[^:]:%1023s", w1, w2) != 2)
- continue;
- p = get_charcommandinfo_byname(w1);
- if (p != NULL) {
- p->level = atoi(w2);
- if (p->level > 100)
- p->level = 100;
- else if (p->level < 0)
- p->level = 0;
- }
-
- if (strcmpi(w1, "import") == 0)
- charcommand_config_read(w2);
- else if (strcmpi(w1, "command_symbol") == 0 && w2[0] > 31 &&
- w2[0] != '/' && // symbol of standard ragnarok GM commands
- w2[0] != '%' && // symbol of party chat speaking
- w2[0] != '@') // symbol for @commands
- command_symbol = w2[0];
- }
- fclose(fp);
-
- return 0;
-}
-
-/*==========================================
- * ‘ÎÛƒLƒƒƒ‰ƒNƒ^[‚ð“]E‚³‚¹‚é upperŽw’è‚Å“]¶‚â—{Žq‚à‰Â”\
- *------------------------------------------
- */
-int charcommand_jobchange(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char character[100];
- struct map_session_data* pl_sd;
- int job = 0, upper = -1;
-
- memset(character, '\0', sizeof(character));
-
- if (!message || !*message) {
- clif_displaymessage(fd, "Please, enter a job and a player name (usage: #job/#jobchange <job ID> <char name>).");
- return -1;
- }
-
- if (sscanf(message, "%d %d %99[^\n]", &job, &upper, character) < 3) { //upperŽw’肵‚Ä‚ ‚é
- upper = -1;
- if (sscanf(message, "%d %99[^\n]", &job, character) < 2) { //upperŽw’肵‚Ä‚È‚¢ã‚ɉ½‚©‘«‚è‚È‚¢
- clif_displaymessage(fd, "Please, enter a job and a player name (usage: #job/#jobchange <job ID> <char name>).");
- return -1;
- }
- }
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job only to lower or same level
- if ((job >= 0 && job < MAX_PC_CLASS)) {
-
- // fix pecopeco display
- if ((job != 13 && job != 21 && job != 4014 && job != 4022)) {
- if (pc_isriding(sd)) {
- if (pl_sd->status.class == 13)
- pl_sd->status.class = pl_sd->view_class = 7;
- if (pl_sd->status.class == 21)
- pl_sd->status.class = pl_sd->view_class = 14;
- if (pl_sd->status.class == 4014)
- pl_sd->status.class = pl_sd->view_class = 4008;
- if (pl_sd->status.class == 4022)
- pl_sd->status.class = pl_sd->view_class = 4015;
- pl_sd->status.option &= ~0x0020;
- clif_changeoption(&pl_sd->bl);
- pc_calcstatus(pl_sd, 0);
- }
- } else {
- if (!pc_isriding(sd)) {
- if (job == 13)
- job = 7;
- if (job == 21)
- job = 14;
- if (job == 4014)
- job = 4008;
- if (job == 4022)
- job = 4015;
- }
- }
-
- if (pc_jobchange(pl_sd, job, upper) == 0)
- clif_displaymessage(fd, msg_table[48]); // Character's job changed.
- else {
- clif_displaymessage(fd, msg_table[192]); // Impossible to change the character's job.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[49]); // Invalid job ID.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[3]); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_petrename(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char character[100];
- struct map_session_data *pl_sd;
-
- memset(character, '\0', sizeof(character));
-
- if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) {
- clif_displaymessage(fd, "Please, enter a player name (usage: #petrename <char name>).");
- return -1;
- }
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- if (pl_sd->status.pet_id > 0 && pl_sd->pd) {
- if (pl_sd->pet.rename_flag != 0) {
- pl_sd->pet.rename_flag = 0;
- intif_save_petdata(pl_sd->status.account_id, &pl_sd->pet);
- clif_send_petstatus(pl_sd);
- clif_displaymessage(fd, msg_table[189]); // This player can now rename his/her pet.
- } else {
- clif_displaymessage(fd, msg_table[190]); // This player can already rename his/her pet.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[191]); // Sorry, but this player has no pet.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_txt(3)); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_petfriendly(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- int friendly = 0;
- int t = 0;
- char character[100];
- struct map_session_data *pl_sd;
-
- memset(character, '\0', sizeof(character));
- if (!message || !*message || sscanf(message,"%d %s",&friendly,character) < 2) {
- clif_displaymessage(fd, "Please, enter a valid value (usage: "
- "#petfriendly <0-1000> <player>).");
- return -1;
- }
-
- if (((pl_sd = map_nick2sd(character)) != NULL) && pc_isGM(sd)>pc_isGM(pl_sd)) {
- if (pl_sd->status.pet_id > 0 && pl_sd->pd) {
- if (friendly >= 0 && friendly <= 1000) {
- if (friendly != pl_sd->pet.intimate) {
- t = pl_sd->pet.intimate;
- pl_sd->pet.intimate = friendly;
- clif_send_petstatus(pl_sd);
- clif_pet_emotion(pl_sd->pd,0);
- if (battle_config.pet_status_support) {
- if ((pl_sd->pet.intimate > 0 && t <= 0) ||
- (pl_sd->pet.intimate <= 0 && t > 0)) {
- if (pl_sd->bl.prev != NULL)
- pc_calcstatus(pl_sd, 0);
- else
- pc_calcstatus(pl_sd, 2);
- }
- }
- clif_displaymessage(pl_sd->fd, msg_table[182]); // Pet friendly value changed!
- clif_displaymessage(sd->fd, msg_table[182]); // Pet friendly value changed!
- } else {
- clif_displaymessage(fd, msg_table[183]); // Pet friendly is already the good value.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[37]); // An invalid number was specified.
- return -1;
- }
- } else {
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_txt(3)); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_stats(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char character[100];
- char job_jobname[100];
- char output[200];
- struct map_session_data *pl_sd;
- int i;
-
- memset(character, '\0', sizeof(character));
- memset(job_jobname, '\0', sizeof(job_jobname));
- memset(output, '\0', sizeof(output));
-
- if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) {
- clif_displaymessage(fd, "Please, enter a player name (usage: #stats <char name>).");
- return -1;
- }
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- struct {
- const char* format;
- int value;
- } output_table[] = {
- { "Base Level - %d", pl_sd->status.base_level },
- { job_jobname, pl_sd->status.job_level },
- { "Hp - %d", pl_sd->status.hp },
- { "MaxHp - %d", pl_sd->status.max_hp },
- { "Sp - %d", pl_sd->status.sp },
- { "MaxSp - %d", pl_sd->status.max_sp },
- { "Str - %3d", pl_sd->status.str },
- { "Agi - %3d", pl_sd->status.agi },
- { "Vit - %3d", pl_sd->status.vit },
- { "Int - %3d", pl_sd->status.int_ },
- { "Dex - %3d", pl_sd->status.dex },
- { "Luk - %3d", pl_sd->status.luk },
- { "Zeny - %d", pl_sd->status.zeny },
- { NULL, 0 }
- };
- sprintf(job_jobname, "Job - %s %s", job_name(pl_sd->status.class), "(level %d)");
- sprintf(output, msg_table[53], pl_sd->status.name); // '%s' stats:
- clif_displaymessage(fd, output);
- for (i = 0; output_table[i].format != NULL; i++) {
- sprintf(output, output_table[i].format, output_table[i].value);
- clif_displaymessage(fd, output);
- }
- } else {
- clif_displaymessage(fd, msg_table[3]); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- * Character Reset
- *------------------------------------------
- */
-int charcommand_reset(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char character[100];
- char output[200];
- struct map_session_data *pl_sd;
-
- memset(character, '\0', sizeof(character));
- memset(output, '\0', sizeof(output));
-
- if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) {
- clif_displaymessage(fd, "Please, enter a player name (usage: #reset <charname>).");
- return -1;
- }
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can reset a character only for lower or same GM level
- pc_resetstate(pl_sd);
- pc_resetskill(pl_sd);
- sprintf(output, msg_table[208], character); // '%s' skill and stats points reseted!
- clif_displaymessage(fd, output);
- } else {
- clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[3]); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_option(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char character[100];
- int opt1 = 0, opt2 = 0, opt3 = 0;
- struct map_session_data* pl_sd;
-
- memset(character, '\0', sizeof(character));
-
- if (!message || !*message ||
- sscanf(message, "%d %d %d %99[^\n]", &opt1, &opt2, &opt3, character) < 4 ||
- opt1 < 0 || opt2 < 0 || opt3 < 0) {
- clif_displaymessage(fd, "Please, enter valid options and a player name (usage: #option <param1> <param2> <param3> <charname>).");
- return -1;
- }
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change option only to lower or same level
- pl_sd->opt1 = opt1;
- pl_sd->opt2 = opt2;
- pl_sd->status.option = opt3;
- // fix pecopeco display
- if (pl_sd->status.class == 13 || pl_sd->status.class == 21 || pl_sd->status.class == 4014 || pl_sd->status.class == 4022) {
- if (!pc_isriding(pl_sd)) { // pl_sd have the new value...
- if (pl_sd->status.class == 13)
- pl_sd->status.class = pl_sd->view_class = 7;
- else if (pl_sd->status.class == 21)
- pl_sd->status.class = pl_sd->view_class = 14;
- else if (pl_sd->status.class == 4014)
- pl_sd->status.class = pl_sd->view_class = 4008;
- else if (pl_sd->status.class == 4022)
- pl_sd->status.class = pl_sd->view_class = 4015;
- }
- } else {
- if (pc_isriding(pl_sd)) { // pl_sd have the new value...
- if (pl_sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor])
- pl_sd->status.option &= ~0x0020;
- } else {
- if (pl_sd->status.class == 7)
- pl_sd->status.class = pl_sd->view_class = 13;
- else if (pl_sd->status.class == 14)
- pl_sd->status.class = pl_sd->view_class = 21;
- else if (pl_sd->status.class == 4008)
- pl_sd->status.class = pl_sd->view_class = 4014;
- else if (pl_sd->status.class == 4015)
- pl_sd->status.class = pl_sd->view_class = 4022;
- else
- pl_sd->status.option &= ~0x0020;
- }
- }
- }
- clif_changeoption(&pl_sd->bl);
- pc_calcstatus(pl_sd, 0);
- clif_displaymessage(fd, msg_table[58]); // Character's options changed.
- } else {
- clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[3]); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-int charcommand_save(
- const int fd, struct map_session_data* sd,
- const char* command, const char* message)
-{
- char map_name[100];
- char character[100];
- struct map_session_data* pl_sd;
- int x = 0, y = 0;
- int m;
-
- memset(map_name, '\0', sizeof(map_name));
- memset(character, '\0', sizeof(character));
-
- if (!message || !*message || sscanf(message, "%99s %d %d %99[^\n]", map_name, &x, &y, character) < 4 || x < 0 || y < 0) {
- clif_displaymessage(fd, "Please, enter a valid save point and a player name (usage: #save <map> <x> <y> <charname>).");
- return -1;
- }
-
- if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < 13) // 16 - 4 (.gat)
- strcat(map_name, ".gat");
-
- if ((pl_sd = map_nick2sd(character)) != NULL) {
- if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change save point only to lower or same gm level
- m = map_mapname2mapid(map_name);
- if (m < 0) {
- clif_displaymessage(fd, msg_table[1]); // Map not found.
- return -1;
- } else {
- if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) {
- clif_displaymessage(fd, "You are not authorised to set this map as a save map.");
- return -1;
- }
- pc_setsavepoint(pl_sd, map_name, x, y);
- clif_displaymessage(fd, msg_table[57]); // Character's respawn point changed.
- }
- } else {
- clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
- return -1;
- }
- } else {
- clif_displaymessage(fd, msg_table[3]); // Character not found.
- return -1;
- }
-
- return 0;
-}
-
-/*==========================================
- *
- *------------------------------------------
- */
-//** Character Stats All by fritz
-int charcommand_stats_all(const int fd, struct map_session_data* sd, const char* command, const char* message)
-{
- char output[1024], gmlevel[1024];
- int i;
- int count;
- struct map_session_data *pl_sd;
-
- memset(output, '\0', sizeof(output));
- memset(gmlevel, '\0', sizeof(gmlevel));
-
- count = 0;
- for(i = 0; i < fd_max; i++) {
- if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) {
-
- if (pc_isGM(pl_sd) > 0)
- sprintf(gmlevel, "| GM Lvl: %d", pc_isGM(pl_sd));
- else
- sprintf(gmlevel, " ");
-
- sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp);
- clif_displaymessage(fd, output);
- sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel);
- clif_displaymessage(fd, output);
- clif_displaymessage(fd, "--------");
- count++;
- }
- }
-
- if (count == 0)
- clif_displaymessage(fd, msg_table[28]); // No player found.
- else if (count == 1)
- clif_displaymessage(fd, msg_table[29]); // 1 player found.
- else {
- sprintf(output, msg_table[30], count); // %d players found.
- clif_displaymessage(fd, output);
- }
-
- return 0;
-}
-
+#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include <math.h> + +#include "../common/socket.h" +#include "../common/timer.h" +#include "../common/nullpo.h" + +#include "log.h" +#include "clif.h" +#include "chrif.h" +#include "intif.h" +#include "itemdb.h" +#include "map.h" +#include "pc.h" +#include "skill.h" +#include "mob.h" +#include "pet.h" +#include "battle.h" +#include "party.h" +#include "guild.h" +#include "charcommand.h" +#include "atcommand.h" +#include "script.h" +#include "npc.h" +#include "trade.h" +#include "core.h" + +static char command_symbol = '#'; + +static char msg_table[1000][1024]; // Server messages (0-499 reserved for GM commands, 500-999 reserved for others) + +#define CCMD_FUNC(x) int charcommand_ ## x (const int fd, struct map_session_data* sd, const char* command, const char* message) + +CCMD_FUNC(jobchange); +CCMD_FUNC(petrename); +CCMD_FUNC(petfriendly); +CCMD_FUNC(stats); +CCMD_FUNC(option); +CCMD_FUNC(save); +CCMD_FUNC(stats_all); +CCMD_FUNC(reset); + +#ifdef TXT_ONLY +/* TXT_ONLY */ + +/* TXT_ONLY */ +#else +/* SQL-only */ + +/* SQL Only */ +#endif + +/*========================================== + *CharCommandInfo charcommand_info[]\‘¢‘Ì‚Ì’è‹` + *------------------------------------------ + */ + +// First char of commands is configured in charcommand_athena.conf. Leave @ in this list for default value. +// to set default level, read charcommand_athena.conf first please. +static CharCommandInfo charcommand_info[] = { + { CharCommandJobChange, "#job", 60, charcommand_jobchange }, + { CharCommandJobChange, "#jobchange", 60, charcommand_jobchange }, + { CharCommandPetRename, "#petrename", 50, charcommand_petrename }, + { CharCommandPetFriendly, "#petfriendly", 50, charcommand_petfriendly }, + { CharCommandStats, "#stats", 40, charcommand_stats }, + { CharCommandOption, "#option", 60, charcommand_option }, + { CharCommandReset, "#reset", 60, charcommand_reset }, + { CharCommandSave, "#save", 60, charcommand_save }, + { CharCommandStatsAll, "#statsall", 40, charcommand_stats_all }, + +#ifdef TXT_ONLY +/* TXT_ONLY */ + +/* TXT_ONLY */ +#else +/* SQL-only */ + +/* SQL Only */ +#endif + +// add new commands before this line + { CharCommand_Unknown, NULL, 1, NULL } +}; + + +int get_charcommand_level(const CharCommandType type) { + int i; + + for (i = 0; charcommand_info[i].type != CharCommand_None; i++) + if (charcommand_info[i].type == type) + return charcommand_info[i].level; + + return 100; // 100: command can not be used +} + +/*========================================== + *is_charcommand @ƒRƒ}ƒ“ƒh‚É‘¶Ý‚·‚é‚©‚Ç‚¤‚©Šm”F‚·‚é + *------------------------------------------ + */ +CharCommandType +is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl) { + const char* str = message; + int s_flag = 0; + CharCommandInfo info; + CharCommandType type; + + nullpo_retr(CharCommand_None, sd); + + if (!message || !*message) + return CharCommand_None; + + memset(&info, 0, sizeof(info)); + str += strlen(sd->status.name); + while (*str && (isspace(*str) || (s_flag == 0 && *str == ':'))) { + if (*str == ':') + s_flag = 1; + str++; + } + if (!*str) + return CharCommand_None; + + type = charcommand(gmlvl > 0 ? gmlvl : pc_isGM(sd), str, &info); + if (type != CharCommand_None) { + char command[100]; + char output[200]; + const char* p = str; + memset(command, '\0', sizeof(command)); + memset(output, '\0', sizeof(output)); + while (*p && !isspace(*p)) + p++; + if (p - str >= sizeof(command)) // too long + return CharCommand_Unknown; + strncpy(command, str, p - str); + while (isspace(*p)) + p++; + + if (type == CharCommand_Unknown || info.proc == NULL) { + snprintf(output, sizeof(output),msg_txt(153), command); // %s is Unknown Command. + clif_displaymessage(fd, output); + } else { + if (info.proc(fd, sd, command, p) != 0) { + // Command can not be executed + snprintf(output, sizeof(output), msg_txt(154), command); // %s failed. + clif_displaymessage(fd, output); + } + } + + return info.type; + } + + return CharCommand_None; +} + +/*========================================== + * + *------------------------------------------ + */ +CharCommandType charcommand(const int level, const char* message, struct CharCommandInfo* info) { + char* p = (char *)message; + + if (!info) + return CharCommand_None; + if (battle_config.atc_gmonly != 0 && !level) // level = pc_isGM(sd) + return CharCommand_None; + if (!p || !*p) { + fprintf(stderr, "char command message is empty\n"); + return CharCommand_None; + } + + if (*p == command_symbol) { // check first char. + char command[101]; + int i = 0; + memset(info, 0, sizeof(CharCommandInfo)); + sscanf(p, "%100s", command); + command[sizeof(command)-1] = '\0'; + + while (charcommand_info[i].type != CharCommand_Unknown) { + if (strcmpi(command+1, charcommand_info[i].command+1) == 0 && level >= charcommand_info[i].level) { + p[0] = charcommand_info[i].command[0]; // set correct first symbol for after. + break; + } + i++; + } + + if (charcommand_info[i].type == CharCommand_Unknown) { + // doesn't return Unknown if player is normal player (display the text, not display: unknown command) + if (level == 0) + return CharCommand_None; + else + return CharCommand_Unknown; + } + memcpy(info, &charcommand_info[i], sizeof charcommand_info[i]); + } else { + return CharCommand_None; + } + + return info->type; +} + + +/*========================================== + * + *------------------------------------------ + */ +static CharCommandInfo* get_charcommandinfo_byname(const char* name) { + int i; + + for (i = 0; charcommand_info[i].type != CharCommand_Unknown; i++) + if (strcmpi(charcommand_info[i].command + 1, name) == 0) + return &charcommand_info[i]; + + return NULL; +} + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_config_read(const char *cfgName) { + char line[1024], w1[1024], w2[1024]; + CharCommandInfo* p; + FILE* fp; + + if ((fp = fopen(cfgName, "r")) == NULL) { + printf("CharCommands configuration file not found: %s\n", cfgName); + return 1; + } + + while (fgets(line, sizeof(line)-1, fp)) { + if (line[0] == '/' && line[1] == '/') + continue; + + if (sscanf(line, "%1023[^:]:%1023s", w1, w2) != 2) + continue; + p = get_charcommandinfo_byname(w1); + if (p != NULL) { + p->level = atoi(w2); + if (p->level > 100) + p->level = 100; + else if (p->level < 0) + p->level = 0; + } + + if (strcmpi(w1, "import") == 0) + charcommand_config_read(w2); + else if (strcmpi(w1, "command_symbol") == 0 && w2[0] > 31 && + w2[0] != '/' && // symbol of standard ragnarok GM commands + w2[0] != '%' && // symbol of party chat speaking + w2[0] != '@') // symbol for @commands + command_symbol = w2[0]; + } + fclose(fp); + + return 0; +} + +/*========================================== + * ‘ÎÛƒLƒƒƒ‰ƒNƒ^[‚ð“]E‚³‚¹‚é upperŽw’è‚Å“]¶‚â—{Žq‚à‰Â”\ + *------------------------------------------ + */ +int charcommand_jobchange( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char character[100]; + struct map_session_data* pl_sd; + int job = 0, upper = -1; + + memset(character, '\0', sizeof(character)); + + if (!message || !*message) { + clif_displaymessage(fd, "Please, enter a job and a player name (usage: #job/#jobchange <job ID> <char name>)."); + return -1; + } + + if (sscanf(message, "%d %d %99[^\n]", &job, &upper, character) < 3) { //upperŽw’肵‚Ä‚ ‚é + upper = -1; + if (sscanf(message, "%d %99[^\n]", &job, character) < 2) { //upperŽw’肵‚Ä‚È‚¢ã‚ɉ½‚©‘«‚è‚È‚¢ + clif_displaymessage(fd, "Please, enter a job and a player name (usage: #job/#jobchange <job ID> <char name>)."); + return -1; + } + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job only to lower or same level + if ((job >= 0 && job < MAX_PC_CLASS)) { + + // fix pecopeco display + if ((job != 13 && job != 21 && job != 4014 && job != 4022)) { + if (pc_isriding(sd)) { + if (pl_sd->status.class == 13) + pl_sd->status.class = pl_sd->view_class = 7; + if (pl_sd->status.class == 21) + pl_sd->status.class = pl_sd->view_class = 14; + if (pl_sd->status.class == 4014) + pl_sd->status.class = pl_sd->view_class = 4008; + if (pl_sd->status.class == 4022) + pl_sd->status.class = pl_sd->view_class = 4015; + pl_sd->status.option &= ~0x0020; + clif_changeoption(&pl_sd->bl); + pc_calcstatus(pl_sd, 0); + } + } else { + if (!pc_isriding(sd)) { + if (job == 13) + job = 7; + if (job == 21) + job = 14; + if (job == 4014) + job = 4008; + if (job == 4022) + job = 4015; + } + } + + if (pc_jobchange(pl_sd, job, upper) == 0) + clif_displaymessage(fd, msg_table[48]); // Character's job changed. + else { + clif_displaymessage(fd, msg_table[192]); // Impossible to change the character's job. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[49]); // Invalid job ID. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_petrename( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char character[100]; + struct map_session_data *pl_sd; + + memset(character, '\0', sizeof(character)); + + if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + clif_displaymessage(fd, "Please, enter a player name (usage: #petrename <char name>)."); + return -1; + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + if (pl_sd->status.pet_id > 0 && pl_sd->pd) { + if (pl_sd->pet.rename_flag != 0) { + pl_sd->pet.rename_flag = 0; + intif_save_petdata(pl_sd->status.account_id, &pl_sd->pet); + clif_send_petstatus(pl_sd); + clif_displaymessage(fd, msg_table[189]); // This player can now rename his/her pet. + } else { + clif_displaymessage(fd, msg_table[190]); // This player can already rename his/her pet. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[191]); // Sorry, but this player has no pet. + return -1; + } + } else { + clif_displaymessage(fd, msg_txt(3)); // Character not found. + return -1; + } + + return 0; +} + + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_petfriendly( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + int friendly = 0; + int t = 0; + char character[100]; + struct map_session_data *pl_sd; + + memset(character, '\0', sizeof(character)); + if (!message || !*message || sscanf(message,"%d %s",&friendly,character) < 2) { + clif_displaymessage(fd, "Please, enter a valid value (usage: " + "#petfriendly <0-1000> <player>)."); + return -1; + } + + if (((pl_sd = map_nick2sd(character)) != NULL) && pc_isGM(sd)>pc_isGM(pl_sd)) { + if (pl_sd->status.pet_id > 0 && pl_sd->pd) { + if (friendly >= 0 && friendly <= 1000) { + if (friendly != pl_sd->pet.intimate) { + t = pl_sd->pet.intimate; + pl_sd->pet.intimate = friendly; + clif_send_petstatus(pl_sd); + clif_pet_emotion(pl_sd->pd,0); + if (battle_config.pet_status_support) { + if ((pl_sd->pet.intimate > 0 && t <= 0) || + (pl_sd->pet.intimate <= 0 && t > 0)) { + if (pl_sd->bl.prev != NULL) + pc_calcstatus(pl_sd, 0); + else + pc_calcstatus(pl_sd, 2); + } + } + clif_displaymessage(pl_sd->fd, msg_table[182]); // Pet friendly value changed! + clif_displaymessage(sd->fd, msg_table[182]); // Pet friendly value changed! + } else { + clif_displaymessage(fd, msg_table[183]); // Pet friendly is already the good value. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[37]); // An invalid number was specified. + return -1; + } + } else { + return -1; + } + } else { + clif_displaymessage(fd, msg_txt(3)); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_stats( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char character[100]; + char job_jobname[100]; + char output[200]; + struct map_session_data *pl_sd; + int i; + + memset(character, '\0', sizeof(character)); + memset(job_jobname, '\0', sizeof(job_jobname)); + memset(output, '\0', sizeof(output)); + + if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + clif_displaymessage(fd, "Please, enter a player name (usage: #stats <char name>)."); + return -1; + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + struct { + const char* format; + int value; + } output_table[] = { + { "Base Level - %d", pl_sd->status.base_level }, + { job_jobname, pl_sd->status.job_level }, + { "Hp - %d", pl_sd->status.hp }, + { "MaxHp - %d", pl_sd->status.max_hp }, + { "Sp - %d", pl_sd->status.sp }, + { "MaxSp - %d", pl_sd->status.max_sp }, + { "Str - %3d", pl_sd->status.str }, + { "Agi - %3d", pl_sd->status.agi }, + { "Vit - %3d", pl_sd->status.vit }, + { "Int - %3d", pl_sd->status.int_ }, + { "Dex - %3d", pl_sd->status.dex }, + { "Luk - %3d", pl_sd->status.luk }, + { "Zeny - %d", pl_sd->status.zeny }, + { NULL, 0 } + }; + sprintf(job_jobname, "Job - %s %s", job_name(pl_sd->status.class), "(level %d)"); + sprintf(output, msg_table[53], pl_sd->status.name); // '%s' stats: + clif_displaymessage(fd, output); + for (i = 0; output_table[i].format != NULL; i++) { + sprintf(output, output_table[i].format, output_table[i].value); + clif_displaymessage(fd, output); + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * Character Reset + *------------------------------------------ + */ +int charcommand_reset( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char character[100]; + char output[200]; + struct map_session_data *pl_sd; + + memset(character, '\0', sizeof(character)); + memset(output, '\0', sizeof(output)); + + if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + clif_displaymessage(fd, "Please, enter a player name (usage: #reset <charname>)."); + return -1; + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can reset a character only for lower or same GM level + pc_resetstate(pl_sd); + pc_resetskill(pl_sd); + sprintf(output, msg_table[208], character); // '%s' skill and stats points reseted! + clif_displaymessage(fd, output); + } else { + clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_option( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char character[100]; + int opt1 = 0, opt2 = 0, opt3 = 0; + struct map_session_data* pl_sd; + + memset(character, '\0', sizeof(character)); + + if (!message || !*message || + sscanf(message, "%d %d %d %99[^\n]", &opt1, &opt2, &opt3, character) < 4 || + opt1 < 0 || opt2 < 0 || opt3 < 0) { + clif_displaymessage(fd, "Please, enter valid options and a player name (usage: #option <param1> <param2> <param3> <charname>)."); + return -1; + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change option only to lower or same level + pl_sd->opt1 = opt1; + pl_sd->opt2 = opt2; + pl_sd->status.option = opt3; + // fix pecopeco display + if (pl_sd->status.class == 13 || pl_sd->status.class == 21 || pl_sd->status.class == 4014 || pl_sd->status.class == 4022) { + if (!pc_isriding(pl_sd)) { // pl_sd have the new value... + if (pl_sd->status.class == 13) + pl_sd->status.class = pl_sd->view_class = 7; + else if (pl_sd->status.class == 21) + pl_sd->status.class = pl_sd->view_class = 14; + else if (pl_sd->status.class == 4014) + pl_sd->status.class = pl_sd->view_class = 4008; + else if (pl_sd->status.class == 4022) + pl_sd->status.class = pl_sd->view_class = 4015; + } + } else { + if (pc_isriding(pl_sd)) { // pl_sd have the new value... + if (pl_sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] (code added by [Yor]) + pl_sd->status.option &= ~0x0020; + } else { + if (pl_sd->status.class == 7) + pl_sd->status.class = pl_sd->view_class = 13; + else if (pl_sd->status.class == 14) + pl_sd->status.class = pl_sd->view_class = 21; + else if (pl_sd->status.class == 4008) + pl_sd->status.class = pl_sd->view_class = 4014; + else if (pl_sd->status.class == 4015) + pl_sd->status.class = pl_sd->view_class = 4022; + else + pl_sd->status.option &= ~0x0020; + } + } + } + clif_changeoption(&pl_sd->bl); + pc_calcstatus(pl_sd, 0); + clif_displaymessage(fd, msg_table[58]); // Character's options changed. + } else { + clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * + *------------------------------------------ + */ +int charcommand_save( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + char map_name[100]; + char character[100]; + struct map_session_data* pl_sd; + int x = 0, y = 0; + int m; + + memset(map_name, '\0', sizeof(map_name)); + memset(character, '\0', sizeof(character)); + + if (!message || !*message || sscanf(message, "%99s %d %d %99[^\n]", map_name, &x, &y, character) < 4 || x < 0 || y < 0) { + clif_displaymessage(fd, "Please, enter a valid save point and a player name (usage: #save <map> <x> <y> <charname>)."); + return -1; + } + + if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < 13) // 16 - 4 (.gat) + strcat(map_name, ".gat"); + + if ((pl_sd = map_nick2sd(character)) != NULL) { + if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change save point only to lower or same gm level + m = map_mapname2mapid(map_name); + if (m < 0) { + clif_displaymessage(fd, msg_table[1]); // Map not found. + return -1; + } else { + if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { + clif_displaymessage(fd, "You are not authorised to set this map as a save map."); + return -1; + } + pc_setsavepoint(pl_sd, map_name, x, y); + clif_displaymessage(fd, msg_table[57]); // Character's respawn point changed. + } + } else { + clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} + +/*========================================== + * + *------------------------------------------ + */ +//** Character Stats All by fritz +int charcommand_stats_all(const int fd, struct map_session_data* sd, const char* command, const char* message) +{ + char output[1024], gmlevel[1024]; + int i; + int count; + struct map_session_data *pl_sd; + + memset(output, '\0', sizeof(output)); + memset(gmlevel, '\0', sizeof(gmlevel)); + + count = 0; + for(i = 0; i < fd_max; i++) { + if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) { + + if (pc_isGM(pl_sd) > 0) + sprintf(gmlevel, "| GM Lvl: %d", pc_isGM(pl_sd)); + else + sprintf(gmlevel, " "); + + sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp); + clif_displaymessage(fd, output); + sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel); + clif_displaymessage(fd, output); + clif_displaymessage(fd, "--------"); + count++; + } + } + + if (count == 0) + clif_displaymessage(fd, msg_table[28]); // No player found. + else if (count == 1) + clif_displaymessage(fd, msg_table[29]); // 1 player found. + else { + sprintf(output, msg_table[30], count); // %d players found. + clif_displaymessage(fd, output); + } + + return 0; +} + diff --git a/src/map/charcommand.h b/src/map/charcommand.h index 8fb17fb64..11babb816 100644 --- a/src/map/charcommand.h +++ b/src/map/charcommand.h @@ -1,50 +1,50 @@ -#ifndef _CHARCOMMAND_H_
-#define _CHARCOMMAND_H_
-
-enum CharCommandType {
- CharCommand_None = -1,
- CharCommandJobChange,
- CharCommandPetRename,
- CharCommandPetFriendly,
- CharCommandReset,
- CharCommandStats,
- CharCommandOption,
- CharCommandSave,
- CharCommandStatsAll,
-
-#ifdef TXT_ONLY
-/* TXT_ONLY */
-
-/* TXT_ONLY */
-#else
-/* SQL-only */
-
-/* SQL Only */
-#endif
-
- // End. No more commans after this line.
- CharCommand_Unknown,
- CharCommand_MAX
-};
-
-typedef enum CharCommandType CharCommandType;
-
-typedef struct CharCommandInfo {
- CharCommandType type;
- const char* command;
- int level;
- int (*proc)(const int, struct map_session_data*,
- const char* command, const char* message);
-} CharCommandInfo;
-
-CharCommandType
-is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl);
-
-CharCommandType charcommand(
- const int level, const char* message, CharCommandInfo* info);
-int get_charcommand_level(const CharCommandType type);
-
-int charcommand_config_read(const char *cfgName);
-
-#endif
-
+#ifndef _CHARCOMMAND_H_ +#define _CHARCOMMAND_H_ + +enum CharCommandType { + CharCommand_None = -1, + CharCommandJobChange, + CharCommandPetRename, + CharCommandPetFriendly, + CharCommandReset, + CharCommandStats, + CharCommandOption, + CharCommandSave, + CharCommandStatsAll, + +#ifdef TXT_ONLY +/* TXT_ONLY */ + +/* TXT_ONLY */ +#else +/* SQL-only */ + +/* SQL Only */ +#endif + + // End. No more commans after this line. + CharCommand_Unknown, + CharCommand_MAX +}; + +typedef enum CharCommandType CharCommandType; + +typedef struct CharCommandInfo { + CharCommandType type; + const char* command; + int level; + int (*proc)(const int, struct map_session_data*, + const char* command, const char* message); +} CharCommandInfo; + +CharCommandType +is_charcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl); + +CharCommandType charcommand( + const int level, const char* message, CharCommandInfo* info); +int get_charcommand_level(const CharCommandType type); + +int charcommand_config_read(const char *cfgName); + +#endif + diff --git a/src/webserver/Changelog.txt b/src/webserver/Changelog.txt index a3a63b35a..e4d38bac0 100644 --- a/src/webserver/Changelog.txt +++ b/src/webserver/Changelog.txt @@ -1,3 +1,3 @@ -Date Added
-12/3
+Date Added +12/3 * Creation of eAthena Web Server v2 [MC Cameri]
\ No newline at end of file diff --git a/src/webserver/Makefile b/src/webserver/Makefile index 6ceff7e20..000754036 100644 --- a/src/webserver/Makefile +++ b/src/webserver/Makefile @@ -1,32 +1,32 @@ -CC = gcc -pipe
-MAKE = make
-OPT = -g -O2 -ffast-math
-
-ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN)
-CFLAGS = $(OPT) -Wall -I../common
-else
-CFLAGS = $(OPT) -Wall -I../common
-endif
-
-OBJ = main.o webserver.o ../common/showmsg.o
-LINKOBJ = main.o webserver.o ../common/showmsg.o
-
-all: clean webserver run
-
-clean:
- rm -f *.o webserver.exe ../common/showmsg.o
-
-webserver: main.o webserver.o ../common/showmsg.o
- $(CC) $(OPT) -o "Webserver.exe" $(OBJ)
-
-main.o: main.c
- $(CC) $(OPT) -c main.c -o main.o $(CFLAGS)
-
-webserver.o: webserver.c
- $(CC) $(OPT) -c webserver.c -o webserver.o $(CFLAGS)
-
-../common/showmsg.o: ../common/showmsg.c
- $(CC) $(OPT) -c ../common/showmsg.c -o ../common/showmsg.o $(CFLAGS)
-
-run:
- ./webserver
+CC = gcc -pipe +MAKE = make +OPT = -g -O2 -ffast-math + +ifeq ($(findstring CYGWIN,$(PLATFORM)), CYGWIN) +CFLAGS = $(OPT) -Wall -I../common +else +CFLAGS = $(OPT) -Wall -I../common +endif + +OBJ = main.o webserver.o ../common/showmsg.o +LINKOBJ = main.o webserver.o ../common/showmsg.o + +all: clean webserver run + +clean: + rm -f *.o webserver.exe ../common/showmsg.o + +webserver: main.o webserver.o ../common/showmsg.o + $(CC) $(OPT) -o "Webserver.exe" $(OBJ) + +main.o: main.c + $(CC) $(OPT) -c main.c -o main.o $(CFLAGS) + +webserver.o: webserver.c + $(CC) $(OPT) -c webserver.c -o webserver.o $(CFLAGS) + +../common/showmsg.o: ../common/showmsg.c + $(CC) $(OPT) -c ../common/showmsg.c -o ../common/showmsg.o $(CFLAGS) + +run: + ./webserver diff --git a/src/webserver/Makefile.win b/src/webserver/Makefile.win index ed3d57323..65cf676ad 100644 --- a/src/webserver/Makefile.win +++ b/src/webserver/Makefile.win @@ -1,35 +1,35 @@ -# Project: Webserver
-# Makefile created by Dev-C++ 4.9.8.0
-
-CPP = g++.exe -D__DEBUG__
-CC = gcc.exe -D__DEBUG__
-WINDRES = windres.exe
-RES =
-OBJ = main.o webserver.o ../common/showmsg.o $(RES)
-LINKOBJ = main.o webserver.o ../common/showmsg.o $(RES)
-LIBS = -L"C:/Program Files/Dev-Cpp/lib" -L"C:/cygwin/lib"
-INCS = -I"C:/Program Files/Dev-Cpp/include" -I"C:/cygwin/usr/include" -I"C:/cygwin/usr/include/mingw"
-CXXINCS = -I"C:/Program Files/Dev-Cpp/include/c++" -I"C:/Program Files/Dev-Cpp/include/c++/mingw32" -I"C:/Program Files/Dev-Cpp/include/c++/backward" -I"C:/Program Files/Dev-Cpp/include" -I"C:/cygwin/usr/include/c++/3.3.1"
-BIN = webserver.exe
-CXXFLAGS = $(CXXINCS) -pg -g3
-CFLAGS = $(INCS) -pg -g3
-
-.PHONY: all all-before all-after clean clean-custom
-
-all: all-before webserver.exe all-after
-
-
-clean: clean-custom
- rm -f $(OBJ) $(BIN)
-
-$(BIN): $(LINKOBJ)
- $(CC) $(LINKOBJ) -o "webserver.exe" $(LIBS)
-
-main.o: main.c
- $(CC) -c main.c -o main.o $(CFLAGS)
-
-webserver.o: webserver.c
- $(CC) -c webserver.c -o webserver.o $(CFLAGS)
-
-../common/showmsg.o: ../common/showmsg.c
- $(CC) -c ../common/showmsg.c -o ../common/showmsg.o $(CFLAGS)
+# Project: Webserver +# Makefile created by Dev-C++ 4.9.8.0 + +CPP = g++.exe -D__DEBUG__ +CC = gcc.exe -D__DEBUG__ +WINDRES = windres.exe +RES = +OBJ = main.o webserver.o ../common/showmsg.o $(RES) +LINKOBJ = main.o webserver.o ../common/showmsg.o $(RES) +LIBS = -L"C:/Program Files/Dev-Cpp/lib" -L"C:/cygwin/lib" +INCS = -I"C:/Program Files/Dev-Cpp/include" -I"C:/cygwin/usr/include" -I"C:/cygwin/usr/include/mingw" +CXXINCS = -I"C:/Program Files/Dev-Cpp/include/c++" -I"C:/Program Files/Dev-Cpp/include/c++/mingw32" -I"C:/Program Files/Dev-Cpp/include/c++/backward" -I"C:/Program Files/Dev-Cpp/include" -I"C:/cygwin/usr/include/c++/3.3.1" +BIN = webserver.exe +CXXFLAGS = $(CXXINCS) -pg -g3 +CFLAGS = $(INCS) -pg -g3 + +.PHONY: all all-before all-after clean clean-custom + +all: all-before webserver.exe all-after + + +clean: clean-custom + rm -f $(OBJ) $(BIN) + +$(BIN): $(LINKOBJ) + $(CC) $(LINKOBJ) -o "webserver.exe" $(LIBS) + +main.o: main.c + $(CC) -c main.c -o main.o $(CFLAGS) + +webserver.o: webserver.c + $(CC) -c webserver.c -o webserver.o $(CFLAGS) + +../common/showmsg.o: ../common/showmsg.c + $(CC) -c ../common/showmsg.c -o ../common/showmsg.o $(CFLAGS) diff --git a/src/webserver/WEBSER~1.layout b/src/webserver/WEBSER~1.layout index cbc84d563..49854196f 100644 --- a/src/webserver/WEBSER~1.layout +++ b/src/webserver/WEBSER~1.layout @@ -1,24 +1,24 @@ -[Editors]
-Focused=-1
-Order=-1,0
-[Editor_0]
-Open=1
-Top=0
-CursorCol=5
-CursorRow=30
-TopLine=1
-LeftChar=1
-[Editor_1]
-Open=1
-Top=0
-CursorCol=1
-CursorRow=35
-TopLine=16
-LeftChar=1
-[Editor_2]
-Open=1
-Top=1
-CursorCol=14
-CursorRow=4
-TopLine=1
-LeftChar=1
+[Editors] +Focused=-1 +Order=-1,0 +[Editor_0] +Open=1 +Top=0 +CursorCol=5 +CursorRow=30 +TopLine=1 +LeftChar=1 +[Editor_1] +Open=1 +Top=0 +CursorCol=1 +CursorRow=35 +TopLine=16 +LeftChar=1 +[Editor_2] +Open=1 +Top=1 +CursorCol=14 +CursorRow=4 +TopLine=1 +LeftChar=1 diff --git a/src/webserver/Webserver.dev b/src/webserver/Webserver.dev index 9e100bacb..5bbb3a08c 100644 --- a/src/webserver/Webserver.dev +++ b/src/webserver/Webserver.dev @@ -1,97 +1,97 @@ -[Project]
-FileName=Webserver.dev
-Name=Webserver
-UnitCount=5
-Type=1
-Ver=1
-ObjFiles=
-Includes=
-Libs=
-PrivateResource=
-ResourceIncludes=
-MakeIncludes=
-Compiler=
-CppCompiler=
-Linker=
-IsCpp=0
-Icon=
-ExeOutput=
-ObjectOutput=
-OverrideOutput=1
-OverrideOutputName=webserver.exe
-HostApplication=
-Folders=common
-CommandLine=
-IncludeVersionInfo=0
-SupportXPThemes=0
-CompilerSet=1
-CompilerSettings=000000000000000000
-
-[Unit1]
-FileName=main.c
-CompileCpp=0
-Folder=
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=$(CC) -c main.c -o main.o webserver.o $(CFLAGS)
-
-[VersionInfo]
-Major=0
-Minor=1
-Release=1
-Build=1
-LanguageID=1033
-CharsetID=1252
-CompanyName=
-FileVersion=
-FileDescription=Developed using the Dev-C++ IDE
-InternalName=
-LegalCopyright=
-LegalTrademarks=
-OriginalFilename=
-ProductName=
-ProductVersion=
-AutoIncBuildNr=0
-
-[Unit2]
-FileName=webserver.c
-CompileCpp=0
-Folder=
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=1
-BuildCmd=$(CC) -c webserver.c -o webserver.o $(CFLAGS)
-
-[Unit3]
-FileName=webserver.h
-CompileCpp=0
-Folder=
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit4]
-FileName=..\common\showmsg.c
-CompileCpp=0
-Folder=common
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
-[Unit5]
-FileName=..\common\showmsg.h
-CompileCpp=0
-Folder=common
-Compile=1
-Link=1
-Priority=1000
-OverrideBuildCmd=0
-BuildCmd=
-
+[Project] +FileName=Webserver.dev +Name=Webserver +UnitCount=5 +Type=1 +Ver=1 +ObjFiles= +Includes= +Libs= +PrivateResource= +ResourceIncludes= +MakeIncludes= +Compiler= +CppCompiler= +Linker= +IsCpp=0 +Icon= +ExeOutput= +ObjectOutput= +OverrideOutput=1 +OverrideOutputName=webserver.exe +HostApplication= +Folders=common +CommandLine= +IncludeVersionInfo=0 +SupportXPThemes=0 +CompilerSet=1 +CompilerSettings=000000000000000000 + +[Unit1] +FileName=main.c +CompileCpp=0 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd=$(CC) -c main.c -o main.o webserver.o $(CFLAGS) + +[VersionInfo] +Major=0 +Minor=1 +Release=1 +Build=1 +LanguageID=1033 +CharsetID=1252 +CompanyName= +FileVersion= +FileDescription=Developed using the Dev-C++ IDE +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion= +AutoIncBuildNr=0 + +[Unit2] +FileName=webserver.c +CompileCpp=0 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=1 +BuildCmd=$(CC) -c webserver.c -o webserver.o $(CFLAGS) + +[Unit3] +FileName=webserver.h +CompileCpp=0 +Folder= +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit4] +FileName=..\common\showmsg.c +CompileCpp=0 +Folder=common +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + +[Unit5] +FileName=..\common\showmsg.h +CompileCpp=0 +Folder=common +Compile=1 +Link=1 +Priority=1000 +OverrideBuildCmd=0 +BuildCmd= + diff --git a/src/webserver/Webserver.layout b/src/webserver/Webserver.layout index b61094a58..b99312289 100644 --- a/src/webserver/Webserver.layout +++ b/src/webserver/Webserver.layout @@ -1,38 +1,38 @@ -[Editors]
-Focused=0
-Order=0,2,1,-1
-[Editor_0]
-Open=1
-Top=1
-CursorCol=55
-CursorRow=128
-TopLine=95
-LeftChar=1
-[Editor_1]
-Open=1
-Top=0
-CursorCol=25
-CursorRow=113
-TopLine=92
-LeftChar=1
-[Editor_2]
-Open=1
-Top=0
-CursorCol=1
-CursorRow=21
-TopLine=1
-LeftChar=1
-[Editor_3]
-Open=0
-Top=0
-CursorCol=20
-CursorRow=2
-TopLine=1
-LeftChar=1
-[Editor_4]
-Open=0
-Top=0
-CursorCol=20
-CursorRow=1
-TopLine=1
-LeftChar=1
+[Editors] +Focused=0 +Order=0,2,1,-1 +[Editor_0] +Open=1 +Top=1 +CursorCol=55 +CursorRow=128 +TopLine=95 +LeftChar=1 +[Editor_1] +Open=1 +Top=0 +CursorCol=25 +CursorRow=113 +TopLine=92 +LeftChar=1 +[Editor_2] +Open=1 +Top=0 +CursorCol=1 +CursorRow=21 +TopLine=1 +LeftChar=1 +[Editor_3] +Open=0 +Top=0 +CursorCol=20 +CursorRow=2 +TopLine=1 +LeftChar=1 +[Editor_4] +Open=0 +Top=0 +CursorCol=20 +CursorRow=1 +TopLine=1 +LeftChar=1 diff --git a/src/webserver/conf/webserver-athena.conf b/src/webserver/conf/webserver-athena.conf index 003aababa..6f84aa133 100644 --- a/src/webserver/conf/webserver-athena.conf +++ b/src/webserver/conf/webserver-athena.conf @@ -1,36 +1,36 @@ -#############################################################
-# ______ __ __ #
-# /\ _ \/\ \__/\ \ #
-# __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ #
-# /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ #
-# /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ #
-# \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ #
-# \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ #
-# eAthena Web Server (Second Edition) #
-# by MC Cameri #
-# ------------------------------------------------------- #
-# -Website/Forum- #
-# http://eathena.deltaanime.net/ #
-# -Download URL- #
-# http://eathena.systeminplace.net/ #
-# -IRC Channel- #
-# irc://irc.deltaanime.net/#athena #
-#############################################################
-
-// Display the eAthena Logo at startup?
-show_title: 1
-
-//Web Server Port
-port: 81
-
-//Web Server Password
-password: juan16
-
-//Page Header
-header: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-
-//Document index
-document_index: index.xhtml
-
-//Send favorite icon if provided?
-favicon: yes
+############################################################# +# ______ __ __ # +# /\ _ \/\ \__/\ \ # +# __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ # +# /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ # +# /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ # +# \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ # +# \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ # +# eAthena Web Server (Second Edition) # +# by MC Cameri # +# ------------------------------------------------------- # +# -Website/Forum- # +# http://eathena.deltaanime.net/ # +# -Download URL- # +# http://eathena.systeminplace.net/ # +# -IRC Channel- # +# irc://irc.deltaanime.net/#athena # +############################################################# + +// Display the eAthena Logo at startup? +show_title: 1 + +//Web Server Port +port: 81 + +//Web Server Password +password: juan16 + +//Page Header +header: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> + +//Document index +document_index: index.xhtml + +//Send favorite icon if provided? +favicon: yes diff --git a/src/webserver/main.c b/src/webserver/main.c index 941a7a348..915d71b6d 100644 --- a/src/webserver/main.c +++ b/src/webserver/main.c @@ -1,144 +1,144 @@ -/******************************************************************************
- # ______ __ __ #
- # /\ _ \/\ \__/\ \ #
- # __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ #
- # /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ #
- # /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ #
- # \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ #
- # \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ #
- # eAthena Web Server (Second Edition) #
- # by MC Cameri #
- # ------------------------------------------------------- #
- # -Website/Forum- #
- # http://eathena.deltaanime.net/ #
- # -Download URL- #
- # http://eathena.systeminplace.net/ #
- # -IRC Channel- #
- # irc://irc.deltaanime.net/#athena #
- ******************************************************************************/
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <strings.h>
-#include <sys/types.h>
-#include <sys/socket.h>
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <sys/wait.h>
-#include <signal.h>
-#include <unistd.h>
-#include <errno.h>
-
-#include "../common/showmsg.h"
-#include "webserver.h"
-
-char ws_password[17];
-char ws_header[128];
-
-#define WEB_CONF "conf/webserver-athena.conf"
-#define MAX_CONNECTIONS 10
-#define HOME "home/"
-
-struct config config;
-
-int main(int argc, char *argv[])
-{
- int server_fd, client_fd;
- int sin_size;
- struct sockaddr_in server_addr;
- struct sockaddr_in client_addr;
- struct sigaction sa;
- char recvin[1024];
- char path[1024];
- char line[1024];
- int optval = 1;
- if (ws_config_read(WEB_CONF)) exit(0);
- if (config.show_title)
- ws_display_title();
- else
- printf("eAthena Web Server (Second Edition)\n");
- if (strcmpEx(ws_password,"webpass")==0)
- ShowWarning("You are using the default password (webpass), we highly "
- "recommend\n that you change it.\n");
- else if (strstr(ws_password,"webpass"))
- ShowWarning("Your password should not contain \"webpass\" in it, it is"
- " highly\n recommended that you change it.\n");
- printf("Web Server Password: %s\n",ws_password);
- printf("Web Server Port: %d\n",config.port);
-
- if ((server_fd = socket(AF_INET, SOCK_STREAM,0)) == -1) {
- ShowError("In main() -> Could not open socket.\n");
- return 1;
- }
- if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)) == -1) {
- ShowError("In main() -> Could not set socket options.\n");
- return 1;
- }
- server_addr.sin_family = AF_INET;
- server_addr.sin_port = htons(config.port);
- server_addr.sin_addr.s_addr = INADDR_ANY;
- memset(&(server_addr.sin_zero), '\0', 8);
-
- if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) < 0) {
- snprintf(tmp_output,sizeof(tmp_output),"In main() -> Could not bind to port number: %d\n",config.port);
- ShowError(tmp_output);
- return 1;
- }
-
- if (listen(server_fd, MAX_CONNECTIONS) < 0) {
- snprintf(tmp_output,sizeof(tmp_output),"In main() -> Could not listen on port number: %d\n",config.port);
- ShowError(tmp_output);
- return 1;
- }
-
- sa.sa_handler = ws_sigchld_handler;
- sigemptyset(&sa.sa_mask);
- sa.sa_flags = SA_RESTART;
-
- if (sigaction(SIGCHLD, &sa, NULL) < 0) {
- ShowError("In main() -> Invalid sigaction.\n");
- return 1;
- }
- ShowInfo("eAthena Web Server is now listening for incoming connections.\n");
-
- while(1)
- {
- sin_size = sizeof(struct sockaddr_in);
- client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &sin_size);
-
- if (!fork())
- {
- close(server_fd);
- memset(recvin, 0x0, 500);
- recv(client_fd, recvin, 500, 0);
- char *html_output;
- int count = 0;
- if (sscanf(recvin,"GET %[a-zA-Z_-.+\%#@~] %*[^\n]",path)==1) {
- FILE *fp;
- strcpy(tmp_output,HOME);
- strcat(tmp_output,path);
- fp = fopen(tmp_output,"r+");
- if (fp==NULL) {
- send(client_fd,"File not found",strlen("File not found"), 0);
- close(client_fd);
- }
- memset(tmp_output,0x0,strlen(tmp_output));
- html_output = (char*)malloc(sizeof(char)*2);
- while (fgets(line,1023,fp)) {
- html_output = (char*)realloc(sizeof(html_output)+(sizeof(char)*count));
- strcat(html_output,line);
- printf(line);
- }
- send(client_fd,tmp_output,sizeof(tmp_output),0);
- fclose(fp);
- }
- // send(client_fd, ws_header, strlen(ws_header), 0);
- // generate_page(password, client_fd, get_query(recvin), inet_ntoa(client_addr.sin_addr));
- // log_visit(get_query(recvin), inet_ntoa(client_addr.sin_addr));
- close(client_fd);
- exit(0);
- }
- close(client_fd);
- }
- return 0;
-}
+/****************************************************************************** + # ______ __ __ # + # /\ _ \/\ \__/\ \ # + # __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ # + # /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ # + # /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ # + # \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ # + # \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ # + # eAthena Web Server (Second Edition) # + # by MC Cameri # + # ------------------------------------------------------- # + # -Website/Forum- # + # http://eathena.deltaanime.net/ # + # -Download URL- # + # http://eathena.systeminplace.net/ # + # -IRC Channel- # + # irc://irc.deltaanime.net/#athena # + ******************************************************************************/ + +#include <stdio.h> +#include <stdlib.h> +#include <strings.h> +#include <sys/types.h> +#include <sys/socket.h> +#include <netinet/in.h> +#include <arpa/inet.h> +#include <sys/wait.h> +#include <signal.h> +#include <unistd.h> +#include <errno.h> + +#include "../common/showmsg.h" +#include "webserver.h" + +char ws_password[17]; +char ws_header[128]; + +#define WEB_CONF "conf/webserver-athena.conf" +#define MAX_CONNECTIONS 10 +#define HOME "home/" + +struct config config; + +int main(int argc, char *argv[]) +{ + int server_fd, client_fd; + int sin_size; + struct sockaddr_in server_addr; + struct sockaddr_in client_addr; + struct sigaction sa; + char recvin[1024]; + char path[1024]; + char line[1024]; + int optval = 1; + if (ws_config_read(WEB_CONF)) exit(0); + if (config.show_title) + ws_display_title(); + else + printf("eAthena Web Server (Second Edition)\n"); + if (strcmpEx(ws_password,"webpass")==0) + ShowWarning("You are using the default password (webpass), we highly " + "recommend\n that you change it.\n"); + else if (strstr(ws_password,"webpass")) + ShowWarning("Your password should not contain \"webpass\" in it, it is" + " highly\n recommended that you change it.\n"); + printf("Web Server Password: %s\n",ws_password); + printf("Web Server Port: %d\n",config.port); + + if ((server_fd = socket(AF_INET, SOCK_STREAM,0)) == -1) { + ShowError("In main() -> Could not open socket.\n"); + return 1; + } + if (setsockopt(server_fd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)) == -1) { + ShowError("In main() -> Could not set socket options.\n"); + return 1; + } + server_addr.sin_family = AF_INET; + server_addr.sin_port = htons(config.port); + server_addr.sin_addr.s_addr = INADDR_ANY; + memset(&(server_addr.sin_zero), '\0', 8); + + if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(struct sockaddr)) < 0) { + snprintf(tmp_output,sizeof(tmp_output),"In main() -> Could not bind to port number: %d\n",config.port); + ShowError(tmp_output); + return 1; + } + + if (listen(server_fd, MAX_CONNECTIONS) < 0) { + snprintf(tmp_output,sizeof(tmp_output),"In main() -> Could not listen on port number: %d\n",config.port); + ShowError(tmp_output); + return 1; + } + + sa.sa_handler = ws_sigchld_handler; + sigemptyset(&sa.sa_mask); + sa.sa_flags = SA_RESTART; + + if (sigaction(SIGCHLD, &sa, NULL) < 0) { + ShowError("In main() -> Invalid sigaction.\n"); + return 1; + } + ShowInfo("eAthena Web Server is now listening for incoming connections.\n"); + + while(1) + { + sin_size = sizeof(struct sockaddr_in); + client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &sin_size); + + if (!fork()) + { + close(server_fd); + memset(recvin, 0x0, 500); + recv(client_fd, recvin, 500, 0); + char *html_output; + int count = 0; + if (sscanf(recvin,"GET %[a-zA-Z_-.+\%#@~] %*[^\n]",path)==1) { + FILE *fp; + strcpy(tmp_output,HOME); + strcat(tmp_output,path); + fp = fopen(tmp_output,"r+"); + if (fp==NULL) { + send(client_fd,"File not found",strlen("File not found"), 0); + close(client_fd); + } + memset(tmp_output,0x0,strlen(tmp_output)); + html_output = (char*)malloc(sizeof(char)*2); + while (fgets(line,1023,fp)) { + html_output = (char*)realloc(sizeof(html_output)+(sizeof(char)*count)); + strcat(html_output,line); + printf(line); + } + send(client_fd,tmp_output,sizeof(tmp_output),0); + fclose(fp); + } + // send(client_fd, ws_header, strlen(ws_header), 0); + // generate_page(password, client_fd, get_query(recvin), inet_ntoa(client_addr.sin_addr)); + // log_visit(get_query(recvin), inet_ntoa(client_addr.sin_addr)); + close(client_fd); + exit(0); + } + close(client_fd); + } + return 0; +} diff --git a/src/webserver/webserver.c b/src/webserver/webserver.c index 3a2b9b2dd..0169cd028 100644 --- a/src/webserver/webserver.c +++ b/src/webserver/webserver.c @@ -1,136 +1,136 @@ -/******************************************************************************
- # ______ __ __ #
- # /\ _ \/\ \__/\ \ #
- # __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ #
- # /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ #
- # /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ #
- # \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ #
- # \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ #
- # eAthena Web Server (Second Edition) #
- # by MC Cameri #
- # ------------------------------------------------------- #
- # -Website/Forum- #
- # http://eathena.deltaanime.net/ #
- # -Download URL- #
- # http://eathena.systeminplace.net/ #
- # -IRC Channel- #
- # irc://irc.deltaanime.net/#athena #
- ******************************************************************************/
-
-#include <stdio.h>
-#include <strings.h>
-#include "../common/showmsg.h"
-#include "webserver.h"
-
-char ws_password[17] = "pass";
-char ws_header[128] = {'\0'};
-
-/* Displays the eAthena Logo */
-void ws_display_title(void)
-{
- printf("\033[2J");
- printf("\033[37;44m (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1;33m (c)2004 eAthena Development Team presents \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m ______ __ __ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m /\\ _ \\/\\ \\__/\\ \\ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m __\\ \\ \\_\\ \\ \\ ,_\\ \\ \\___ __ ___ __ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m /'__`\\ \\ __ \\ \\ \\/\\ \\ _ `\\ /'__`\\/' _ `\\ /'__`\\ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m /\\ __/\\ \\ \\/\\ \\ \\ \\_\\ \\ \\ \\ \\/\\ __//\\ \\/\\ \\/\\ \\_\\.\\_ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m \\ \\____\\\\ \\_\\ \\_\\ \\__\\\\ \\_\\ \\_\\ \\____\\ \\_\\ \\_\\ \\__/.\\_\\ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m \\/____/ \\/_/\\/_/\\/__/ \\/_/\\/_/\\/____/\\/_/\\/_/\\/__/\\/_/ \033[0;44m)\033[K\033[0m\n");
- printf("\033[0;44m (\033[1m _ _ _ _ _ _ _ _ _ _ _ _ _ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char
- printf("\033[0;44m (\033[1m / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char
- printf("\033[0;44m (\033[1m ( e | n | g | l | i | s | h ) ( A | t | h | e | n | a ) \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char
- printf("\033[0;44m (\033[1m \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char
- printf("\033[0;44m (\033[1m \033[0;44m)\033[K\033[0m\n"); // yellow writing (33)
- printf("\033[0;44m (\033[1;33m Advanced Fusion Maps (c) 2003-2004 The Fusion Project \033[0;44m)\033[K\033[0m\n"); // yellow writing (33)
- printf("\033[37;44m (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)\033[K\033[0m\n\n"); // reset color
-}
-/* Returns a boolean value given character string */
-int ws_config_switch(const char *str) {
- if (strcmpEx(str, "on") == 0 || strcmpEx(str, "yes") == 0 ||
- strcmpEx(str, "oui") == 0 || strcmpEx(str, "ja") == 0 ||
- strcmpEx(str, "si") == 0 || strcmpEx(str,"true") == 0)
- return 1;
- if (strcmpEx(str, "off") == 0 || strcmpEx(str, "no") == 0 ||
- strcmpEx(str, "non") == 0 || strcmpEx(str, "nein") == 0 ||
- strcmpEx(str, "false") == 0)
- return 0;
- return atoi(str);
-}
-
-/* Reads the eAthena Web Server's configuration file */
-int ws_config_read(const char *cfgName)
-{
- int i;
- char line[1024],w1[1024],w2[1024],temp[1024];
- FILE *fp;
-
- /* Default values */
- config.show_title=0;
- config.port=80;
-
-
- fp=fopen(cfgName,"r");
- if(fp==NULL){
- snprintf(temp,sizeof(temp),"Could not open \033[1;29m%s\033[0;0m, file not found.\n",cfgName);
- ShowMessage(temp,MSG_ERROR);
- return 1;
- }
- while(fgets(line,1020,fp)){
- const struct {
- char str[128];
- int *val;
- } data[] ={
- //List of variables
- { "show_title", &config.show_title },
- { "port", &config.port },
- };
-
- if((line[0] == '/' && line[1] == '/') || (line[0]=='#') ||
- (sscanf(line,"%1023[^:]:%1023[^\n]",w1,w2) !=2))
- continue;
- for(i=0;i<sizeof(data)/(sizeof(data[0]));i++) {
- if(strcmpEx(w1,data[i].str)==0){
- *data[i].val=ws_config_switch(w2);
- break;
- }
- }
- if(strcmpEx(w1,"import")==0) {
- ws_config_read(w2);
- continue;
- }
- if(strcmpEx(w1,"password")==0) {
- if (strlen(w2)>16) {
- ShowError("The Web Server password is too long, maximum passwor"
- "d length is 16 characters.\n");
- return 1;
- }
- strcpy(ws_password,w2);
- continue;
- }
- if(strcmpEx(w1,"header")==0) {
- if (strlen(w2)>127) {
- ShowError("The Web Server header is too long, maximum header"
- "d length is 127 characters.\n");
- return 1;
- }
- strcpy(ws_header,w2);
- continue;
- }
- }
- fclose(fp);
-
- //Correct values
- if(config.show_title < 0)
- config.show_title = 0;
- if(config.port < 1 || config.port > 65534)
- config.port=80;
-
- return 0;
-}
-
-void ws_sigchld_handler(int s)
-{
- while(wait(NULL) > 0);
-}
+/****************************************************************************** + # ______ __ __ # + # /\ _ \/\ \__/\ \ # + # __\ \ \L\ \ \ ,_\ \ \___ __ ___ __ # + # /'__`\ \ __ \ \ \/\ \ _ `\ /'__`\/' _ `\ /'__`\ # + # /\ __/\ \ \/\ \ \ \_\ \ \ \ \/\ __//\ \/\ \/\ \L\.\_ # + # \ \____\\ \_\ \_\ \__\\ \_\ \_\ \____\ \_\ \_\ \__/.\_\ # + # \/____/ \/_/\/_/\/__/ \/_/\/_/\/____/\/_/\/_/\/__/\/_/ # + # eAthena Web Server (Second Edition) # + # by MC Cameri # + # ------------------------------------------------------- # + # -Website/Forum- # + # http://eathena.deltaanime.net/ # + # -Download URL- # + # http://eathena.systeminplace.net/ # + # -IRC Channel- # + # irc://irc.deltaanime.net/#athena # + ******************************************************************************/ + +#include <stdio.h> +#include <strings.h> +#include "../common/showmsg.h" +#include "webserver.h" + +char ws_password[17] = "pass"; +char ws_header[128] = {'\0'}; + +/* Displays the eAthena Logo */ +void ws_display_title(void) +{ + printf("\033[2J"); + printf("\033[37;44m (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1;33m (c)2004 eAthena Development Team presents \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m ______ __ __ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m /\\ _ \\/\\ \\__/\\ \\ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m __\\ \\ \\_\\ \\ \\ ,_\\ \\ \\___ __ ___ __ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m /'__`\\ \\ __ \\ \\ \\/\\ \\ _ `\\ /'__`\\/' _ `\\ /'__`\\ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m /\\ __/\\ \\ \\/\\ \\ \\ \\_\\ \\ \\ \\ \\/\\ __//\\ \\/\\ \\/\\ \\_\\.\\_ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m \\ \\____\\\\ \\_\\ \\_\\ \\__\\\\ \\_\\ \\_\\ \\____\\ \\_\\ \\_\\ \\__/.\\_\\ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m \\/____/ \\/_/\\/_/\\/__/ \\/_/\\/_/\\/____/\\/_/\\/_/\\/__/\\/_/ \033[0;44m)\033[K\033[0m\n"); + printf("\033[0;44m (\033[1m _ _ _ _ _ _ _ _ _ _ _ _ _ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char + printf("\033[0;44m (\033[1m / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ / \\ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char + printf("\033[0;44m (\033[1m ( e | n | g | l | i | s | h ) ( A | t | h | e | n | a ) \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char + printf("\033[0;44m (\033[1m \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \\_/ \033[0;44m)\033[K\033[0m\n"); // 1: bold char, 0: normal char + printf("\033[0;44m (\033[1m \033[0;44m)\033[K\033[0m\n"); // yellow writing (33) + printf("\033[0;44m (\033[1;33m Advanced Fusion Maps (c) 2003-2004 The Fusion Project \033[0;44m)\033[K\033[0m\n"); // yellow writing (33) + printf("\033[37;44m (=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=)\033[K\033[0m\n\n"); // reset color +} +/* Returns a boolean value given character string */ +int ws_config_switch(const char *str) { + if (strcmpEx(str, "on") == 0 || strcmpEx(str, "yes") == 0 || + strcmpEx(str, "oui") == 0 || strcmpEx(str, "ja") == 0 || + strcmpEx(str, "si") == 0 || strcmpEx(str,"true") == 0) + return 1; + if (strcmpEx(str, "off") == 0 || strcmpEx(str, "no") == 0 || + strcmpEx(str, "non") == 0 || strcmpEx(str, "nein") == 0 || + strcmpEx(str, "false") == 0) + return 0; + return atoi(str); +} + +/* Reads the eAthena Web Server's configuration file */ +int ws_config_read(const char *cfgName) +{ + int i; + char line[1024],w1[1024],w2[1024],temp[1024]; + FILE *fp; + + /* Default values */ + config.show_title=0; + config.port=80; + + + fp=fopen(cfgName,"r"); + if(fp==NULL){ + snprintf(temp,sizeof(temp),"Could not open \033[1;29m%s\033[0;0m, file not found.\n",cfgName); + ShowMessage(temp,MSG_ERROR); + return 1; + } + while(fgets(line,1020,fp)){ + const struct { + char str[128]; + int *val; + } data[] ={ + //List of variables + { "show_title", &config.show_title }, + { "port", &config.port }, + }; + + if((line[0] == '/' && line[1] == '/') || (line[0]=='#') || + (sscanf(line,"%1023[^:]:%1023[^\n]",w1,w2) !=2)) + continue; + for(i=0;i<sizeof(data)/(sizeof(data[0]));i++) { + if(strcmpEx(w1,data[i].str)==0){ + *data[i].val=ws_config_switch(w2); + break; + } + } + if(strcmpEx(w1,"import")==0) { + ws_config_read(w2); + continue; + } + if(strcmpEx(w1,"password")==0) { + if (strlen(w2)>16) { + ShowError("The Web Server password is too long, maximum passwor" + "d length is 16 characters.\n"); + return 1; + } + strcpy(ws_password,w2); + continue; + } + if(strcmpEx(w1,"header")==0) { + if (strlen(w2)>127) { + ShowError("The Web Server header is too long, maximum header" + "d length is 127 characters.\n"); + return 1; + } + strcpy(ws_header,w2); + continue; + } + } + fclose(fp); + + //Correct values + if(config.show_title < 0) + config.show_title = 0; + if(config.port < 1 || config.port > 65534) + config.port=80; + + return 0; +} + +void ws_sigchld_handler(int s) +{ + while(wait(NULL) > 0); +} diff --git a/src/webserver/webserver.h b/src/webserver/webserver.h index 8bb84b875..84ef02b62 100644 --- a/src/webserver/webserver.h +++ b/src/webserver/webserver.h @@ -1,21 +1,21 @@ -#ifndef WEBSERV_H_
-#define WEBSERV_H_
-
-#define strcmpEx(x,y) (strcasecmp(x,y))
-
-extern void ws_display_title(void);
-
-extern int ws_config_read(const char *cfgName);
-
-extern struct config {
- int show_title;
- int port;
-} config;
-
-extern char ws_password[17]; //16 chars + \0
-
-extern char ws_header[128]; //!?
-
-extern void ws_sigchld_handler(int s);
-
-#endif
+#ifndef WEBSERV_H_ +#define WEBSERV_H_ + +#define strcmpEx(x,y) (strcasecmp(x,y)) + +extern void ws_display_title(void); + +extern int ws_config_read(const char *cfgName); + +extern struct config { + int show_title; + int port; +} config; + +extern char ws_password[17]; //16 chars + \0 + +extern char ws_header[128]; //!? + +extern void ws_sigchld_handler(int s); + +#endif |