summaryrefslogtreecommitdiff
path: root/world/map/npc/029-1/vincent.txt
blob: 36ce4c2dc19585e46e2df63e76c9b223ebd1340d (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
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;
}