summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/001-1')
-rw-r--r--world/map/npc/001-1/vincent.txt54
1 files changed, 26 insertions, 28 deletions
diff --git a/world/map/npc/001-1/vincent.txt b/world/map/npc/001-1/vincent.txt
index e2a53a31..4ed4adfc 100644
--- a/world/map/npc/001-1/vincent.txt
+++ b/world/map/npc/001-1/vincent.txt
@@ -1,4 +1,4 @@
-//
+// Variables used: nibble 2 of QUEST_SouthTulimshar
001-1.gat,135,42,0|script|Vincent|113,{
set @hw2011_npc_id, $@hw2011_npc_vincent;
@@ -6,23 +6,19 @@
goto L_TrickOrTreat;
L_Begin:
- if (TMW_Quest >= 10) goto L_Done;
- if (TMW_Quest == 9) goto L_Progress;
- if (TMW_Quest == 8) goto L_Start;
- if (TMW_Quest < 8) goto L_Convince_Vincent_First;
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
- // If this happens, something is wrong with the above code.
- mes "Vincent looks confused.";
- goto L_Close;
+ set @state, ((QUEST_SouthTulimshar & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
+
+ if (@state >= 2) goto L_Done;
+ if (@state == 1) goto L_Progress;
L_Convince_Vincent_First:
mes "[Vincent]";
mes "\"I'm making an action figure. I'm almost done with it.\"";
- mes "";
- mes "Vincent seems distracted with his near-completed figurine for now.";
- goto L_Close;
+ next;
-L_Start:
set @TEMP, rand(4);
if(@TEMP == 0) goto L_Opening1;
if(@TEMP == 1) goto L_Opening2;
@@ -30,41 +26,36 @@ L_Start:
if(@TEMP == 3) goto L_Opening4;
L_Opening1:
- mes "[Vincent]";
mes "\"I just need 10 more Bug Legs to finish my action figure!\"";
next;
goto L_Ask;
L_Opening2:
- mes "[Vincent]";
mes "\"This maggot action figure is awesome! I just need to attach 10 Bug Legs.\"";
next;
goto L_Ask;
L_Opening3:
- mes "[Vincent]";
mes "\"This is a great action figure! A must have! All I need is a few parts...\"";
next;
goto L_Ask;
L_Opening4:
- mes "[Vincent]";
mes "\"Can you get me 10 Bug Legs? I need them to replace the action figure parts.\"";
next;
goto L_Ask;
L_Ask:
- mes "[Vincent]";
mes "\"Will you help me find 10 Bug Legs?\"";
next;
menu
- "Yes", L_Sure,
- "No", -;
- goto L_Close;
+ "Yes.", L_Sure,
+ "No.", L_Close;
L_Sure:
- set TMW_Quest, 9;
- set @TEMP,rand(4);
+ set @state, 1;
+ callsub S_Update_Var;
+ set @TEMP, rand(4);
if(@TEMP == 0) goto L_Req1;
if(@TEMP == 1) goto L_Req2;
if(@TEMP == 2) goto L_Req3;
@@ -90,29 +81,31 @@ L_Req3:
L_Req4:
mes "[Vincent]";
- mes "\"I'm sure I will give a small reward. :D\"";
+ mes "\"I'm sure I will give a small reward.\"";
next;
goto L_Wait;
L_Wait:
- mes "[Vincent]";
mes "\"Now please go get me 10 Bug Legs.\"";
goto L_Close;
L_Progress:
- if(countitem("BugLeg") >= 10) goto L_Have;
+ if(countitem("BugLeg") >= 10)
+ goto L_Have;
mes "[Vincent]";
- mes "\"Please help me collect 10 Bug Legs!\"";
+ mes "\"Please help me collect 10 Bug Legs! I need them to complete my action figure.\"";
goto L_Close;
L_Have:
mes "[Vincent]";
mes "\"Excellent! Finally I can complete the model!!\"";
next;
- if(countitem("BugLeg") < 10) goto L_Progress;
+ if(countitem("BugLeg") < 10)
+ goto L_Progress;
delitem "BugLeg", 10;
set Zeny, Zeny + 1000;
- set TMW_Quest, 10;
+ set @state, 2;
+ callsub S_Update_Var;
mes "[Vincent]";
mes "\"Here you go, a little of my appreciation!\"";
@@ -127,8 +120,13 @@ L_Done:
L_Close:
set @TEMP, 0;
+ set @state, 0;
close;
+S_Update_Var:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_2_MASK) | (@state << NIBBLE_2_SHIFT));
+ return;
+
L_TrickOrTreat:
callfunc "TrickOrTreat2011";
goto L_Begin;