summaryrefslogtreecommitdiff
path: root/npc/003-1/hasan.txt
blob: 901d1aa74caf5e5a4d0837f2be7b7b7c71788446 (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
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
// TMW-2 Script
// Author:
//  Jesusalva
// Description:
//  Hasan is the city bully and steals the player. He lost his father to a Murderer
//  Scorpion. Will respect player if they kill one. His mother is Sorfina, whom
//  explains this and cries that he never touched a Soul Menhir. Allowing player
//  to kill scorpion on Mahoud's Basement.
//
//  Player must report theft first to Dausen, who will tell the player that's
//  normal and nobody messes with Hasan, and giving player pointer that he should
//  tell his mother, Sorfina.
//
//  Reward: Cotton Short, Hasan won't steal you anymore.
//
//  GETQ1 Variable Value;
//  0 - Never stolen by Hasan
//  1 - Already stolen by Hasan
//  2 - Dausen pointed player to Sorfina
//  3 - Sorfina unlocked Mahoud's Basement
//  4 - Player killed Murderer Scorpion
//  5 - Quest is complete
//
//  $HASAN_ST
//      Number of Scorpions killed during Autumn
//  $HASAN_GP
//      Total money Hasan collected for Autumn event
//  $HASAN_LT
//      Previous collected money, for rewards calc
//
//  PS. $@GM_OVERRIDE will disable Season restrictions, but values from 20/09 and 21/12
//  must be set manually.

// Temporary sprite
003-1,62,148,0	script	Hasan	NPC_ELVEN_MAN_RED,2,2,{
    if (getq(TulimsharQuest_Hasan) == 0) goto L_Safe;
    if (getq(TulimsharQuest_Hasan) == 4) goto L_Finish;
    if (getq(TulimsharQuest_Hasan) == 5) goto L_Complete;
    mesn strcharinfo(0);
    mesq l("Give me back what you've stole, thief!");
    next;
    mesn;
    mesq l("I stole nothing from you. Do you have any proof?");
    next;
    menu
        l("I have a print screen!"), L_Print,
        l("No..."), L_Close;
    close;

L_Away:
    mesn;
    mesq l("Hey... Go bother someone else.");
    close;

L_Print:
    mes "";
    mesn;
    mesq l("Let me analyze that.");
    mes col(l("Hasan takes your print screen and analyzes it."),9);
    next;
    mesn;
    mesq l("Photoshopped. Definitely. Good luck convincing somebody with that! %%a");
    next;
    mesn;
    mesq l("If you go to Lieutenant Dausen, he'll say that you used Gimp. Just give up.");
    close;

// TODO
L_Finish:
    mesn;
    mesq l("Is that... Wait... Wow. You... Killed a murderer scorpion.");
    next;
    mesn;
    mesq l("I promise I'll never steal from you again. Here, take this shorts.");
    mesq l("Good job, man!");
    setq TulimsharQuest_Hasan, 5;
    getitem CottonShorts, 1;
    getexp 79, 55;
    close;

L_Complete:
    mesn;
    mesq l("Thanks for avenging my father.");
    next;
    mesn;
    mesq l("I am collecting money for the Yearly Autumn Scorpion Hunter quest.");
    mesq l("You're, of course, invited. Thus far, the total prize money I've collected is @@ GP.", $HASAN_GP);
    if (season() == AUTUMN || $@GM_OVERRIDE) {
        mesq l("You've killed @@ scorpions, and a total of @@ were killed this season.", getq2(SQuest_Autumn), $HASAN_ST);
        mesq l("If the event ended now, you would get @@ GP.", getq2(SQuest_Autumn)*$HASAN_GP/$HASAN_ST);
        menuint
            l("Thanks."),0,
            rif(Zeny >= 5, l("Donate 5 GP for prize")),5,
            rif(Zeny >= 15, l("Donate 15 GP for prize")),15,
            rif(Zeny >= 50, l("Donate 50 GP for prize")),50,
            rif(Zeny >= 100, l("Donate 100 GP for prize")),100;
        if (@menu > 0) {
            Zeny=Zeny-@menu;
            $HASAN_GP=$HASAN_GP+@menu;
        }
    }

    if ((season() == WINTER || $@GM_OVERRIDE == 2) && getq(SQuest_Autumn) == gettime(GETTIME_YEAR)) {
        .@p=getq2(SQuest_Autumn)*$HASAN_LT/$HASAN_ST;
        mesn l("Summary");
        mes l("Scorpions killed: @@/@@ scorpions", getq2(SQuest_Autumn), $HASAN_ST);
        mes l("Total money collected: @@ GP", $HASAN_LT);
        mes l("##2Your prize: @@ GP", .@p);
        if (getq2(SQuest_Autumn) > 20)
            getexp (getq2(SQuest_Autumn)/20), 0;
        if (.@p >= 1)
            Zeny=Zeny+.@p;
        setq SQuest_Autumn, 1970, 0;
    }
    close;

L_TouchComplete:
    npctalkonce l("Hey there, @@! Good luck killing monsters!", strcharinfo(0));
    end;

L_Close:
    close;

OnTouch:
    if (getq(TulimsharQuest_Hasan) == 5) goto L_TouchComplete;
    if (Zeny > 15) goto L_Steal;
    end;

L_Steal:
    npctalkonce(l("*whistle*"));
    if (getq(TulimsharQuest_Hasan) == 0) goto L_DoSteal;
    if (getq(TulimsharQuest_Hasan) <= 4 && rand(0,100) < 20) goto L_DoSteal;
    end;

L_DoSteal:
    .@s=rand(3,12);
    $HASAN_GP=$HASAN_GP+.@s;
    Zeny=Zeny-.@s;
    if (getq(TulimsharQuest_Hasan) == 0)
        setq TulimsharQuest_Hasan, 1;
    dispbottom l("##BYou were stolen##b by an evil NPC.");
    end;

OnInit:
    .sex = G_MALE;
    .distance = 5;

    //npcspeed(150);
    //npcwalkto(<x>, <y>);
    end;

// Restart hasan status on 20/09 (double-sure)
OnDay0920:
    $HASAN_ST=0;
    end;

// Once autumn is over (21/12) restart GP poll and send value to backup
OnDay1221:
    $HASAN_LT=0+$HASAN_GP;
    $HASAN_GP=0;
    end;
}

function	script	SQuest_Hasan	{
    if (season() != AUTUMN && !$@GM_OVERRIDE)
        return;
    if (getq(SQuest_Autumn) != gettime(GETTIME_YEAR))
        setq SQuest_Autumn, gettime(GETTIME_YEAR), 0;

    // All scorpions are counting for Hasan Autumn Quest
    if (
        killedrid == Scorpion ||
        killedrid == RedScorpion ||
        killedrid == BlackScorpion ||
        killedrid == CandorScorpion ||
        killedrid == AngryScorpion ||
        killedrid == AngryRedScorpion ||
        killedrid == NightScorpion ||
        killedrid == GoldenScorpion ||
        killedrid == MurdererScorpion) {
            setq2 SQuest_Autumn, getq2(SQuest_Autumn)+1;
            $HASAN_ST=$HASAN_ST+1;
    }
    return;
}