diff --git a/db/import-tmpl/item_db.txt b/db/import-tmpl/item_db.txt index f06740c54c..eb24248723 100644 --- a/db/import-tmpl/item_db.txt +++ b/db/import-tmpl/item_db.txt @@ -1,7 +1,7 @@ // Items Additional Database // // Structure of Database: -// ID,Name,Name,Type,Price,Sell,Weight,ATK,DEF,Range,Slot,Job,Class,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } +// ID,Name,Name,Type,Price,Sell,Weight,ATK[:MATK],DEF,Range,Slot,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } // // THQ Quest Items //============================================================= diff --git a/db/import-tmpl/map_cache.dat b/db/import-tmpl/map_cache.dat new file mode 100644 index 0000000000..5142c798fe Binary files /dev/null and b/db/import-tmpl/map_cache.dat differ diff --git a/db/import-tmpl/map_index.txt b/db/import-tmpl/map_index.txt new file mode 100644 index 0000000000..fbe7a404c8 --- /dev/null +++ b/db/import-tmpl/map_index.txt @@ -0,0 +1,18 @@ +//====================================================================================== +// Map Index +//====================================================================================== +//Contains the list of maps with their respective IDs for inter-server use. +//IDs must never change, therefore any new maps need to be added at the end, +//and old ones must not be removed, but may be replaced. +//Format: +//mapnameindex <- specifies index for this map +//mapname <- map will use index of previous map +1 +//Note that map index 0 is special and reserved for "error" status. + +//====================================================================================== +//Place your custom maps with a starting ID here. +//====================================================================================== +//Example: +// +//mymap 1250 +//mymap-2 \ No newline at end of file diff --git a/db/map_index.txt b/db/map_index.txt index 53baf6f2db..89bc77b90b 100644 --- a/db/map_index.txt +++ b/db/map_index.txt @@ -1015,11 +1015,3 @@ paramk //tank_test //tank_test2 //test - -//====================================================================================== -//Place your custom maps with a starting ID here. -//====================================================================================== -//Example: -// -//mymap 1250 -//mymap-2 diff --git a/db/packet_db.txt b/db/packet_db.txt index f5d298f2ed..117ca5e0c8 100644 --- a/db/packet_db.txt +++ b/db/packet_db.txt @@ -107,7 +107,7 @@ packet_ver: 5 0x00a7,8,useitem,2:4 0x00a8,7 0x00a9,6,equipitem,2:4 -0x00aa,7 +0x00aa,7,ZC_WEAR_EQUIP_ACK,2:4:6 0x00ab,4,unequipitem,2 0x00ac,7 //0x00ad,-1 @@ -1586,7 +1586,7 @@ packet_ver: 25 //0x083F,22 //2010-06-29aRagexeRE -0x00AA,9 +0x00AA,9,ZC_WEAR_EQUIP_ACK,2:4:6:8 //0x07F1,18 //0x07F2,8 //0x07F3,6 @@ -1631,7 +1631,7 @@ packet_ver: 26 0x0857,-1 0x0858,-1 0x0859,-1 -0x08d0,9 +0x08d0,9,ZC_WEAR_EQUIP_ACK,2:4:6:8 //2011-10-05aRagexeRE packet_ver: 27 @@ -1869,7 +1869,7 @@ packet_ver: 34 0x0996,-1 //store itemlist equip 0x0997,-1 //ZC_EQUIPWIN_MICROSCOPE_V5 0x0998,8,equipitem,2:4 // CZ_REQ_WEAR_EQUIP_V5 -0x0999,11 // cz_wear_equipv5 +0x0999,11,ZC_WEAR_EQUIP_ACK,2:4:8:10 // cz_wear_equipv5 0x099a,9 // take_off_equipv5 0x099b,8 //maptypeproperty2 diff --git a/db/pre-re/item_db.txt b/db/pre-re/item_db.txt index 3258f62c26..12036deead 100644 --- a/db/pre-re/item_db.txt +++ b/db/pre-re/item_db.txt @@ -1,7 +1,7 @@ // Items Database // // Structure of Database: -// ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } +// ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } // // Healing Items //============================================================= @@ -4893,7 +4893,7 @@ 12344,Pinguicula's_fruit_Jam,Pinguicula's Fruit Jam,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_ATK,600000,10; },{},{} 12345,Luciola's_Honey_Jam,Luciola's Honey Jam,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_GUARD; sc_start SC_SPL_DEF,600000,10; },{},{} 12346,Unripe_Acorn,Unripe Acorn,2,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ heal -100,0; },{},{} -12347,Acorn_Jelly,Acorn Jelly,2,11,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ itemskill "ALL_REVERSEORCISH",1; },{},{} +12347,Acorn_Jelly,Acorn Jelly,11,0,,0,,,,,0xFFFFFFFF,7,2,,,,,,{ itemskill "ALL_REVERSEORCISH",1; },{},{} 12348,Manuk's_Faith,Manuk's Faith,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_MANU_MATK,600000,10; },{},{} 12349,Cornus'_Tears,Cornus' Tears,2,0,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_MATK,600000,10; },{},{} 12350,Angeling_Potion,Angeling Potion,11,20,,100,,,,,0xFFFFFFFF,7,2,,,,,,{ skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,120000,5; itemskill "AL_ANGELUS",5; },{},{} @@ -4942,8 +4942,8 @@ 12393,Repair_B,Repair B,2,500,,140,,,,,0x00000400,8,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(300,400),0; } },{},{} 12394,Repair_C,Repair C,2,1100,,180,,,,,0x00000400,8,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(400,500),0; } },{},{} 12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,7,2,,,,,,{ pet 1519; },{},{} -12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10; },{},{} -12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196; },{},{} +12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 247; else if(.@rnd==9) specialeffect2 338; else specialeffect2 10; },{},{} +12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 328; else if(.@rnd==9) specialeffect2 68; else specialeffect2 196; },{},{} 12398,PCBang_Gift_Box,PCBang Gift Box,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} 12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} 12400,Water_Of_Blessing_,Water Of Blessing ,2,20,,10,,,,,0xFFFFFFFF,7,2,,,,,,{},{},{} diff --git a/db/re/item_db.txt b/db/re/item_db.txt index cffdfb141d..7a3122ef88 100644 --- a/db/re/item_db.txt +++ b/db/re/item_db.txt @@ -1,7 +1,7 @@ // Items Database // // Structure of Database: -// ID,AegisName,Name,Type,Buy,Sell,Weight,ATK,DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV,Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } +// ID,AegisName,Name,Type,Buy,Sell,Weight,ATK[:MATK],DEF,Range,Slots,Job,Class,Gender,Loc,wLV,eLV[:maxLevel],Refineable,View,{ Script },{ OnEquip_Script },{ OnUnequip_Script } // // Healing Items //============================================================= @@ -965,7 +965,7 @@ 1659,Recovery_Light,Light of Recovery,5,56000,,400,30:160,,1,1,0x00000100,63,2,2,4,110,1,10,{ bonus bAtkEle,Ele_Holy; bonus bUnbreakableWeapon,0; bonus bHealPower,(getrefine()*6); bonus2 bSkillUseSP,"AL_HEAL",-(getrefine()*10); bonus2 bSkillUseSP,"AB_CHEAL",-(getrefine()*12); bonus2 bSkillUseSP,"AB_HIGHNESSHEAL",-(getrefine()*14); },{},{} 1660,Wand_Of_Affection2,Empowered Wand Of Affection,5,20,,500,30:180,,1,1,0x00000100,63,2,2,3,130,1,10,{ bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus bHealPower,20; },{},{} 1661,Mental_Destroyer,Mental Destroyer,5,20,,1400,100:50,,1,0,0x00000200,63,2,2,4,95,1,10,{ bonus bInt,10; bonus bUnbreakableWeapon,0; bonus bUseSPrate,100; bonus bMdef,20; bonus2 bSPVanishRate,10000,5; if(getrefine()>5) { bonus2 bSPVanishRate,10000,5; } },{},{} -1664,Thorn_Staff_of_Darkness,Thorn Staff of Darkness,5,10,,700,60:160,,,1,0x14,50,2,2,4,75,1,8,{ bonus bInt,3; bonus bDex,3; bonus bVariableCastrate,-getrefine(); bonus bAtkEle,Ele_Shadow; },{},{} +1664,Thorn_Staff_of_Darkness,Thorn Staff of Darkness,5,10,,700,60:160,,,1,0x14,50,2,2,4,75,1,8,{ bonus bInt,3; bonus bDex,3; bonus bVariableCastrate,-getrefine(); bonus bAtkEle,Ele_Dark; },{},{} 1668,Sword_Stick,Sword Stick,5,10,,500,120:150,,,2,0x800200,63,2,2,4,80,1,8,{ bonus bAspdRate,10; },{},{} 1669,Tanos_Staff,Tanos Staff,5,10,,1000,100:200,,,1,0x00818314,63,2,2,4,120,1,10,{ bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus bAtkRate,5; bonus2 bHPLossRate,100,10000; },{},{} 1670,RWC_Memory_Staff,RWC Memory Staff,5,20,,500,25:30,,1,1,0x00818315,63,2,2,3,1,1,10,{ bonus bUnbreakableWeapon,0; bonus bMatk,30*(getrefine()/3); if(getrefine()>=7){ set .@i,1; bonus4 bAutoSpell,"HW_MAGICPOWER",1,10,0; } if (getrefine()>=4){ set .@rate,5*(.@i+1); bonus2 bMagicAddClass,Class_All,.@rate; } },{},{} @@ -1251,7 +1251,7 @@ 2155,Academy_Shield,Academy Shield,4,0,,1500,,3,,1,0xFFFFFFFE,63,2,32,,0,1,4,{},{},{} 2156,Bible_Of_Promise1,Bible of Promise(1st Vol.),4,20,,500,,10,,1,0x00000100,63,2,32,,110,1,5,{ skill "ALL_ODINS_POWER",1; },{},{} 2157,Insecticide,Pesticide,4,20,,100,,0,,0,0xFFFFFFFF,63,2,32,,0,1,0,{},{},{} -2158,Ramor_Shield_Undead,Ramorushirudo,4,20,,1300,,50,,1,0xFFFFFFFF,63,2,32,,65,1,3,{ bonus2 bSubRace,Ele_Undead,5; bonus2 bSubRace,Ele_DemiHuman,-5; },{},{} +2158,Ramor_Shield_Undead,Ramorushirudo,4,20,,1300,,50,,1,0xFFFFFFFF,63,2,32,,65,1,3,{ bonus2 bSubRace,Ele_Undead,5; bonus2 bSubRace,RC_DemiHuman,-5; },{},{} 2159,Sharel_Shield,Sharerushirudo,4,20,,1300,,50,,1,0xFFFFFFFF,63,2,32,,65,1,3,{},{},{} 2160,Giant_Shield,Giant Shield,4,56000,,2800,,130,,1,0x00004082,63,2,32,,100,1,4,{ bonus2 bSubSize,Size_Large,5; if(getrefine()>=9){ bonus2 bSubSize,Size_Large,5; } },{},{} 2161,Geffenia_Book_Water,Geffenia Tomb of Water,4,56000,,1000,,30,,1,0x00000200,63,2,32,,100,1,5,{ bonus bMdef,2; bonus bInt,1; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bMaxHP,800; } },{},{} @@ -6170,7 +6170,7 @@ 12344,Pinguicula's_fruit_Jam,Pinguicula's Fruit Jam,2,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_ATK,600000,10; },{},{} 12345,Luciola's_Honey_Jam,Luciola's Honey Jam,2,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_GUARD; sc_start SC_SPL_DEF,600000,10; },{},{} 12346,Unripe_Acorn,Unripe Acorn,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ heal -100,0; },{},{} -12347,Acorn_Jelly,Acorn Jelly,2,11,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "ALL_REVERSEORCISH",1; },{},{} +12347,Acorn_Jelly,Acorn Jelly,11,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{ itemskill "ALL_REVERSEORCISH",1; },{},{} 12348,Manuk's_Faith,Manuk's Faith,2,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_MANU_MATK,600000,10; },{},{} 12349,Cornus'_Tears,Cornus' Tears,2,0,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_MATK,600000,10; },{},{} 12350,Angeling_Potion,Angeling Potion,11,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{ skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,120000,5; itemskill "AL_ANGELUS",5; },{},{} @@ -6219,8 +6219,8 @@ 12393,Repair_B,Repair B,2,500,,140,,,,,0x00000400,56,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(300,400),0; } },{},{} 12394,Repair_C,Repair C,2,1100,,180,,,,,0x00000400,56,2,,,,,,{ if ( checkmadogear() ) { itemheal rand(400,500),0; } },{},{} 12395,Tantanmen,Tantan Noodle,2,20,,50,,,,,0xFFFFFFFF,63,2,,,,,,{ pet 1519; },{},{} -12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10; },{},{} -12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196; },{},{} +12396,Fools_Day_Box,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 247; else if(.@rnd==9) specialeffect2 338; else specialeffect2 10; },{},{} +12397,Fools_Day_Box2,Gift Box?,11,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ .@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 328; else if(.@rnd==9) specialeffect2 68; else specialeffect2 196; },{},{} 12398,PCBang_Gift_Box,PCRoom Gift Box,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12399,Castle_Treasure_Box,Castle Treasure Box,2,20,,1000,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12400,Water_Of_Blessing_,Water Of Blessing,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} @@ -6359,7 +6359,7 @@ 12535,Iggdrasilberry_Box,Iggdrasilberry Box,2,0,,0,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12536,NY_Rice_Cake_Soup,NY Rice Cake Soup,2,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12537,Solo_Gift_Basket,Solo Gift Basket,2,1000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getgroupitem(IG_Solo_Gift_Basket);*/ getitem 597,5; getitem 596,3; getitem 561,3; getitem 573,4; getitem 559,10; getitem 560,10; },{},{} -12538,Couple_Event_Basket,Couple Event Basket,2,2000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 15657,10; getitem 14548,10; getitem 14549,00; getitem 14550,10; },{},{} +12538,Couple_Event_Basket,Couple Event Basket,2,2000,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 14547,10; getitem 14548,10; getitem 14549,10; getitem 14550,10; },{},{} 12539,Splendid_Box,Splendid Box,2,20,,100,,,,,0xFFFFFFFF,63,2,,,,,,{},{},{} 12540,GM_Warp_Box,GM Warp Box,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_GM_Warp_Box); },{},{} 12541,Fortune_Cookie1,Fortune Cookie1,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getrandgroupitem(IG_Fortune_Cookie1,1); },{},{} @@ -6899,7 +6899,7 @@ 13108,BF_Pistol1,Soldier Revolver,5,0,,0,70,,7,0,0x41000000,63,2,34,3,80,1,17,{ bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bAddRace,RC_Player,55; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0; },{},{} 13109,Wasteland_Outlaw_C,Wasteland Outlaw,5,20,,0,100,,7,0,0x41000000,63,2,34,3,0,0,17,{ bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddClass,Class_All,40; },{},{} 13110,Krieger_Pistol1,Glorious Pistol,5,0,,0,80,,7,0,0x41000000,63,2,34,4,80,1,17,{ bonus2 bAddRace,RC_DemiHuman,55; bonus2 bAddRace,RC_Player,55; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bAddRace,RC_Player,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreDefRaceRate,RC_Player,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; } },{},{} -13111,Sharpshooter_Revolver,Sharpshooter Revolver,5,20,,0,105,,7,0,0x41000000,63,2,34,4,1,1,17,{ bonus bDex,2; bonus2 bSkillAtk,"GN_DESPERADO",25; },{},{} +13111,Sharpshooter_Revolver,Sharpshooter Revolver,5,20,,0,105,,7,0,0x41000000,63,2,34,4,1,1,17,{ bonus bDex,2; bonus2 bSkillAtk,"GS_DESPERADO",25; },{},{} 13112,P_Revolver1,Eden Revlover I,5,0,,0,44,,7,0,0x41000000,63,2,34,1,26,0,17,{ bonus bHit,-5; },{},{} 13113,P_Revolver2,Eden Revlover II,5,0,,0,60,,7,0,0x41000000,63,2,34,1,40,0,17,{ bonus bHit,-5; },{},{} 13114,P_Revolver3,Eden Revolver III,5,0,,0,76,,7,0,0x41000000,63,2,34,3,60,0,17,{ bonus bHit,-5; },{},{} @@ -6983,7 +6983,7 @@ 13223,Flare_Sphere,Flare Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Fire; },{},{} 13224,Lightning_Sphere,Lightning Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Wind; },{},{} 13225,Poison_Sphere,Poison Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Poison; },{},{} -13226,Blind_Sphere,Blind Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Shadow; },{},{} +13226,Blind_Sphere,Blind Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Dark; },{},{} 13227,Freezing_Sphere,Freezing Sphere,10,10,,5,50,,,0,0xFFFFFFFF,63,2,32768,,1,,5,{ bonus bAtkEle,Ele_Water; },{},{} // Shurikens & Kunais 13250,Shuriken,Shuriken,10,4,,5,10,,,,0x02000000,63,2,32768,,1,,6,{},{},{} @@ -7365,7 +7365,7 @@ 13762,In_Royal_Jelly_Box,Royal Jelly Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 526,70; },{},{} 13763,5_Anniversary_Coin_Box,Coin Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 2709,1; },{},{} 13764,Battle_Manual_Box_TW,Beginner's Field Manual 5 Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 7803,5; },{},{} -13765,Certificate_TW_Box,Certificate Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getitem 7804,1; },{},{} +13765,Certificate_TW_Box,Certificate Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ /*getitem 7804,1;*/ },{},{} 13766,Nagan_Box,Refined Nagan Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ rentitem 13407,604800; },{},{} 13767,Skewer_Box,Refined Brocca Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ rentitem 1424,604800; },{},{} 13768,Survival_Rod_Box,Refined Survivor's Rod Box,18,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ rentitem 1628,604800; },{},{} @@ -8105,7 +8105,7 @@ 14617,VIT_Biscuit_Stick,Bar Cookie Of Vitality,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INCVIT,1800000,15; /*sc_start SC_INCDEFRATE,600000,rand(11,33);*/ },{},{} 14618,AGI_Biscuit_Stick,Bar Cookie Of Agility,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_AGIFOOD,1800000,15; sc_start SC_FLEEFOOD,600000,rand(11,33); },{},{} 14619,INT_Biscuit_Stick,Bar Cookie Of Intelligence,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_INTFOOD,1800000,15; sc_start SC_INCMATKRATE,600000,rand(11,111); },{},{} -14620,DEX_Biscuit_Stick,Bar Cookie Of Dexterity,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_DEXFOOD,1800000,15; sc_start SC_HIT,600000,rand(11,33); },{},{} +14620,DEX_Biscuit_Stick,Bar Cookie Of Dexterity,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_DEXFOOD,1800000,15; sc_start SC_HITFOOD,600000,rand(11,33); },{},{} 14621,LUK_Biscuit_Stick,Bar Cookie Of Lucky,18,1,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ sc_start SC_LUKFOOD,1800000,15; sc_start SC_INCCRI,600000,rand(11,33); },{},{} 14623,Golden_Treasure_Box,Golden Treasure Box,18,10,,10,,,,0,0xFFFFFFFF,63,2,,,,,,{ /*Items*/ },{},{} 14624,Blue_Scroll,Blue Scroll,2,20,,10,,,,,0xFFFFFFFF,63,2,,,,,,{ getgroupitem(IG_Blue_Scroll); },{},{} @@ -8227,7 +8227,7 @@ 15094,Heroic_Magic_Coat,Heroic Magic Coat,4,10,,800,,50,,1,0x4,63,2,16,,160,1,,{ bonus bMatk,10; bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bFlee,10; bonus2 bSkillAtk,"WL_CRIMSONROCK",10; bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",10; if (getrefine()) { bonus bFixedCastrate,21-getrefine()/2; bonus bNoCastCancel2,1; bonus bMdef,getrefine()/2; } },{},{} 15095,Heroic_Judgement_Shawl,Heroic Judgement Shawl,4,10,,500,,7,,1,0x10,63,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bMatk,10; bonus bBaseAtk,10; bonus bHit,10; bonus bFlee,10; bonus2 bSkillAtk,"AB_JUDEX",10; bonus2 bSkillAtk,"AB_ADORAMUS",10; bonus2 bSkillAtk,"SR_DRAGONCOMBO",10; bonus2 bSkillAtk,"SR_SKYNETBLOW",10; bonus2 bSkillAtk,"SR_EARTHSHAKER",10; bonus5 bAutoSpell,"PR_KYRIE",1,50+getrefine(),BF_SHORT,0; bonus5 bAutoSpell,"PR_LEXAETERNA",10,50+getrefine(),BF_SHORT,0; },{},{} 15096,Heroic_Trade-Mail,Heroic Trade-Mail,4,10,,500,,100,,1,0x60CFDF80,56,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bMatk,10; bonus bBaseAtk,10; if(readparam(bStr) >= 90) bonus bStr,getrefine()/2; if(readparam(bInt) >= 90) bonus bInt,getrefine()/2; if(readparam(bAgi) >= 90) bonus bAgi,getrefine()/2; if(readparam(bVit) >= 90) bonus bVit,getrefine()/2; if(readparam(bDex) >= 90) bonus bDex,getrefine()/2; if(readparam(bLuk) >= 90) bonus bLuk,getrefine()/2; },{},{} -15097,Heroic_Hidden_Cloth,Heroic Hidden Cloth,4,10,,200,,70,,1,0x60CFDF80,56,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"SC_FATALMENACE",10; bonus2 bSkillAtk,"SC_TRIANGLESHOT",10; bonus2 bSkillAtk,"GC_CROSSIMPACT",10; bonus2 bSkillAtk,"GC_CROSSRIPPERSLASHER",10; autobonus "{ bonus bCritical,20; bonus bFlee,20; bonus bAtkRate,10; bonus bMatkRate,10%; }",(5+getrefine())*10,10000; },{},{} +15097,Heroic_Hidden_Cloth,Heroic Hidden Cloth,4,10,,200,,70,,1,0x60CFDF80,56,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"SC_FATALMENACE",10; bonus2 bSkillAtk,"SC_TRIANGLESHOT",10; bonus2 bSkillAtk,"GC_CROSSIMPACT",10; bonus2 bSkillAtk,"GC_CROSSRIPPERSLASHER",10; autobonus "{ bonus bCritical,20; bonus bFlee,20; bonus bAtkRate,10; bonus bMatkRate,10; }",(5+getrefine())*10,10000; },{},{} 15098,Heroic_Target_Suit,Heroic Target Suit,4,10,,200,,60,,1,0x60CFDF80,56,2,16,,160,1,,{ bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bAllStats,1; bonus5 bAutoSpell,"AC_CONCENTRATION",10,(5+getrefine())*5,BG_WEAPON,0; bonus5 bAutoSpell,"AC_DOUBLE",10,(5+getrefine())*5,BG_WEAPON,1; bonus5 bAutoSpell,"AC_CHARGEARROW",10,(5+getrefine())*5,BG_WEAPON,0; },{},{} 15100,Frozen_Breastplate,Frozen Breastplate,4,20,,1500,,20,,1,0xFFFFFFFF,63,2,16,,130,1,0,{ bonus bDefEle,Ele_Water; },{},{} 15101,Hardened_Breastplate,Hardened Breastplate,4,20,,1500,,20,,1,0xFFFFFFFF,63,2,16,,130,1,0,{},{},{} @@ -9255,7 +9255,7 @@ 18849,Celine_Ribbon,Celine Ribbon,4,10,,200,,,,1,0xFFFFFFFF,63,2,256,,1,1,967,{ bonus bDex,3; bonus bMatk,40+getrefine(); bonus bMagicHPGainValue,200; bonus2 bHPLossRate,50,5000; },{},{} 18850,Polar_Bear_Cap,Polar Bear Cap,4,20,,300,,7,,0,0xFFFFFFFF,63,2,256,,1,0,966,{ bonus bUnbreakableHelm,0; bonus bDex,1; bonus bAgi,1; bonus bMdef,3; bonus bHPrecovRate,5; bonus bSPrecovRate,3; bonus2 bAddMonsterDropItem,12354,100; },{},{} 18851,C_Polar_Bear_Cap,Costume Polar Bear Cap,4,20,,0,,0,,0,0xFFFFFFFF,63,2,1024,,1,1,966,{},{},{} -18855,Aviator_Hat,Aviator Hat,4,10,,100,,10,,0,0xFFFFFFFF,63,2,256,,1,1,972,{ bonus bAgi,3; bonus bInt,3; autobonus "{ bonus bAtkEle,Ele_Winds; }",500,180,BF_NORMAL; },{},{} +18855,Aviator_Hat,Aviator Hat,4,10,,100,,10,,0,0xFFFFFFFF,63,2,256,,1,1,972,{ bonus bAgi,3; bonus bInt,3; autobonus "{ bonus bAtkEle,Ele_Wind; }",500,180,BF_NORMAL; },{},{} 18856,W_King_Tiger_Doll_Hat,W King Tiger Doll Hat,4,10,,0,,10,,0,0xFFFFFFFF,63,2,256,,1,1,973,{ bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; /*There is transform possibility becomes Eddga*/ },{},{} 18857,Curupira_Hat,Curupira Hat,4,10,,100,,20,,0,0xFFFFFFFF,63,2,256,,1,1,974,{ bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; /*Transform to be Eddga when attacking or receiving damage. Drains 5 SP each secs. Success chance by refine value.*/ },{},{} 18859,Angeling_Bubble,Angeling Bubble,4,10,,50,,5,,0,0xFFFFFFFF,63,2,1,,1,,975,{ bonus bDex,1; bonus bMatkRate,2; bonus bMaxHP,100; },{},{} @@ -9306,7 +9306,7 @@ 18972,Old_Mitra,Old Mitra,4,10,,100,,10,,1,0x00000100,56,2,256,,170,1,624,{ bonus bAllStats,1; bonus bMdef,5; bonus bMatk,2*getrefine(); bonus bBaseAtk,4*getrefine(); bonus bHealPower,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"AB_JUDEX",20*getrefine()/2; bonus2 bSkillAtk,"PR_MAGNUS",10*getrefine()/2; },{},{} 18973,Old_Driver_Band,Old Driver Band,4,10,,100,,10,,1,0x00000400,56,2,256,,170,1,626,{ bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bAspd,getrefine()/5; bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"NC_POWERSWING",20*getrefine()/2; bonus2 bSkillAtk,"NC_AXETORNADO",20*getrefine()/2; },{},{} 18974,Old_Driver_Band(Yellow),Old Driver Band(Yellow),4,10,,100,,10,,1,0x00000400,56,2,256,,170,1,637,{ bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bAspd,getrefine()/5; bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"NC_ARMSCANNON",20*getrefine()/2; bonus2 bSkillAtk,"NC_SELFDESTRUCTION",20*getrefine()/4; },{},{} -18975,Old_Shadow_Handicraft,Old Shadow Handicraft,4,10,,100,,10,,1,0x00020000,56,2,256,,170,1,627,{ bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bMatk,4*getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*getrefine()/2; if (getrefine()>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (getrefine()>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (getrefine()>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"",-1000; } },{},{} +18975,Old_Shadow_Handicraft,Old Shadow Handicraft,4,10,,100,,10,,1,0x00020000,56,2,256,,170,1,627,{ bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bMatk,4*getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*getrefine()/2; if (getrefine()>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (getrefine()>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (getrefine()>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"SC_GROOMY",-1000; } },{},{} 18976,Old_Minstrel_Song's_Hat,Old Minstrel Song's Hat,4,10,,100,,10,,1,0x00080000,56,1,256,,170,1,628,{ bonus bAllStats,1; bonus bLongAtkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"CG_ARROWVULCAN",20*getrefine()/2; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",5*getrefine()/2; },{},{} 18977,Old_Midas_Whisper,Old Midas Whisper,4,10,,100,,10,,1,0x00040000,56,2,256,,170,1,629,{ bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bLongAtkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"GN_CARTCANNON",15*getrefine()/2; },{},{} 18978,Old_Magic_Stone_Hat,Old Magic Stone Hat,4,10,,100,,10,,1,0x00000200,56,2,256,,170,1,630,{ bonus bAllStats,1; bonus bMdef,5; bonus bMatkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"WL_SOULEXPANSION",5*getrefine()/2; bonus2 bSkillCooldown,"WL_CRIMSONROCK",-1000-(getrefine()*100); },{},{} @@ -9868,7 +9868,7 @@ 22802,Safe_to_6_Equipment_Certificate,Safe to 6 Equipment Certificate,3,10,,10,,,,,,,,,,,,,{},{},{} 22808,Special_Gift_Box,Special Gift Box,2,10,,100,,,,,,,,,,,,,{},{},{} 22812,Sealed_Dracula_Scroll,Sealed Dracula Scroll,2,10,,10,,,,,,,,,,,,,{ getitem callfunc("F_Rand",6228,6232,22813,19937,17314, 6635),1; },{},{} -22813,Bearer's_Shadow_Box,Bearer's Shadow Box,2,10,,10,,,,,,,,,,,,,{ getitem callfunc("F_Rand",24180,24181,24182,28183,24184,24185),1; },{},{} +22813,Bearer's_Shadow_Box,Bearer's Shadow Box,2,10,,10,,,,,,,,,,,,,{ getitem callfunc("F_Rand",24180,24181,24182,24183,24184,24185),1; },{},{} 22814,Cat_Hand_Ticket,Cat Hand Ticket,3,10,,0,,,,,,,,,,,,,{},{},{} 22823,Sealed_Sniper_Scroll,Sealed Sniper Scroll,2,10,,10,,,,,,,,,,,,,{ /*getitem callfunc("F_Rand",4491,6228,6232,24196, Hasty Shadow Armor, 19882, 17474, 6635),1;*/ },{},{} 22826,Costume_Enchantment_Stone_Box_4,Costume Enchantment Stone Box 4,2,10,,100,,,,,,,,,,,,,{},{},{} diff --git a/db/re/mob_db.txt b/db/re/mob_db.txt index 295861180b..a8d43c5a5f 100644 --- a/db/re/mob_db.txt +++ b/db/re/mob_db.txt @@ -101,7 +101,7 @@ 1095,ANDRE,Andre,Andre,33,724,1,216,243,1,51,72,55,16,11,20,40,10,24,10,10,12,0,4,22,0x1181,300,1288,288,384,0,0,0,0,0,0,0,955,9000,910,1000,938,500,993,50,1001,4,1002,350,757,28,0,0,0,0,4043,1 1096,ANGELING,Angeling,Angeling,77,19800,1,3060,2693,1,355,500,72,238,58,50,33,105,67,200,10,12,1,8,86,0x37B5,200,1072,672,672,0,0,0,0,0,0,0,2254,100,2324,60,610,500,2282,1,509,2000,512,28,714,40,0,0,0,0,4054,1 1097,ANT_EGG,Ant Egg,Ant Egg,28,530,1,180,203,0,1,2,68,45,5,1,65,5,10,30,10,12,0,0,60,0x0,1000,1001,1,1,0,0,0,0,0,0,0,1010,320,935,2000,909,2000,938,650,713,2000,1002,200,0,0,0,0,0,0,4013,1 -1098,ANUBIS,Anubis,Anubis,105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,0,0,0,0,4138,1 +1098,ANUBIS,Anubis,Anubis,105,18826,1,3356,2450,1,480,695,103,48,88,67,40,128,89,55,10,12,2,7,49,0x3695,150,1250,720,576,0,0,0,0,0,0,0,12735,10,1625,10,934,550,984,105,1045,4365,2617,1,1614,3,15042,100,0,0,4138,1 1099,ARGIOPE,Argiope,Argiope,75,3105,1,810,912,1,292,342,88,32,60,23,40,30,20,30,10,12,2,4,25,0x3795,300,1792,792,336,0,0,0,0,0,0,0,1042,5335,912,1200,757,175,2406,5,511,1500,719,10,0,0,0,0,0,0,4114,1 1100,ARGOS,Argos,Argos,47,1005,1,360,405,1,96,129,58,8,38,17,25,5,26,15,10,12,2,4,25,0x3195,300,1468,468,768,0,0,0,0,0,0,0,1025,9000,911,1200,1042,500,757,61,511,670,508,250,10017,15,0,0,0,0,4075,1 1101,BAPHOMET_,Baphomet Jr.,Baphomet Jr.,57,2035,0,486,548,1,186,219,70,25,52,60,36,17,52,25,10,12,0,6,27,0x3795,100,868,480,120,0,0,0,0,0,0,0,923,3000,984,63,1464,2,607,50,610,100,508,1300,2405,50,0,0,0,0,4129,1 @@ -135,7 +135,7 @@ 1129,HORONG,Horong,Horong,66,2304,1,781,879,1,262,332,84,35,36,32,35,45,56,25,10,12,0,0,83,0x308D,400,1888,1152,828,0,0,0,0,0,0,0,953,6500,912,500,2279,5,1752,10000,757,118,633,20,970,50,0,0,0,0,4103,1 1130,JAKK,Jakk,Jakk,63,2054,1,632,710,1,218,255,90,25,58,43,42,25,55,15,10,12,1,0,43,0x3695,200,1180,480,648,0,0,0,0,0,0,0,1062,9000,912,900,985,31,2331,5,1008,5,535,1000,7938,10,0,0,0,0,4109,1 1131,JOKER,Joker,Joker,90,6022,1,1618,1821,1,288,348,64,76,84,99,30,50,77,35,10,12,2,7,84,0x3695,100,1364,864,432,0,0,0,0,0,0,0,912,2000,616,2,641,20,508,1000,1259,1,984,100,695,100,0,0,0,0,4139,1 -1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,0,0,0,0,4136,1 +1132,KHALITZBURG,Khalitzburg,Khalitzburg,118,23986,1,2862,2147,1,737,833,125,10,121,48,40,31,89,32,10,12,2,1,29,0x3695,350,528,1000,396,0,0,0,0,0,0,0,932,8000,985,191,5017,1,2108,2,1004,10,15014,2,1127,2,15036,100,0,0,4136,1 1133,KOBOLD_1,Kobold,Kobold,107,10483,1,2274,1706,1,539,626,103,25,109,76,61,53,82,30,10,12,1,7,44,0x308D,150,1028,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,700,757,25,1220,2,2104,5,0,0,0,0,0,0,4091,1 1134,KOBOLD_2,Kobold,Kobold,102,9152,1,1944,1458,1,367,429,117,59,96,61,55,48,79,20,10,12,1,7,45,0x308D,200,1528,528,360,0,0,0,0,0,0,0,999,100,1034,5335,912,200,2104,3,508,100,2101,100,0,0,0,0,0,0,4091,1 1135,KOBOLD_3,Kobold,Kobold,101,9078,1,1827,1371,1,360,424,109,48,103,64,59,42,67,20,10,12,1,7,43,0x308D,300,1228,528,360,0,0,0,0,0,0,0,990,35,999,100,1034,5335,912,200,1355,5,2104,3,508,100,0,0,0,0,4091,1 @@ -166,7 +166,7 @@ 1160,PIERE,Piere,Piere,32,696,1,216,243,1,47,67,57,16,19,19,36,8,27,15,10,12,0,4,22,0x1181,200,1288,288,576,0,0,0,0,0,0,0,955,9000,910,1100,938,600,992,30,1001,5,1002,400,757,31,0,0,0,0,4043,1 1161,PLANKTON,Plankton,Plankton,40,1232,1,334,375,1,75,111,28,28,23,53,25,55,35,14,10,12,0,3,61,0x81,400,2208,1008,324,0,0,0,0,0,0,0,1052,9000,910,300,938,700,970,4,713,1000,630,20,645,50,0,0,0,0,4024,1 1162,RAFFLESIA,Rafflesia,Rafflesia,86,5819,1,1170,1317,3,295,336,86,2,47,41,44,29,65,31,10,12,0,3,22,0x3885,150,512,528,240,0,0,0,0,0,0,0,1033,5500,911,1600,706,2,708,10,703,10,711,550,509,30,0,0,0,0,4083,1 -1163,RAYDRIC,Raydric,Raydric,115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,0,0,0,0,4133,1 +1163,RAYDRIC,Raydric,Raydric,115,18408,1,2770,2076,1,572,668,89,15,129,87,55,32,76,27,10,12,2,7,47,0x3095,150,824,780,420,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,1116,100,1004,10,7054,4850,15037,1,0,0,4133,1 1164,REQUIEM,Requiem,Requiem,71,3089,1,738,831,1,316,364,88,20,58,34,35,12,42,10,10,12,1,7,27,0x3885,400,1516,816,432,0,0,0,0,0,0,0,603,35,714,1,912,2500,958,3500,934,1500,2308,10,7477,1,0,0,0,0,4104,1 1165,SAND_MAN,Sandman,Sandman,61,2887,1,626,705,1,156,212,126,24,44,8,55,15,31,25,10,12,1,0,62,0x3885,250,1672,720,288,0,0,0,0,0,0,0,997,35,1056,5335,757,118,7043,350,1001,200,1257,1,1622,5,0,0,0,0,4101,1 1166,SAVAGE,Savage,Savage,59,2301,1,573,644,1,172,195,126,3,56,21,54,10,47,15,10,12,2,2,42,0x91,150,1960,960,384,0,0,0,0,0,0,0,1028,9000,514,300,702,2,2276,1,6249,10,757,70,526,2,0,0,0,0,4078,1 @@ -530,8 +530,8 @@ // Nifflheim (7.0) 1503,GIBBET,Gibbet,Gibbet,105,12999,1,1944,1458,1,536,621,116,45,103,56,62,55,61,37,10,12,2,6,27,0x3985,180,917,1584,576,0,0,0,0,0,0,0,7212,1800,7218,5335,7222,4074,724,300,716,100,604,10,7939,100,0,0,0,0,4278,1 -1504,DULLAHAN,Dullahan,Dullahan,108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,0,0,0,0,0,0,0,0,4176,1 -1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,0,0,0,0,4191,1 +1504,DULLAHAN,Dullahan,Dullahan,108,18546,1,2509,1977,2,666,741,111,38,121,29,51,43,87,3,10,12,1,1,49,0x3885,155,847,1152,480,0,0,0,0,0,0,0,7209,3200,7210,4850,2614,1,2505,13,2506,1,15039,10,0,0,0,0,0,0,4176,1 +1505,LOLI_RURI,Loli Ruri,Loli Ruri,109,15280,1,2790,2093,2,787,1017,53,44,111,50,47,79,79,79,10,12,2,6,87,0x3985,125,747,1632,576,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,6246,300,15038,10,0,0,4191,1 1506,DISGUISE,Disguise,Disguise,103,13895,1,2232,1674,2,260,342,85,58,92,53,57,75,67,45,10,12,1,6,82,0x3985,147,516,768,384,0,0,0,0,0,0,0,7216,4850,7221,3686,6247,100,518,100,2508,50,2504,2,2529,5,0,0,0,0,4181,1 1507,BLOODY_MURDERER,Bloody Murderer,Bloody Murderer,110,14099,1,2724,2244,2,844,942,84,41,120,65,66,41,89,26,10,12,2,7,67,0x3885,175,914,1344,384,0,0,0,0,0,0,0,7207,4171,7223,1000,7208,2000,2288,50,984,100,1229,3,13002,1,0,0,0,0,4214,1 1508,QUVE,Quve,Quve,100,11090,1,1638,1229,1,226,323,96,55,84,54,55,50,71,60,10,12,0,1,29,0x3885,150,912,1248,576,0,0,0,0,0,0,0,7205,3200,7220,5723,601,1000,7154,100,756,10,6245,500,0,0,0,0,0,0,4294,1 @@ -766,11 +766,11 @@ 1712,G_THA_DOLOR,Thanatos Dolor,Dolor of Thanatos,129,45000,1,0,0,2,700,901,71,80,91,72,59,96,78,79,10,12,0,1,88,0x33B5,150,160,672,480,0,0,0,0,0,0,0,7054,1000,731,500,732,100,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Abyss Lake -1713,ACIDUS,Acidus,Acidus,130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,0,0,0,0,4378,1 -1714,FERUS,Ferus,Ferus,126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,0,0,0,0,4380,1 +1713,ACIDUS,Acidus,Acidus,130,48430,1,4520,3389,2,622,1017,101,90,109,78,50,55,77,55,10,12,2,9,46,0x3095,170,168,1008,300,0,0,0,0,0,0,0,7938,500,1035,4000,7444,5,1036,3589,7448,800,1269,10,2114,50,2890,1,0,0,4378,1 +1714,FERUS,Ferus,Ferus,126,25668,1,3985,2989,2,692,807,96,45,94,80,55,60,78,50,10,12,2,9,43,0x3095,100,108,576,432,0,0,0,0,0,0,0,578,2200,1035,1000,7123,1000,1036,2000,7447,800,994,20,5122,50,2891,1,0,0,4380,1 1715,NOVUS,Novus,Novus,90,6670,1,1305,1505,1,388,445,95,48,74,56,57,25,90,45,10,12,0,9,20,0x3885,110,151,288,360,0,0,0,0,0,0,0,511,3000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4383,1 -1716,ACIDUS_,Acidus,Acidus,130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,0,0,0,0,4379,1 -1717,FERUS_,Ferus,Ferus,126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,0,0,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 +1716,ACIDUS_,Acidus,Acidus,130,40718,1,4520,3389,2,703,861,98,47,106,110,61,53,95,53,10,12,2,9,44,0x3095,180,168,768,360,0,0,0,0,0,0,0,505,150,1035,4000,510,150,1036,3589,7446,800,996,20,7446,100,2890,1,0,0,4379,1 +1717,FERUS_,Ferus,Ferus,126,39054,1,4185,2989,2,647,769,111,33,91,57,57,61,62,51,10,12,2,9,42,0x3095,120,108,576,432,0,0,0,0,0,0,0,579,5100,1035,1000,2891,1,1036,3589,7445,800,997,20,7445,100,0,0,0,0,4381,1 1718,NOVUS_,Novus,Novus,84,5028,1,1080,1215,1,266,314,88,28,53,43,43,55,90,58,10,12,0,9,20,0x3885,100,252,816,480,0,0,0,0,0,0,0,508,2000,7053,1035,0,0,1036,589,0,0,0,0,0,0,0,0,0,0,4382,1 1719,DETALE,Detale,Detardeurus,135,6005000,1,4320000,3420000,3,4072,6734,364,166,165,153,171,136,185,72,10,12,2,9,67,0x37B5,250,432,936,360,2160000,617,5500,603,5000,732,2000,2649,1000,2648,1000,7444,5000,7451,3589,12080,1000,1417,100,5002,500,0,0,0,0,4386,1 1720,HYDRO,Hydro,Hydrolancer,121,41500,0,6285,4463,3,760,910,92,58,120,72,67,66,88,58,10,12,2,9,47,0x37B5,160,140,672,432,0,0,0,0,0,0,0,7123,4000,1035,4000,7443,3880,5126,500,5127,500,12085,300,5124,500,0,0,0,0,4384,1 @@ -809,8 +809,8 @@ // Odin's Temple 1751,RANDGRIS,Valkyrie Randgris,Valkyrie Randgris,141,2205000,1,2000000,2200000,3,2895,9307,588,506,196,131,125,276,267,156,10,12,2,8,86,0x37B5,100,576,576,480,1000000,617,5500,603,5000,616,2000,7510,5000,2357,1600,2524,3000,2421,3000,2229,5000,7024,2500,0,0,0,0,0,0,4407,1 -1752,SKOGUL,Skogul,Skogul,126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 -1753,FRUS,Frus,Frus,128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,0,0,0,0,0,0,4405,1 +1752,SKOGUL,Skogul,Skogul,126,34240,1,4280,3210,2,791,947,72,15,100,71,63,85,82,37,10,12,1,6,67,0x3395,190,720,384,480,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,739,500,2609,100,757,500,1271,5,2884,1,0,0,4404,1 +1753,FRUS,Frus,Frus,128,39520,1,4562,3421,2,710,879,65,35,114,77,66,51,79,27,10,12,1,6,67,0x3395,150,480,576,432,0,0,0,0,0,0,0,7511,3500,7054,1000,716,1000,2622,3,2308,10,757,500,2884,1,0,0,0,0,4405,1 1754,SKEGGIOLD,Skeggiold,Skeggiold,131,53290,1,5552,4419,1,733,1058,85,92,91,89,65,118,98,75,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 1755,SKEGGIOLD_,Skeggiold,Skeggiold,131,52280,1,5549,4411,1,767,985,80,86,91,86,67,116,102,71,10,12,0,8,46,0x37B5,250,672,780,480,0,0,0,0,0,0,0,7511,6000,2254,1,7063,1000,2001,25,7511,1000,2322,100,2353,100,0,0,0,0,4406,1 1756,G_HYDRO,Hydro,Hydrolancer,121,41500,0,0,0,3,760,910,92,95,120,72,67,66,88,58,10,12,2,9,47,0x39A5,160,140,672,432,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -830,8 +830,8 @@ 1768,GLOOMUNDERNIGHT,Gloom Under Night,Gloom Under Night,139,3005000,1,2160000,1800000,3,3061,5846,479,262,191,223,187,155,241,163,10,12,2,0,68,0x37B5,200,1344,2880,576,1080000,607,5500,617,5000,617,5000,7566,7000,7023,4000,7022,2000,616,5000,2513,1000,1377,100,0,0,0,0,0,0,4408,1 1769,AGAV,Agav,Agav,128,40000,1,3933,2949,1,637,818,77,82,85,66,55,113,86,61,10,12,1,7,80,0x3295,300,768,360,360,0,0,0,0,0,0,0,7567,2500,2422,2,7563,4000,2109,1,12183,50,7563,100,1061,2500,0,0,0,0,4409,1 1770,ECHIO,Echio,Echio,126,31620,1,3690,2768,1,606,765,66,11,111,63,51,37,94,45,10,12,1,7,80,0x3295,250,768,360,360,0,0,0,0,0,0,0,7567,2500,608,10,7563,4000,5172,25,12183,20,7563,100,2366,20,0,0,0,0,4410,1 -1771,VANBERK,Vanberk,Vanberk,123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,0,0,0,0,0,0,4411,1 -1772,ISILLA,Isilla,Isilla,124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,0,0,0,0,0,0,4412,1 +1771,VANBERK,Vanberk,Vanberk,123,24605,1,3240,2430,1,656,797,100,6,109,70,55,60,87,54,10,12,1,7,80,0x3885,250,768,360,360,0,0,0,0,0,0,0,7568,2500,526,10,7563,1000,5172,25,13027,5,7563,100,2883,1,0,0,0,0,4411,1 +1772,ISILLA,Isilla,Isilla,124,26324,1,3456,2592,1,606,774,69,19,90,65,43,82,91,75,10,12,1,7,80,0x3885,300,768,360,432,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,7563,100,2883,1,0,0,0,0,4412,1 1773,HODREMLIN,Hodremlin,Hodremlin,122,23182,1,3758,2819,1,682,836,75,25,106,70,77,60,59,40,10,12,1,6,67,0x3985,140,960,528,432,0,0,0,0,0,0,0,587,1000,7340,1000,2406,2,938,1000,7563,1000,1061,2000,2426,10,0,0,0,0,4413,1 1774,SEEKER,Seeker,Seeker,124,24500,1,4009,3006,6,611,731,64,30,91,90,35,75,126,31,10,12,0,0,64,0x3295,190,576,432,300,0,0,0,0,0,0,0,587,1000,7340,1000,985,20,1061,4000,7563,1000,1375,20,0,0,0,0,0,0,4414,1 1775,SNOWIER,Snowier,Snowier,103,13934,1,1944,1458,2,510,592,121,47,91,61,67,45,61,55,10,12,2,0,41,0x3885,220,936,1020,420,0,0,0,0,0,0,0,7561,3000,7066,1000,757,100,510,50,509,500,1819,3,991,100,0,0,0,0,4415,1 @@ -933,8 +933,8 @@ 1863,E_SPRING_RABBIT,Spring Rabbit,Spring Rabbit,25,4500,0,0,0,1,292,406,23,10,20,15,15,5,15,5,10,12,1,2,42,0x83,160,1120,552,511,0,0,0,0,0,0,0,7860,5000,7861,5000,7862,5000,0,0,0,0,0,0,0,0,0,0,0,0,0,0 // Cursed Abbey (11.3) -1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,0,0,0,0,0,0,4435,1 -1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,0,0,0,0,4436,1 +1864,ZOMBIE_SLAUGHTER,Zombie Slaughter,Zombie Slaughter,124,40440,1,3938,2702,1,707,824,100,45,117,58,82,13,97,21,10,12,1,1,69,0x3695,200,676,648,432,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,2886,10,0,0,0,0,4435,1 +1865,RAGGED_ZOMBIE,Ragged Zombie,Ragged Zombie,123,38574,1,3515,3087,9,810,940,85,35,81,50,64,56,127,23,10,12,1,1,69,0x3695,150,1960,576,420,0,0,0,0,0,0,0,7752,3000,2424,15,934,1500,932,4500,2703,2,13107,10,6223,1,2887,100,0,0,4436,1 1866,HELL_POODLE,Hell Poodle,Hellhound,115,17168,1,2565,1923,1,642,787,86,20,114,56,59,82,77,54,10,12,0,6,27,0x3795,140,824,432,360,0,0,0,0,0,0,0,528,5000,13028,10,1268,10,932,4500,628,20,919,5500,537,400,0,0,0,0,4437,1 1867,BANSHEE,Banshee,Banshee,130,48666,1,4520,3500,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,7751,3000,2365,10,13027,10,2528,10,934,1500,7054,5335,6223,1,0,0,0,0,4438,1 1868,G_BANSHEE,Banshee,Banshee,130,48666,1,0,0,1,724,1127,73,96,97,71,55,123,98,72,10,12,1,6,47,0x3795,150,676,504,504,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -1088,7 +1088,7 @@ 1991,TENDRILRION,Tendrillion,Tendrillion,126,1397451,1,100772,75299,2,1002,2322,132,123,144,66,77,181,145,132,10,12,1,2,42,0x37B5,100,500,960,360,0,0,0,0,0,0,0,2544,500,1186,100,1637,100,6033,9000,6224,10,7197,5335,7008,4850,0,0,0,0,4463,1 1992,CORNUS,Cornus,Cornus,120,20722,1,6240,4004,2,288,810,66,95,51,47,59,99,93,77,10,12,1,2,66,0x1089,120,1000,624,300,0,0,0,0,0,0,0,2387,10,2743,1,6023,4000,7063,3000,6224,10,2257,2,1420,1,0,0,0,0,4448,1 1993,NAGA,Naga,Naga,117,21099,1,2944,2212,3,489,591,72,5,112,65,71,32,71,33,10,12,2,2,42,0x3695,150,400,864,432,0,0,0,0,0,0,0,2389,10,2134,10,1485,10,6224,10,936,3500,954,2000,1408,20,0,0,0,0,4469,1 -1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 +1994,LUCIOLA_VESPA,Luciola Vespa,Luciola Vespa,109,12466,1,1622,1806,1,299,410,59,55,88,89,55,32,119,59,10,12,1,4,24,0x7795,110,1000,864,432,0,0,0,0,0,0,0,2744,2,6224,1,939,9000,518,300,992,160,526,200,943,3000,15043,1,0,0,4445,1 1995,PINGUICULA,Pinguicula,Pinguicula,105,13058,1,2221,1662,1,189,511,46,77,67,60,64,107,64,34,10,12,1,3,62,0x308D,200,700,600,360,0,0,0,0,0,0,0,2745,1,1980,10,2270,10,7100,5000,7198,2000,7188,3000,7939,1000,0,0,0,0,4476,1 //1996,BACSOJIN_T,Bacsojin,White Lady,97,720500,1,668160,542880,3,1088,3124,210,178,118,244,98,126,205,102,10,12,2,7,64,0x37B5,130,576,960,480,0,0,0,0,0,0,0,5411,3,2638,80,2639,80,0,0,0,0,0,0,0,0,0,0,0,0,0,0 1997,G_TATACHO,Tatacho,Tatacho,128,33336,1,0,0,2,727,799,151,14,119,33,70,56,78,33,10,12,1,2,22,0x108B,200,1000,768,360,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 @@ -1757,7 +1757,7 @@ //2600,G_WOLF //2601,G_YOYO //2602,G_ZIPPER_BEAR -//2603,C1_ZOMBIE_SLAUGHTER +//2603,C1_ZOMBIE_SLAUGHTER,Swift Zombie Slaughter,Swift Zombie Slaughter,124,202200,1,10345,24315,1,1383,1954,100,45,117,58,82,13,136,21,10,12,1,1,69,0,0,0,0,0,0,0,0,0,0,0,0,7752,3000,13404,10,934,1500,7753,3000,938,3000,6223,1,2886,10,0,0,0,0,4435,1 //2604,C2_ZOMBIE_PRISONER //2605,C3_ZOMBIE_MASTER //2606,C4_ZOMBIE @@ -1781,7 +1781,7 @@ //2624,C3_VENOMOUS //2625,C4_VENATU_1 //2626,C5_VAVAYAGA -//2627,C1_VANBERK +//2627,C1_VANBERK,Swift Vanberk,Swift Vanberk,123,123025,1,10530,21870,1,1112,1553,100,6,109,70,55,60,122,54,10,12,1,7,80,0,0,0,0,0,0,0,0,0,0,0,0,7568,2500,526,1,7563,1000,5172,25,13027,5,2883,1,0,0,0,0,0,0,4411,1 //2628,C2_VADON //2629,C3_UNGOLIANT //2630,C4_TOUCAN @@ -1811,7 +1811,7 @@ //2654,C4_SMOKIE //2655,C5_SLEEPER //2656,C1_SLEEPER -//2657,C2_SKOGUL +//2657,C2_SKOGUL,Solid Skogul,Solid Skogul,126,342400,1,14760,46890,2,1192,1675,72,15,100,71,63,85,115,37,10,12,1,6,67,0,0,0,0,0,0,0,0,0,0,0,0,7511,3500,2884,1,716,1000,739,500,2609,100,757,500,1271,5,0,0,0,0,4404,1 //2658,C3_SKELETON_GENERAL //2659,C4_SKELETON_GENERAL //2660,C5_SKEL_WORKER @@ -1844,8 +1844,8 @@ //2687,C2_REQUIEM //2688,C3_REMOVAL //2689,C5_RED_ERUMA -//2690,C1_RAYDRIC -//2691,C2_RAYDRIC +//2690,C1_RAYDRIC,Swift Raydric,Swift Raydric,115,92040,1,9000,18675,1,1108,1541,89,15,129,87,55,32,106,27,10,12,2,7,47,0,0,0,0,0,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,15037,100,1004,1,7054,4850,0,0,0,0,4133,1 +//2691,C2_RAYDRIC,Solid Raydric,Solid Raydric,115,184080,1,9000,18675,1,1108,1541,89,15,129,87,55,32,106,27,10,12,2,7,47,0,0,0,0,0,0,0,0,0,0,0,0,985,106,2266,1,2315,2,1158,2,15037,100,1004,1,7054,4850,0,0,0,0,4133,1 //2692,C3_RAWREL //2693,C4_RAKE_SCARABA //2694,C5_RAGGLER @@ -1927,8 +1927,8 @@ //2770,C2_LUNATIC //2771,C3_LUNATIC //2772,C4_LUDE -//2773,C5_LUCIOLA_VESPA -//2774,C1_LOLI_RURI +//2773,C5_LUCIOLA_VESPA,Elusive Luciola Vespa,Elusive Luciola Vespa,109,62330,1,7365,16245,1,761,1044,59,55,88,89,55,32,143,59,10,12,1,4,24,0,0,0,0,0,0,0,0,0,0,0,0,2744,2,6224,1,15043,9000,518,300,992,160,526,200,943,3000,0,0,0,0,4445,1 +//2774,C1_LOLI_RURI,Swift Loli Ruri,Swift Loli Ruri,109,76400,1,8370,18825,2,1297,1836,53,44,111,50,47,79,95,79,10,12,2,6,87,0,0,0,0,0,0,0,0,0,0,0,0,7206,800,7219,3000,7214,5044,985,100,7019,1,2718,5,15038,100,0,0,0,0,4191,1 //2775,C2_LIVE_PEACH_TREE //2776,C3_LITTLE_PORING //2777,C4_LITTLE_FATUM @@ -1945,7 +1945,7 @@ //2788,C5_KASA //2789,C1_KARAKASA //2790,C2_ISIS -//2791,C3_ISILLA +//2791,C3_ISILLA,Isilla Ringleader,Isilla Ringleader,124,131620,1,11230,23325,1,1027,1434,69,19,90,65,43,82,127,75,10,12,1,7,80,0,0,0,0,0,0,0,0,0,0,0,0,7568,2500,2422,1,7563,1000,2610,10,2601,1,2883,1,0,0,0,0,0,0,4412,1 //2792,C4_INJUSTICE //2793,C5_INCREASE_SOIL //2794,C1_ICE_TITAN @@ -2066,8 +2066,8 @@ //2909,C4_ALICEL //2910,C5_ALARM //2911,C1_AGAV -//2912,C2_ACIDUS_ -//2913,C3_ACIDUS_ +//2912,C2_ACIDUS_,Solid Acidus,Solid Acidus,130,407180,1,14690,30480,2,1660,2372,98,47,106,110,61,53,133,53,10,12,2,9,44,0,0,0,0,0,0,0,0,0,0,0,0,505,150,1035,4000,2890,1,1036,3589,7446,800,996,2,0,0,0,0,0,0,4379,1 +//2913,C3_ACIDUS_,Acidus Ringleader,Acidus Ringleader,130,203590,1,14690,30480,2,1660,2372,98,47,106,110,61,53,133,53,10,12,2,9,44,0,0,0,0,0,0,0,0,0,0,0,0,505,150,1035,4000,2890,1,1036,3589,7446,800,996,2,0,0,0,0,0,0,4379,1 //2914,E_GEFFEN_MAGE_3_1 //2915,HIDDEN_MOB6 //2916,BIG_BEN diff --git a/db/re/skill_db.txt b/db/re/skill_db.txt index c464c234cf..a33ba5dd59 100644 --- a/db/re/skill_db.txt +++ b/db/re/skill_db.txt @@ -823,7 +823,7 @@ //694,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,0x0, ALL_ANGEL_PROTECT,Angel's Protection //695,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,0x0, ALL_DREAM_SUMMERNIGHT,Summer Night Dream //696,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,0x0, NPC_CHANGEUNDEAD2,Change Undead -//697,9,6,4,0,0x1,0,1,1,yes,0,0x2,0,magic,0,0x0, ALL_REVERSEORCISH,Reverse Orcish +697,9,6,4,0,0x1,0,1,1,yes,0,0x2,0,magic,0,0x0, ALL_REVERSEORCISH,Reverse Orcish 698,0,6,4,0,0x01,0,1,1,no,0,0x2,0,none,0,0x0, ALL_WEWISH,Christmas Carol //699,0,0,0,0,0,0,9,0,no,0,0x2,0,none,0,0x0, ALL_SONKRAN,ALL_SONKRAN diff --git a/doc/item_db.txt b/doc/item_db.txt index 1247466b6f..2591a33f93 100644 --- a/doc/item_db.txt +++ b/doc/item_db.txt @@ -56,6 +56,8 @@ Weight: Item's weight. Each 10 is 1 weight. ATK: Weapon's attack +MATK: Weapon's magic attack (Renewal only) + --------------------------------------- DEF: Armor's defense @@ -154,6 +156,8 @@ wLV: Weapon level. eLV: Base level required to be able to equip. +maxLevel: Only able to equip if base level is lower than this. + --------------------------------------- Refineable: 1 if the item can be refined, 0 otherwise. diff --git a/npc/re/merchants/coin_exchange.txt b/npc/re/merchants/coin_exchange.txt index 5fcef2098b..0046fdb6e5 100644 --- a/npc/re/merchants/coin_exchange.txt +++ b/npc/re/merchants/coin_exchange.txt @@ -40,9 +40,9 @@ malangdo,220,167,5 script Coin Exchanger CX-1 564,{ .@menu$ = "Stop:"; for(.@i = 1; .@i<=6; .@i++) { if (countitem(.@coins[.@i])) - .@menu$ += getitemname(.@coins[.@i])+":"; + .@menu$ = .@menu$ + getitemname(.@coins[.@i]) + ":"; else - .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; + .@menu$ = .@menu$ + "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; } .@i = select(.@menu$); switch(.@i) { @@ -76,11 +76,11 @@ malangdo,220,167,5 script Coin Exchanger CX-1 564,{ .@menu$ = "Stop:"; for(.@i = 0; .@i<2; .@i++) { if (.@exchange_id[.@i] == 0) - .@menu$ += "^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:"; + .@menu$ = .@menu$ + "^ff3333Unavailable exchange to "+.@exchange_name$[.@i]+" coin^000000:"; else if (countitem(.@coin) < .@exchange_rate[.@i]) - .@menu$ += "^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:"; + .@menu$ = .@menu$ + "^aaaaaaExchange to "+.@exchange_name$[.@i]+" coin (null)^000000:"; else - .@menu$ += "Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):"; + .@menu$ = .@menu$ + "Exchange to "+.@exchange_name$[.@i]+" coin - "+getitemname(.@coin)+" ("+.@exchange_rate[.@i]+" needed):"; } .@i = select(.@menu$)-2; if (.@i == -1) { @@ -134,7 +134,7 @@ malangdo,218,165,5 script Special Vending Machine 562,{ L_AddItem: .@menu$ = "Explanation:"; for(.@i = 0; .@i= .@coin_amount[.@i]) - .@menu$ += "Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:"; + .@menu$ = .@menu$ + "Exchange "+(.@coin_amount[.@i]/10)+" Mora Coin:"; else - .@menu$ += "^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:"; + .@menu$ = .@menu$ + "^aaaaaaExchange "+(.@coin_amount[.@i]/10)+" Mora Coin (Not Enough)^000000:"; } .@i = select(.@menu$+"Quit")-1; if (.@i == getarraysize(.@coin_amount)) { @@ -249,9 +249,9 @@ malangdo,233,180,3 script Dark MachineTX100 564,{ .@menu$ = "Quit:"; for(.@i = 1; .@i<=6; .@i++) { if (countitem(.@coins[.@i])) - .@menu$ += getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):"; + .@menu$ = .@menu$ + getitemname(.@coins[.@i])+" (have "+countitem(.@coins[.@i])+"):"; else - .@menu$ += "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; + .@menu$ = .@menu$ + "^aaaaaa"+getitemname(.@coins[.@i])+" (None)^000000:"; } .@i = select(.@menu$)-1; if (.@i == 0) { @@ -284,22 +284,22 @@ malangdo,233,180,3 script Dark MachineTX100 564,{ next; .@menu$ = "Quit:"; if (.@exchange_id[0] == 0) - .@menu$ += "^ff3333Cannot exchange to higher level coin^000000:"; + .@menu$ = .@menu$ + "^ff3333Cannot exchange to higher level coin^000000:"; else { if (countitem(.@coin) >= 99) - .@menu$ += "Exchange 99 "+getitemname(.@coin)+" into higher level coin:"; + .@menu$ = .@menu$ + "Exchange 99 "+getitemname(.@coin)+" into higher level coin:"; else - .@menu$ += "^aaaaaaExchange to higher level coin (Not enough)^000000:"; + .@menu$ = .@menu$ + "^aaaaaaExchange to higher level coin (Not enough)^000000:"; } if (.@exchange_id[1] == 0) - .@menu$ += "^ff3333Cannot exchange to lower level coin^000000:"; + .@menu$ = .@menu$ + "^ff3333Cannot exchange to lower level coin^000000:"; else { if (countitem(.@coin) > 500) - .@menu$ += "Exchange 500 "+getitemname(.@coin)+" into lower level coin:"; + .@menu$ = .@menu$ + "Exchange 500 "+getitemname(.@coin)+" into lower level coin:"; else if (countitem(.@coin)) - .@menu$ += "Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:"; + .@menu$ = .@menu$ + "Exchange "+countitem(.@coin)+" "+getitemname(.@coin)+" into lower level coin:"; else - .@menu$ += "^aaaaaaExchange to lower level coin (Not enough)^000000:"; + .@menu$ = .@menu$ + "^aaaaaaExchange to lower level coin (Not enough)^000000:"; } .@i = select(.@menu$)-2; if (.@i == -1) { diff --git a/npc/re/quests/quests_eclage.txt b/npc/re/quests/quests_eclage.txt index a1fff7d0fc..1c91e476cf 100644 --- a/npc/re/quests/quests_eclage.txt +++ b/npc/re/quests/quests_eclage.txt @@ -5238,14 +5238,14 @@ OnTouch: mes "seem to be of a particular problem."; next; mes "[" + strcharinfo(0) + "]"; - if (checkquest(9244) == 1 || checkquest(9246) == 1){ + if (isbegin_quest(9244) == 1 || isbegin_quest(9246) == 1){ mes "However, Dames actually"; mes "suspects Rosa the most."; mes "Their marriage has been becoming"; mes "more difficult. She's been asking him for"; mes "more things. Their relationship doesn't seem healthy."; } - else if (checkquest(9245) == 1 || checkquest(9247) == 1){ + else if (isbegin_quest(9245) == 1 || isbegin_quest(9247) == 1){ mes "The stolen necklace was"; mes "what the husband bought for his wife.."; mes "Recently, the wife asked him to "; @@ -5263,14 +5263,14 @@ OnTouch: mes "there and stayed inside the house."; next; mes "[" + strcharinfo(0) + "]"; - if (checkquest(9248) == 1 || checkquest(9250) == 1){ + if (isbegin_quest(9248) == 1 || isbegin_quest(9250) == 1){ mes "She said she doesn't suspect anyone."; mes "She trusts her family entirely."; mes "The stolen necklace was"; mes "something that she"; mes "really cared for."; } - else if (checkquest(9249) == 1 || checkquest(9251) == 1){ + else if (isbegin_quest(9249) == 1 || isbegin_quest(9251) == 1){ mes "There are no particularly expensive"; mes "items in the house and neither was the necklace."; mes "It was just a meaningful item."; @@ -5307,7 +5307,7 @@ ecl_in04,78,108,5 script Daughter Luen#eclage 437,{ mes "I can't believe that the house was robbed..."; } else if (ep14_2_detect == 2) { - if (checkquest(9226) != 1) { + if (isbegin_quest(9226) != 1) { mes "[Daughter Luen]"; mes "I hope the robber"; mes "is caught soon.."; @@ -5553,7 +5553,7 @@ ecl_in04,78,108,5 script Daughter Luen#eclage 437,{ mes "I can help with?"; } else if (ep14_2_detect == 4) { - if (checkquest(9252) != 1 || checkquest(9253) != 1 || checkquest(9254) != 1 || checkquest(9255) != 1 || checkquest(9256) != 1 || checkquest(9257) != 1){ + if (isbegin_quest(9252) != 1 || isbegin_quest(9253) != 1 || isbegin_quest(9254) != 1 || isbegin_quest(9255) != 1 || isbegin_quest(9256) != 1 || isbegin_quest(9257) != 1){ mes "[Daughter Luen]"; mes "You were working on the field examination, right?"; mes "But I guess you aren't done."; @@ -5721,7 +5721,7 @@ ecl_in04,85,110,3 script Father Dames#eclage 447,{ mes "thing ever happened to us."; } else if (ep14_2_detect == 2) { - if (checkquest(9227) == 1) { + if (isbegin_quest(9227) == 1) { mes "[" + strcharinfo(0) + "]"; mes "As you may have heard, to figure out the thief responsible for this, I will begin my interview with you."; mes "Please give me your best cooperation."; @@ -6177,7 +6177,7 @@ eclage,164,102,3 script Cruyan#eclage 442,{ mes "no matter what and"; mes "bring it to mother."; } - else if (ep14_2_detect == 5 && checkquest(9231) == 1) { + else if (ep14_2_detect == 5 && isbegin_quest(9231) == 1) { mes "[" + strcharinfo(0) + "]"; mes "Hello."; mes "You must be Luen's boyfriend"; @@ -6589,7 +6589,7 @@ ecl_in04,85,104,3 script Poppy#eclage 81,{ mes "Grrrrr!!!!"; } else if (ep14_2_detect == 4) { - if (checkquest(9252) != 0) { + if (isbegin_quest(9252) != 0) { mes "[" + strcharinfo(0) + "]"; mes "This thing is so violent"; mes "toward strangers..."; @@ -8613,7 +8613,7 @@ ecl_in01,26,88,5 script Cecilia#nk 440,{ } else if (checkquest(4256) == 2) { if (checkquest(4257) == -1) { - .@que_ni = checkquest(4254) + checkquest(4255); + .@que_ni = isbegin_quest(4254) + isbegin_quest(4255); if (.@que_ni != 4) { mes "[Cecilia]"; mes "How strange..."; @@ -8649,7 +8649,7 @@ ecl_in01,26,88,5 script Cecilia#nk 440,{ close; } else if (isbegin_quest(4257) == 1) { - .@que_san = checkquest(4258) + checkquest(4259); + .@que_san = isbegin_quest(4258) + isbegin_quest(4259); if (.@que_san != 4) { mes "[Cecilia]"; mes "Could you go ask Eirinn and Bourbon about reading books?"; @@ -12016,7 +12016,7 @@ ecl_in04,105,216,4 script Hiel's Workshop#pa0829 111,{ next; cutin "EP14_etran1",1; mes "[Etran]"; - mes "Welcome welcomeow~! We are cat merchants, always serving guests as our kingeow~! Special sale! One piece of meat for 200!!"; + mes "Welcome welcomeow~! We are cat merchants, always serving guests as our kingeow~! Special sale! One piece of meat for 200Á¦´Ï!!"; next; cutin "EP14_robert1",1; mes "[Robert]"; @@ -12291,7 +12291,7 @@ ecl_fild01,190,93,5 script Fili#1 617,1,1,{ mes "[Fili]"; mes "Looking at this beautiful field, the song sings itself~"; emotion e_ho; - close2; + close; } if (ep14_2_nines > 2) { mes "[Fili]"; @@ -12515,7 +12515,7 @@ ecl_fild01,190,93,5 script Fili#1 617,1,1,{ getexp 300000,300000; close; } - else if (checkquest(13050) == 0){ + else if (isbegin_quest(13050) == 0){ mes "[Fili]"; mes "Now that I see...you're a traveler, right? Sorry, I can't really notice anything unless I'm interested."; next; @@ -12547,11 +12547,11 @@ ecl_fild01,190,93,5 script Fili#1 617,1,1,{ setquest 13052; setquest 13053; setquest 13054; - close2; + close; case 2: mes "[Fili]"; mes "Ahng? Well, too bad. But if you have time later, please drop by. I could use a little help here."; - close2; + close; } } } @@ -12582,7 +12582,7 @@ ecl_fild01,222,290,5 script Singing Laphine#1 436,{ close; } else if (ep14_2_nines > 2 ){ - if (checkquest(13059,PLAYTIME) == 1 || checkquest(13059,PLAYTIME) == 1) { + if (checkquest(13059,PLAYTIME) == 1) { mes "[Singing Laphine]"; mes "Whew, did I sing too much? I'm so thirsty. A glass of rice wine sounds great, hah~"; emotion e_spin; @@ -12635,10 +12635,10 @@ ecl_fild01,83,263,5 script Watering Laphine#1 444,{ if (ep14_2_nines < 1) { mes "[Watering Laphine]"; mes "I think the earth is running dry."; - close2; + close; } else if (ep14_2_nines > 2) { - if ((checkquest(13059,PLAYTIME) == 1) || (checkquest(13059,PLAYTIME) == 1)) { + if (checkquest(13059,PLAYTIME) == 1) { mes "[Watering Laphine]"; mes "I think this is enough for the day. I have to take a break and draw water, too. Hehe~!"; close; @@ -12688,7 +12688,7 @@ ecl_fild01,163,196,5 script Dancing Laphine#1 438,{ close; } else if (ep14_2_nines > 2) { - if ((checkquest(13059,PLAYTIME) == 1) || (checkquest(13059,PLAYTIME) == 1)) { + if (checkquest(13059,PLAYTIME) == 1) { mes "[Dancing Laphine]"; mes "I would love to see the great Fili next time..."; close; @@ -12728,7 +12728,7 @@ ecl_fild01,163,196,5 script Dancing Laphine#1 438,{ mes "[Dancing Laphine]"; mes "You'll see as you continue your adventure. Anyway, I'll start working now."; erasequest 13053; - close2; + close; } if (isbegin_quest(13050) == 1) { mes "[Dancing Laphine]"; @@ -12751,7 +12751,7 @@ ecl_fild01,237,181,5 script Cute Laphine#1 446,{ close; } else if (ep14_2_nines > 2) { - if ((checkquest(13059,PLAYTIME) == 1) || (checkquest(13059,PLAYTIME) == 1)) { + if (checkquest(13059,PLAYTIME) == 1) { mes "[Cute Laphine]"; mes "It takes a cute person like me to bring joy to the earth...Too bad that you'll never be able to do so!"; close; @@ -12768,12 +12768,12 @@ ecl_fild01,237,181,5 script Cute Laphine#1 446,{ mes "[Cute Laphine]"; mes "You might think smiling to the earth always is nothing, but it's not that easy actually. I mean, it's hard to be cute like me in the first place~"; emotion e_heh; - close2; + close; } mes "[Cute Laphine]"; mes "I hope someday the flowers, trees, grasses, and little creatures on this earth will smile with joy."; emotion e_heh; - close2; + close; } } else if (ep14_2_nines == 1) { @@ -12840,7 +12840,7 @@ OnTouch: close; } else if (ep14_2_nines > 2) { - if ((checkquest(13060,PLAYTIME) == 1) || (checkquest(13060,PLAYTIME) == 1)) { + if (checkquest(13060,PLAYTIME) == 1) { mes "[Rosi]"; mes "Anyway, this isn't an ordinary place. This place, it's filled with newsworthy stories!"; close; @@ -12932,7 +12932,7 @@ OnTouch: close; } else if (ep14_2_nines > 2) { - if ((checkquest(13060,PLAYTIME) == 1) || (checkquest(13060,PLAYTIME) == 1)) { + if (checkquest(13060,PLAYTIME) == 1) { mes "[Euncheong]"; mes "Don't take me lightly just because I'm young. I've already been to every part of Midgard continent. I'm a real adventurer, you know."; close; @@ -13018,6 +13018,16 @@ ecl_tdun01,98,47,5 duplicate(Euncheong#No.1) Euncheong#No.3 896,1,1 ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ if (ep14_2_nines > 5) { + if ((checkquest(13062,PLAYTIME) == 1) && (checkquest(13064,PLAYTIME) == 1) && (checkquest(13066,PLAYTIME) == 1)) { + cutin "nines02",2; + mes "[New Oz]"; + mes "No need to worry about me! ^FF0000I'll definitely go home this time!^000000 Thanks for everything! I'll take you out for a nice meal next time!"; + emotion e_thx; + erasequest 13058; + close2; + cutin "",255; + end; + } if ((checkquest(13062,PLAYTIME) == 1) || (checkquest(13064,PLAYTIME) == 1) || (checkquest(13066,PLAYTIME) == 1)) { cutin "nines01",2; mes "[New Oz]"; @@ -13048,16 +13058,6 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ cutin "",255; end; } - if ((checkquest(13062,PLAYTIME) == 1) && (checkquest(13064,PLAYTIME) == 1) && (checkquest(13066,PLAYTIME) == 1)) { - cutin "nines02",2; - mes "[New Oz]"; - mes "No need to worry about me! ^FF0000I'll definitely go home this time!^000000 Thanks for everything! I'll take you out for a nice meal next time!"; - emotion e_thx; - erasequest 13058; - close2; - cutin "",255; - end; - } cutin "nines01",2; mes "[New Oz]"; mes "Good to see you again, my friend!"; @@ -13113,11 +13113,11 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ delitem 6558,10; //Pile_Of_Acorn erasequest 13061; setquest 13062; - getexp 300000,0; - getexp 0,300000; + getexp 300000,300000; getitem 6081,1; //Splendide_Coin close2; cutin "",255; + end; } cutin "nines04",2; mes "[New Oz]"; @@ -13129,6 +13129,7 @@ ecl_tdun03,68,80,3 script New Oz#1 4_M_NEWOZ,1,1,{ mes "Seeing his eyes and hearing him coughing constantly, I can tell he needs something to eat, like meat."; close2; cutin "",255; + end; } else if (checkquest(13061) == 2) { cutin "nines04",2; @@ -13948,7 +13949,7 @@ ecl_tdun04,26,39,1 script Professor Worm#worm 627,{ close; } else if (ep14_2_profe == 4) { - .@quest_status = checkquest(1218)+checkquest(1219)+checkquest(1220)+checkquest(1221)+checkquest(1222); + .@quest_status = isbegin_quest(1218)+isbegin_quest(1219)+isbegin_quest(1220)+isbegin_quest(1221)+isbegin_quest(1222); if (.@quest_status < 10) { mes "[Professor Worm]"; mes "Every wall has so much doodling."; @@ -14674,7 +14675,7 @@ ecl_in01,32,52,5 script Traveler Fome#tl01 515,3,3,{ } .@totaltemp = isbegin_quest(7423) + isbegin_quest(7424) + isbegin_quest(7425) + isbegin_quest(7426); .@total = isbegin_quest(7411) + isbegin_quest(7412) + isbegin_quest(7413); - if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && checkquest(7411) != 1)) { + if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && isbegin_quest(7411) != 1)) { mes "[Fome]"; mes "Come here and have a talk with us."; mes "My name is Fome and I'm from the central region of Alpheim."; @@ -14932,8 +14933,8 @@ ecl_in01,32,51,7 script Traveler Litrip#tl02 513,{ mes "It's very impressive that you're able to come this far..."; close; } - .@total = checkquest(7411) + checkquest(7412) + checkquest(7413); - if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && checkquest(7412) != 1)) { + .@total = isbegin_quest(7411) + isbegin_quest(7412) + isbegin_quest(7413); + if (ep14_2_mylord < 2 || (ep14_2_mylord == 2 && isbegin_quest(7412) != 1)) { mes "[Litrip]"; mes "Oh, look at this strange traveler. "; mes "Come here. My name is Litrip."; @@ -15098,8 +15099,8 @@ ecl_in01,35,51,3 script Traveler Chiba#tl03 514,{ mes "But you...Hmm...I don't think you're skilled enough to travel around this area."; close; } - .@total = checkquest(7411) + checkquest(7412) + checkquest(7413); - if (ep14_2_mylord < 2 || (ep14_2_mylord==2 && checkquest(7413)!=1)) { + .@total = isbegin_quest(7411) + isbegin_quest(7412) + isbegin_quest(7413); + if (ep14_2_mylord < 2 || (ep14_2_mylord==2 && isbegin_quest(7413)!=1)) { mes "[Chiba]"; mes "You're a human from Midgard."; mes "I'm Chiba."; @@ -15408,7 +15409,7 @@ ecl_in01,82,70,3 script Eclage Guard#tl02 447,{ } } else if (ep14_2_mylord == 7) { - .@alltotal = checkquest(7418) + checkquest(7419) + checkquest(7420); + .@alltotal = isbegin_quest(7418) + isbegin_quest(7419) + isbegin_quest(7420); if (checkquest(7418) == -1) { mes "[Eclage Guard]"; mes "Eh, good to see you again."; @@ -15503,7 +15504,7 @@ ecl_in01,82,70,3 script Eclage Guard#tl02 447,{ delitem 944,5; //Horseshoe completequest 7418; getexp 200000,200000; - .@alltotal = checkquest(7418) + checkquest(7419) + checkquest(7420); + .@alltotal = isbegin_quest(7418) + isbegin_quest(7419) + isbegin_quest(7420); if (.@alltotal > 5) { mes "[Minuel]"; mes "Come to think of it, you've done a lot of work for other Laphines as well. "; @@ -17498,7 +17499,7 @@ eclage,112,40,3 script Eclage Guard Leo#tl 461,{ mes "- You have too many items to proceed with the quest. -"; close; } - .@alltotal = checkquest(7420) + checkquest(7419) + checkquest(7418); + .@alltotal = isbegin_quest(7420) + isbegin_quest(7419) + isbegin_quest(7418); if (ep14_2_mylord < 7) { mes "[Leo]"; mes "Welcome to Eclage, the capital of Laphines and a gateway to Alpheim."; @@ -17598,7 +17599,7 @@ eclage,112,40,3 script Eclage Guard Leo#tl 461,{ delitem 12345,3; //Luciola's_Honey_Jam completequest 7420; getexp 200000,200000; - .@alltotal = checkquest(7420) + checkquest(7419) + checkquest(7418); + .@alltotal = isbegin_quest(7420) + isbegin_quest(7419) + isbegin_quest(7418); if (.@alltotal > 5) { mes "[Eclage Guard]"; mes "Here you are."; @@ -17750,7 +17751,7 @@ eclage,112,40,3 script Eclage Guard Leo#tl 461,{ } } else if ((ep14_2_mylord >= 8) && (ep14_2_mylord <= 10)) { - .@total = checkquest(7423) + checkquest(7424) + checkquest(7425) + checkquest(7426); + .@total = isbegin_quest(7423) + isbegin_quest(7424) + isbegin_quest(7425) + isbegin_quest(7426); if (checkquest(7423) == -1) { mes "[Leo]"; mes "Hmm...Are you and Mayor Jun involved in some kind of conspiracy?"; @@ -17929,7 +17930,7 @@ ecl_fild01,205,86,3 script Eclage Messenger Roy#tl 461,{ mes "- You have too many items to proceed with the quest. -"; close; } - .@alltotal = checkquest(7418) + checkquest(7419) + checkquest(7420); + .@alltotal = isbegin_quest(7418) + isbegin_quest(7419) + isbegin_quest(7420); if (ep14_2_mylord < 7) { mes "[Roy]"; mes "I can make it to Mora Village."; @@ -18153,7 +18154,7 @@ ecl_fild01,205,86,3 script Eclage Messenger Roy#tl 461,{ mes "This is a little something for you."; mes "I'll be looking forward to seeing you!"; delitem 6552,1; //Mail_Package - changequest 7430,4731; + changequest 7430,7431; getexp 200000,200000; getitem 6081,1; //Splendide_Coin close; @@ -18286,6 +18287,7 @@ eclage,274,294,5 script Laphines Conversation#tl 436,3,3,{ OnTouch: if (ep14_2_mylord == 10) { doevent "Eclage Resident#tl02::OnTalk"; + end; } else if (ep14_2_mylord == 11) { mes "[Male Laphine]"; @@ -18346,7 +18348,7 @@ OnTalk: mes "Stop eavesdropping and mind your own business."; next; setquest 7425; - .@total = checkquest(7423) + checkquest(7424) + checkquest(7425) + checkquest(7426); + .@total = isbegin_quest(7423) + isbegin_quest(7424) + isbegin_quest(7425) + isbegin_quest(7426); if (.@total > 3) { mes "Mayor and tyrant? And what's Seneth?"; mes "Anyway, they seem to be worried about Kardui, the current Mayor."; @@ -18425,7 +18427,7 @@ OnTouch: mes "Now, all visitors should leave the room."; next; setquest 7426; - .@total = checkquest(7423) + checkquest(7424) + checkquest(7425) + checkquest(7426); + .@total = isbegin_quest(7423) + isbegin_quest(7424) + isbegin_quest(7425) + isbegin_quest(7426); if (.@total > 3) { mes "What is 'that' Laphines are talking about? It seems to be related to Kardui."; mes "Let's stop worrying and ask Kardui instead!"; @@ -18447,6 +18449,7 @@ OnTouch: ecl_in03,245,54,2 script Laphine official duty#tl 439,{ if (ep14_2_mylord == 10) { doevent "Resting Laphine#tl01::OnTouch"; + end; } else if (ep14_2_mylord == 11) { mes "[Working Laphine]"; @@ -19140,12 +19143,12 @@ que_avan01,18,38,0 script Desk#tl01 844,{ switch (select("Try rearranging the books.:Forget it.")) { case 1: .@book = 0; - setarray .@books[0],"First","Second","Third","Fourth","Fifth"; + setarray .@books$[0],"First","Second","Third","Fourth","Fifth"; for (.@i = 1; .@i < 6; .@i++){ - mes "Where should the "+ .@books[.@i-1] +" book be placed?"; + mes "Where should the "+ .@books$[.@i-1] +" book be placed?"; next; .@select_book = select("First:Second:Third:Fourth:Fifth")-1; - mes "Book 1 was placed at the "+ .@books[.@select_book] +" spot."; + mes "Book 1 was placed at the "+ .@books$[.@select_book] +" spot."; if ((.@i==1 && .@select_book==1) || (.@i==2 && .@select_book==3) || (.@i==3 && .@select_book==0) || (.@i==4 && .@select_book==2) || (.@i==5 && .@select_book==4)) { .@book = .@book + 10; } diff --git a/sql-files/item_db.sql b/sql-files/item_db.sql index bf0de84bfa..482c17767a 100644 --- a/sql-files/item_db.sql +++ b/sql-files/item_db.sql @@ -4924,7 +4924,7 @@ REPLACE INTO `item_db` VALUES (12343,'Manuk\'s_Courage','Manuk\'s Courage',2,0,N REPLACE INTO `item_db` VALUES (12344,'Pinguicula\'s_fruit_Jam','Pinguicula\'s Fruit Jam',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_ATK,600000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12345,'Luciola\'s_Honey_Jam','Luciola\'s Honey Jam',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_GUARD; sc_start SC_SPL_DEF,600000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12346,'Unripe_Acorn','Unripe Acorn',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'heal -100,0;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12347,'Acorn_Jelly','Acorn Jelly',2,11,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill "ALL_REVERSEORCISH",1;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12347,'Acorn_Jelly','Acorn Jelly',11,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'itemskill "ALL_REVERSEORCISH",1;',NULL,NULL); REPLACE INTO `item_db` VALUES (12348,'Manuk\'s_Faith','Manuk\'s Faith',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_MANU_MATK,600000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12349,'Cornus\'_Tears','Cornus\' Tears',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_MATK,600000,10;',NULL,NULL); REPLACE INTO `item_db` VALUES (12350,'Angeling_Potion','Angeling Potion',11,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,120000,5; itemskill "AL_ANGELUS",5;',NULL,NULL); @@ -4973,8 +4973,8 @@ REPLACE INTO `item_db` VALUES (12392,'Repair_A','Repair A',2,220,NULL,100,NULL,N REPLACE INTO `item_db` VALUES (12393,'Repair_B','Repair B',2,500,NULL,140,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(300,400),0; }',NULL,NULL); REPLACE INTO `item_db` VALUES (12394,'Repair_C','Repair C',2,1100,NULL,180,NULL,NULL,NULL,NULL,0x00000400,8,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(400,500),0; }',NULL,NULL); REPLACE INTO `item_db` VALUES (12395,'Tantanmen','Tantan Noodle',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'pet 1519;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); -REPLACE INTO `item_db` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'.@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 247; else if(.@rnd==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); +REPLACE INTO `item_db` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,'.@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 328; else if(.@rnd==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); REPLACE INTO `item_db` VALUES (12398,'PCBang_Gift_Box','PCBang Gift Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12399,'Castle_Treasure_Box','Castle Treasure Box',2,20,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db` VALUES (12400,'Water_Of_Blessing_','Water Of Blessing',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,7,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/sql-files/item_db_re.sql b/sql-files/item_db_re.sql index af073ceaf2..0152023134 100644 --- a/sql-files/item_db_re.sql +++ b/sql-files/item_db_re.sql @@ -996,7 +996,7 @@ REPLACE INTO `item_db_re` VALUES (1658,'P_Staff3','Eden Staff III',5,0,NULL,0,'6 REPLACE INTO `item_db_re` VALUES (1659,'Recovery_Light','Light of Recovery',5,56000,NULL,400,'30:160',NULL,1,1,0x00000100,63,2,2,4,'110',1,10,'bonus bAtkEle,Ele_Holy; bonus bUnbreakableWeapon,0; bonus bHealPower,(getrefine()*6); bonus2 bSkillUseSP,"AL_HEAL",-(getrefine()*10); bonus2 bSkillUseSP,"AB_CHEAL",-(getrefine()*12); bonus2 bSkillUseSP,"AB_HIGHNESSHEAL",-(getrefine()*14);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1660,'Wand_Of_Affection2','Empowered Wand Of Affection',5,20,NULL,500,'30:180',NULL,1,1,0x00000100,63,2,2,3,'130',1,10,'bonus bAtkEle,Ele_Holy; bonus bInt,4; bonus bHealPower,20;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1661,'Mental_Destroyer','Mental Destroyer',5,20,NULL,1400,'100:50',NULL,1,0,0x00000200,63,2,2,4,'95',1,10,'bonus bInt,10; bonus bUnbreakableWeapon,0; bonus bUseSPrate,100; bonus bMdef,20; bonus2 bSPVanishRate,10000,5; if(getrefine()>5) { bonus2 bSPVanishRate,10000,5; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (1664,'Thorn_Staff_of_Darkness','Thorn Staff of Darkness',5,10,NULL,700,'60:160',NULL,NULL,1,0x14,50,2,2,4,'75',1,8,'bonus bInt,3; bonus bDex,3; bonus bVariableCastrate,-getrefine(); bonus bAtkEle,Ele_Shadow;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (1664,'Thorn_Staff_of_Darkness','Thorn Staff of Darkness',5,10,NULL,700,'60:160',NULL,NULL,1,0x14,50,2,2,4,'75',1,8,'bonus bInt,3; bonus bDex,3; bonus bVariableCastrate,-getrefine(); bonus bAtkEle,Ele_Dark;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1668,'Sword_Stick','Sword Stick',5,10,NULL,500,'120:150',NULL,NULL,2,0x800200,63,2,2,4,'80',1,8,'bonus bAspdRate,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1669,'Tanos_Staff','Tanos Staff',5,10,NULL,1000,'100:200',NULL,NULL,1,0x00818314,63,2,2,4,'120',1,10,'bonus bInt,6; bonus bVit,6; bonus bLuk,-6; bonus bAtkRate,5; bonus2 bHPLossRate,100,10000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (1670,'RWC_Memory_Staff','RWC Memory Staff',5,20,NULL,500,'25:30',NULL,1,1,0x00818315,63,2,2,3,'1',1,10,'bonus bUnbreakableWeapon,0; bonus bMatk,30*(getrefine()/3); if(getrefine()>=7){ set .@i,1; bonus4 bAutoSpell,"HW_MAGICPOWER",1,10,0; } if (getrefine()>=4){ set .@rate,5*(.@i+1); bonus2 bMagicAddClass,Class_All,.@rate; }',NULL,NULL); @@ -1282,7 +1282,7 @@ REPLACE INTO `item_db_re` VALUES (2154,'Toy_Shield','Toy Shield',4,0,NULL,500,NU REPLACE INTO `item_db_re` VALUES (2155,'Academy_Shield','Academy Shield',4,0,NULL,1500,NULL,3,NULL,1,0xFFFFFFFE,63,2,32,NULL,'0',1,4,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (2156,'Bible_Of_Promise1','Bible of Promise(1st Vol.)',4,20,NULL,500,NULL,10,NULL,1,0x00000100,63,2,32,NULL,'110',1,5,'skill "ALL_ODINS_POWER",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2157,'Insecticide','Pesticide',4,20,NULL,100,NULL,0,NULL,0,0xFFFFFFFF,63,2,32,NULL,'0',1,0,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (2158,'Ramor_Shield_Undead','Ramorushirudo',4,20,NULL,1300,NULL,50,NULL,1,0xFFFFFFFF,63,2,32,NULL,'65',1,3,'bonus2 bSubRace,Ele_Undead,5; bonus2 bSubRace,Ele_DemiHuman,-5;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (2158,'Ramor_Shield_Undead','Ramorushirudo',4,20,NULL,1300,NULL,50,NULL,1,0xFFFFFFFF,63,2,32,NULL,'65',1,3,'bonus2 bSubRace,Ele_Undead,5; bonus2 bSubRace,RC_DemiHuman,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2159,'Sharel_Shield','Sharerushirudo',4,20,NULL,1300,NULL,50,NULL,1,0xFFFFFFFF,63,2,32,NULL,'65',1,3,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (2160,'Giant_Shield','Giant Shield',4,56000,NULL,2800,NULL,130,NULL,1,0x00004082,63,2,32,NULL,'100',1,4,'bonus2 bSubSize,Size_Large,5; if(getrefine()>=9){ bonus2 bSubSize,Size_Large,5; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (2161,'Geffenia_Book_Water','Geffenia Tomb of Water',4,56000,NULL,1000,NULL,30,NULL,1,0x00000200,63,2,32,NULL,'100',1,5,'bonus bMdef,2; bonus bInt,1; if(readparam(bInt)>=120){ bonus bMatk,10; bonus bMaxHP,800; }',NULL,NULL); @@ -6201,7 +6201,7 @@ REPLACE INTO `item_db_re` VALUES (12343,'Manuk\'s_Courage','Manuk\'s Courage',2, REPLACE INTO `item_db_re` VALUES (12344,'Pinguicula\'s_fruit_Jam','Pinguicula\'s Fruit Jam',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_ATK,600000,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12345,'Luciola\'s_Honey_Jam','Luciola\'s Honey Jam',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_GUARD; sc_start SC_SPL_DEF,600000,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12346,'Unripe_Acorn','Unripe Acorn',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'heal -100,0;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12347,'Acorn_Jelly','Acorn Jelly',2,11,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemskill "ALL_REVERSEORCISH",1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12347,'Acorn_Jelly','Acorn Jelly',11,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'itemskill "ALL_REVERSEORCISH",1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12348,'Manuk\'s_Faith','Manuk\'s Faith',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_MANU_MATK,600000,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12349,'Cornus\'_Tears','Cornus\' Tears',2,0,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'specialeffect2 EF_POTION_BERSERK; sc_start SC_SPL_MATK,600000,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12350,'Angeling_Potion','Angeling Potion',11,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'skilleffect "AL_BLESSING",0; sc_start SC_BLESSING,120000,5; itemskill "AL_ANGELUS",5;',NULL,NULL); @@ -6250,8 +6250,8 @@ REPLACE INTO `item_db_re` VALUES (12392,'Repair_A','Repair A',2,220,NULL,100,NUL REPLACE INTO `item_db_re` VALUES (12393,'Repair_B','Repair B',2,500,NULL,140,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(300,400),0; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12394,'Repair_C','Repair C',2,1100,NULL,180,NULL,NULL,NULL,NULL,0x00000400,56,2,NULL,NULL,NULL,NULL,NULL,'if ( checkmadogear() ) { itemheal rand(400,500),0; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12395,'Tantanmen','Tantan Noodle',2,20,NULL,50,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'pet 1519;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "AL_TELEPORT",1; else if(rand(1,10)==2) itemskill "AL_TELEPORT",3; else if(rand(1,10)==3) percentheal 50,0; else if(rand(1,10)==4) percentheal 0,50; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 512,1; else if(rand(1,10)==7) itemskill "ALL_REVERSEORCISH",1; else if(rand(1,10)==8) specialeffect2 247; else if(rand(1,10)==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'if(rand(1,10)==1) itemskill "TF_DETOXIFY",1; else if(rand(1,10)==2) itemskill "TF_PICKSTONE",1; else if(rand(1,10)==3) itemskill "BA_FROSTJOKER",1; else if(rand(1,10)==4) itemskill "DC_SCREAM",1; else if(rand(1,10)==5) end; else if(rand(1,10)==6) getitem 909,1; else if(rand(1,10)==7) itemskill "AL_RUWACH",1; else if(rand(1,10)==8) specialeffect2 328; else if(rand(1,10)==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12396,'Fools_Day_Box','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'.@rnd = rand(1,10); if(.@rnd==1) itemskill "AL_TELEPORT",1; else if(.@rnd==2) itemskill "AL_TELEPORT",3; else if(.@rnd==3) percentheal 50,0; else if(.@rnd==4) percentheal 0,50; else if(.@rnd==5) end; else if(.@rnd==6) getitem 512,1; else if(.@rnd==7) itemskill "ALL_REVERSEORCISH",1; else if(.@rnd==8) specialeffect2 247; else if(.@rnd==9) specialeffect2 338; else specialeffect2 10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12397,'Fools_Day_Box2','Gift Box?',11,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'.@rnd = rand(1,10); if(.@rnd==1) itemskill "TF_DETOXIFY",1; else if(.@rnd==2) itemskill "TF_PICKSTONE",1; else if(.@rnd==3) itemskill "BA_FROSTJOKER",1; else if(.@rnd==4) itemskill "DC_SCREAM",1; else if(.@rnd==5) end; else if(.@rnd==6) getitem 909,1; else if(.@rnd==7) itemskill "AL_RUWACH",1; else if(.@rnd==8) specialeffect2 328; else if(.@rnd==9) specialeffect2 68; else specialeffect2 196;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12398,'PCBang_Gift_Box','PCRoom Gift Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12399,'Castle_Treasure_Box','Castle Treasure Box',2,20,NULL,1000,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12400,'Water_Of_Blessing_','Water Of Blessing',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); @@ -6390,7 +6390,7 @@ REPLACE INTO `item_db_re` VALUES (12534,'Yggdrasil_Seed_Box','Yggdrasil Seed Box REPLACE INTO `item_db_re` VALUES (12535,'Iggdrasilberry_Box','Iggdrasilberry Box',2,0,NULL,0,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12536,'NY_Rice_Cake_Soup','NY Rice Cake Soup',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12537,'Solo_Gift_Basket','Solo Gift Basket',2,1000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getgroupitem(IG_Solo_Gift_Basket);*/ getitem 597,5; getitem 596,3; getitem 561,3; getitem 573,4; getitem 559,10; getitem 560,10;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (12538,'Couple_Event_Basket','Couple Event Basket',2,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 15657,10; getitem 14548,10; getitem 14549,00; getitem 14550,10;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (12538,'Couple_Event_Basket','Couple Event Basket',2,2000,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getgroupitem(IG_Couple_Event_Basket);*/ getitem 14546,10; getitem 14547,10; getitem 14548,10; getitem 14549,10; getitem 14550,10;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12539,'Splendid_Box','Splendid Box',2,20,NULL,100,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (12540,'GM_Warp_Box','GM Warp Box',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_GM_Warp_Box);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (12541,'Fortune_Cookie1','Fortune Cookie1',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getrandgroupitem(IG_Fortune_Cookie1,1);',NULL,NULL); @@ -6930,7 +6930,7 @@ REPLACE INTO `item_db_re` VALUES (13107,'Wasteland_Outlaw','Wasteland\'s Outlaw' REPLACE INTO `item_db_re` VALUES (13108,'BF_Pistol1','Soldier Revolver',5,0,NULL,0,'70',NULL,7,0,0x41000000,63,2,34,3,'80',1,17,'bonus bDex,2; bonus bHit,-10; bonus2 bAddRace,RC_DemiHuman,55; bonus2 bAddRace,RC_Player,55; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; autobonus "{ bonus bAspdRate,100; }",10,3000,BF_WEAPON,"{ specialeffect2 EF_POTION_BERSERK; }"; bonus bUnbreakableWeapon,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13109,'Wasteland_Outlaw_C','Wasteland Outlaw',5,20,NULL,0,'100',NULL,7,0,0x41000000,63,2,34,3,'0',0,17,'bonus bHit,readparam(bAgi)/10; bonus bAspdRate,readparam(bAgi)/14; bonus2 bAddClass,Class_All,40;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13110,'Krieger_Pistol1','Glorious Pistol',5,0,NULL,0,'80',NULL,7,0,0x41000000,63,2,34,4,'80',1,17,'bonus2 bAddRace,RC_DemiHuman,55; bonus2 bAddRace,RC_Player,55; bonus2 bIgnoreDefRaceRate,RC_DemiHuman,20; bonus2 bIgnoreDefRaceRate,RC_Player,20; bonus bUnbreakableWeapon,0; if(getrefine()>5){ bonus2 bAddRace,RC_DemiHuman,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bAddRace,RC_Player,pow(((getrefine()>14)?14:getrefine())-4,2); bonus2 bIgnoreDefRaceRate,RC_DemiHuman,5; bonus2 bIgnoreDefRaceRate,RC_Player,5; } if(getrefine()>8) { bonus4 bAutoSpellOnSkill,"GS_RAPIDSHOWER","GS_GLITTERING",1,1000; bonus2 bSkillAtk,"GS_RAPIDSHOWER",getrefine()*2; }',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (13111,'Sharpshooter_Revolver','Sharpshooter Revolver',5,20,NULL,0,'105',NULL,7,0,0x41000000,63,2,34,4,'1',1,17,'bonus bDex,2; bonus2 bSkillAtk,"GN_DESPERADO",25;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13111,'Sharpshooter_Revolver','Sharpshooter Revolver',5,20,NULL,0,'105',NULL,7,0,0x41000000,63,2,34,4,'1',1,17,'bonus bDex,2; bonus2 bSkillAtk,"GS_DESPERADO",25;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13112,'P_Revolver1','Eden Revlover I',5,0,NULL,0,'44',NULL,7,0,0x41000000,63,2,34,1,'26',0,17,'bonus bHit,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13113,'P_Revolver2','Eden Revlover II',5,0,NULL,0,'60',NULL,7,0,0x41000000,63,2,34,1,'40',0,17,'bonus bHit,-5;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13114,'P_Revolver3','Eden Revolver III',5,0,NULL,0,'76',NULL,7,0,0x41000000,63,2,34,3,'60',0,17,'bonus bHit,-5;',NULL,NULL); @@ -7014,7 +7014,7 @@ REPLACE INTO `item_db_re` VALUES (13222,'Bloody_Shell','Bloody Shell',10,10,NULL REPLACE INTO `item_db_re` VALUES (13223,'Flare_Sphere','Flare Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Fire;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13224,'Lightning_Sphere','Lightning Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Wind;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13225,'Poison_Sphere','Poison Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Poison;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (13226,'Blind_Sphere','Blind Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Shadow;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13226,'Blind_Sphere','Blind Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Dark;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13227,'Freezing_Sphere','Freezing Sphere',10,10,NULL,5,'50',NULL,NULL,0,0xFFFFFFFF,63,2,32768,NULL,'1',NULL,5,'bonus bAtkEle,Ele_Water;',NULL,NULL); # Shurikens & Kunais REPLACE INTO `item_db_re` VALUES (13250,'Shuriken','Shuriken',10,4,NULL,5,'10',NULL,NULL,NULL,0x02000000,63,2,32768,NULL,'1',NULL,6,NULL,NULL,NULL); @@ -7396,7 +7396,7 @@ REPLACE INTO `item_db_re` VALUES (13761,'Empty_Bottle_Box','Empty Bottle Box',18 REPLACE INTO `item_db_re` VALUES (13762,'In_Royal_Jelly_Box','Royal Jelly Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 526,70;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13763,'5_Anniversary_Coin_Box','Coin Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 2709,1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13764,'Battle_Manual_Box_TW','Beginner\'s Field Manual 5 Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 7803,5;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (13765,'Certificate_TW_Box','Certificate Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getitem 7804,1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (13765,'Certificate_TW_Box','Certificate Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*getitem 7804,1;*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13766,'Nagan_Box','Refined Nagan Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'rentitem 13407,604800;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13767,'Skewer_Box','Refined Brocca Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1424,604800;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (13768,'Survival_Rod_Box','Refined Survivor\'s Rod Box',18,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'rentitem 1628,604800;',NULL,NULL); @@ -8136,7 +8136,7 @@ REPLACE INTO `item_db_re` VALUES (14616,'STR_Biscuit_Stick','Bar Cookie Of Stren REPLACE INTO `item_db_re` VALUES (14617,'VIT_Biscuit_Stick','Bar Cookie Of Vitality',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INCVIT,1800000,15; /*sc_start SC_INCDEFRATE,600000,rand(11,33);*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (14618,'AGI_Biscuit_Stick','Bar Cookie Of Agility',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_AGIFOOD,1800000,15; sc_start SC_FLEEFOOD,600000,rand(11,33);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (14619,'INT_Biscuit_Stick','Bar Cookie Of Intelligence',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_INTFOOD,1800000,15; sc_start SC_INCMATKRATE,600000,rand(11,111);',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (14620,'DEX_Biscuit_Stick','Bar Cookie Of Dexterity',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD,1800000,15; sc_start SC_HIT,600000,rand(11,33);',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (14620,'DEX_Biscuit_Stick','Bar Cookie Of Dexterity',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_DEXFOOD,1800000,15; sc_start SC_HITFOOD,600000,rand(11,33);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (14621,'LUK_Biscuit_Stick','Bar Cookie Of Lucky',18,1,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'sc_start SC_LUKFOOD,1800000,15; sc_start SC_INCCRI,600000,rand(11,33);',NULL,NULL); REPLACE INTO `item_db_re` VALUES (14623,'Golden_Treasure_Box','Golden Treasure Box',18,10,NULL,10,NULL,NULL,NULL,0,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'/*Items*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (14624,'Blue_Scroll','Blue Scroll',2,20,NULL,10,NULL,NULL,NULL,NULL,0xFFFFFFFF,63,2,NULL,NULL,NULL,NULL,NULL,'getgroupitem(IG_Blue_Scroll);',NULL,NULL); @@ -8258,7 +8258,7 @@ REPLACE INTO `item_db_re` VALUES (15093,'Heroic_Plate','Heroic Plate',4,10,NULL, REPLACE INTO `item_db_re` VALUES (15094,'Heroic_Magic_Coat','Heroic Magic Coat',4,10,NULL,800,NULL,50,NULL,1,0x4,63,2,16,NULL,'160',1,NULL,'bonus bMatk,10; bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bFlee,10; bonus2 bSkillAtk,"WL_CRIMSONROCK",10; bonus2 bSkillAtk,"SO_PSYCHIC_WAVE",10; if (getrefine()) { bonus bFixedCastrate,21-getrefine()/2; bonus bNoCastCancel2,1; bonus bMdef,getrefine()/2; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15095,'Heroic_Judgement_Shawl','Heroic Judgement Shawl',4,10,NULL,500,NULL,7,NULL,1,0x10,63,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bMatk,10; bonus bBaseAtk,10; bonus bHit,10; bonus bFlee,10; bonus2 bSkillAtk,"AB_JUDEX",10; bonus2 bSkillAtk,"AB_ADORAMUS",10; bonus2 bSkillAtk,"SR_DRAGONCOMBO",10; bonus2 bSkillAtk,"SR_SKYNETBLOW",10; bonus2 bSkillAtk,"SR_EARTHSHAKER",10; bonus5 bAutoSpell,"PR_KYRIE",1,50+getrefine(),BF_SHORT,0; bonus5 bAutoSpell,"PR_LEXAETERNA",10,50+getrefine(),BF_SHORT,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15096,'Heroic_Trade-Mail','Heroic Trade-Mail',4,10,NULL,500,NULL,100,NULL,1,0x60CFDF80,56,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bMatk,10; bonus bBaseAtk,10; if(readparam(bStr) >= 90) bonus bStr,getrefine()/2; if(readparam(bInt) >= 90) bonus bInt,getrefine()/2; if(readparam(bAgi) >= 90) bonus bAgi,getrefine()/2; if(readparam(bVit) >= 90) bonus bVit,getrefine()/2; if(readparam(bDex) >= 90) bonus bDex,getrefine()/2; if(readparam(bLuk) >= 90) bonus bLuk,getrefine()/2;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (15097,'Heroic_Hidden_Cloth','Heroic Hidden Cloth',4,10,NULL,200,NULL,70,NULL,1,0x60CFDF80,56,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"SC_FATALMENACE",10; bonus2 bSkillAtk,"SC_TRIANGLESHOT",10; bonus2 bSkillAtk,"GC_CROSSIMPACT",10; bonus2 bSkillAtk,"GC_CROSSRIPPERSLASHER",10; autobonus "{ bonus bCritical,20; bonus bFlee,20; bonus bAtkRate,10; bonus bMatkRate,10%; }",(5+getrefine())*10,10000;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (15097,'Heroic_Hidden_Cloth','Heroic Hidden Cloth',4,10,NULL,200,NULL,70,NULL,1,0x60CFDF80,56,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus2 bSkillAtk,"SC_FATALMENACE",10; bonus2 bSkillAtk,"SC_TRIANGLESHOT",10; bonus2 bSkillAtk,"GC_CROSSIMPACT",10; bonus2 bSkillAtk,"GC_CROSSRIPPERSLASHER",10; autobonus "{ bonus bCritical,20; bonus bFlee,20; bonus bAtkRate,10; bonus bMatkRate,10; }",(5+getrefine())*10,10000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15098,'Heroic_Target_Suit','Heroic Target Suit',4,10,NULL,200,NULL,60,NULL,1,0x60CFDF80,56,2,16,NULL,'160',1,NULL,'bonus bMaxHPrate,5; bonus bMaxSPrate,5; bonus bAllStats,1; bonus5 bAutoSpell,"AC_CONCENTRATION",10,(5+getrefine())*5,BG_WEAPON,0; bonus5 bAutoSpell,"AC_DOUBLE",10,(5+getrefine())*5,BG_WEAPON,1; bonus5 bAutoSpell,"AC_CHARGEARROW",10,(5+getrefine())*5,BG_WEAPON,0;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15100,'Frozen_Breastplate','Frozen Breastplate',4,20,NULL,1500,NULL,20,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,'bonus bDefEle,Ele_Water;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (15101,'Hardened_Breastplate','Hardened Breastplate',4,20,NULL,1500,NULL,20,NULL,1,0xFFFFFFFF,63,2,16,NULL,'130',1,0,NULL,NULL,NULL); @@ -9286,7 +9286,7 @@ REPLACE INTO `item_db_re` VALUES (18848,'Fresh_Roses','Fresh Roses',4,10,NULL,20 REPLACE INTO `item_db_re` VALUES (18849,'Celine_Ribbon','Celine Ribbon',4,10,NULL,200,NULL,NULL,NULL,1,0xFFFFFFFF,63,2,256,NULL,'1',1,967,'bonus bDex,3; bonus bMatk,40+getrefine(); bonus bMagicHPGainValue,200; bonus2 bHPLossRate,50,5000;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18850,'Polar_Bear_Cap','Polar Bear Cap',4,20,NULL,300,NULL,7,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',0,966,'bonus bUnbreakableHelm,0; bonus bDex,1; bonus bAgi,1; bonus bMdef,3; bonus bHPrecovRate,5; bonus bSPrecovRate,3; bonus2 bAddMonsterDropItem,12354,100;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18851,'C_Polar_Bear_Cap','Costume Polar Bear Cap',4,20,NULL,0,NULL,0,NULL,0,0xFFFFFFFF,63,2,1024,NULL,'1',1,966,NULL,NULL,NULL); -REPLACE INTO `item_db_re` VALUES (18855,'Aviator_Hat','Aviator Hat',4,10,NULL,100,NULL,10,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,972,'bonus bAgi,3; bonus bInt,3; autobonus "{ bonus bAtkEle,Ele_Winds; }",500,180,BF_NORMAL;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18855,'Aviator_Hat','Aviator Hat',4,10,NULL,100,NULL,10,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,972,'bonus bAgi,3; bonus bInt,3; autobonus "{ bonus bAtkEle,Ele_Wind; }",500,180,BF_NORMAL;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18856,'W_King_Tiger_Doll_Hat','W King Tiger Doll Hat',4,10,NULL,0,NULL,10,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,973,'bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; /*There is transform possibility becomes Eddga*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18857,'Curupira_Hat','Curupira Hat',4,10,NULL,100,NULL,20,NULL,0,0xFFFFFFFF,63,2,256,NULL,'1',1,974,'bonus bStr,2; bonus bDex,2; bonus2 bAddRace,RC_Brute,10; /*Transform to be Eddga when attacking or receiving damage. Drains 5 SP each secs. Success chance by refine value.*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18859,'Angeling_Bubble','Angeling Bubble',4,10,NULL,50,NULL,5,NULL,0,0xFFFFFFFF,63,2,1,NULL,'1',NULL,975,'bonus bDex,1; bonus bMatkRate,2; bonus bMaxHP,100;',NULL,NULL); @@ -9337,7 +9337,7 @@ REPLACE INTO `item_db_re` VALUES (18971,'Old_Rune_Circlet','Old Rune Circlet',4, REPLACE INTO `item_db_re` VALUES (18972,'Old_Mitra','Old Mitra',4,10,NULL,100,NULL,10,NULL,1,0x00000100,56,2,256,NULL,'170',1,624,'bonus bAllStats,1; bonus bMdef,5; bonus bMatk,2*getrefine(); bonus bBaseAtk,4*getrefine(); bonus bHealPower,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"AB_JUDEX",20*getrefine()/2; bonus2 bSkillAtk,"PR_MAGNUS",10*getrefine()/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18973,'Old_Driver_Band','Old Driver Band',4,10,NULL,100,NULL,10,NULL,1,0x00000400,56,2,256,NULL,'170',1,626,'bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bAspd,getrefine()/5; bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"NC_POWERSWING",20*getrefine()/2; bonus2 bSkillAtk,"NC_AXETORNADO",20*getrefine()/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18974,'Old_Driver_Band(Yellow)','Old Driver Band(Yellow)',4,10,NULL,100,NULL,10,NULL,1,0x00000400,56,2,256,NULL,'170',1,637,'bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bAspd,getrefine()/5; bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"NC_ARMSCANNON",20*getrefine()/2; bonus2 bSkillAtk,"NC_SELFDESTRUCTION",20*getrefine()/4;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (18975,'Old_Shadow_Handicraft','Old Shadow Handicraft',4,10,NULL,100,NULL,10,NULL,1,0x00020000,56,2,256,NULL,'170',1,627,'bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bMatk,4*getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*getrefine()/2; if (getrefine()>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (getrefine()>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (getrefine()>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"",-1000; }',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (18975,'Old_Shadow_Handicraft','Old Shadow Handicraft',4,10,NULL,100,NULL,10,NULL,1,0x00020000,56,2,256,NULL,'170',1,627,'bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bMatk,4*getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"SC_TRIANGLESHOT",25*getrefine()/2; if (getrefine()>=6) { bonus2 bSkillCooldown,"SC_ENERVATION",-1000; bonus2 bSkillCooldown,"SC_UNLUCKY",-1000; } if (getrefine()>=8) { bonus2 bSkillCooldown,"SC_LAZINESS",-1000; bonus2 bSkillCooldown,"SC_WEAKNESS",-1000; } if (getrefine()>=10) { bonus2 bSkillCooldown,"SC_IGNORANCE",-1000; bonus2 bSkillCooldown,"SC_GROOMY",-1000; }',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18976,'Old_Minstrel_Song\'s_Hat','Old Minstrel Song\'s Hat',4,10,NULL,100,NULL,10,NULL,1,0x00080000,56,1,256,NULL,'170',1,628,'bonus bAllStats,1; bonus bLongAtkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"CG_ARROWVULCAN",20*getrefine()/2; bonus2 bSkillAtk,"WM_SEVERE_RAINSTORM",5*getrefine()/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18977,'Old_Midas_Whisper','Old Midas Whisper',4,10,NULL,100,NULL,10,NULL,1,0x00040000,56,2,256,NULL,'170',1,629,'bonus bAllStats,1; bonus bBaseAtk,4*getrefine(); bonus bLongAtkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"GN_CARTCANNON",15*getrefine()/2;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (18978,'Old_Magic_Stone_Hat','Old Magic Stone Hat',4,10,NULL,100,NULL,10,NULL,1,0x00000200,56,2,256,NULL,'170',1,630,'bonus bAllStats,1; bonus bMdef,5; bonus bMatkRate,getrefine(); bonus bMaxHPrate,getrefine()/2; bonus bMaxSPrate,getrefine()/2; bonus2 bSkillAtk,"WL_SOULEXPANSION",5*getrefine()/2; bonus2 bSkillCooldown,"WL_CRIMSONROCK",-1000-(getrefine()*100);',NULL,NULL); @@ -9899,7 +9899,7 @@ REPLACE INTO `item_db_re` VALUES (22784,'PC_Bang_Platinum_Box','PC Bang Platinum REPLACE INTO `item_db_re` VALUES (22802,'Safe_to_6_Equipment_Certificate','Safe to 6 Equipment Certificate',3,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (22808,'Special_Gift_Box','Special Gift Box',2,10,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (22812,'Sealed_Dracula_Scroll','Sealed Dracula Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'getitem callfunc("F_Rand",6228,6232,22813,19937,17314, 6635),1;',NULL,NULL); -REPLACE INTO `item_db_re` VALUES (22813,'Bearer\'s_Shadow_Box','Bearer\'s Shadow Box',2,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'getitem callfunc("F_Rand",24180,24181,24182,28183,24184,24185),1;',NULL,NULL); +REPLACE INTO `item_db_re` VALUES (22813,'Bearer\'s_Shadow_Box','Bearer\'s Shadow Box',2,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'getitem callfunc("F_Rand",24180,24181,24182,24183,24184,24185),1;',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22814,'Cat_Hand_Ticket','Cat Hand Ticket',3,10,NULL,0,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); REPLACE INTO `item_db_re` VALUES (22823,'Sealed_Sniper_Scroll','Sealed Sniper Scroll',2,10,NULL,10,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'/*getitem callfunc("F_Rand",4491,6228,6232,24196, Hasty Shadow Armor, 19882, 17474, 6635),1;*/',NULL,NULL); REPLACE INTO `item_db_re` VALUES (22826,'Costume_Enchantment_Stone_Box_4','Costume Enchantment Stone Box 4',2,10,NULL,100,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL); diff --git a/src/common/mapindex.c b/src/common/mapindex.c index 685a56f347..c1790b1077 100644 --- a/src/common/mapindex.c +++ b/src/common/mapindex.c @@ -1,10 +1,12 @@ // Copyright (c) Athena Dev Teams - Licensed under GNU GPL // For more information, see LICENCE in the main folder +#include "../config/core.h" +#include "../common/core.h" +#include "../common/mapindex.h" #include "../common/mmo.h" #include "../common/showmsg.h" #include "../common/strlib.h" -#include "mapindex.h" #include @@ -15,8 +17,6 @@ struct _indexes { int max_index = 0; -char mapindex_cfgfile[80] = "db/map_index.txt"; - #define mapindex_exists(id) (indexes[id].name[0] != '\0') /// Retrieves the map name from 'string' (removing .gat extension if present). @@ -134,29 +134,47 @@ void mapindex_init(void) { int last_index = -1; int index; char map_name[MAP_NAME_LENGTH]; + char path[255]; + const char* mapindex_cfgfile[] = { + "map_index.txt", + DBIMPORT"/map_index.txt" + }; + int i; - if( ( fp = fopen(mapindex_cfgfile,"r") ) == NULL ){ - ShowFatalError("Unable to read mapindex config file %s!\n", mapindex_cfgfile); - exit(EXIT_FAILURE); //Server can't really run without this file. - } memset (&indexes, 0, sizeof (indexes)); mapindex_db = strdb_alloc(DB_OPT_DUP_KEY, MAP_NAME_LENGTH); - while(fgets(line, sizeof(line), fp)) { - if(line[0] == '/' && line[1] == '/') - continue; - switch (sscanf(line, "%11s\t%d", map_name, &index)) { - case 1: //Map with no ID given, auto-assign - index = last_index+1; - case 2: //Map with ID given - mapindex_addmap(index,map_name); + for( i = 0; i < ARRAYLENGTH(mapindex_cfgfile); i++ ){ + sprintf( path, "%s/%s", db_path, mapindex_cfgfile[i] ); + + if( ( fp = fopen( path, "r" ) ) == NULL ){ + // It is only fatal if it is the main file + if( i == 0 ){ + ShowFatalError("Unable to read mapindex config file %s!\n", path ); + exit(EXIT_FAILURE); //Server can't really run without this file. + }else{ + ShowWarning("Unable to read mapindex config file %s!\n", path ); break; - default: - continue; + } } - last_index = index; + + while(fgets(line, sizeof(line), fp)) { + if(line[0] == '/' && line[1] == '/') + continue; + + switch (sscanf(line, "%11s\t%d", map_name, &index)) { + case 1: //Map with no ID given, auto-assign + index = last_index+1; + case 2: //Map with ID given + mapindex_addmap(index,map_name); + break; + default: + continue; + } + last_index = index; + } + fclose(fp); } - fclose(fp); if( !strdb_iget(mapindex_db, MAP_DEFAULT) ) { ShowError("mapindex_init: MAP_DEFAULT '%s' not found in cache! Update MAP_DEFAULT in mapindex.h!\n",MAP_DEFAULT); diff --git a/src/common/mapindex.h b/src/common/mapindex.h index 2d9700c71f..2e4fb53dc6 100644 --- a/src/common/mapindex.h +++ b/src/common/mapindex.h @@ -4,9 +4,6 @@ #ifndef _MAPINDEX_H_ #define _MAPINDEX_H_ -//File in charge of assigning a numberic ID to each map in existance for space saving when passing map info between servers. -extern char mapindex_cfgfile[80]; - #define MAX_MAPINDEX 2000 //Some definitions for the mayor city maps. diff --git a/src/map/battle.c b/src/map/battle.c index 666223c242..084d9608ef 100644 --- a/src/map/battle.c +++ b/src/map/battle.c @@ -6156,7 +6156,7 @@ struct Damage battle_calc_misc_attack(struct block_list *src,struct block_list * md.damage = 7 * ((atk.damage/skill_lv + matk.damage/skill_lv) * tstatus->vit / 100 ); // AD benefits from endow/element but damage is forced back to neutral - battle_attr_fix(src, target, md.damage, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv); + md.damage = battle_attr_fix(src, target, md.damage, ELE_NEUTRAL, tstatus->def_ele, tstatus->ele_lv); } #else if(tstatus->vit+sstatus->int_) //crash fix diff --git a/src/map/clif.c b/src/map/clif.c index ca2f8374b3..a44138e6a5 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -3388,41 +3388,48 @@ void clif_statusupack(struct map_session_data *sd,int type,int ok,int val) /// 0 = failure /// 1 = success /// 2 = failure due to low level -void clif_equipitemack(struct map_session_data *sd,int n,int pos,int ok) +void clif_equipitemack(struct map_session_data *sd,int n,int pos,uint8 flag) { - int fd,header,offs=0,success; -#if PACKETVER < 20110824 - header = 0xaa; - success = (ok==1); -#elif PACKETVER < 20120925 - header = 0x8d0; - success = ok ? 0:1; -#else - header = 0x999; - success = ok ? 0:1; -#endif + int fd = 0, cmd = 0, look = 0; + struct s_packet_db *info = NULL; + nullpo_retv(sd); - fd=sd->fd; - WFIFOHEAD(fd,packet_len(header)); - WFIFOW(fd,offs+0)=header; - WFIFOW(fd,offs+2)=n+2; -#if PACKETVER >= 20120925 - WFIFOL(fd,offs+4)=pos; - offs+=2; -#else - WFIFOW(fd,offs+4)=(int)pos; -#endif -#if PACKETVER < 20100629 - WFIFOB(fd,offs+6)=success; -#else - if (ok && sd->inventory_data[n]->equip&EQP_VISIBLE) - WFIFOW(fd,offs+6)=sd->inventory_data[n]->look; - else - WFIFOW(fd,offs+6)=0; - WFIFOB(fd,offs+8)=success; -#endif - WFIFOSET(fd,packet_len(header)); + cmd = packet_db_ack[sd->packet_ver][ZC_WEAR_EQUIP_ACK]; + if (!cmd || !(info = &packet_db[sd->packet_ver][cmd]) || !info->len) + return; + + fd = sd->fd; + + if (flag == ITEM_EQUIP_ACK_OK && sd->inventory_data[n]->equip&EQP_VISIBLE) + look = sd->inventory_data[n]->look; + + WFIFOHEAD(fd, info->len); + WFIFOW(fd, 0) = cmd; + WFIFOW(fd, info->pos[0]) = n+2; + switch (cmd) { + case 0xaa: + WFIFOW(fd, info->pos[1]) = pos; + if (sd->packet_ver < date2version(20100629)) + WFIFOW(fd, info->pos[2]) = (flag == ITEM_EQUIP_ACK_OK ? 1 : 0); + else { + WFIFOL(fd, info->pos[2]) = look; + WFIFOW(fd, info->pos[3]) = (flag == ITEM_EQUIP_ACK_OK ? 1 : 0); + } + break; + case 0x8d0: + if (flag == ITEM_EQUIP_ACK_FAILLEVEL) + flag = 1; + case 0x999: + if (cmd == 0x999) + WFIFOL(fd, info->pos[1]) = pos; + else + WFIFOW(fd, info->pos[1]) = pos; + WFIFOL(fd, info->pos[2]) = look; + WFIFOW(fd, info->pos[3]) = flag; + break; + } + WFIFOSET(fd, info->len); } @@ -10743,7 +10750,7 @@ void clif_parse_EquipItem(int fd,struct map_session_data *sd) return; if(!sd->status.inventory[index].identify) { - clif_equipitemack(sd,index,0,0); // fail + clif_equipitemack(sd,index,0,ITEM_EQUIP_ACK_FAIL); // fail return; } @@ -18126,6 +18133,7 @@ void packetdb_readdb(void) { "ZC_CLEAR_DIALOG", ZC_CLEAR_DIALOG}, { "ZC_C_MARKERINFO", ZC_C_MARKERINFO}, { "ZC_NOTIFY_BIND_ON_EQUIP", ZC_NOTIFY_BIND_ON_EQUIP }, + { "ZC_WEAR_EQUIP_ACK", ZC_WEAR_EQUIP_ACK }, }; const char *filename[] = { "packet_db.txt", DBIMPORT"/packet_db.txt"}; int f; diff --git a/src/map/clif.h b/src/map/clif.h index 7b71305a78..1c46152683 100644 --- a/src/map/clif.h +++ b/src/map/clif.h @@ -48,6 +48,7 @@ enum e_packet_ack { ZC_CLEAR_DIALOG, ZC_C_MARKERINFO, ZC_NOTIFY_BIND_ON_EQUIP, + ZC_WEAR_EQUIP_ACK, //add other here MAX_ACK_FUNC //auto upd len }; @@ -364,8 +365,18 @@ enum useskill_fail_cause }; enum clif_messages { + /* Constant values */ + // clif_cart_additem_ack flags ADDITEM_TO_CART_FAIL_WEIGHT = 0x0, ADDITEM_TO_CART_FAIL_COUNT = 0x1, + + // clif_equipitemack flags + ITEM_EQUIP_ACK_OK = 0, + ITEM_EQUIP_ACK_FAIL = 1, + ITEM_EQUIP_ACK_FAILLEVEL = 2, + /* -end- */ + + //! NOTE: These values below need client version validation ITEM_CANT_OBTAIN_WEIGHT = 0x34, /* You cannot carry more items because you are overweight. */ ITEM_NOUSE_SITTING = 0x297, MERC_MSG_BASE = 0x4f2, @@ -461,7 +472,7 @@ void clif_arrowequip(struct map_session_data *sd,int val); //self void clif_arrow_fail(struct map_session_data *sd,int type); //self void clif_arrow_create_list(struct map_session_data *sd); //self void clif_statusupack(struct map_session_data *sd,int type,int ok,int val); // self -void clif_equipitemack(struct map_session_data *sd,int n,int pos,int ok); // self +void clif_equipitemack(struct map_session_data *sd,int n,int pos,uint8 flag); // self void clif_unequipitemack(struct map_session_data *sd,int n,int pos,int ok); // self void clif_misceffect(struct block_list* bl,int type); // area void clif_changeoption(struct block_list* bl); // area diff --git a/src/map/itemdb.c b/src/map/itemdb.c index de81edcb92..9af6b72456 100644 --- a/src/map/itemdb.c +++ b/src/map/itemdb.c @@ -1095,7 +1095,6 @@ static char itemdb_gendercheck(struct item_data *id) * For backwards compatibility, in Renewal mode, MATK from weapons comes from the atk slot * We use a ':' delimiter which, if not found, assumes the weapon does not provide any matk. **/ -#ifdef RENEWAL static void itemdb_re_split_atoi(char *str, int *val1, int *val2) { int i, val[2]; @@ -1120,7 +1119,7 @@ static void itemdb_re_split_atoi(char *str, int *val1, int *val2) { *val2 = val[1]; return; } -#endif + /** * Processes one itemdb entry */ @@ -1221,11 +1220,7 @@ static bool itemdb_parse_dbrow(char** str, const char* source, int line, int scr } id->wlv = cap_value(atoi(str[15]), REFINE_TYPE_ARMOR, REFINE_TYPE_MAX); -#ifdef RENEWAL itemdb_re_split_atoi(str[16],&id->elv,&id->elvmax); -#else - id->elv = atoi(str[16]); -#endif id->flag.no_refine = atoi(str[17]) ? 0 : 1; //FIXME: verify this id->look = atoi(str[18]); diff --git a/src/map/itemdb.h b/src/map/itemdb.h index 8a8223fbb6..4956786b60 100644 --- a/src/map/itemdb.h +++ b/src/map/itemdb.h @@ -386,11 +386,11 @@ struct item_data int slot; int look; int elv; + int elvmax; ///< Maximum level for this item int wlv; int view_id; #ifdef RENEWAL int matk; - int elvmax;/* maximum level for this item */ #endif int delay; diff --git a/src/map/map.c b/src/map/map.c index a3f5150597..06efdb2298 100644 --- a/src/map/map.c +++ b/src/map/map.c @@ -1813,7 +1813,7 @@ int map_quit(struct map_session_data *sd) { for (i = 0; i < EQI_MAX; i++) { if (sd->equip_index[i] >= 0) - if (!pc_isequip(sd,sd->equip_index[i])) + if (pc_isequip(sd,sd->equip_index[i])) pc_unequipitem(sd,sd->equip_index[i],2); } @@ -3345,41 +3345,71 @@ int map_readallmaps (void) int i; FILE* fp=NULL; int maps_removed = 0; - char *map_cache_buffer = NULL; // Has the uncompressed gat data of all maps, so just one allocation has to be made + // Has the uncompressed gat data of all maps, so just one allocation has to be made + char *map_cache_buffer[2] = { + NULL, + NULL + }; char map_cache_decode_buffer[MAX_MAP_SIZE]; if( enable_grf ) ShowStatus("Loading maps (using GRF files)...\n"); else { - char mapcachefilepath[254]; - sprintf(mapcachefilepath,"%s/%s%s",db_path,DBPATH,"map_cache.dat"); - ShowStatus("Loading maps (using %s as map cache)...\n", mapcachefilepath); - if( (fp = fopen(mapcachefilepath, "rb")) == NULL ) { - ShowFatalError("Unable to open map cache file "CL_WHITE"%s"CL_RESET"\n", mapcachefilepath); - exit(EXIT_FAILURE); //No use launching server if maps can't be read. - } + char* mapcachefilepath[] = { + "db/"DBPATH"map_cache.dat", + "db/import/map_cache.dat" + }; - // Init mapcache data. [Shinryo] - map_cache_buffer = map_init_mapcache(fp); - if(!map_cache_buffer) { - ShowFatalError("Failed to initialize mapcache data (%s)..\n", mapcachefilepath); - exit(EXIT_FAILURE); + for( i = 0; i < 2; i++ ){ + ShowStatus( "Loading maps (using %s as map cache)...\n", mapcachefilepath[i] ); + + if( ( fp = fopen(mapcachefilepath[i], "rb") ) == NULL ){ + if( i == 0 ){ + ShowFatalError( "Unable to open map cache file "CL_WHITE"%s"CL_RESET"\n", mapcachefilepath[i] ); + exit(EXIT_FAILURE); //No use launching server if maps can't be read. + }else{ + ShowWarning( "Unable to open map cache file "CL_WHITE"%s"CL_RESET"\n", mapcachefilepath[i] ); + break; + } + } + + // Init mapcache data. [Shinryo] + map_cache_buffer[i] = map_init_mapcache(fp); + + if( !map_cache_buffer[i] ) { + ShowFatalError( "Failed to initialize mapcache data (%s)..\n", mapcachefilepath ); + exit(EXIT_FAILURE); + } + + fclose(fp); } } for(i = 0; i < map_num; i++) { size_t size; + bool success = false; - // show progress - if(enable_grf) + if( enable_grf ){ + // show progress ShowStatus("Loading maps [%i/%i]: %s"CL_CLL"\r", i, map_num, map[i].name); - // try to load the map - if( ! - (enable_grf? - map_readgat(&map[i]) - :map_readfromcache(&map[i], map_cache_buffer, map_cache_decode_buffer)) - ) { + // try to load the map + success = map_readgat(&map[i]) != 0; + }else{ + // try to load the map + // Read from import first, in case of override + if( map_cache_buffer[1] != NULL ){ + success = map_readfromcache( &map[i], map_cache_buffer[1], map_cache_decode_buffer ) != 0; + } + + // Nothing was found in import - try to find it in the main file + if( !success ){ + success = map_readfromcache( &map[i], map_cache_buffer[0], map_cache_decode_buffer ) != 0; + } + } + + // The map was not found - remove it + if( !success ){ map_delmapid(i); maps_removed++; i--; @@ -3419,10 +3449,11 @@ int map_readallmaps (void) map_flags_init(); if( !enable_grf ) { - fclose(fp); - // The cache isn't needed anymore, so free it. [Shinryo] - aFree(map_cache_buffer); + if( map_cache_buffer[1] != NULL ){ + aFree(map_cache_buffer[1]); + } + aFree(map_cache_buffer[0]); } // finished map loading diff --git a/src/map/pc.c b/src/map/pc.c index 103f1b3012..f7fea6464b 100755 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -998,49 +998,46 @@ static bool pc_isItemClass (struct map_session_data *sd, struct item_data* item) * Checks if the player can equip the item at index n in inventory. * @param sd * @param n Item index in inventory - * @return True - Can be equipped, False - failed + * @return ITEM_EQUIP_ACK_OK(0) if can be equipped, or ITEM_EQUIP_ACK_FAIL(1)/ITEM_EQUIP_ACK_FAILLEVEL(2) if can't *------------------------------------------------*/ -bool pc_isequip(struct map_session_data *sd,int n) +uint8 pc_isequip(struct map_session_data *sd,int n) { struct item_data *item; - nullpo_ret(sd); + nullpo_retr(ITEM_EQUIP_ACK_FAIL, sd); item = sd->inventory_data[n]; if(pc_has_permission(sd, PC_PERM_USE_ALL_EQUIPMENT)) - return true; + return ITEM_EQUIP_ACK_OK; if(item == NULL) - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->elv && sd->status.base_level < (unsigned int)item->elv) - return false; -#ifdef RENEWAL + return ITEM_EQUIP_ACK_FAILLEVEL; if(item->elvmax && sd->status.base_level > (unsigned int)item->elvmax) - return false; -#endif + return ITEM_EQUIP_ACK_FAILLEVEL; if(item->sex != 2 && sd->status.sex != item->sex) - return false; + return ITEM_EQUIP_ACK_FAIL; if (sd->sc.count) { - if(item->equip & EQP_ARMS && item->type == IT_WEAPON && sd->sc.data[SC_STRIPWEAPON]) // Also works with left-hand weapons [DracoRPG] - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->equip & EQP_SHIELD && item->type == IT_ARMOR && sd->sc.data[SC_STRIPSHIELD]) - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->equip & EQP_ARMOR && sd->sc.data[SC_STRIPARMOR]) - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->equip & EQP_HEAD_TOP && sd->sc.data[SC_STRIPHELM]) - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->equip & EQP_ACC && sd->sc.data[SC__STRIPACCESSORY]) - return false; + return ITEM_EQUIP_ACK_FAIL; if(item->equip && sd->sc.data[SC_KYOUGAKU]) - return false; + return ITEM_EQUIP_ACK_FAIL; if (sd->sc.data[SC_SPIRIT] && sd->sc.data[SC_SPIRIT]->val2 == SL_SUPERNOVICE) { //Spirit of Super Novice equip bonuses. [Skotlex] if (sd->status.base_level > 90 && item->equip & EQP_HELM) - return true; //Can equip all helms + return ITEM_EQUIP_ACK_FAIL; //Can equip all helms if (sd->status.base_level > 96 && item->equip & EQP_ARMS && item->type == IT_WEAPON && item->wlv == 4) switch(item->look) { //In weapons, the look determines type of weapon. @@ -1050,23 +1047,23 @@ bool pc_isequip(struct map_session_data *sd,int n) case W_MACE: //All level 4 - 1H Maces case W_STAFF: //All level 4 - 1H Staves case W_2HSTAFF: //All level 4 - 2H Staves - return true; + return ITEM_EQUIP_ACK_OK; } } } //fail to equip if item is restricted if (!battle_config.allow_equip_restricted_item && itemdb_isNoEquip(item, sd->bl.m)) - return false; + return ITEM_EQUIP_ACK_FAIL; //Not equipable by class. [Skotlex] if (!(1<<(sd->class_&MAPID_BASEMASK)&item->class_base[(sd->class_&JOBL_2_1)?1:((sd->class_&JOBL_2_2)?2:0)])) - return false; + return ITEM_EQUIP_ACK_FAIL; if (!pc_isItemClass(sd,item)) - return false; + return ITEM_EQUIP_ACK_FAIL; - return true; + return ITEM_EQUIP_ACK_OK; } /*========================================== @@ -4637,11 +4634,8 @@ bool pc_isUseitem(struct map_session_data *sd,int n) //Required level check if(item->elv && sd->status.base_level < (unsigned int)item->elv) return false; - -#ifdef RENEWAL if(item->elvmax && sd->status.base_level > (unsigned int)item->elvmax) return false; -#endif //Not equipable by class. [Skotlex] if (!( @@ -5207,9 +5201,9 @@ char pc_setpos(struct map_session_data* sd, unsigned short mapindex, int x, int status_change_end(&sd->bl, SC_CLOAKINGEXCEED, INVALID_TIMER); } for( i = 0; i < EQI_MAX; i++ ) { - if( sd->equip_index[ i ] >= 0 ) - if( !pc_isequip( sd , sd->equip_index[ i ] ) ) - pc_unequipitem( sd , sd->equip_index[ i ] , 2 ); + if( sd->equip_index[i] >= 0 ) + if( pc_isequip(sd,sd->equip_index[i]) ) + pc_unequipitem(sd,sd->equip_index[i],2); } if (battle_config.clear_unit_onwarp&BL_PC) skill_clear_unitgroup(&sd->bl); @@ -6199,17 +6193,15 @@ int pc_checkbaselevelup(struct map_session_data *sd) { } void pc_baselevelchanged(struct map_session_data *sd) { -#ifdef RENEWAL - int i; + uint8 i; for( i = 0; i < EQI_MAX; i++ ) { if( sd->equip_index[i] >= 0 ) { if( sd->inventory_data[ sd->equip_index[i] ]->elvmax && sd->status.base_level > (unsigned int)sd->inventory_data[ sd->equip_index[i] ]->elvmax ) pc_unequipitem(sd, sd->equip_index[i], 3); } } -#endif - } + int pc_checkjoblevelup(struct map_session_data *sd) { unsigned int next = pc_nextjobexp(sd); @@ -6819,7 +6811,7 @@ int pc_resetlvl(struct map_session_data* sd,int type) for(i=0;iequip_index[i] >= 0) - if(!pc_isequip(sd,sd->equip_index[i])) + if(pc_isequip(sd,sd->equip_index[i])) pc_unequipitem(sd,sd->equip_index[i],2); } @@ -8096,7 +8088,7 @@ bool pc_jobchange(struct map_session_data *sd,int job, char upper) for(i=0;iequip_index[i] >= 0) - if(!pc_isequip(sd,sd->equip_index[i])) + if(pc_isequip(sd,sd->equip_index[i])) pc_unequipitem(sd,sd->equip_index[i],2); // unequip invalid item for class } @@ -9135,17 +9127,18 @@ int pc_load_combo(struct map_session_data *sd) { *------------------------------------------*/ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos) { - int i,pos,flag=0,iflag; + int i, pos, flag = 0, iflag; struct item_data *id; + uint8 res = ITEM_EQUIP_ACK_OK; nullpo_retr(false,sd); if( n < 0 || n >= MAX_INVENTORY ) { - clif_equipitemack(sd,0,0,0); + clif_equipitemack(sd,0,0,ITEM_EQUIP_ACK_FAIL); return false; } if( DIFF_TICK(sd->canequip_tick,gettick()) > 0 ) { - clif_equipitemack(sd,n,0,0); + clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); return false; } @@ -9156,14 +9149,18 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos) if(battle_config.battle_log) ShowInfo("equip %hu(%d) %x:%x\n",sd->status.inventory[n].nameid,n,id?id->equip:0,req_pos); - if(!pc_isequip(sd,n) || !(pos&req_pos) || sd->status.inventory[n].equip != 0 || sd->status.inventory[n].attribute==1 ) { // [Valaris] - // FIXME: pc_isequip: equip level failure uses 2 instead of 0 - clif_equipitemack(sd,n,0,0); // fail + if((res = pc_isequip(sd,n))) { + clif_equipitemack(sd,n,0,res); // fail + return false; + } + + if (!(pos&req_pos) || sd->status.inventory[n].equip != 0 || sd->status.inventory[n].attribute==1 ) { // [Valaris] + clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); // fail return false; } if( sd->sc.count && (sd->sc.data[SC_BERSERK] || sd->sc.data[SC_SATURDAYNIGHTFEVER] || sd->sc.data[SC_KYOUGAKU] || (sd->sc.data[SC_PYROCLASTIC] && sd->inventory_data[n]->type == IT_WEAPON)) ) { - clif_equipitemack(sd,n,0,0); //Fail + clif_equipitemack(sd,n,0,ITEM_EQUIP_ACK_FAIL); //Fail return false; } @@ -9213,7 +9210,7 @@ bool pc_equipitem(struct map_session_data *sd,short n,int req_pos) clif_arrow_fail(sd,3); } else - clif_equipitemack(sd,n,pos,1); + clif_equipitemack(sd,n,pos,ITEM_EQUIP_ACK_OK); sd->status.inventory[n].equip=pos; diff --git a/src/map/pc.h b/src/map/pc.h index 1027515689..3032717c78 100644 --- a/src/map/pc.h +++ b/src/map/pc.h @@ -845,7 +845,7 @@ void pc_reg_received(struct map_session_data *sd); void pc_close_npc(struct map_session_data *sd,int flag); int pc_close_npc_timer(int tid, unsigned int tick, int id, intptr_t data); -bool pc_isequip(struct map_session_data *sd,int n); +uint8 pc_isequip(struct map_session_data *sd,int n); int pc_equippoint(struct map_session_data *sd,int n); void pc_setinventorydata(struct map_session_data *sd); diff --git a/src/map/pet.c b/src/map/pet.c index f7b8eeae23..71c332adfc 100644 --- a/src/map/pet.c +++ b/src/map/pet.c @@ -868,7 +868,7 @@ int pet_equipitem(struct map_session_data *sd,int index) nameid = sd->status.inventory[index].nameid; if(pd->petDB->AcceID == 0 || nameid != pd->petDB->AcceID || pd->pet.equip != 0) { - clif_equipitemack(sd,0,0,0); + clif_equipitemack(sd,0,0,ITEM_EQUIP_ACK_FAIL); return 1; } diff --git a/src/map/skill.c b/src/map/skill.c index 380bd79400..bd1b904a65 100755 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5947,6 +5947,7 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, ui status_kill(bl); break; case SA_REVERSEORCISH: + case ALL_REVERSEORCISH: clif_skill_nodamage(src,bl,skill_id,skill_lv, sc_start(src,bl,type,100,skill_lv,skill_get_time(skill_id, skill_lv))); break; diff --git a/src/map/status.c b/src/map/status.c index d56adaeca2..1c3c64ea46 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -203,6 +203,7 @@ void initChangeTables(void) set_sc( NPC_BLINDATTACK , SC_BLIND , SI_BLANK , SCB_HIT|SCB_FLEE ); set_sc( NPC_BLEEDING , SC_BLEEDING , SI_BLEEDING , SCB_REGEN ); set_sc( NPC_POISON , SC_DPOISON , SI_BLANK , SCB_DEF2|SCB_REGEN ); + add_sc( ALL_REVERSEORCISH, SC_ORCISH ); /* The main status definitions */ add_sc( SM_BASH , SC_STUN ); diff --git a/src/map/status.h b/src/map/status.h index 101e967b59..0a986796f2 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -1520,18 +1520,19 @@ enum si_type { SI_GET_MAILBOX = 814, SI_JUMPINGCLAN = 815, SI_JP_OTP = 816, + SI_MAX, }; -// JOINTBEAT stackable ailments +/// JOINTBEAT stackable ailments enum e_joint_break { - BREAK_ANKLE = 0x01, // MoveSpeed reduced by 50% - BREAK_WRIST = 0x02, // ASPD reduced by 25% - BREAK_KNEE = 0x04, // MoveSpeed reduced by 30%, ASPD reduced by 10% - BREAK_SHOULDER = 0x08, // DEF reduced by 50% - BREAK_WAIST = 0x10, // DEF reduced by 25%, ATK reduced by 25% - BREAK_NECK = 0x20, // current attack does 2x damage, inflicts 'bleeding' for 30 seconds + BREAK_ANKLE = 0x01, ///< MoveSpeed reduced by 50% + BREAK_WRIST = 0x02, ///< ASPD reduced by 25% + BREAK_KNEE = 0x04, ///< MoveSpeed reduced by 30%, ASPD reduced by 10% + BREAK_SHOULDER = 0x08, ///< DEF reduced by 50% + BREAK_WAIST = 0x10, ///< DEF reduced by 25%, ATK reduced by 25% + BREAK_NECK = 0x20, ///< current attack does 2x damage, inflicts 'bleeding' for 30 seconds BREAK_FLAGS = BREAK_ANKLE | BREAK_WRIST | BREAK_KNEE | BREAK_SHOULDER | BREAK_WAIST | BREAK_NECK, }; @@ -1539,7 +1540,7 @@ extern short current_equip_item_index; extern unsigned int current_equip_combo_pos; extern int current_equip_card_id; -//Mode definitions to clear up code reading. [Skotlex] +/// Mode definitions to clear up code reading. [Skotlex] enum e_mode { MD_CANMOVE = 0x000001, MD_LOOTER = 0x000002, @@ -1654,7 +1655,7 @@ enum e_option { OPTION_CART4 = 0x00000200, OPTION_CART5 = 0x00000400, - /* compound constant for older carts */ + // compound constant for older carts OPTION_CART = OPTION_CART1|OPTION_CART2|OPTION_CART3|OPTION_CART4|OPTION_CART5, #endif @@ -1673,18 +1674,18 @@ enum manner_flags MANNER_NOROOM = 0x10, }; -/* Status Change State Flags */ +/// Status Change State Flags enum scs_flag { - SCS_NOMOVECOND = 0x00000001, /* cond flag for nomove */ - SCS_NOMOVE = 0x00000002, /* unit unable to move */ - SCS_NOPICKITEMCOND = 0x00000004, /* cond flag for nopickitem */ - SCS_NOPICKITEM = 0x00000008, /* player unable to pick up items */ - SCS_NODROPITEMCOND = 0x00000010, /* cond flag for nodropitem */ - SCS_NODROPITEM = 0x00000020, /* player unable to drop items */ - SCS_NOCASTCOND = 0x00000040, /* cond flag for nocast */ - SCS_NOCAST = 0x00000080, /* unit unable to cast skills */ - SCS_NOCHAT = 0x00000100, /* unit can't talk */ - SCS_NOCHATCOND = 0x00000200, /* cond flag for notalk */ + SCS_NOMOVECOND = 0x00000001, ///< cond flag for nomove + SCS_NOMOVE = 0x00000002, ///< unit unable to move + SCS_NOPICKITEMCOND = 0x00000004, ///< cond flag for nopickitem + SCS_NOPICKITEM = 0x00000008, ///< player unable to pick up items + SCS_NODROPITEMCOND = 0x00000010, ///< cond flag for nodropitem + SCS_NODROPITEM = 0x00000020, ///< player unable to drop items + SCS_NOCASTCOND = 0x00000040, ///< cond flag for nocast + SCS_NOCAST = 0x00000080, ///< unit unable to cast skills + SCS_NOCHAT = 0x00000100, ///< unit can't talk + SCS_NOCHATCOND = 0x00000200, ///< cond flag for notalk }; ///Define flags for the status_calc_bl function. [Skotlex] @@ -1729,8 +1730,8 @@ enum scb_flag enum e_status_calc_opt { SCO_NONE = 0x0, - SCO_FIRST = 0x1, /* Trigger the calculations that should take place only onspawn/once */ - SCO_FORCE = 0x2, /* Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage */ + SCO_FIRST = 0x1, ///< Trigger the calculations that should take place only onspawn/once + SCO_FORCE = 0x2, ///< Only relevant to BL_PC types, ensures call bypasses the queue caused by delayed damage }; /// Flags for status_change_start and status_get_sc_def @@ -1790,12 +1791,12 @@ struct weapon_atk { #endif }; -sc_type SkillStatusChangeTable[MAX_SKILL]; // skill -> status -int StatusIconChangeTable[SC_MAX]; // status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated) -unsigned int StatusChangeFlagTable[SC_MAX]; // status -> flags -int StatusSkillChangeTable[SC_MAX]; // status -> skill -int StatusRelevantBLTypes[SI_MAX]; // "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets) -unsigned int StatusChangeStateTable[SC_MAX]; // status -> flags +sc_type SkillStatusChangeTable[MAX_SKILL]; /// skill -> status +int StatusIconChangeTable[SC_MAX]; /// status -> "icon" (icon is a bit of a misnomer, since there exist values with no icon associated) +unsigned int StatusChangeFlagTable[SC_MAX]; /// status -> flags +int StatusSkillChangeTable[SC_MAX]; /// status -> skill +int StatusRelevantBLTypes[SI_MAX]; /// "icon" -> enum bl_type (for clif->status_change to identify for which bl types to send packets) +unsigned int StatusChangeStateTable[SC_MAX]; /// status -> flags bool StatusDisplayType[SC_MAX]; ///For holding basic status (which can be modified by status changes) diff --git a/vcproj-10/map-server.vcxproj b/vcproj-10/map-server.vcxproj index e8f2619a93..087219d0e7 100644 --- a/vcproj-10/map-server.vcxproj +++ b/vcproj-10/map-server.vcxproj @@ -325,6 +325,8 @@ + + diff --git a/vcproj-12/map-server.vcxproj b/vcproj-12/map-server.vcxproj index cb2c3439ea..4953aa2d99 100644 --- a/vcproj-12/map-server.vcxproj +++ b/vcproj-12/map-server.vcxproj @@ -329,6 +329,8 @@ + + diff --git a/vcproj-13/map-server.vcxproj b/vcproj-13/map-server.vcxproj index 21e630a032..870b7a2876 100644 --- a/vcproj-13/map-server.vcxproj +++ b/vcproj-13/map-server.vcxproj @@ -329,6 +329,8 @@ + +