summaryrefslogtreecommitdiff
path: root/world/map/npc/001-1/vincent.txt
blob: eb4c1fedda12188e8b9039338b6358da8fd4ef01 (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
// Variables used: nibble 2 of QUEST_SouthTulimshar

001-1.gat,135,42,0|script|Vincent|113,
{
    set @hw2011_npc_id, $@hw2011_npc_vincent;
    if (gettime(7) == $@hw2011_year && gettime(6) == 10 && gettime(5) >= $@hw2011_start_day)
        goto L_TrickOrTreat;

L_Begin:
    // This NPC previously used the variable TMW_Quest
    callfunc "ClearVarTMW_Quest";

    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.\"";
    next;

    set @TEMP, rand(4);
    if(@TEMP == 0) goto L_Opening1;
    if(@TEMP == 1) goto L_Opening2;
    if(@TEMP == 2) goto L_Opening3;
    if(@TEMP == 3) goto L_Opening4;

L_Opening1:
    mes "\"I just need 10 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 10 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 10 Bug Legs? I need them to replace the action figure parts.\"";
    next;
    goto L_Ask;

L_Ask:
    mes "\"Will you help me find 10 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 == 0) goto L_Req1;
    if(@TEMP == 1) goto L_Req2;
    if(@TEMP == 2) goto L_Req3;
    if(@TEMP == 3) goto L_Req4;

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 10 Bug Legs.\"";
    goto L_Close;

L_Progress:
    if(countitem("BugLeg") >= 10)
        goto L_Have;
    mes "[Vincent]";
    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;
    delitem "BugLeg", 10;
    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;

L_TrickOrTreat:
    callfunc "TrickOrTreat2011";
    goto L_Begin;
}