summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPlaytester <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-06-10 10:36:18 +0000
committerPlaytester <Playtester@54d463be-8e91-2dee-dedb-b68131a5f0ec>2007-06-10 10:36:18 +0000
commitd22260898b9f24093c20101050b7696dea5a4c5d (patch)
tree285a23281c375a7bd4f955cdcb7f860084a57a4c
parent46c8437773bd87fabfd7947c80dcead89eb324fa (diff)
downloadhercules-d22260898b9f24093c20101050b7696dea5a4c5d.tar.gz
hercules-d22260898b9f24093c20101050b7696dea5a4c5d.tar.bz2
hercules-d22260898b9f24093c20101050b7696dea5a4c5d.tar.xz
hercules-d22260898b9f24093c20101050b7696dea5a4c5d.zip
Fixed exploit and optimized Rachel donations
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10741 54d463be-8e91-2dee-dedb-b68131a5f0ec
-rw-r--r--npc/Changelog.txt2
-rw-r--r--npc/quests/quests_rachel.txt82
2 files changed, 36 insertions, 48 deletions
diff --git a/npc/Changelog.txt b/npc/Changelog.txt
index e2f303168..ea1761286 100644
--- a/npc/Changelog.txt
+++ b/npc/Changelog.txt
@@ -1,5 +1,7 @@
Date Added
======
+2007/06/10
+ * Fixed exploit and optimized Rachel donations [Playtester]
2007/06/09
* Rev. 10737 Removed an erroneous "case" in Rachel quest. Thanks, Jet. [L0ne_W0lf]
* Rev. 10736 Updated several Prontera NPCs. [L0ne_W0lf]
diff --git a/npc/quests/quests_rachel.txt b/npc/quests/quests_rachel.txt
index dfd34a693..25a153c73 100644
--- a/npc/quests/quests_rachel.txt
+++ b/npc/quests/quests_rachel.txt
@@ -3959,15 +3959,15 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
switch(select("50,000z - 1 Lottery Ticket:100,000z - 2 Lottery Ticket:150,000z - 3 Lottery Ticket:Cancel")) {
case 1:
- callsub S_Donate,50000,"50,000",1;
+ callsub S_Donate,1,"50,000";
break;
case 2:
- callsub S_Donate,100000,"100,000",3;
+ callsub S_Donate,2,"100,000";
break;
case 3:
- callsub S_Donate,150000,"150,000",3;
+ callsub S_Donate,3,"150,000";
break;
case 4:
@@ -4011,15 +4011,15 @@ ra_temple,116,174,3 script Nemma#ra_temple 920,{
switch(select("50,000z - 1 Lottery Ticket:100,000z - 2 Lottery Ticket:150,000z - 3 Lottery Ticket:Cancel")) {
case 1:
- callsub S_Donate,50000,"50,000",1;
+ callsub S_Donate,1,"50,000";
break;
case 2:
- callsub S_Donate,100000,"100,000",3;
+ callsub S_Donate,2,"100,000";
break;
case 3:
- callsub S_Donate,150000,"150,000",3;
+ callsub S_Donate,3,"150,000";
break;
case 4:
@@ -4279,9 +4279,10 @@ S_Donate:
mes "[Priestess Nemma]";
mes "So, " + strcharinfo(0) + "...";
mes "I just want to make sure:";
- mes "you want to donate "+getarg(1);
- mes "zeny, and receive 1 Lottery ";
- mes "Ticket. Is that correct?";
+ mes "You want to donate "+getarg(1);
+ mes "zeny, and receive "+getarg(0)+" Lottery";
+ if(getarg(0) == 1) mes "Ticket. Is that correct?";
+ else mes "Tickets. Is that correct?";
next;
if (select("No:Yes") == 1) {
mes "[Priestess Nemma]";
@@ -4293,8 +4294,8 @@ S_Donate:
mes "generous and rewards the patient!";
return;
}
- if (zeny >= getarg(0)) {
- if (!checkweight(7570,getarg(2))) {
+ if (zeny >= getarg(0)*50000) {
+ if (!checkweight(7570,getarg(0))) {
cutin "ra_nemma02",2;
mes "[Priestess Nemma]";
mes "I can scarcely believe it...";
@@ -4313,9 +4314,9 @@ S_Donate:
mes "donate if you can, okay?";
return;
}
- set $rachel_donate,$rachel_donate+getarg(2);
- getitem 7570,getarg(2); //Temple_Lottery_Ticket
- set zeny,zeny-getarg(0);
+ set $rachel_donate,$rachel_donate+getarg(0);
+ getitem 7570,getarg(0); //Temple_Lottery_Ticket
+ set zeny,zeny-getarg(0)*50000;
set ra_have_donated,1;
if ($rachel_donate > 9999) {
cutin "ra_nemma03",2;
@@ -5467,21 +5468,7 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "know, in case you were saving";
mes "them for some weird reason.";
next;
- if (select("Yes:No") == 1) {
- set .@now_weight,MaxWeight-Weight;
- if (.@now_weight < 300) {
- cutin "ra_fano02",2;
- mes "[Priestess Panno]";
- mes "You're carrying too much";
- mes "right now. What are you";
- mes "going to do if I give you";
- mes "something large, unwieldy";
- mes "and heavy? Put your junk";
- mes "away in Storage first.";
- goto L_End;
- }
- goto L_Lottery;
- }
+ if (select("Yes:No") == 1) goto L_Lottery;
cutin "ra_fano03",2;
mes "[Priestess Panno]";;
mes "You can redeem your";
@@ -5813,30 +5800,29 @@ ra_temin,170,46,3 script Panno#rachel 920,{
mes "everything I know.";
mes "Remember to keep";
mes "quiet about what I said.";
+ goto L_End;
}
- else {
- cutin "ra_fano02",2;
- mes "[Priestess Panno]";
- mes "This is a holy place";
- mes "Behave yourself, and";
- mes "respect those who have";
- mes "come here just to worship.";
- }
- goto L_End;
-
}
+ cutin "ra_fano02",2;
+ mes "[Priestess Panno]";
+ mes "This is a holy place";
+ mes "Behave yourself, and";
+ mes "respect those who have";
+ mes "come here just to worship.";
+ goto L_End;
- else {
+L_Lottery:
+ if(checkweight(607,1) == 0){
cutin "ra_fano02",2;
mes "[Priestess Panno]";
- mes "This is a holy place";
- mes "Behave yourself, and";
- mes "respect those who have";
- mes "come here just to worship.";
+ mes "You're carrying too much";
+ mes "right now. What are you";
+ mes "going to do if I give you";
+ mes "something large, unwieldy";
+ mes "and heavy? Put your junk";
+ mes "away in Storage first.";
goto L_End;
}
-
-L_Lottery:
mes "[Priestess Panno]";
mes "Here we go";
mes "Excited? Mm";
@@ -5876,7 +5862,7 @@ L_Lottery:
mes "[Priestess Panno]";
mes "You...";
mes "Don't have any Lottery";
- mes "Tickets to redeem";
+ mes "Tickets to redeem.";
if ($rachel_donate > 9999) {
mes "We're not distributing";
mes "them now, but maybe you";
@@ -5887,7 +5873,7 @@ L_Lottery:
mes "Priestess Nemma at the temple";
mes "entrance after you donate zeny.";
}
- next;
+ next;
cutin "ra_fano03",2;
mes "[Priestess Panno]";
mes "May Freya be with you.";