summaryrefslogtreecommitdiff
path: root/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
diff options
context:
space:
mode:
Diffstat (limited to 'npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt')
-rw-r--r--npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt43
1 files changed, 26 insertions, 17 deletions
diff --git a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
index ee2d7b79f..3a5add8fd 100644
--- a/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
+++ b/npc/custom/eAAC_Scripts/kafraExpress/ke_jobswap.txt
@@ -3,9 +3,9 @@
//===== By: ==================================================
//= Skotlex
//===== Current Version: =====================================
-//= 3.1
+//= 3.4
//===== Compatible With: =====================================
-//= eAthena SVN R3424+
+//= eAthena SVN R7896+
//===== Description: =========================================
//= Part of the Kafra Express Script Package.
//= Enables job changing among classes of the same 'type'
@@ -183,55 +183,55 @@ function SF_switch {
switch (@kmenu)
{
case 2: //ALCHEMIST
- if (SF_swapJob(callfunc("GF_getJobId", Job_Alchem, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Alchem, Upper),@cost,@preserve))
return 0;
break;
case 3: //ASSASSIN
- if (SF_swapJob(callfunc("GF_getJobId", Job_Assassin, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Assassin, Upper),@cost,@preserve))
return 0;
break;
case 4: //BARD
- if (SF_swapJob(callfunc("GF_getJobId", Job_Bard, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Bard, Upper),@cost,@preserve))
return 0;
break;
case 5: //BLACKSMITH
- if (SF_swapJob(callfunc("GF_getJobId", Job_Blacksmith, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Blacksmith, Upper),@cost,@preserve))
return 0;
break;
case 6: //CRUSADER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Crusader, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Crusader, Upper),@cost,@preserve))
return 0;
break;
case 7: //DANCER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Dancer, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Dancer, Upper),@cost,@preserve))
return 0;
break;
case 8: //HUNTER
- if (SF_swapJob(callfunc("GF_getJobId", Job_Hunter, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Hunter, Upper),@cost,@preserve))
return 0;
break;
case 9: //KNIGHT
- if (SF_swapJob(callfunc("GF_getJobId", Job_Knight, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Knight, Upper),@cost,@preserve))
return 0;
break;
case 10: //MONK
- if (SF_swapJob(callfunc("GF_getJobId", Job_Monk, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Monk, Upper),@cost,@preserve))
return 0;
break;
case 11: //PRIEST
- if (SF_swapJob(callfunc("GF_getJobId", Job_Priest, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Priest, Upper),@cost,@preserve))
return 0;
break;
case 12: //ROGUE
- if (SF_swapJob(callfunc("GF_getJobId", Job_Rogue, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Rogue, Upper),@cost,@preserve))
return 0;
break;
case 13: //SAGE
- if (SF_swapJob(callfunc("GF_getJobId", Job_Sage, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Sage, Upper),@cost,@preserve))
return 0;
break;
case 14: //WIZARD
- if (SF_swapJob(callfunc("GF_getJobId", Job_Wizard, Upper),@cost,@preserve) == 0)
+ if (SF_swapJob(callfunc("GF_getJobId", Job_Wizard, Upper),@cost,@preserve))
return 0;
break;
}
@@ -296,8 +296,16 @@ function SF_swapJob {
}
set @basic, getSkilllv(1);
+ set @preserve, skillpointcount() -JobLevel -@basic +@newjoblv; //Preserve holds the final amount of SkillPoints you should have.
+
+ if (@preserve < 0) {
+ callfunc "F_keIntro", e_gasp, "You need "+(-@preserve)+" more skill points to change class!";
+ return 0;
+ }
+
set @thisJoblevel, JobLevel;
resetSkill;
+
//Set previous job as needed.
if ($@kejs_revertPolicy) {
set kej_prev_job, Class;
@@ -311,10 +319,10 @@ function SF_swapJob {
setlook 7,0;
jobchange @newjobId, 0;
skill 1,@basic,0;
- set SkillPoint, SkillPoint-@thisJoblevel+1-@basic;
-
set JobLevel, @newjoblv;
+ set SkillPoint, @preserve;
setoption(0);
+ sc_end -1;
callfunc "F_keCharge",getarg(2),$@kejs_swapDiscount,1;
emotion e_ok;
@@ -366,6 +374,7 @@ function SF_revertJob {
set kej_prev_joblv, @thisJobLv;
set kej_prev_skills, @skill;
setoption(0);
+ sc_end -1;
if ($@kejs_announce)
announce strcharinfo(0)+" has changed from "+callfunc ("GF_getJobName",@thisJobId)+" to "+@newjob$+"...",16;