summaryrefslogtreecommitdiff
path: root/npc/custom
diff options
context:
space:
mode:
authorLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-19 05:12:30 +0000
committerLance <Lance@54d463be-8e91-2dee-dedb-b68131a5f0ec>2006-11-19 05:12:30 +0000
commit6de5cb578078dfafbf1da489712304f43144bd7d (patch)
tree0b311cd7242f2317fd771de21a52e066c449fc8c /npc/custom
parentc116ea51790a6d42280cf599192614dc373cf91d (diff)
downloadhercules-6de5cb578078dfafbf1da489712304f43144bd7d.tar.gz
hercules-6de5cb578078dfafbf1da489712304f43144bd7d.tar.bz2
hercules-6de5cb578078dfafbf1da489712304f43144bd7d.tar.xz
hercules-6de5cb578078dfafbf1da489712304f43144bd7d.zip
Applied security patches. PLEASE CHECK THEM ALL.
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9260 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'npc/custom')
-rw-r--r--npc/custom/eAAC_Scripts/disguiser.txt3
-rw-r--r--npc/custom/eAAC_Scripts/quest_warper.txt14
-rw-r--r--npc/custom/jobs/jobmaster.txt11
3 files changed, 23 insertions, 5 deletions
diff --git a/npc/custom/eAAC_Scripts/disguiser.txt b/npc/custom/eAAC_Scripts/disguiser.txt
index 218de0196..ce5978d95 100644
--- a/npc/custom/eAAC_Scripts/disguiser.txt
+++ b/npc/custom/eAAC_Scripts/disguiser.txt
@@ -164,6 +164,9 @@ function script PXC_DoMenu {
//Fire our menu
set @menu, select($@menu$);
+ if(@menu > getarg(1) || @menu < 1)
+ end;
+
//Zero deliminated (off-by-one errors sux0r!!!)
set @menu, @menu-1;
diff --git a/npc/custom/eAAC_Scripts/quest_warper.txt b/npc/custom/eAAC_Scripts/quest_warper.txt
index 24b61f0de..47f6c94c0 100644
--- a/npc/custom/eAAC_Scripts/quest_warper.txt
+++ b/npc/custom/eAAC_Scripts/quest_warper.txt
@@ -449,6 +449,8 @@ L_town:
set @TWMenu,select(@Tmenulist$[0],@Tmenulist$[1],@Tmenulist$[2],@Tmenulist$[3],@Tmenulist$[4],@Tmenulist$[5],@Tmenulist$[6],@Tmenulist$[7],@Tmenulist$[8],@Tmenulist$[9],@Tmenulist$[10],@Tmenulist$[11],@Tmenulist$[12],@Tmenulist$[13],@Tmenulist$[14],@Tmenulist$[15],@Tmenulist$[16],@Tmenulist$[17],@Tmenulist$[18],@Tmenulist$[19],@Tmenulist$[20],@Tmenulist$[21],@Tmenulist$[22],@Tmenulist$[23],@Tmenulist$[24]);
+ if(@TWMenu > 25 || @TWMenu < 1) end;
+
if (@Tmenuref[@TWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
if(Zeny<@pTprice[@Tmenuref[@TWMenu-1]]) callsub L_Short_on_zeny,0;
@@ -469,6 +471,8 @@ L_dungeon:
set @DWMenu,select(@Dmenulist$[0],@Dmenulist$[1],@Dmenulist$[2],@Dmenulist$[3],@Dmenulist$[4],@Dmenulist$[5],@Dmenulist$[6],@Dmenulist$[7],@Dmenulist$[8],@Dmenulist$[9],@Dmenulist$[10],@Dmenulist$[11],@Dmenulist$[12],@Dmenulist$[13],@Dmenulist$[14],@Dmenulist$[15],@Dmenulist$[16],@Dmenulist$[17],@Dmenulist$[18],@Dmenulist$[19],@Dmenulist$[20],@Dmenulist$[21],@Dmenulist$[22],@Dmenulist$[23],@Dmenulist$[24],@Dmenulist$[25],@Dmenulist$[26],@Dmenulist$[27],@Dmenulist$[28],@Dmenulist$[29],@Dmenulist$[30],@Dmenulist$[31],@Dmenulist$[32],@Dmenulist$[33],@Dmenulist$[34]);
+ if(@TWMenu > 35 || @TWMenu < 1) end;
+
if (@Dmenuref[@DWMenu-1] == 57005) goto L_end; // 57005='dead' in hex
set @DwarpMenu, (@Dmenuref[@DWMenu-1]);
callfunc "QWS_DLarray";
@@ -480,6 +484,8 @@ L_dungeon:
// Expected maximum is set to 18 items, if you have dungeons with more levels add more ",@DWLmenulist$[xx]"
set @DWLMenu,select(@DWLmenulist$[0], @DWLmenulist$[1], @DWLmenulist$[2], @DWLmenulist$[3], @DWLmenulist$[4], @DWLmenulist$[5], @DWLmenulist$[6], @DWLmenulist$[7], @DWLmenulist$[8], @DWLmenulist$[9], @DWLmenulist$[10], @DWLmenulist$[11], @DWLmenulist$[12], @DWLmenulist$[13], @DWLmenulist$[14], @DWLmenulist$[15], @DWLmenulist$[16], @DWLmenulist$[17]);
+ if(@TWMenu > 18 || @TWMenu < 1) end;
+
if (@DWLmenuref[@DWLMenu-1] == 57005) goto L_end; // 57005='dead' in hex
set @Darrayref, @DWLmenuref[@DWLMenu-1];
@@ -526,7 +532,7 @@ PHeal:
if(getarg(1) == 1) mes ""+@SpPrice+" Zeny for "+@Sp+" skill points";
set @total, @HpPrice+@SpPrice;
mes "for a total of "+@total+" zeny";
- if (select("Heal me","Let me see the choices again")==2) goto L_heal_Part;
+ if (select("Heal me","Let me see the choices again")!=1) goto L_heal_Part;
if(getarg(0) == 1)set @HpPrice, (MaxHp-Hp)*$QW_HP_H_PRICE;
if(getarg(1) == 1)set @SpPrice, (MaxSp-Sp)*$QW_HP_S_PRICE;
@@ -545,13 +551,13 @@ Zeny_Short_Both:
mes "[Warpra]";
mes "choose another option, you can afford both.";
mes "I can heal as much as you can afford too.";
- if (select("OK","Exit") == 2) goto L_end;
+ if (select("OK","Exit") != 1) goto L_end;
goto PHeal;
Zeny_short_HP:
mes "[Warpra]";
mes "do you want me to partly heal your HP ?";
- if (select("Yes","No") == 2) goto L_end;
+ if (select("Yes","No") != 1) goto L_end;
set @Hp, Zeny/$QW_HP_H_PRICE;
set @HpPrice, @Hp*$QW_HP_H_PRICE;
if (@Hp == 1) mes "your not worth the effort";
@@ -564,7 +570,7 @@ Zeny_short_HP:
Zeny_short_SP:
mes "[Warpra]";
mes "do you want me to partly heal your SP ?";
- if (select("Yes","No") == 2) goto L_end;
+ if (select("Yes","No") != 1) goto L_end;
set @Sp, Zeny/$QW_HP_S_PRICE;
set @SpPrice, @Sp*$QW_HP_S_PRICE;
if (@Sp == 1) mes "your not worth the effort";
diff --git a/npc/custom/jobs/jobmaster.txt b/npc/custom/jobs/jobmaster.txt
index c929d4894..e4c72d3f5 100644
--- a/npc/custom/jobs/jobmaster.txt
+++ b/npc/custom/jobs/jobmaster.txt
@@ -78,10 +78,17 @@ prontera.gat,153,193,6 script Job Master 123,{
if(Class == Job_Novice_High) goto L_noReq;
set @target_job, @menu + 15;
break;
- default:
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ case 5:
+ case 6:
set @target_job, @menu;
if(Class == Job_Novice_High) set @target_job, @target_job + 4001;
break;
+ default:
+ end;
}
}
mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";
@@ -149,6 +156,8 @@ prontera.gat,153,193,6 script Job Master 123,{
}
mes "Welcome, please select the job you wish to change into";
set @target_job, @job_opt[select(callfunc("getJobName",@job_opt[0]), callfunc("getJobName",@job_opt[1]))-1];
+ if(@menu < 1 || @menu > 2)
+ end;
if(Class > Job_Novice_High && Class < Job_Lord_Knight) set @target_job, @target_job + 4001;
}
mes "Are you sure you want to change to " + callfunc("getJobName",@target_job) + "?";