From 371d056df80b6f83484534f64883c3d020c4112d Mon Sep 17 00:00:00 2001 From: Emistry Haoyan Date: Sun, 16 Jun 2019 18:44:45 +0800 Subject: Sanitize handling of the input() values. - avoid potential hacks for old scripts that use `input()` script commands. Signed-off-by: Haru --- npc/pre-re/jobs/1-1/mage.txt | 91 +++++++++++++++++++-------------------- npc/pre-re/jobs/1-1/merchant.txt | 9 ++-- npc/pre-re/jobs/novice/novice.txt | 4 +- 3 files changed, 52 insertions(+), 52 deletions(-) (limited to 'npc/pre-re/jobs') diff --git a/npc/pre-re/jobs/1-1/mage.txt b/npc/pre-re/jobs/1-1/mage.txt index 47ae792fe..684c7335e 100644 --- a/npc/pre-re/jobs/1-1/mage.txt +++ b/npc/pre-re/jobs/1-1/mage.txt @@ -437,50 +437,50 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{ switch(select("Jellopy.", "Fluff.", "Milk.", "Ready to Mix.")) { case 1: while(1) { - input .@input; + input(.@input, 0); if (.@input > 10000) { next; mes "[Mixing Machine]"; mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; next; + continue; } - else { - if (countitem(Jellopy) > 0) .@mixitem1_1 += .@input; - .@progress = 2; - break; - } + if (countitem(Jellopy) > 0) + .@mixitem1_1 += .@input; + .@progress = 2; + break; } break; case 2: while(1) { - input .@input; + input(.@input, 0); if (.@input > 10000) { next; mes "[Mixing Machine]"; mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; next; + continue; } - else { - if (countitem(Fluff) > 0) .@mixitem1_2 += .@input; - .@progress = 2; - break; - } + if (countitem(Fluff) > 0) + .@mixitem1_2 += .@input; + .@progress = 2; + break; } break; case 3: while(1) { - input .@input; + input(.@input, 0); if (.@input > 10000) { next; mes "[Mixing Machine]"; mes "Error: Item limit exceeded. Please enter values less than 10,000 try again."; next; + continue; } - else { - if (countitem(Milk) > 0) .@mixitem1_3 += .@input; - .@progress = 2; - break; - } + if (countitem(Milk) > 0) + .@mixitem1_3 += .@input; + .@progress = 2; + break; } break; @@ -499,40 +499,39 @@ geffen_in,164,112,4 script Mixing Machine HIDDEN_NPC,{ mes "the Magic Powder."; next; while(1) { - input .@input; - if (.@input < 1000 || .@input > 9999) { + input(.@input); + if (.@input == 0) { mes "[Mixing Machine]"; - if (.@input == 0) { - mes "Do you want to skip this Menu?"; - next; - if (select("Yes.", "No.") == 1) { - break; - } - } - else { - mes "Invalid Serial Number."; - mes "Please try again."; - next; + mes "Do you want to skip this Menu?"; + next; + if (select("Yes.", "No.") == 1) { + break; } + continue; } - else { + if (.@input < 1000 || .@input > 9999) { mes "[Mixing Machine]"; - mes "The Serial Number is #" + .@input + ", correct?"; + mes "Invalid Serial Number."; + mes "Please try again."; next; - if (select("Confirm.", "Cancel.") == 1) { - if (.@input == 8472) - .@magic_powder = 1; - else if (.@input == 3735) - .@magic_powder = 2; - else if (.@input == 2750) - .@magic_powder = 3; - else if (.@input == 5429) - .@magic_powder = 4; - else - .@magic_powder = 5; - } - break; + continue; } + mes "[Mixing Machine]"; + mes "The Serial Number is #" + .@input + ", correct?"; + next; + if (select("Confirm.", "Cancel.") == 1) { + if (.@input == 8472) + .@magic_powder = 1; + else if (.@input == 3735) + .@magic_powder = 2; + else if (.@input == 2750) + .@magic_powder = 3; + else if (.@input == 5429) + .@magic_powder = 4; + else + .@magic_powder = 5; + } + break; } mes "[Mixing Machine]"; mes "Choose a"; diff --git a/npc/pre-re/jobs/1-1/merchant.txt b/npc/pre-re/jobs/1-1/merchant.txt index 2d1cd9ba3..b6ce65b3d 100644 --- a/npc/pre-re/jobs/1-1/merchant.txt +++ b/npc/pre-re/jobs/1-1/merchant.txt @@ -705,7 +705,7 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{ next; while(1) { while(1) { - input .@input; + input(.@input); if (.@input == 0) { mes "[Union Staff Kay]"; mes "Are you sure that you wanna cancel?"; @@ -714,14 +714,15 @@ alberta_in,28,29,2 script Merchant Guildsman#mer 4_M_01,{ close; } next; + continue; } - else if (.@input < 1000000 || .@input > 5000000) { + if (.@input < 1000000 || .@input > 5000000) { mes "[Union Staff Kay]"; mes "Hey hey. That number's not valid! Enter a value from 1000000 to 5000000. got it?"; next; - } else { - break; + continue; } + break; } mes "[Union Staff Kay]"; if (.@where_village == 1) diff --git a/npc/pre-re/jobs/novice/novice.txt b/npc/pre-re/jobs/novice/novice.txt index 356eaae7d..bbae29988 100644 --- a/npc/pre-re/jobs/novice/novice.txt +++ b/npc/pre-re/jobs/novice/novice.txt @@ -82,8 +82,8 @@ new_1-2,100,29,4 script Receptionist#nv1 4_M_04,{ mes "Hello, you look to be new here."; mes "What is your name?"; next; - input .@charname$; - if (.@charname$!=strcharinfo(PC_NAME)) { + input(.@charname$); + if (.@charname$ != strcharinfo(PC_NAME)) { mes "[Training Grounds Receptionist]"; mes "Sorry, but I don't think I heard"; mes "you correctly"; -- cgit v1.2.3-60-g2f50