diff options
-rw-r--r-- | db/quest_db.conf | 4 | ||||
-rw-r--r-- | npc/003-1/ched.txt | 101 |
2 files changed, 104 insertions, 1 deletions
diff --git a/db/quest_db.conf b/db/quest_db.conf index 3b01b035d..6b741b1ba 100644 --- a/db/quest_db.conf +++ b/db/quest_db.conf @@ -273,6 +273,10 @@ quest_db: ( Id: 304 Name: "SQuest_Sponsor" }, +{ + Id: 305 + Name: "SQuest_Ched" +}, // ID 1000+: Test quests { diff --git a/npc/003-1/ched.txt b/npc/003-1/ched.txt index 3ef4b1c56..9ef2a8d5c 100644 --- a/npc/003-1/ched.txt +++ b/npc/003-1/ched.txt @@ -1,14 +1,113 @@ // 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(CactusCoktail)+countitem(CherryCoktail)+countitem(AppleCoktail); + } + 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(CactusCoktail)*1; + .@pts=.@pts+countitem(CherryCoktail)*3; + .@pts=.@pts+countitem(AppleCoktail)*5; + + delitem CactusCocktail, countitem(CactusCoktail); + delitem CherryCocktail, countitem(CherryCoktail); + delitem AppleCocktail, countitem(AppleCoktail); + + 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; + 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 && @ched <= 0) goto L_Summer; + if ((season() == AUTUMN && !.@claimed) || is_gm()) goto L_Autumn; 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(CactusCoktail), 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; + next; + // TODO: Do whatever reward whatever way you want whatever whatevers. + Zeny=Zeny+@ched; + setq3 SQuest_Ched, 1; + close; OnInit: .@npcId = getnpcid(0, .name$); |