diff options
Diffstat (limited to 'npc/001-4/lilica.txt')
-rw-r--r-- | npc/001-4/lilica.txt | 186 |
1 files changed, 186 insertions, 0 deletions
diff --git a/npc/001-4/lilica.txt b/npc/001-4/lilica.txt new file mode 100644 index 0000000..5d7f152 --- /dev/null +++ b/npc/001-4/lilica.txt @@ -0,0 +1,186 @@ +// 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 (rand2(10000) < 100) goto L_Unlucky; + setq SQuest_Easter, gettime(7), min(500, getq2(SQuest_Easter)+100); + npctalk3 l("Strange Coins stock on shops was restored!"); + 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("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; +} + |