
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@12819 54d463be-8e91-2dee-dedb-b68131a5f0ec
131 lines
3.0 KiB
Plaintext
131 lines
3.0 KiB
Plaintext
//===== eAthena Script =======================================
|
|
//= Kafra Express - Stat/Reset Module
|
|
//===== By: ==================================================
|
|
//= Skotlex
|
|
//===== Current Version: =====================================
|
|
//= 2.2
|
|
//===== Compatible With: =====================================
|
|
//= eAthena SVN R3424+
|
|
//===== Description: =========================================
|
|
//= Part of the Kafra Express Script Package.
|
|
//= Offers stat raising and Stat/Reset skills
|
|
//===== Additional Comments: =================================
|
|
//= See config.txt for configuration.
|
|
//============================================================
|
|
|
|
- script keInit_stats -1,{
|
|
OnInit: //Load Config
|
|
donpcevent "keConfig::OnLoadStats";
|
|
end;
|
|
}
|
|
|
|
function script F_keStats {
|
|
|
|
function SF_statRaise;
|
|
|
|
set @discount,callfunc("F_keCost",100,$@kest_discount);
|
|
do {
|
|
set @kmenu, select(
|
|
"- Return",
|
|
"- Raise Stats",
|
|
"- Reset Stats ("+$@kest_stResetCost+"z+"+$@kest_BaseLvCost+"/blv)",
|
|
"- Reset Skills ("+$@kest_skResetCost+"z+"+$@kest_JobLvCost+"/jlv)",
|
|
"- Reset Both ("+$@kest_resetCost+"z+"+$@kest_BothLvCost+"/lv)"
|
|
);
|
|
switch (@kmenu) {
|
|
case 2: //Stat raising
|
|
SF_statRaise();
|
|
set @cost, 0;
|
|
set @reset, 0;
|
|
break;
|
|
case 3: //Reset Stat
|
|
set @cost, $@kest_stResetCost+BaseLevel*$@kest_BaseLvCost;
|
|
set @reset, 1;
|
|
break;
|
|
case 4: //Reset Skills
|
|
set @cost, $@kest_skResetCost+(JobLevel+jobchange_level)*$@kest_JobLvCost;
|
|
set @reset, 2;
|
|
break;
|
|
case 5: //Reset Both
|
|
set @cost, $@kest_resetCost+(BaseLevel+JobLevel+jobchange_level)*$@kest_BothLvCost;
|
|
set @reset, 3;
|
|
break;
|
|
default: //Cancel
|
|
set @cost, 0;
|
|
set @reset, 0;
|
|
break;
|
|
}
|
|
if (@reset > 0) {
|
|
if (select("- Cancel","- Reset for "+(@cost*@discount/100)+"z") == 2) {
|
|
if (!(callfunc("F_keCharge",@cost,$@kest_discount,1))) {
|
|
callfunc "F_keIntro", e_an, "Sorry, you don't have enough Zeny.";
|
|
} else {
|
|
if (@reset&1)
|
|
ResetStatus;
|
|
if (@reset&2) {
|
|
if ($@kest_resetBasic)
|
|
ResetSkill;
|
|
else {
|
|
set @skill1,getskilllv("NV_BASIC");
|
|
ResetSkill;
|
|
skill 1,@skill1,0;
|
|
set SkillPoint,SkillPoint-@skill1;
|
|
}
|
|
}
|
|
emotion e_hmm;
|
|
}
|
|
}
|
|
}
|
|
} while (@kmenu > 1);
|
|
return;
|
|
|
|
function SF_statRaise {
|
|
do {
|
|
set @submenu, select(
|
|
"- Return",
|
|
"- Raise Strength",
|
|
"- Raise Agility",
|
|
"- Raise Vitality",
|
|
"- Raise Intelligence",
|
|
"- Raise Dexterity",
|
|
"- Raise Luck"
|
|
);
|
|
switch (@submenu) {
|
|
case 2:
|
|
set @stat,bStr;
|
|
break;
|
|
case 3:
|
|
set @stat,bAgi;
|
|
break;
|
|
case 4:
|
|
set @stat,bVit;
|
|
break;
|
|
case 5:
|
|
set @stat,bInt;
|
|
break;
|
|
case 6:
|
|
set @stat,bDex;
|
|
break;
|
|
case 7:
|
|
set @stat,bLuk;
|
|
break;
|
|
default:
|
|
return;
|
|
}
|
|
input @qty;
|
|
if (@qty <1) {
|
|
callfunc "F_keIntro", e_swt, "I don't lower stats, try resetting them.";
|
|
} else if (@qty >100) {
|
|
callfunc "F_keIntro", e_swt2, "Sorry... I can only raise stats up to 100 at a time.";
|
|
} else {
|
|
do {
|
|
statusup @stat;
|
|
set @qty,@qty-1;
|
|
} while (@qty > 0);
|
|
emotion e_ok;
|
|
}
|
|
} while (@submenu > 1);
|
|
}
|
|
|
|
}
|