summaryrefslogtreecommitdiff
path: root/world/map/npc/029-1/vincent.txt
diff options
context:
space:
mode:
Diffstat (limited to 'world/map/npc/029-1/vincent.txt')
-rw-r--r--world/map/npc/029-1/vincent.txt150
1 files changed, 150 insertions, 0 deletions
diff --git a/world/map/npc/029-1/vincent.txt b/world/map/npc/029-1/vincent.txt
new file mode 100644
index 00000000..36ce4c2d
--- /dev/null
+++ b/world/map/npc/029-1/vincent.txt
@@ -0,0 +1,150 @@
+// Variables used: nibble 2 of QUEST_SouthTulimshar
+
+029-1.gat,108,108,0|script|Vincent Debug|113
+{
+ mes "[Vincent Debug]";
+ mes "Reset?";
+ menu
+ "Yes.", L_Reset,
+ "No.", L_Close;
+
+L_Reset:
+ set QUEST_SouthTulimshar, (QUEST_SouthTulimshar & ~(NIBBLE_2_MASK) | (0 << NIBBLE_2_SHIFT));
+ mes "Reset!";
+ goto L_Close;
+
+L_Close:
+ close;
+
+OnInit:
+ if (!debug)
+ disablenpc "Vincent Debug";
+ end;
+}
+029-1.gat,107,110,0|script|Vincent|113
+{
+ // This NPC previously used the variable TMW_Quest
+ callfunc "ClearVarTMW_Quest";
+ set @halloween_npc_id, $@halloween_npc_vincent;
+ callfunc "TrickOrTreat";
+
+ set @state, ((QUEST_SouthTulimshar & NIBBLE_2_MASK) >> NIBBLE_2_SHIFT);
+
+ if (@state >= 2) goto L_Done;
+ if (@state == 1) goto L_Progress;
+ goto L_Convince_Vincent_First;
+
+L_Convince_Vincent_First:
+ mes "[Vincent]";
+ mes "\"I'm making an action figure. I'm almost done with it.\"";
+ next;
+
+ set @TEMP, rand(4);
+ if(@TEMP == 1) goto L_Opening2;
+ if(@TEMP == 2) goto L_Opening3;
+ if(@TEMP == 3) goto L_Opening4;
+ goto L_Opening1;
+
+L_Opening1:
+ mes "\"I just need 5 more Bug Legs to finish my action figure!\"";
+ next;
+ goto L_Ask;
+
+L_Opening2:
+ mes "\"This maggot action figure is awesome! I just need to attach 5 Bug Legs.\"";
+ next;
+ goto L_Ask;
+
+L_Opening3:
+ mes "\"This is a great action figure! A must have! All I need is a few parts...\"";
+ next;
+ goto L_Ask;
+
+L_Opening4:
+ mes "\"Can you get me 5 Bug Legs? I need them to replace the action figure parts.\"";
+ next;
+ goto L_Ask;
+
+L_Ask:
+ mes "\"Will you help me find 5 Bug Legs?\"";
+ next;
+ menu
+ "Yes.", L_Sure,
+ "No.", L_Close;
+
+L_Sure:
+ set @state, 1;
+ callsub S_Update_Var;
+ set @TEMP, rand(4);
+ if(@TEMP == 1) goto L_Req2;
+ if(@TEMP == 2) goto L_Req3;
+ if(@TEMP == 3) goto L_Req4;
+ goto L_Req1;
+
+L_Req1:
+ mes "[Vincent]";
+ mes "\"Thank you!\"";
+ next;
+ goto L_Wait;
+
+L_Req2:
+ mes "[Vincent]";
+ mes "\"I don't know how to thank you enough!\"";
+ next;
+ goto L_Wait;
+
+L_Req3:
+ mes "[Vincent]";
+ mes "\"I will thank you when I get them!\"";
+ next;
+ goto L_Wait;
+
+L_Req4:
+ mes "[Vincent]";
+ mes "\"I'm sure I will give a small reward.\"";
+ next;
+ goto L_Wait;
+
+L_Wait:
+ mes "\"Now please go get me 5 Bug Legs.\"";
+ goto L_Close;
+
+L_Progress:
+ if(countitem("BugLeg") >= 5)
+ goto L_Have;
+ mes "[Vincent]";
+ mes "\"Please help me collect 5 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") < 5)
+ goto L_Progress;
+ delitem "BugLeg", 5;
+ getexp 50, 0;
+ set Zeny, Zeny + 1000;
+ set @state, 2;
+ callsub S_Update_Var;
+
+ mes "[Vincent]";
+ mes "\"Here you go, a little of my appreciation!\"";
+ mes "";
+ mes "[1000 gold]";
+ goto L_Close;
+
+L_Done:
+ mes "[Vincent]";
+ mes "\"Thanks for your help!\"";
+ goto L_Close;
+
+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;
+}