summaryrefslogtreecommitdiff
path: root/npc/001-4/lilica.txt
blob: ab07541270be393aa122b744fb4d5f945406b053 (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
187
188
189
190
// TMW2 scripts.
// Author:
//    Jesusalva
// Description:
//    Lilica is TMW-BR Scary Scary Easter Bunny and will help your trading stuff.

001-4,139,151,0	script	Lilica#easter	NPC_EASTER,{
    mesn;
    mesq lg("Ah, traveller! I am Lilica the Scary Bunny! I exchange many @@ and @@ for neat rewards!","Ah, traveller! I am Lilica the Scary Bunny! I exchange many @@ and @@ for neat rewards!", getitemlink(SilverEasteregg), getitemlink(GoldenEasteregg));
    next;
    mesn;
    mesq l("Golden Eggs are used for the grand collector prize. Ah, I love Easter! I loooooooove it!");
    mesc l("Note: Golden and Silver Eggs are deleted after the next event end.");

    menu
        l("Scary..........."), -,
        l("Trade Silver Eggs"), L_Silver,
        l("Trade Golden Eggs"), L_Golden,
        rif(getq(SQuest_Easter) != gettime(7), l("I want an Eggshell Hat!")), L_Quest,
        l("View LeaderBoard"), L_Leader;
    close;

L_Silver:
    openshop "#eastershop1";
    closedialog;
    close;

L_Golden:
    openshop "#eastershop2";
    closedialog;
    close;

L_Leader:
    mesc l("Leaderboard is refresh daily at 1 AM!");
	mes("1."+$@easter_name$[0]+" ("+$@easter_value[0]+")");
	mes("2."+$@easter_name$[1]+" ("+$@easter_value[1]+")");
	mes("3."+$@easter_name$[2]+" ("+$@easter_value[2]+")");
	mes("4."+$@easter_name$[3]+" ("+$@easter_value[3]+")");
	mes("5."+$@easter_name$[4]+" ("+$@easter_value[4]+")");
	mes("6."+$@easter_name$[5]+" ("+$@easter_value[5]+")");
	mes("7."+$@easter_name$[6]+" ("+$@easter_value[6]+")");
	mes("8."+$@easter_name$[7]+" ("+$@easter_value[7]+")");
	mes("9."+$@easter_name$[8]+" ("+$@easter_value[8]+")");
	mes("10."+$@easter_name$[9]+" ("+$@easter_value[9]+")");
    close;

L_Quest:
    setarray .@Seasonal, EggshellHat, EggshellHat, GreenEggshellHat, OrangeEggshellHat, BlueEggshellHat, EggshellHat;
    .@Hat=.@Seasonal[gettime(7)%6]; // Magically choose the hat from the array
    mesn;
    mesq l("Good choice! This year we're having a @@!", getitemlink(.@Hat));
    next;
    mesn;
    mesq l("As usual, you can get only one hat yearly, for the symbolic amount of 40 @@ and 10 @@!", getitemlink(GoldenEasteregg), getitemlink(SilverEasteregg));
    next;
    menu
        l("Maybe later."), -,
        rif(countitem(GoldenEasteregg) >= 40 && countitem(SilverEasteregg) >= 10, l("Deal.")), L_QuestDone;
    close;

L_QuestDone:
    inventoryplace .@Hat, 1;
    delitem GoldenEasteregg, 40;
    delitem SilverEasteregg, 10;
    //if (rand(0, 10000) < 1000) goto L_Unlucky;
    setq SQuest_Easter, gettime(7), max(500, getq2(SQuest_Easter)+100);
    npctalk3 l("Strange Coins stock on shops was restored!");
    //EASTER_EVENT=gettime(7);
    // The code below not allow hat to leave user account. A bad idea here so I left commented.
    //getitembound(.@Hat, 1, 1);
    getnameditem(.@Hat, strcharinfo(0));
    mesn;
    mesq l("Here you go! Happy easter! Bhop bhop!");
    close;

L_Unlucky:
    getitem GoldenGift, 1;
    mesn;
    mes l("\"Oh... Sorry, @@.", strcharinfo(0));
    mes l("But in accordance to an old %s, you were unlucky.", b(l("Community Decision")));
    mes l("This means ##BAll items were lost##b, and you need to collect EVERYTHING, again, to get the hat.");
    mes l("But, hm hm hm! I have a %s for you! It won't have what you wanted, but maybe you're lucky, after all?", getitemlink(GoldenGift));
    //mes l("But hey, it is Easter and the poll is still open, so here are 15 @@ as a consolation prize.", getitemlink(StrangeCoin));
    mes l("Better luck next time!\"");
    close;

OnClock0100:
OnClock1300:
    if ($EVENT$ == "Easter")
    	.@nb = query_sql("SELECT c.name, i.amount FROM `inventory` AS i, `char` AS c WHERE i.nameid=834 AND i.char_id=c.char_id ORDER BY i.amount DESC LIMIT 10", $@easter_name$, $@easter_value);
    end;

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

    if ($EVENT$ == "Easter")
        sEaster();
    end;
}

