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/re/merchants/3rd_trader.txt | 16 ++++++++-------- npc/re/merchants/alchemist.txt | 6 +++--- npc/re/merchants/catalog.txt | 12 +++++++----- npc/re/merchants/diamond.txt | 14 ++++++-------- npc/re/merchants/refine.txt | 2 +- 5 files changed, 25 insertions(+), 25 deletions(-) (limited to 'npc/re/merchants') diff --git a/npc/re/merchants/3rd_trader.txt b/npc/re/merchants/3rd_trader.txt index dcf66a19f..ecfe34fba 100644 --- a/npc/re/merchants/3rd_trader.txt +++ b/npc/re/merchants/3rd_trader.txt @@ -72,8 +72,8 @@ mes "You can only buy a maximum of '"+.@max+"' ea."; mes "Enter '0' if you want to cancel."; next; - input .@amount; - if (.@amount == 0) { + input(.@amount); + if (.@amount <= 0) { mes "[Poison Herb Merchant]"; mes "You've cancelled the trade."; close; @@ -133,8 +133,8 @@ lhz_in02,16,205,4 duplicate(phs) Poison Herb Merchant#lhz 4_F_YUNYANG mes "and remember, you can only"; mes "buy a maximum of '2000' ea."; next; - input .@amount; - if (.@amount == 0) { + input(.@amount); + if (.@amount <= 0) { mes "[Rune Merchant]"; mes "You're not buying? Please leave!"; close; @@ -199,8 +199,8 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{ mes "You can only buy a maximum of '2000' ea."; mes "Enter '0' if you want to cancel."; next; - input .@amount; - if (.@amount == 0) { + input(.@amount); + if (.@amount <= 0) { mes "[Rare Poison Herb Collector]"; mes "You've cancelled the trade."; close; @@ -254,9 +254,9 @@ job3_guil01,91,93,3 script Rare Herb Collector 1_M_03,{ mes "How many do you want?"; mes "If you want to cancel, enter 0."; next; - input .@amount; + input(.@amount); mes "[Point Merchant]"; - if (.@amount == 0) { + if (.@amount <= 0) { mes "You've cancelled the trade."; close; } diff --git a/npc/re/merchants/alchemist.txt b/npc/re/merchants/alchemist.txt index 73344a75c..fc38ef23a 100644 --- a/npc/re/merchants/alchemist.txt +++ b/npc/re/merchants/alchemist.txt @@ -98,13 +98,13 @@ alde_alche,31,186,3 script Craft Book Merchant#alde 4_M_ALCHE_D,{ mes "100,000 zeny."; mes "How many would you like to purchase?"; next; - input .@amount; - if (.@amount == 0) { + input(.@amount); + if (.@amount <= 0) { mes "[Craft Book Merchant]"; mes "Would you like to see some different books?"; close; } - if (.@amount < 1 || .@amount > 99 ){ + if (.@amount > 99 ){ mes "[Craft Book Merchant]"; mes "You cannot purchase more than 100 at a time."; close; diff --git a/npc/re/merchants/catalog.txt b/npc/re/merchants/catalog.txt index f508014a1..11f122ace 100644 --- a/npc/re/merchants/catalog.txt +++ b/npc/re/merchants/catalog.txt @@ -72,19 +72,21 @@ moc_para01,22,16,5 script Catalog Magician#catal01 4_M_BIBI,{ mes "Or how many do you need?"; next; while (1) { - input .@input; + input(.@input); mes "[Catalog Magician]"; - if (.@input == 0) { + if (.@input <= 0) { mes "The trade has been stopped!"; mes "I don't know what to do next..."; mes "What should I do?"; emotion e_swt2,1; close; - } else if (.@input < 1 || .@input > 50) { + } + if (.@input > 50) { mes "It should be less than 50 pieces."; next; - } else - break; + continue; + } + break; } .@sell = .@ticket_cost * .@input; mes "The total number of catalog(s) that you're trying to purchase is " + .@input + " pieces."; diff --git a/npc/re/merchants/diamond.txt b/npc/re/merchants/diamond.txt index 665af5e6a..762e2d145 100644 --- a/npc/re/merchants/diamond.txt +++ b/npc/re/merchants/diamond.txt @@ -128,7 +128,7 @@ mes .@npc$; mes "Alright then, please sign here."; next; - input .@charname$; + input(.@charname$); if (.@charname$ == strcharinfo(PC_NAME)) { mes .@npc$; mes "Okay, good."; @@ -202,7 +202,7 @@ mes "The trade cannot be completed without your signature."; close; } - input .@charname$; + input(.@charname$); if (.@charname$ == strcharinfo(PC_NAME)) { mes .@npc$; mes "Your signature has been received."; @@ -218,12 +218,10 @@ Zeny += 499000000; close; } - else { - mes .@npc$; - mes "Is this really your signature?"; - mes "Will sign again to confirm?"; - next; - } + mes .@npc$; + mes "Is this really your signature?"; + mes "Will sign again to confirm?"; + next; } } } diff --git a/npc/re/merchants/refine.txt b/npc/re/merchants/refine.txt index 879e9a5f1..c0ec2131f 100644 --- a/npc/re/merchants/refine.txt +++ b/npc/re/merchants/refine.txt @@ -258,7 +258,7 @@ function script refinenew { mes "[" + getarg(0) + "]"; mes "How many times would you like me to refine your item?"; next; - input .@refinecnt; + input(.@refinecnt); .@refinecheck = .@refinecnt + getequiprefinerycnt(.@part); if (.@refinecnt < 1 || .@refinecheck > 20) { mes "[" + getarg(0) + "]"; -- cgit v1.2.3-70-g09d2