//===== eAthena Script ======================================= //= Class Specialization //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.2 //===== Description: ========================================= //= A class expansion system allowing characters to //= "specialize" in a particular aspect of their job. //= NOTE: Database and client modifications are at the bottom! //============================================================ valkyrie,53,53,4 script Class Specialization 440,{ function Option; // --------------------- Config --------------------- // Max: Maximum base level, maximum job level, // and maximum job level for Super Novices. // SReq: Items required to specialize. // Format is "ID1,Count1,ID2,Count2,..." // If no requirements, use a single 0. // DReq: Zeny, in MILLIONS, to despecialize. // If no requirement, use 0. setarray .Max[0],99,70,99; setarray .SReq[0],0; set .DReq,20; set .n$,"[Class Specialization]"; // -------------------------------------------------- mes .n$; if (BaseLevel < .Max[0]) { mes "You must be level " + .Max[0] + " to use this feature."; close; } if (Class != 23 && (Class < 4008 || Class > 4022)) { mes "This feature is not available for your class."; close; } if ((JobLevel < .Max[1]) || (Class == 23 && JobLevel < .Max[2])) { mes "You must master your class before using this feature."; close; } mes "So you've mastered your class~"; sleep2 500; mes "The process of ^0055ffspecialization^000000 can greatly enhance your attributes."; mes " "; sleep2 750; mes "^ff0000You may only choose once, so think carefully before deciding.^000000"; sleep2 750; next; if(select("I want to specialize.:I'll think about it.")==2) goto Closing; mes .n$; for (set .@i,3350; .@i<=3377; set .@i,.@i+1) if (countitem(.@i)>0) { sleep2 1000; goto Despecialize; } sleep2 500; if (getarraysize(.SReq)) { mes "The process is not simple."; sleep2 1000; mes "I require the following items:"; sleep2 750; set .@i,0; while (.@i < getarraysize(.SReq)) { mes " ~ ^FF0000"+getitemname(.SReq[.@i])+"^000000 [^0055ff"+countitem(.SReq[.@i])+"^000000/"+.SReq[.@i+1]+"]"; sleep2 100; set .@i, .@i+2; } next; if(select("I've got them all.:I'll come back later.")==2) close; set .@i,0; while (.@i < getarraysize(.SReq)) { if (countitem(.SReq[.@i]) < .SReq[.@i+1]) { mes .n$; sleep2 500; mes "You're missing some items."; sleep2 500; mes "I'll need all the materials"; mes "for this to work."; close; } set .@i, .@i+2; } mes .n$; } switch(Class){ case 23: Option("Ultra Novice","Heightened magical powers",3372,"Hyper Novice","Insurmountable in strength",3373); case 4008: Option("Slayer","Agile sword-bearer",3350,"Lancer","Spear expert",3351); case 4009: Option("Cardinal","Divine healer",3354,"Battle Priest","Powerful acolyte-warrior",3355); case 4010: Option("Evoker","Bolt-oriented magician",3364,"Sorcerer","Area-oriented spellcaster",3365); case 4011: Option("Goldsmith","Master forger",3376,"Battlesmith","Impulsive axeman",3377); case 4012: Option("Scout","Swift archer",3368,"Ranger","Dagger-wielder",3369); case 4013: Option("Virus","Strength in poison",3362,"Reaver","High-defense killer",3363); case 4015: Option("Guardian","Unstoppable tank",3352,"Templar","Holy mercenary",3353); case 4016: Option("Brawler","Lethal combos",3356,"Zealot","Fanatic striker",3357); case 4017: Option("Geomancer","Single-spell sorcerer",3366,"Enchanter","Melee assaulter",3367); case 4018: Option("Raider","Cunning marksman",3374,"Backstabber","Delusive assassin",3375); case 4019: Option("Apothecary","Potion-brewer",3370,"Terrorist","Malicious bomber",3371); case 4020: Option("Minstrel","Gifted bard",3358,"Jester","Musical killer",3359); case 4021: Option("Performer","Gifted dancer",3360,"Siren","Musical killer",3361); default: mes "Something went wrong. Try again."; close; } function Option { mes "^0055ff > "+getarg(0); sleep2 200; mes "^777777 > "+getarg(1)+"."; mes " "; sleep2 200; mes "^0055ff > "+getarg(3); sleep2 200; mes "^777777 > "+getarg(4)+".^000000"; set @menu$,"^0055ff"+getarg(0)+":"+getarg(3)+":^777777Cancel^000000"; sleep2 1000; next; switch(select(@menu$)) { case 1: set @sring,getarg(2); set @sclass$,getarg(0); goto SConfirm; case 2: set @sring,getarg(5); set @sclass$,getarg(3); goto SConfirm; case 3: goto Closing; } } SConfirm: mes .n$; mes "Are you sure you want to specialize as the ^0055ff" + @sclass$ + "^000000 class?"; mes " "; sleep2 500; mes "^ff0000Your base level will be reset. This cannot be undone.^000000"; next; if(select("I need more time to think.:Yes!")==1) goto Closing; progressbar "",2; specialeffect2 248; if (getarraysize(.SReq)) { set .@i,0; while (.@i < getarraysize(.SReq)) { delitem .SReq[.@i], .SReq[.@i+1]; set .@i, .@i+2; } } mes .n$; mes "...finished!"; sleep2 500; mes "Here's your ^0055ff" + getitemname(@sring) + "^000000."; sleep2 200; getitem @sring,1; set BaseLevel,1; ResetStatus; set StatusPoint,100; sleep2 200; nude; equip @sring; close; Despecialize: mes "You've already specialized!"; sleep2 1000; if (.DReq) { mes " "; mes "^777777There is a way to switch, if you really want to... but it's costly.^000000"; sleep2 1000; next; if(select("Okay, never mind.:I still want to switch!")==1) close; mes .n$; sleep2 1000; mes "...okay."; sleep2 800; mes "To undo the specialization process, I'll need ^ff0000" + .DReq + " million Zeny^000000 to"; mes "obtain all the materials I need."; mes " "; sleep2 1000; mes "Are you sure?"; sleep2 1000; next; if(select("What? No way!:Yes.")==1) goto Closing; mes .n$; if (Zeny < (.DReq*1000000)) { sleep2 500; mes "You don't have enough Zeny."; sleep2 500; mes "It's an expensive procedure, so please reconsider."; close; } } else { mes "Your ring will be deleted if you despecialize."; sleep2 1000; next; if(select("Oh, never mind then.:Let me despecialize!")==1) close; mes .n$; sleep2 1000; mes "Do you really want to despecialize?"; sleep2 500; next; if(select("No, I've changed my mind.:Yes.")==1) close; mes .n$; } progressbar "", 2; specialeffect2 338; set Zeny, Zeny - (.DReq*1000000); for (set .@i,3350; .@i<=3377; set .@i,.@i+1) if (countitem(.@i)>0) delitem .@i,1; mes "...finished!"; sleep2 1000; mes "^777777(I hope you don't regret this...)^000000"; sleep2 1000; close; Closing: mes .n$; mes "Come back when you've"; mes "made your decision."; close; } function script SpecEffect { function dd { while(.@j<=getarg(2)){ set .@j, .@j+1; specialeffect2 getarg(0); sleep2(getarg(1)); } return; } if(@effectdelay < gettimetick(2)) { set @effectdelay, gettimetick(2)+5; dd(54,10,2); dd(55,10,2); dd(668,10,2); dd(58,10,2); dd(377,10,2); dd(500,20,2); } } /* ===== item_db2.txt: ===== 3350,Slayer_Ring,Slayer Ring,5,20,,100,,0,,0,0x00000080,2,2,136,,0,0,0,{ skill "SM_BASH",18; skill "SM_MAGNUM",18; skill "SM_SWORD",23; skill "SM_TWOHAND",23; skill "LK_PARRYING",13; skill "LK_AURABLADE",7; skill "LK_CONCENTRATION",6; skill 397,-getskilllv(397),2; skill 399,-getskilllv(399),2; for (set .@i,55; .@i <= 59; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; bonus bStr,25; bonus bAgi,18; bonus bVit,-2; bonus bInt,-8; bonus bDex,-1; bonus bLuk,3; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3351,Lancer_Ring,Lancer Ring,5,20,,100,,0,,0,0x00000080,2,2,136,,0,0,0,{ skill "SM_ENDURE",20; skill "KN_SPEARMASTERY",30; skill "LK_CONCENTRATION",6; skill "KN_SPEARBOOMERANG",7; skill "LK_SPIRALPIERCE",8; skill "KN_PIERCE",15; bonus bStr,25; bonus bAgi,-2; bonus bVit,18; bonus bInt,2; bonus bDex,9; bonus bLuk,-7; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3352,Guardian_Ring,Guardian Ring,5,20,,100,,0,,0,0x00004000,2,2,136,,0,0,0,{ skill "SM_ENDURE",20; skill "CR_AUTOGUARD",15; skill "AL_HEAL",12; skill "PA_GOSPEL",13; skill "CR_REFLECTSHIELD",14; skill "CR_PROVIDENCE",8; bonus bStr,18; bonus bVit,31; bonus bInt,7; bonus bDex,2; bonus bLuk,3; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3353,Templar_Ring,Templar Ring,5,20,,100,,0,,0,0x00004000,2,2,136,,0,0,0,{ skill "CR_HOLYCROSS",15; skill "CR_GRANDCROSS",13; skill "PA_SHIELDCHAIN",15; skill "KN_SPEARMASTERY",10; skill "PA_SACRIFICE",7; skill "CR_SHIELDCHARGE",10; skill "SM_BASH",15; if(getskilllv(28)>1) {skill 28,-2,2;} else {skill 28,-getskilllv(28),2;} if(getskilllv(249)>5) {skill 249,-6,2;} else {skill 249,-getskilllv(249),2;} skill 1002,-getskilllv(1002),2; if(getskilllv(257)>3) {skill 257,-4,2;} else {skill 257,-getskilllv(257),2;} bonus bStr,16; bonus bAgi,8; bonus bVit,11; bonus bInt,18; bonus bDex,13; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3354,Cardinal_Ring,Cardinal Ring,5,20,,100,,0,,0,0x00000100,2,2,136,,0,0,0,{ skill "HP_ASSUMPTIO",10; skill "PR_IMPOSITIO",10; skill "PR_GLORIA",10; skill "PR_MAGNIFICAT",10; skill "AL_HEAL",13; skill "AL_INCAGI",13; skill "AL_BLESSING",13; skill 156,-getskilllv(156),2; bonus bStr,-16; bonus bAgi,-7; bonus bVit,2; bonus bInt,22; bonus bDex,16; bonus bLuk,2; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3355,Battle_Priest_Ring,Battle Priest Ring,5,20,,100,,0,,0,0x00000100,2,2,136,,0,0,0,{ skill "PR_MACEMASTERY",20; skill "PR_IMPOSITIO",7; skill "PR_GLORIA",7; skill "SM_BASH",10; skill "MG_SOULSTRIKE",5; skill "BS_ADRENALINE",2; skill "MG_ENERGYCOAT",1; skill "CR_TRUST",5; skill "CR_HOLYCROSS",10; skill "SL_KAIZEL",1; bonus bStr,37; bonus bAgi,27; bonus bVit,7; bonus bInt,-25; bonus bDex,9; bonus bLuk, 4; },{ callfunc "SpecEffect"; },{ sc_end SC_ADRENALINE; sc_end SC_ENERGYCOAT; sc_end SC_KAIZEL; percentheal -99,-99; } 3356,Brawler_Ring,Brawler Ring,5,20,,100,,0,,0,0x00008000,2,2,136,,0,0,0,{ skill "MO_CHAINCOMBO",8; skill "CH_CHAINCRUSH",13; skill "MO_COMBOFINISH",8; skill "MO_DODGE",15; skill "MO_IRONHAND",20; skill "CH_TIGERFIST",8; skill 271,-getskilllv(271),2; bonus bStr,23; bonus bAgi,25; bonus bVit,7; bonus bLuk,3; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3357,Zealot_Ring,Zealot Ring,5,20,,100,,0,,0,0x00008000,2,2,136,,0,0,0,{ skill "AL_HEAL",11; skill "MO_FINGEROFFENSIVE",7; skill "MO_INVESTIGATE",10; skill 271,-getskilllv(271),2; bonus bStr,19; bonus bAgi,-20; bonus bDex,12; bonus bLuk,-25; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3358,Minstrel_Ring,Minstrel Ring,5,20,,100,,0,,0,0x00080000,2,1,136,,0,0,0,{ skill "BA_DISSONANCE",15; skill "BA_WHISTLE",15; skill "BA_ASSASSINCROSS",12; skill "BA_POEMBRAGI",12; skill "BA_APPLEIDUN",15; skill "BD_DRUMBATTLEFIELD",10; skill "BD_RINGNIBELUNGEN",10; skill "BD_RICHMANKIM",10; skill 489,-getskilllv(489),2; bonus bSpeedAddRate,10; bonus bStr,-10; bonus bVit,10; bonus bInt,13; bonus bDex,-7; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3359,Jester_Ring,Jester Ring,5,20,,100,,0,,0,0x00080000,2,1,136,,0,0,0,{ skill "BA_MUSICALLESSON",20; skill "BA_MUSICALSTRIKE",10; skill "CG_ARROWVULCAN",13; skill "BA_FROSTJOKER",6; skill 317,-getskilllv(317),2; skill 395,-getskilllv(395),2; skill 488,-getskilllv(488),2; for (set .@i,305; .@i <= 313; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; for (set .@i,319; .@i <= 322; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; bonus bStr,-1; bonus bAgi,12; bonus bVit,14; bonus bInt,-7; bonus bDex,35; bonus bLuk,4; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3360,Performer_Ring,Performer Ring,5,20,,100,,0,,0,0x00080000,2,0,136,,0,0,0,{ skill "DC_UGLYDANCE",20; skill "DC_HUMMING",15; skill "DC_DONTFORGETME",12; skill "DC_SERVICEFORYOU",12; skill "DC_FORTUNEKISS",25; skill "DC_SCREAM",7; skill "BD_DRUMBATTLEFIELD",10; skill "BD_RINGNIBELUNGEN",10; skill "BD_RICHMANKIM",10; skill 489,-getskilllv(489),2; bonus bStr,-10; bonus bVit,10; bonus bInt,13; bonus bDex,-7; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3361,Siren_Ring,Siren Ring,5,20,,100,,0,,0,0x00080000,2,0,136,,0,0,0,{ skill "DC_THROWARROW",10; skill "DC_DANCINGLESSON",20; skill "CG_ARROWVULCAN",13; for (set .@i,305; .@i <= 313; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; for (set .@i,327; .@i <= 330; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; skill 325,-getskilllv(325),2; skill 395,-getskilllv(395),2; skill 488,-getskilllv(488),2; bonus bMaxHPrate,10; bonus bStr,-2; bonus bAgi,14; bonus bVit,15; bonus bInt,-6; bonus bDex,37; bonus bLuk,2; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3362,Virus_Ring,Virus Ring,5,20,,100,,0,,0,0x00001000,2,2,136,,0,0,0,{ skill "AS_ENCHANTPOISON",20; skill "AS_VENOMDUST",20; skill "AS_POISONREACT",20; skill "AS_SPLASHER",14; bonus bAgi,12; bonus bInt,-9; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3363,Reaver_Ring,Reaver Ring,5,20,,100,,0,,0,0x00001000,2,2,136,,0,0,0,{ skill "TF_MISS",15; skill "SM_ENDURE",3; skill "LK_TENSIONRELAX",1; bonus bStr,-6; bonus bAgi,7; bonus bVit,12; bonus bInt,9; bonus bDex,-4; bonus bUseSPrate,-100; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3364,Evoker_Ring,Evoker Ring,5,20,,100,,0,,0,0x00000200,2,2,136,,0,0,0,{ skill "WZ_JUPITEL",12; skill "HW_MAGICPOWER",20; skill "MG_FIREBOLT",13; skill "MG_COLDBOLT",13; skill "MG_LIGHTNINGBOLT",13; skill 83,-getskilllv(83),2; skill 85,-getskilllv(85),2; skill 89,-getskilllv(89),2; skill 21,-getskilllv(21),2; skill 91,-getskilllv(91),2; bonus bStr,-3; bonus bAgi,9; bonus bVit,-9; bonus bInt,11; bonus bDex,9; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3365,Sorcerer_Ring,Sorcerer Ring,5,20,,100,,0,,0,0x00000200,2,2,136,,0,0,0,{ skill "WZ_SIGHTRASHER",20; skill "WZ_METEOR",13; skill "WZ_ICEWALL",20; skill "WZ_FROSTNOVA",12; skill "WZ_VERMILION",13; skill "WZ_HEAVENDRIVE",10; skill "WZ_QUAGMIRE",10; skill "HW_GRAVITATION",10; skill "MG_THUNDERSTORM",15; if(getskilllv(14)>1) {skill 14,-2,2;} else {skill 14,-getskilllv(14),2;} if(getskilllv(19)>1) {skill 19,-2,2;} else {skill 19,-getskilllv(19),2;} if(getskilllv(20)>1) {skill 20,-2,2;} else {skill 20,-getskilllv(20),2;} if(getskilllv(84)>1) {skill 84,-2,2;} else {skill 84,-getskilllv(84),2;} },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3366,Geomancer_Ring,Geomancer Ring,5,20,,100,,0,,0,0x00010000,2,2,136,,0,0,0,{ skill "MG_FIREBOLT",12; skill "MG_COLDBOLT",12; skill "MG_LIGHTNINGBOLT",12; skill "WZ_HEAVENDRIVE",8; skill 279,-getskilllv(279),2; skill 274,-getskilllv(274),2; bonus bStr,-16; bonus bAgi,-7; bonus bVit,-7; bonus bInt,13; bonus bDex,12; },{ sc_end SC_AUTOSPELL; callfunc "SpecEffect"; },{ percentheal -99,-99; } 3367,Enchanter_Ring,Enchanter Ring,5,20,,100,,0,,0,0x00010000,2,2,136,,0,0,0,{ skill "PF_HPCONVERSION",10; skill "SA_ADVANCEDBOOK",15; skill "WZ_QUAGMIRE",2; skill "TK_SEVENWIND",7; skill 482,-getskilllv(482),2; if(getskilllv(14)>4) {skill 14,-5,2;} else {skill 14,-getskilllv(14),2;} if(getskilllv(19)>4) {skill 19,-5,2;} else {skill 19,-getskilllv(19),2;} if(getskilllv(20)>4) {skill 20,-5,2;} else {skill 20,-getskilllv(20),2;} if(getskilllv(21)>4) {skill 21,-5,2;} else {skill 21,-getskilllv(21),2;} bonus bStr,26; bonus bAgi,17; bonus bInt,-26; bonus bDex,-9; },{ sc_end SC_DOUBLECAST; callfunc "SpecEffect"; },{ percentheal -99,-99; } 3368,Scout_Ring,Scout Ring,5,20,,100,,0,,0,0x00000800,2,2,136,,0,0,0,{ skill "SN_WINDWALK",13; skill "SN_SIGHT",12; skill "HT_STEELCROW",15; skill "HT_DETECTING",5; for (set .@i,115; .@i <= 123; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; skill 125,-getskilllv(125),2; bonus bAgi,6; bonus bVit,3; bonus bInt,15; bonus bDex,28; bonus bLuk,8; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3369,Ranger_Ring,Ranger Ring,5,20,,100,,0,,0,0x00000800,2,2,136,,0,0,0,{ skill 46,-getskilllv(46),2; skill 382,-getskilllv(382),2; skill "TF_DOUBLE",15; skill "CR_DEFENDER",1; skill "LK_CONCENTRATION",1; skill "ST_REJECTSWORD",1; skill "KN_ONEHAND",1; bonus bStr,20; bonus bAgi,19; bonus bInt,1; bonus bDex,16; bonus bLuk,15; },{ callfunc "SpecEffect"; },{ sc_end SC_REJECTSWORD; sc_end SC_CONCENTRATION; sc_end SC_DEFENDER; percentheal -99,-99; } 3370,Apothecary_Ring,Apothecary Ring,5,20,,100,,0,,0,0x00040000,2,2,136,,0,0,0,{ skill "CR_SLIMPITCHER",12; skill "AM_LEARNINGPOTION",15; skill "CR_FULLPROTECTION",10; skill 490,-getskilllv(490),2; bonus bStr,-10; bonus bDex,11; bonus bLuk,15; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3371,Terrorist_Ring,Terrorist Ring,5,20,,100,,0,,0,0x00040000,2,2,136,,0,0,0,{ skill "AM_LEARNINGPOTION",15; skill "AM_SPHEREMINE",15; skill "AM_DEMONSTRATION",10; skill "AM_ACIDTERROR",7; bonus bStr,6; bonus bVit,-6; bonus bInt,18; bonus bDex,17; bonus bLuk,17; },{ callfunc "SpecEffect"; },{ unitskilluseid getcharid(3),173,10; } 3372,Ultra_Novice_Ring,Ultra Novice Ring,5,20,,100,,0,,0,0x00000001,1,2,136,,0,0,0,{ if (Class !=23) end; skill "MG_FIREBOLT",13; skill "MG_COLDBOLT",13; skill "MG_LIGHTNINGBOLT",13; skill "PF_SOULBURN",5; skill "PF_MINDBREAKER",5; bonus bMaxHP,10000; bonus bMaxSP,3000; bonus bStr,-10; bonus bAgi,-5; bonus bVit,20; bonus bInt,45; bonus bDex,15; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3373,Hyper_Novice_Ring,Hyper Novice Ring,5,20,,100,,0,,0,0x00000001,1,2,136,,0,0,0,{ if (Class !=23) end; skill "LK_BERSERK",1; bonus bMaxHP,30000; bonus bMaxSP,500; bonus bStr,20; bonus bAgi,30; bonus bVit,10; bonus bInt,-50; bonus bDex,10; bonus bLuk,15; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3374,Raider_Ring,Raider Ring,5,20,,100,,0,,0,0x00020000,7,2,136,,0,0,0,{ skill "TF_MISS",20; skill "AC_VULTURE",12; skill "AC_DOUBLE",12; skill "SM_SWORD",20; skill "RG_RAID",10; bonus bMaxHPrate,10; bonus bMaxSPrate,10; bonus bStr,-4; bonus bAgi,29; bonus bVit,13; bonus bInt,-15; bonus bDex,28; bonus bLuk,6; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3375,Backstabber_Ring,Backstabber Ring,5,20,,100,,0,,0,0x00020000,7,2,136,,0,0,0,{ skill "RG_BACKSTAP",20; skill "ST_CHASEWALK",6; skill "SM_SWORD",20; bonus bStr,34; bonus bAgi,-4; bonus bVit,4; bonus bInt,-16; bonus bDex,7; bonus bLuk,6; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } 3376,Goldsmith_Ring,Goldsmith Ring,5,20,,100,,0,,0,0x00000400,7,2,136,,0,0,0,{ skill 113,-getskilllv(113),2; skill 486,-getskilllv(486),2; skill "BS_ORIDEOCON",10; skill "BS_ENCHANTEDSTONE",20; skill "MC_VENDING",13; for (set .@i,98; .@i <= 104; set .@i,.@i+1) skill .@i,5; bonus bStr,-11; bonus bDex,10; bonus bLuk,11; },{ sc_end SC_OVERTHRUST; sc_end SC_MAXOVERTHRUST; callfunc "SpecEffect"; },{ percentheal -99,-99; } 3377,Battlesmith_Ring,Battlesmith Ring,5,20,,100,,0,,0,0x00000400,7,2,136,,0,0,0,{ skill "BS_SKINTEMPER",10; skill "BS_OVERTHRUST",10; skill "WS_MELTDOWN",15; skill "WS_CARTTERMINATION",13; skill "BS_WEAPONRESEARCH",20; bonus bMaxHPrate,20; for (set .@i,98; .@i <= 104; set .@i,.@i+1) skill .@i,-getskilllv(.@i),2; bonus bStr,10; bonus bAgi,10; bonus bVit,9; bonus bInt,9; bonus bDex,15; bonus bLuk,11; },{ callfunc "SpecEffect"; },{ percentheal -99,-99; } ===== item_trade.txt: ===== 3350,123,100 3351,123,100 3352,123,100 3353,123,100 3354,123,100 3355,123,100 3356,123,100 3357,123,100 3358,123,100 3359,123,100 3360,123,100 3361,123,100 3362,123,100 3363,123,100 3364,123,100 3365,123,100 3366,123,100 3367,123,100 3368,123,100 3369,123,100 3370,123,100 3371,123,100 3372,123,100 3373,123,100 3374,123,100 3375,123,100 3376,123,100 3377,123,100 ===== idnum2itemdisplaynametable.txt: ===== 3350#Slayer_Ring# 3351#Lancer_Ring# 3352#Guardian_Ring# 3353#Templar_Ring# 3354#Cardinal_Ring# 3355#Battle_Priest_Ring# 3356#Brawler_Ring# 3357#Zealot_Ring# 3358#Minstrel_Ring# 3359#Jester_Ring# 3360#Performer_Ring# 3361#Siren_Ring# 3362#Virus_Ring# 3363#Reaver_Ring# 3364#Evoker_Ring# 3365#Sorcerer_Ring# 3366#Geomancer_Ring# 3367#Enchanter_Ring# 3368#Scout_Ring# 3369#Ranger_Ring# 3370#Apothecary_Ring# 3371#Terrorist_Ring# 3372#Ultra_Novice_Ring# 3373#Hyper_Novice_Ring# 3374#Raider_Ring# 3375#Backstabber_Ring# 3376#Goldsmith_Ring# 3377#Battlesmith_Ring# ===== idnum2itemresnametable.txt: ===== 3350#¥Î¡÷±≥¿«π›¡ˆ# 3351#¥Î¡÷±≥¿«π›¡ˆ# 3352#¥Î¡÷±≥¿«π›¡ˆ# 3353#¥Î¡÷±≥¿«π›¡ˆ# 3354#¥Î¡÷±≥¿«π›¡ˆ# 3355#¥Î¡÷±≥¿«π›¡ˆ# 3356#¥Î¡÷±≥¿«π›¡ˆ# 3357#¥Î¡÷±≥¿«π›¡ˆ# 3358#¥Î¡÷±≥¿«π›¡ˆ# 3359#¥Î¡÷±≥¿«π›¡ˆ# 3360#¥Î¡÷±≥¿«π›¡ˆ# 3361#¥Î¡÷±≥¿«π›¡ˆ# 3362#¥Î¡÷±≥¿«π›¡ˆ# 3363#¥Î¡÷±≥¿«π›¡ˆ# 3364#¥Î¡÷±≥¿«π›¡ˆ# 3365#¥Î¡÷±≥¿«π›¡ˆ# 3366#¥Î¡÷±≥¿«π›¡ˆ# 3367#¥Î¡÷±≥¿«π›¡ˆ# 3368#¥Î¡÷±≥¿«π›¡ˆ# 3369#¥Î¡÷±≥¿«π›¡ˆ# 3370#¥Î¡÷±≥¿«π›¡ˆ# 3371#¥Î¡÷±≥¿«π›¡ˆ# 3372#¥Î¡÷±≥¿«π›¡ˆ# 3373#¥Î¡÷±≥¿«π›¡ˆ# 3374#¥Î¡÷±≥¿«π›¡ˆ# 3375#¥Î¡÷±≥¿«π›¡ˆ# 3376#¥Î¡÷±≥¿«π›¡ˆ# 3377#¥Î¡÷±≥¿«π›¡ˆ# ===== idnum2itemdesctable.txt: ===== 3350# ^6698FF< Lord Knight >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Slayer^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3351# ^6698FF< Lord Knight >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Lancer^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3352# ^6698FF< Paladin >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Guardian^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3353# ^6698FF< Paladin >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Templar^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3354# ^6698FF< High Priest >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Cardinal^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3355# ^6698FF< High Priest >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Battle Priest^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3356# ^6698FF< Champion >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Brawler^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3357# ^6698FF< Champion >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Zealot^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3358# ^6698FF< Clown >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Minstrel^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3359# ^6698FF< Clown >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Jester^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3360# ^6698FF< Gypsy >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Performer^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3361# ^6698FF< Gypsy >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Siren^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3362# ^6698FF< Assassin Cross >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Virus^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3363# ^6698FF< Assassin Cross >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Reaver^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3364# ^6698FF< High Wizard >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into an ^880000Evoker^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3365# ^6698FF< High Wizard >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Sorcerer^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3366# ^6698FF< Professor >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Geomancer^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3367# ^6698FF< Professor >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into an ^880000Enchanter^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3368# ^6698FF< Sniper >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Scout^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3369# ^6698FF< Sniper >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Ranger^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3370# ^6698FF< Creator >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into an ^880000Apothecary^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3371# ^6698FF< Creator >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Terrorist^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3372# ^6698FF< Super Novice >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into an ^880000Ultra Novice^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3373# ^6698FF< Super Novice >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Hyper Novice^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3374# ^6698FF< Stalker >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Raider^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3375# ^6698FF< Stalker >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Backstabber^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3376# ^6698FF< Whitesmith >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Goldsmith^000000. ^ffffff_^000000 Weight:^777777 10^000000 # 3377# ^6698FF< Whitesmith >^000000 A mystic ring imbued with tremendous power. Transforms its wearer into a ^880000Battlesmith^000000. ^ffffff_^000000 Weight:^777777 10^000000 # */