Jump to content
  • 0

Exploitable build manager, help please.


Question

Posted

Hello rathena!

 

is someone so kind to help me? I am using emistry's build manager but the problem is that as soon as i save a build with a level 99 non-trans character, reborn and restore my build I will have 2x 99 stats as a novice high!! and on top of that comes the extra 2x 99 stats that i am able to get as a reborn 99/70 class, which results in me being able to get almost 4x 99stats!

 

I really need assistance please! :(

 

can someone help me only make the build save option only available for level 99/70/50 trans characters and max level extended classes? thank you so much! I really appreciate it!

 

header
function ManageBuild;
mes "[Stat & Skill Manager]";
mes "Good day, what can I do for you?";
next;
if ( Weight > 25000 ){
mes "[Stat & Skill Manager]";
mes "Oh, I can't help you! I can only help you if your weight is below 2000. Please store some items first!";
close;
}
if (checkfalcon() || checkcart() || checkriding()){
mes "[Stat & Skill Manager]";
mes "Oh, I can't help you. Please remove your Falcon, Cart or Peco first.";
close;
}
switch( select( ( .BMMode & 1 )?"^FF0000Create or switch builds^000000":"",
( .BMMode & 2 )?"^0000FFReset Stat^000000":"", 
( .BMMode & 4 )?"^0000FFReset Skills^000000":"")){
Case 1:
for( set .@i,1; .@i <= .MaxSlots; set .@i,.@i + 1 )
set .@Menu$,.@Menu$ + (( getd( "Slot_"+.@i+"$" ) == "" )?"^FF0000Empty Slot^000000":getd( "Slot_"+.@i+"$" ) )+":";
set .@Slot,select( .@Menu$ );
do{
next;
mes "Build : ^FF0000"+(( getd( "Slot_"+.@Slot+"$" ) == "" )?"Slot "+.@Slot:getd( "Slot_"+.@Slot+"$" ) )+"^000000";
mes "STR - ^0000FF"+getd( "STR_"+.@Slot )+"^000000      INT - ^0000FF"+getd( "INT_"+.@Slot )+"^000000";
mes "AGI - ^0000FF"+getd( "AGI_"+.@Slot )+"^000000      DEX - ^0000FF"+getd( "DEX_"+.@Slot )+"^000000";
mes "VIT - ^0000FF"+getd( "VIT_"+.@Slot )+"^000000      LUK - ^0000FF"+getd( "LUK_"+.@Slot )+"^000000";
mes " ";
mes "Remaining Points : ^0000FF"+getd( "STATS_"+.@Slot )+"^000000";
set .@Option,select(( getd( "Slot_"+.@Slot+"$" ) == "" )?"":"^0000FFSwitch",
( getd( "Slot_"+.@Slot+"$" ) == "" )?"Save":"",
( getd( "Slot_"+.@Slot+"$" ) == "" )?"":"^FF0000Clear" );
ManageBuild( .@Slot,.@Option);
}while( .@Option != 1 );
break;
Case 2:
ResetStatus;
mes "[Stat & Skill Manager]";
mes "Your Stats have been reset.";
break;
Case 3:
ResetSkill;
mes "[Stat & Skill Manager]";
mes "Your Skills have been reset.";
break;
}
close;
 
function ManageBuild {
switch( getarg(1) ){
Case 1: // Switch Build
message strcharinfo(0),"Build has been switched!";
ResetStatus;
set StatusPoint,getd( "STATS_"+getarg(0) );
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;
break;
Case 2: // Save Build
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);
setd( "STATS_"+getarg(0) ),StatusPoint;
if( .Length[0] < .Length[1] && .Length[0] ){
mes "Input a ^FF0000Name^000000 for this Slot.";
mes "Name Length : "+.Length[0]+" ~ "+.Length[1]+" Chars";
do{
input getd( "Slot_"+getarg(0)+"$" );
}while( getstrlen( getd( "Slot_"+getarg(0)+"$" ) ) < .Length[0] || getstrlen( getd( "Slot_"+getarg(0)+"$" ) ) > .Length[1] );
}else{
setd( "Slot_"+getarg(0)+"$" ),"Build "+getarg(0);
}
message strcharinfo(0),"Build has been saved!";
break;
Case 3: // Remove Build
message strcharinfo(0),"Build has been cleared!";
setd( "STR_"+getarg(0) ),0;
setd( "AGI_"+getarg(0) ),0;
setd( "VIT_"+getarg(0) ),0;
setd( "INT_"+getarg(0) ),0;
setd( "DEX_"+getarg(0) ),0;
setd( "LUK_"+getarg(0) ),0;
setd( "STATS_"+getarg(0) ),0;
setd( "Slot_"+getarg(0)+"$" ),"";
break;
}
return;
} 
 
OnInit:
// Mode of NPC
// 1 = Save & Switch 
// 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,4;
// Enable Stats Slot Rename + Max Name Length ( 0 = Disable )
setarray .Length,3,26; // Min. ~ Max. Words.
end;
 
}
}
}

6 answers to this question

Recommended Posts

Posted (edited)
// header
if( BaseLevel < 99 ){
    mes "Only level 99 char can use.";
    close;
}

 

Hi sir Emistry. That also restricts them from resetting stats/skills... what i want is only the actual build saving/switching option to be available for 99/70 trans and extended classes.

 

i tried to put it after "case 1:" but it did not work.

Edited by HristDead
Posted
// header
if( BaseLevel < 99 ){
    mes "Only level 99 char can use.";
    close;
}

 

Thanks Emistry, works! How to make it only usable by trans and exented classes?

i tried this but it doesnt work. it blocks even trans classes. :(

 

    if( BaseLevel < 99 || EAJL_2 || EAJL_1 ){

mes "Only level 99 trans and exented char can use.";

close;

}

Posted (edited)
if( !( eaclass() & EAJL_UPPER ) ){
    mes "only trancendent class can use";
    close;
}

you can refer here

https://github.com/rathena/rathena/blob/master/doc/ea_job_system.txt

 

 

Thanks emistry that worked great! :)

I have two more questions if thats ok. How to also add extended classes to that check?? I only want it to work for trans classes and extended classes but I cant find the code in the link you give. Tried this but doesnt work:

 

    if( BaseLevel < 99 && !( eaclass() & EAJL_UPPER & EAJ_NINJA & EAJ_GUNSLINGER & EAJ_TAEKWON ) ){

 

the other question is can i reset previous made builds? a lot of players have the bugged build saved with 4x 99 stats. :(

 

Thanks so much. ^__~

Edited by HristDead

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...