//===== 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;
}