// 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_TONORI,{ function ValidSSC { return countitem(CactusCocktail)+countitem(CherryCocktail)+countitem(AppleCocktail); } function ScoreSSC { mesc l("All leaderboards are refreshed hourly."), 1; mesc l("Your current score: @@", getq2(SQuest_Ched)), 3; mes ""; mes b(l("Top 10 - Summer Ched's Event")); mes("1."+$@ched_name$[0]+" ("+$@ched_value[0]+")"); mes("2."+$@ched_name$[1]+" ("+$@ched_value[1]+")"); mes("3."+$@ched_name$[2]+" ("+$@ched_value[2]+")"); mes("4."+$@ched_name$[3]+" ("+$@ched_value[3]+")"); mes("5."+$@ched_name$[4]+" ("+$@ched_value[4]+")"); mes("6."+$@ched_name$[5]+" ("+$@ched_value[5]+")"); mes("7."+$@ched_name$[6]+" ("+$@ched_value[6]+")"); mes("8."+$@ched_name$[7]+" ("+$@ched_value[7]+")"); mes("9."+$@ched_name$[8]+" ("+$@ched_value[8]+")"); mes("10."+$@ched_name$[9]+" ("+$@ched_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; mes ".:: " + l("Prizes") + " ::."; mes getitemlink(MasterBola); mesc l("Min. Position: ")+l("top 1"), 3; mesc l("Min. Score: "+1000); mes ""; mes getitemlink(PiouBola); mesc l("Min. Position: ")+l("top 3"), 3; mesc l("Min. Score: "+1000); mes ""; mes getitemlink(SnakeBola); mesc l("Min. Position: ")+l("top 5"), 3; mesc l("Min. Score: "+700); mes ""; mes getitemlink(TulimsharBola); mesc l("Min. Position: ")+l("top 7"), 3; mesc l("Min. Score: "+400); mes ""; mes getitemlink(PurpleBola); mesc l("Min. Position: ")+l("top 10"), 3; mesc l("Min. Score: "+200); mes ""; mes getitemlink(CandorBola); mesc l("Min. Position: ")+l("any"), 3; mesc l("Min. Score: "+100); mes ""; mes getitemlink(KidBola); mesc l("Min. Position: ")+l("any"), 3; mesc l("Min. Score: "+25); 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 rand2(.@pts-1, .@pts*11/10), rand2(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; if (rand2(0,10) == 6) mesq l("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 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 ""; } .@pos=array_find($@ched_name$, strcharinfo(0)); .@pos=(.@pos >= 0 ? .@pos+1 : 0); // Give you the due boia if (.@pos <= 1 && @ched > 1000) getitem MasterBola, 1; else if (.@pos <= 3 && @ched >= 1000) getitem PiouBola, 1; else if (.@pos <= 5 && @ched >= 700) getitem SnakeBola, 1; else if (.@pos <= 7 && @ched >= 400) getitem TulimsharBola, 1; else if (.@pos <= 10 && @ched >= 200) getitem PurpleBola, 1; else if (@ched >= 100) 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. // Each cocktail is worth 15~30 gp, so we'll give 10 GP per point Zeny+=@ched*10; 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, NPCEyesT); setunitdata(.@npcId, UDT_WEAPON, CandorBoots); // Boots setunitdata(.@npcId, UDT_HAIRSTYLE, 7); setunitdata(.@npcId, UDT_HAIRCOLOR, 17); .sex = G_MALE; .distance = 5; end; }