//===== rAthena Script ======================================= //= Build Manager + //===== By: ================================================== //= Euphy //===== Current Version: ===================================== //= 1.8 //===== Description: ========================================= //= Stores stat builds into a single character variable. //============================================================ prontera,152,192,6 script Build Manager 930,{ function Get_Menu; function Save_Build; function Load_Build; set .@BuildCount,4; // Number of builds to use set .@Save,5000; // Zeny required to save a build set .@Load,10000; // Zeny required to load a build set .@Rename,1000; // Zeny required to rename a build set .@MaxLevel,99; // Maximum base level (to prevent stat overflow) if (BaseLevel < .@MaxLevel) { message strcharinfo(0),"You must be level "+.@MaxLevel+" to use this."; end; } switch(select("Save Build...:Load Build...:Rename Build...:Close")) { case 1: if (.@Save) message strcharinfo(0),"It costs "+.@Save+" Zeny to save a build."; set .@Build, Get_Menu(.@BuildCount); if (Zeny<.@Save) { message strcharinfo(0),"Not enough Zeny."; close; } if (getd("Build_"+.@Build+"$")!="") { message strcharinfo(0),"Overwrite previous build #"+.@Build+"?"; if(select("Save new build:Cancel")==2) close; } Save_Build(.@Build); message strcharinfo(0),"Type a name for your build."; input getd("Build_"+.@Build+"n$"); message strcharinfo(0),"Build #"+.@Build+" ("+getd("Build_"+.@Build+"n$")+") saved."; set Zeny, Zeny-.@Save; close; case 2: if (.@Load) message strcharinfo(0),"It costs "+.@Load+" Zeny to load a build."; set .@Build, Get_Menu(.@BuildCount); if (getd("Build_"+.@Build+"$")=="") { message strcharinfo(0),"No build info found."; close; } if (Zeny<.@Load) { message strcharinfo(0),"Not enough Zeny."; close; } Load_Build(getd("Build_"+.@Build+"$")); message strcharinfo(0),"Build #"+.@Build+" loaded."; set Zeny, Zeny-.@Load; close; case 3: if (.@Rename) message strcharinfo(0),"It costs "+.@Rename+" Zeny to rename a build."; set .@Build, Get_Menu(.@BuildCount); if (getd("Build_"+.@Build+"$")=="") { message strcharinfo(0),"No build info found."; close; } if (Zeny<.@Rename) { message strcharinfo(0),"Not enough Zeny."; close; } message strcharinfo(0),"Type a new name for Build #"+.@Build+" ("+getd("Build_"+.@Build+"n$")+")."; input getd("Build_"+.@Build+"n$"); message strcharinfo(0),"Build #"+.@Build+" renamed."; set Zeny, Zeny-.@Rename; close; case 4: close; } function Get_Menu { set .@menu$,""; for(set .@i,1; .@i<=getarg(0); set .@i,.@i+1) set .@menu$, .@menu$+"Slot "+.@i+" ("+((getd("Build_"+.@i+"n$")=="")?"^777777empty":"^0055FF"+getd("Build_"+.@i+"n$"))+"^000000):"; return select(.@menu$); } function Save_Build { set .@s$,""; for(set .@i,13; .@i<19; set .@i,.@i+1) set .@s$,.@s$+readparam(.@i)+"|"; setd "Build_"+getarg(0)+"$", .@s$+StatusPoint; return; } function Load_Build { ResetStatus; explode(.@s$,getarg(0),"|"); for(set .@i,0; .@i<6; set .@i,.@i+1) statusup2 (.@i+13), atoi(.@s$[.@i])-1; set StatusPoint, atoi(.@s$[6]); return; } }