function	script	EasterCoinCheck	{
    for (.@i=0;.@i < getarraysize(@bought_nameid); .@i++) {

        if (debug || $@GM_OVERRIDE)
            debugmes("%dx %s", @bought_quantity[.@i], getitemname(@bought_nameid[.@i]));

        if (@bought_nameid[.@i] == StrangeCoin) {
            .@q2=getq2(SQuest_Easter)-@bought_quantity[.@i];
            if (.@q2 < 0) {
                dispbottom l("Attempted to buy %d/%d %s, operation cancelled.",
                             @bought_quantity[.@i], getq2(SQuest_Easter),
                             getitemlink(StrangeCoin));
                if (TUTORIAL)
                    dispbottom l("This quota is reset yearly, by completing %s's quest.", b("Lilica"));
                end;
            }
            setq2 SQuest_Easter, .@q2;
        }
    }
    return;
}

// Silver Easter Egg exchange.
001-4,139,151,0	trader	#eastershop1	NPC_HIDDEN,{
    end;

OnInit:
	tradertype(NST_CUSTOM);

	sellitem ChocolateMouboo,100;
	sellitem StrangeCoin,50;
	sellitem GoldenEasteregg,25;
	sellitem EasterEgg,5;
    end;

OnCountFunds:
	setcurrency(countitem(SilverEasteregg));
	end;

OnPayFunds:
	if( countitem(SilverEasteregg) < @price )
		end;
    // Strange Coins are different
    EasterCoinCheck();
    // Complete purchase
	delitem SilverEasteregg, @price;
	purchaseok();
	end;
}
// Golden Easter Egg exchange.
001-4,139,151,0	trader	#eastershop2	NPC_HIDDEN,{
    end;

OnInit:
	tradertype(NST_CUSTOM);
    setarray .@Seasonal, EggshellHat, EggshellHat, GreenEggshellHat, OrangeEggshellHat, BlueEggshellHat, EggshellHat;
    .Hat=.@Seasonal[(gettime(7)+1)%6]; // Magically choose the hat from the array
    .PrevHat=.@Seasonal[(gettime(7)-1)%6]; // Magically choose the hat from the array

    // Seasonal item
	sellitem .Hat,200;
	sellitem .PrevHat,500;

    // Rare and not-so-rare Items
	sellitem MercBoxE,1500;
	sellitem MercBoxD,1000;
	sellitem MercBoxC,500;
	sellitem Boots,450;
	sellitem BronzeGift,100;
	sellitem BunnyEars,50;
	sellitem StrangeCoin,10;
	sellitem SilverEasteregg,1;
    end;

OnCountFunds:
	setcurrency(countitem(GoldenEasteregg));
	end;

OnPayFunds:
	if( countitem(GoldenEasteregg) < @price )
		end;
    // Strange Coins are different
    EasterCoinCheck();
    // Complete purchase
	delitem GoldenEasteregg, @price;
	purchaseok();
	end;
}