summaryrefslogtreecommitdiff
path: root/npc/003-1/ched.txt
blob: df51cd581606c8960dddc90f5aa979811dc6233c (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
// TMW2 scripts.
// Author:
//    Saulc
//    Jesusalva
// Description:
//    Ched is from a quest.
//    But as he is now unused, he'll become someone else on summer.

003-1,62,48,0	script	Ched	NPC_PLAYER,{
    function	ValidSSC {
        return countitem(CactusCocktail)+countitem(CherryCocktail)+countitem(AppleCocktail);
    }
    function	ScoreSSC {
	    .@nb = query_sql("SELECT c.name, i.count2 FROM `quest` AS i, `char` AS c WHERE i.quest_id=305 AND i.char_id=c.char_id ORDER BY i.count2 DESC LIMIT 10", .@name$, .@value);

        mes "##B"+l("Top 10 - Summer Ched's Event")+"##b";
	    mes("1."+.@name$[0]+" ("+.@value[0]+")");
	    mes("2."+.@name$[1]+" ("+.@value[1]+")");
	    mes("3."+.@name$[2]+" ("+.@value[2]+")");
	    mes("4."+.@name$[3]+" ("+.@value[3]+")");
	    mes("5."+.@name$[4]+" ("+.@value[4]+")");
	    mes("6."+.@name$[5]+" ("+.@value[5]+")");
	    mes("7."+.@name$[6]+" ("+.@value[6]+")");
	    mes("8."+.@name$[7]+" ("+.@value[7]+")");
	    mes("9."+.@name$[8]+" ("+.@value[8]+")");
	    mes("10."+.@name$[9]+" ("+.@value[9]+")");
        next;
    }
    function	InfoSSC {
        mesc l("@@ - @@ point(s)", getitemlink(CactusCocktail), "1");
        mesc l("@@ - @@ point(s)", getitemlink(CherryCocktail), "3");
        mesc l("@@ - @@ point(s)", getitemlink(AppleCocktail), "5");
        next;
    }
    function	DepositSSC {
    .@pts=.@pts+countitem(CactusCocktail)*1;
    .@pts=.@pts+countitem(CherryCocktail)*3;
    .@pts=.@pts+countitem(AppleCocktail)*5;

    delitem CactusCocktail, countitem(CactusCocktail);
    delitem CherryCocktail, countitem(CherryCocktail);
    delitem AppleCocktail, countitem(AppleCocktail);

    getexp rand(.@pts-1, .@pts*11/10), rand(0,.@pts/25);

    setq2 SQuest_Ched, @ched+.@pts;
    @ched=getq2(SQuest_Ched);
    mesc l("Gained @@ points.", .@pts), 3;
    next;
    mesc l("Your Score: @@", @ched), 1;
    mes "";
    ScoreSSC;
    closedialog;
    goodbye;
    close;
    }

    // Begin: Ched
    .@year=getq(SQuest_Ched);
    if (.@year != (gettime(GETTIME_YEAR)-2000))
        setq SQuest_Ched, (gettime(GETTIME_YEAR)-2000), 0, 0;

    @ched=getq2(SQuest_Ched);
    .@claimed=getq3(SQuest_Ched); // Required to prevent rewriting scoreboards

    if (season() == SUMMER && !$@GM_OVERRIDE) goto L_Summer;
    if ((season() == AUTUMN && !.@claimed)) goto L_Autumn;
    if (rand(0,10) == 6)
        npctalk3("I wanted to go to the beach, but I can't find the cave entrance. They told me to look around here... What am I doing wrong?");
    else
        hello;
    end;

// Summer Event
L_Summer:
    if (BaseLevel < 25) {
        mesn;
        mesq l("Get Rekt Noob.");
        close;
    }

    // Main Core
    do
    {
        mesn;
        mesc l("Current score: @@", @ched), 1;
        mesc l("Thus far you have collected @@ @@, @@ @@ and @@ @@.", countitem(CactusCocktail), getitemlink(CactusCocktail), countitem(AppleCocktail), getitemlink(AppleCocktail), countitem(CherryCocktail), getitemlink(CherryCocktail)), 2;
        mesc l("You can convert these items in event points and claim rewards at autumn."), 2;
        next;
        select
            l("Scoreboards"),
            l("Information"),
            rif(ValidSSC(), l("Deposit all")),
            l("Abort");
        mes "";
        if (@menu == 1)
            ScoreSSC;
        if (@menu == 2)
            InfoSSC;
        if (@menu == 3)
            DepositSSC;

    } while (@menu < 3);
    close;

// Summer Quest Claim Rewards Time
L_Autumn:
    mesc l("Your Score: @@", @ched), 1;
    mes "";
    ScoreSSC;

    // Ensure you have free space on your inv.
    inventoryplace NPCEyes, 1;

    // Are you entitled for a Boia?
    if (@ched >= 25) {
        mesc l("Boias, unlike common shields, does not have any penalty!");
        mesc l("They are filled with a strange gas which makes they deflect attacks. They are done from a material which cannot be cut easily.");
        mesc l("They can be a bit lacking in defensive power, however.");
        mes "";
    }

    // Give you the due boia
    if (strcharinfo(0) == $@AUTUMN_VICTOR$ && @ched > 1000)
        getitem MasterBola, 1;
    else if (@ched >= 1000)
        getitem PiouBola, 1;
    else if (@ched >= 700)
        getitem SnakeBola, 1;
    else if (@ched >= 400)
        getitem TulimsharBola, 1;
    else if (@ched >= 200)
        getitem PurpleBola, 1;
    else if (@ched >= 60)
        getitem CandorBola, 1;
    else if (@ched >= 25)
        getitem KidBola, 1;

    // Give extra on GP and EXP rewards on 2018 Summer due extensive amount of bugs
    if (gettime(7) == 2018)
        @ched=@ched*12/10;

    // Give you experience and money reward
    Zeny=Zeny+@ched;
    getexp BaseLevel*@ched, @ched;

    // The quest is complete for the year.
    setq3 SQuest_Ched, 1;
    closedialog;
    goodbye;
    close;

OnInit:
    .@npcId = getnpcid(.name$);
    setunitdata(.@npcId, UDT_HEADTOP, SamuraiHelmet);
    setunitdata(.@npcId, UDT_HEADMIDDLE, SilkRobe);
    setunitdata(.@npcId, UDT_HEADBOTTOM, NPCEyes);
    setunitdata(.@npcId, UDT_WEAPON, CandorBoots); // Boots
    setunitdata(.@npcId, UDT_HAIRSTYLE, 7);
    setunitdata(.@npcId, UDT_HAIRCOLOR, 17);

    .sex = G_MALE;
    .distance = 5;
    end;
}