//===== Hercules Script ====================================== //= Reset NPC //===== By: ================================================== //= Hercules Dev Team //===== Current Version: ===================================== //= 1.3 //===== Description: ========================================= //= Resets skills, stats, or both. //===== Additional Comments: ================================= //= 1.0 First Version //= 1.1 Optimized for the greater good. [Kisuka] //= 1.2 Cleaning [Euphy] //= 1.3 All statuses removed upon skill reset. [Euphy]4_F_JP_CYNTHIA //============================================================ prontera,133,189,7 script Sherin The Build Girl 4_F_JP_CYNTHIA,{ // Mode of NPC // 1 = Switch & Save Status Build // 2 = Reset Status // 4 = Reset Skills // 7 = All of Above [ 1+2+4 = 7 ] set .BMMode,7; // How Many Slots available to Save Status Builds. set .MaxSlots,2; // Enable Stats Slot Rename set .StatRename,1; setarray .BMCosts[1], 500000, // Switch Builds Cost 500000, // Save Build Cost 500000, // Reset Status Cost 500000; // Reset Skills Cost if( BaseLevel <= 70 ) { setarray .BMCosts[1], 50000, // Switch Builds Cost 50000, // Save Build Cost 50000, // Reset Status Cost 50000; // Reset Skills Cost } while(1){ mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,0); mes callfunc("getMes",$@resetnpc,1); mes " "; mes callfunc("getMes",$@resetnpc,4) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,5); next; switch( select( ( .BMMode & 1 )?"^0000FFSwitch Status^000000":"", ( .BMMode & 1 )?"^0000FFSave Status^000000":"", ( .BMMode & 2 )?"^0000FFReset Status^000000":"", ( .BMMode & 4 )?"^0000FFReset Skills^000000":"")){ case 1: if( Zeny < .BMCosts[ @menu ] ){ mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,2) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,3); close; break; } mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,15); if (select(callfunc("getMes",$@resetnpc,12)+":"+callfunc("getMes",$@resetnpc,13)) == 2) { next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,14); close; } next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,4) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,5); message strcharinfo(0), callfunc("getMes",$@resetnpc,8); mes "^FF0000Slot[X]^000000-[^0000FFSTR|AGI|VIT|INT|DEX|LUK^000000]"; mes "^0000FF_____________________________^000000"; for( set .@i,1; .@i <= .MaxSlots; set .@i,.@i + 1 ){ mes "^FF0000"+.@i+".^0000FF"+getd( "Slot_"+.@i+"$" )+"^000000 [^0000FF"+getd("STR_"+.@i)+"|"+getd("AGI_"+.@i)+"|"+getd("VIT_"+.@i)+"|"+getd("INT_"+.@i)+"|"+getd("DEX_"+.@i)+"|"+getd("LUK_"+.@i)+"^000000]"; } mes "^0000FF_____________________________^000000"; input .@a,0,.MaxSlots; if( .@a != 0 ){ callfunc("SwitchBuild",.@a); message strcharinfo(0),"Done"; set Zeny,Zeny - .BMCosts[ @menu ]; } close; break; case 2: if( Zeny < .BMCosts[ @menu ] ){ mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,2) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,3); close; break; } mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,16); if (select(callfunc("getMes",$@resetnpc,12)+":"+callfunc("getMes",$@resetnpc,13)) == 2) { next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,14); close; } next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,4) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,5); mes "^0000FF_____________________________^000000"; mes "^FF0000@^000000 STR - "+readparam(bStr)+" ^FF0000@^000000 AGI - "+readparam(bAgi)+" ^FF0000@^000000 VIT - "+readparam(bVit)+""; mes "^FF0000@^000000 INT - "+readparam(bInt)+" ^FF0000@^000000 DEX - "+readparam(bDex)+" ^FF0000@^000000 LUK - "+readparam(bLuk)+""; mes "^0000FF_____________________________^000000"; message strcharinfo(0), callfunc("getMes",$@resetnpc,8); mes "^FF0000Slot[X]^000000-[^0000FFSTR|AGI|VIT|INT|DEX|LUK^000000]"; mes "^0000FF_____________________________^000000"; for( set .@i,1; .@i <= .MaxSlots; set .@i,.@i + 1 ){ mes "^FF0000"+.@i+".^0000FF"+getd( "Slot_"+.@i+"$" )+"^000000 [^0000FF"+getd("STR_"+.@i)+"|"+getd("AGI_"+.@i)+"|"+getd("VIT_"+.@i)+"|"+getd("INT_"+.@i)+"|"+getd("DEX_"+.@i)+"|"+getd("LUK_"+.@i)+"^000000]"; } mes "^0000FF_____________________________^000000"; input .@a,0,.MaxSlots; if( .@a != 0 ){ callfunc("SaveBuild",.@a,.StatRename); set Zeny,Zeny - .BMCosts[ @menu ]; } close; break; case 3: if( Zeny < .BMCosts[ @menu ] ){ mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,2) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,3); close; break; } mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,11); if (select(callfunc("getMes",$@resetnpc,12)+":"+callfunc("getMes",$@resetnpc,13)) == 2) { next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,14); close; } next; mes callfunc("getMes",$@resetnpc,4) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,5); resetstatus; set Zeny,Zeny - .BMCosts[ @menu ]; mes callfunc("getMes",$@resetnpc,6); close; break; case 4: if( Zeny < .BMCosts[ @menu ] ){ mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,2) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,3); close; break; } mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,11); if (select(callfunc("getMes",$@resetnpc,12)+":"+callfunc("getMes",$@resetnpc,13)) == 2) { next; mes "[Sherin The Build Girl]"; mes callfunc("getMes",$@resetnpc,14); close; } next; mes callfunc("getMes",$@resetnpc,4) + ""+.BMCosts[ @menu ]+"" + callfunc("getMes",$@resetnpc,5); resetskill; set Zeny,Zeny - .BMCosts[ @menu ]; mes callfunc("getMes",$@resetnpc,7); close; break; } } OnInit: set $@resetnpc, callfunc("getNPCID","resetnpc"); // English Messages set .@lc$,"en"; callfunc "newMes", $@resetnpc, 0, "Welcome!",.@lc$; callfunc "newMes", $@resetnpc, 1, "what can i do for you?",.@lc$; callfunc "newMes", $@resetnpc, 2, "You need ^FF0000 ",.@lc$; callfunc "newMes", $@resetnpc, 3, " Zeny^000000 for this Service.",.@lc$; callfunc "newMes", $@resetnpc, 4, "^0000FFCost^000000 : ^FF0000 ",.@lc$; callfunc "newMes", $@resetnpc, 5, " ^000000 Zeny",.@lc$; callfunc "newMes", $@resetnpc, 6, "Status Points resettet.",.@lc$; callfunc "newMes", $@resetnpc, 7, "Skill points resettet.",.@lc$; callfunc "newMes", $@resetnpc, 8, "Input 0 to cancel",.@lc$; callfunc "newMes", $@resetnpc, 9, "Input the Name for this Slot. [ Max. 12 Chars ]",.@lc$; callfunc "newMes", $@resetnpc, 10, "^FF0000Reset Skills/Status/Build cost 500K Zeny^000000",.@lc$; callfunc "newMes", $@resetnpc, 11, "Do you want to resett?",.@lc$; callfunc "newMes", $@resetnpc, 12, "Yes",.@lc$; callfunc "newMes", $@resetnpc, 13, "No",.@lc$; callfunc "newMes", $@resetnpc, 14, "Farewell!",.@lc$; callfunc "newMes", $@resetnpc, 15, "Do you want to swich the Build?",.@lc$; callfunc "newMes", $@resetnpc, 16, "Do you want to save the Build?",.@lc$; // German Messages set .@lc$,"de"; callfunc "newMes", $@resetnpc, 0, "Willkommen",.@lc$; callfunc "newMes", $@resetnpc, 1, "was kann ich für dich tun?",.@lc$; callfunc "newMes", $@resetnpc, 2, "du brauchst ^FF0000 ",.@lc$; callfunc "newMes", $@resetnpc, 3, " Zeny^000000 für diesen Service",.@lc$; callfunc "newMes", $@resetnpc, 4, "^0000FFKosten^000000 : ^FF0000 ",.@lc$; callfunc "newMes", $@resetnpc, 5, " ^000000 Zeny",.@lc$; callfunc "newMes", $@resetnpc, 6, "Status Punkte zurückgesetzt",.@lc$; callfunc "newMes", $@resetnpc, 7, "Skill Punkte zurückgesetzt",.@lc$; callfunc "newMes", $@resetnpc, 8, "Gebe 0 ein um abzubrechen",.@lc$; callfunc "newMes", $@resetnpc, 9, "Gib den namen des Slots ein [ Max 12 Buchstaben]",.@lc$; callfunc "newMes", $@resetnpc, 10, "^FF0000Zurücksetzten der Skills/Status Punkte/ Builds kostet 500K Zeny^000000!",.@lc$; callfunc "newMes", $@resetnpc, 11, "Möchtest du Resetten?",.@lc$; callfunc "newMes", $@resetnpc, 12, "Ja",.@lc$; callfunc "newMes", $@resetnpc, 13, "Nein",.@lc$; callfunc "newMes", $@resetnpc, 14, "Bis bald",.@lc$; callfunc "newMes", $@resetnpc, 15, "Möchtest du den Build Wechseln?",.@lc$; callfunc "newMes", $@resetnpc, 16, "Möchtest du den Build Speichern?",.@lc$; end; } function script SaveBuild { setd "STR_"+getarg(0),readparam(bStr); setd "AGI_"+getarg(0),readparam(bAgi); setd "VIT_"+getarg(0),readparam(bVit); setd "INT_"+getarg(0),readparam(bInt); setd "DEX_"+getarg(0),readparam(bDex); setd "LUK_"+getarg(0),readparam(bLuk); if( getarg(1) ){ do{ message strcharinfo(0), callfunc("getMes",$@resetnpc,9); input getd( "Slot_"+getarg(0)+"$" ); }while( getstrlen( getd( "Slot_"+getarg(0)+"$" ) ) > 12 ); }else{ set getd( "Slot_"+getarg(0)+"$" ),"Stats "+getarg(0); } return; } function script SwitchBuild { resetstatus; statusup2 bStr,getd( "STR_"+getarg(0) )-1; statusup2 bAgi,getd( "AGI_"+getarg(0) )-1; statusup2 bVit,getd( "VIT_"+getarg(0) )-1; statusup2 bInt,getd( "INT_"+getarg(0) )-1; statusup2 bDex,getd( "DEX_"+getarg(0) )-1; statusup2 bLuk,getd( "LUK_"+getarg(0) )-1; set StatusPoint,0; return; }