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

001-1.gat,135,42,0|script|Vincent|113,
{
    // 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;
    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 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 == 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 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;
}