//Build Manager //Version 2 //By Emistry prontera,155,171,5 script Build Manager 439,{ // 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,5; // Enable Stats Slot Rename set .StatRename,1; setarray .BMCosts[1], 1000000, // Switch Builds Cost 1000000, // Save Build Cost 1000000, // Reset Status Cost 1000000; // Reset Skills Cost while(1){ 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 "You required ^FF0000"+.BMCosts[ @menu ]+" Zeny^000000 to use this services."; next; break; } mes "^0000FFCost^000000 : ^FF0000"+.BMCosts[ @menu ]+"^000000 Zeny"; message strcharinfo(0),"Input 0 to Cancel"; 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 ]; } next; break; Case 2: if( Zeny < .BMCosts[ @menu ] ){ mes "You required ^FF0000"+.BMCosts[ @menu ]+" Zeny^000000 to use this services."; next; break; } mes "^0000FFCost^000000 : ^FF0000"+.BMCosts[ @menu ]+"^000000 Zeny"; 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),"Input 0 to Cancel"; 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 ]; } next; break; Case 3: if( Zeny < .BMCosts[ @menu ] ){ mes "You required ^FF0000"+.BMCosts[ @menu ]+" Zeny^000000 to use this services."; next; break; } mes "^0000FFCost^000000 : ^FF0000"+.BMCosts[ @menu ]+"^000000 Zeny"; ResetStatus; set Zeny,Zeny - .BMCosts[ @menu ]; mes "Your Status has been Reset. You have gained back your ^FF0000riginal Status Points^000000"; next; break; Case 4: if( Zeny < .BMCosts[ @menu ] ){ mes "You required ^FF0000"+.BMCosts[ @menu ]+" Zeny^000000 to use this services."; next; break; } mes "^0000FFCost^000000 : ^FF0000"+.BMCosts[ @menu ]+"^000000 Zeny"; ResetSkill; set Zeny,Zeny - .BMCosts[ @menu ]; mes "Your Skills has been Reset. You have gained back your ^FF0000riginal Skill Points^000000"; next; break; } } } 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),"Input the Name for this Slot. [ Max. 12 Chars ]"; 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; }