summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoramber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-12-08 06:02:53 +0000
committeramber <amber@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-12-08 06:02:53 +0000
commitdeebefa3708e65f7b46dca12bc34be0e3cfb8444 (patch)
tree8833a86fc28cb8b8a5ecdc3cebd61295e3de928c
parent1802aa4724ca002cf423927967c1fd05b432d882 (diff)
downloadhercules-deebefa3708e65f7b46dca12bc34be0e3cfb8444.tar.gz
hercules-deebefa3708e65f7b46dca12bc34be0e3cfb8444.tar.bz2
hercules-deebefa3708e65f7b46dca12bc34be0e3cfb8444.tar.xz
hercules-deebefa3708e65f7b46dca12bc34be0e3cfb8444.zip
props
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@508 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--conf-tmpl/charcommand_athena.conf36
-rw-r--r--db/item_db.txt3394
-rw-r--r--db/skill_nocast_db.txt32
-rw-r--r--doc/effect_list.txt720
-rw-r--r--doc/miscnotes.txt1102
-rw-r--r--npc/cities/louyang.txt128
-rw-r--r--src/login_sql/char_int.c982
-rw-r--r--src/login_sql/char_int.h4
-rw-r--r--src/login_sql/login_int.c740
-rw-r--r--src/login_sql/login_int.h2
-rw-r--r--src/map/charcommand.c1406
-rw-r--r--src/map/charcommand.h100
-rw-r--r--src/webserver/Changelog.txt4
-rw-r--r--src/webserver/Makefile64
-rw-r--r--src/webserver/Makefile.win70
-rw-r--r--src/webserver/WEBSER~1.layout48
-rw-r--r--src/webserver/Webserver.dev194
-rw-r--r--src/webserver/Webserver.layout76
-rw-r--r--src/webserver/conf/webserver-athena.conf72
-rw-r--r--src/webserver/main.c288
-rw-r--r--src/webserver/webserver.c272
-rw-r--r--src/webserver/webserver.h42
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(&timestamp);
- 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(&timestamp);
+ 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