diff options
Diffstat (limited to 'world/map/npc')
-rw-r--r-- | world/map/npc/annuals/2022.txt | 262 | ||||
-rw-r--r-- | world/map/npc/annuals/fathertime.txt | 38 |
2 files changed, 223 insertions, 77 deletions
diff --git a/world/map/npc/annuals/2022.txt b/world/map/npc/annuals/2022.txt index a6782c3c..0a19d1ca 100644 --- a/world/map/npc/annuals/2022.txt +++ b/world/map/npc/annuals/2022.txt @@ -247,45 +247,6 @@ OnInit: end; } -// Puppets -008-1,140,74,0|script|Halifax|395 -{ - end; -OnInit: - disablenpc strnpcinfo(0); - end; -} - -// Puppets -018-1,142,75,0|script|Red Bearer|395 -{ - end; -OnInit: - disablenpc strnpcinfo(0); - end; -} - -// Puppets -008-1,140,70,0|script|Tal#CRC|427 -{ - end; -OnInit: - disablenpc strnpcinfo(0); - end; -} - -// Puppets -020-1,76,85,0|script|Zax De'Kagen#CRC|400 -{ - //mes "[Zax De'Kagen]"; - //mes "\"I will not tolerate people trying to defile my world. I'm sealing the lake, and that's final.\""; - //close; - end; -OnInit: - disablenpc strnpcinfo(0); - end; -} - 020-1,78,85,0|script|Santa#X2022|200 { @@ -293,8 +254,8 @@ OnInit: goto L_Start; if (gettime(6) > 1) goto L_Scores; - if (gettime(5) > 8) - goto L_Scores; + if (gettime(5) >= 11) + goto L_Reward; goto L_Start; L_Start: @@ -306,7 +267,8 @@ L_Start: next; mesn l("Santa Claus"); mesq l("I recovered "+$XMAS2022+" [@@5288|@@]. From these, you gave me "+XMAS2022+" [@@5288|@@]. Grinchboos have them but they only appear every hour in four maps, and the others were lost to time, so... Do you want to give me some more? Ah, ##Bbe careful with the snowmans##b, it seems like wicked magic is turning the Naftalin into snowmans!"); - mes l("##1Date limit: January 8th, 2023##0"); + mes l("##1Date limit: Event ended. Jan 10th 23:59 time limit to deliver##0"); + mes l("##1Rewards will only be available until January 31st, 23:59 UTC##0"); next; menu "Deliver", L_Deliver, @@ -367,6 +329,7 @@ L_FinallyInsertMe: L_Scores: mes l("I recovered "+$XMAS2022+" [@@5288|@@]. From these, you gave me "+XMAS2022+" [@@5288|@@]."); + mes ""; set @rank, 0; set @loop, 0; goto L_ShowNextRecord; @@ -384,6 +347,221 @@ L_NextShowNextRecord: next; goto L_ShowNextRecord; +L_Full: + mes "[Santa Claus]"; + mes "\"Your backpack seems to be full. You should get rid of some unused stuff before you get my gifts, or maybe try one super resistant red bag, my personal favorite! Hoh-hoh!\""; + close; + + +L_Reward: + if (XMAS2022 < 1) goto L_Scores; + getinventorylist; + if (@inventorylist_count > 80) goto L_Full; + mes l("Ho-ho-ho, you gave me "+XMAS2022+" [@@5288|@@]! Time for late Christmas and New Year gifts!"); + mes ""; + // Individual Performance + if (XMAS2022 >= 1) goto L_Del1; + goto L_Del1_Return; + +L_Del1_Return: + if (XMAS2022 >= 100) goto L_Del100; + goto L_Del100_Return; + +L_Del100_Return: + if (XMAS2022 >= 500) goto L_Del500; + goto L_Del500_Return; + +L_Del500_Return: + if (XMAS2022 >= 1000) goto L_Del1000; + goto L_Del1000_Return; + +L_Del1000_Return: + if (XMAS2022 >= 2500) goto L_Del2500; + goto L_Del2500_Return; + +L_Del2500_Return: + if (XMAS2022 >= 5000) goto L_Del5000; + goto L_Del5000_Return; + +L_Del5000_Return: + if (XMAS2022 >= 10000) goto L_Del10000; + goto L_Del10000_Return; + +L_Del10000_Return: + // Santa gift for global performance + if ($XMAS2022 >= 10000) goto L_Global10k; + goto L_Global10k_Return; + +L_Global10k_Return: + if ($XMAS2022 >= 25000) goto L_Global25k; + goto L_Global25k_Return; + +L_Global25k_Return: + if ($XMAS2022 >= 50000) goto L_Global50k; + goto L_Global50k_Return; + +L_Global50k_Return: + if ($XMAS2022 >= 75000) goto L_Global75k; + goto L_Global75k_Return; + +L_Global75k_Return: + if ($XMAS2022 >= 100000) goto L_Global100k; + goto L_Global100k_Return; + +L_Global100k_Return: + if ($XMAS2022 >= 150000) goto L_Global150k; + goto L_Global150k_Return; + +L_Global150k_Return: + if ($XMAS2022 >= 200000) goto L_Global200k; + goto L_Global200k_Return; + +L_Global200k_Return: + // Scoreboard performance + set XMAS2022, 0; + set @loop, 0; + goto L_ScoreGift; + +L_ScoreGift: + if (@loop == MAX_HIGH_SCORES) + goto L_Finish; + if (strcharinfo(0) == $Record_XXXmas_Name$[@loop]) + goto L_LoopReward; + set @loop, @loop + 1; + goto L_ScoreGift; + +L_LoopReward: + if (@loop < 15) goto L_Rank15; + goto L_LoopReward15; +L_LoopReward15: + if (@loop < 10) goto L_Rank10; + goto L_LoopReward10; +L_LoopReward10: + if (@loop < 5) goto L_Rank5; + goto L_LoopReward5; +L_LoopReward5: + if (@loop < 2) goto L_Rank2; + goto L_LoopReward2; +L_LoopReward2: + goto L_Finish; + +L_Finish: + set @loop, 0; + mesn; + mesq l("Ho-ho-ho! Thanks for helping me to retrieve the Naphtalene! See you next year, ho-ho-ho!"); + next; + goto L_Scores; + +L_Del1: + // Minimum 20 gp, Maximum 250,000 gp + set @gp, min(XMAS2022 * 20, 2500000); + set Zeny, Zeny + @gp; + getexp @gp, 0; + mes l("##9Gained "+@gp+" GP!##0"); + mes l("##9Gained "+@gp+" Experience points.##0"); + set @gp, 0; + goto L_Del1_Return; + +L_Del100: + getitem IronPotion, 10; + getitem ConcentrationPotion, 10; + goto L_Del100_Return; + +L_Del500: + getitem IronPotion, 20; + getitem ConcentrationPotion, 20; + getitem MediumManaElixir, 10; + goto L_Del500_Return; + +L_Del1000: + // Minimum 40 boss points, Maximum 5,000 boss points + set @bp, min(XMAS2022 / 25, 5000); + set BOSS_POINTS, BOSS_POINTS + @bp; + mes l("Gained "+@bp+" Boss points!"); + set @bp, 0; + goto L_Del1000_Return; + +L_Del2500: + getitem IronPotion, 20; + getitem ConcentrationPotion, 20; + getitem MediumManaElixir, 15; + goto L_Del2500_Return; + +L_Del5000: + getitem MediumManaElixir, 25; + getitem GumiCandy, 25; + goto L_Del5000_Return; + +L_Del10000: + getitem LovePotion, 50; + getitem BlueRose, 1; + goto L_Del10000_Return; + +L_Global10k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global10k_Return; + +L_Global25k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament", "RawTalisman", "FlightTalisman"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global25k_Return; + +L_Global50k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament", "RawTalisman", "FlightTalisman", "StrangeCoin"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global50k_Return; + +L_Global75k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament", "RawTalisman", "FlightTalisman", "StrangeCoin", "RedChristmasStocking"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global75k_Return; + +L_Global100k: + setarray @oldstock$, "MoubooHead", "MushHat", "ChristmasElfHat", "FunkyHat", "ShroomHat", "ElfNightcap", "BowlerHat", "TopHat"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global100k_Return; + +L_Global150k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament", "RawTalisman", "FlightTalisman", "StrangeCoin", "RedChristmasStocking"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global150k_Return; + +L_Global200k: + setarray @oldstock$, "PlushMouboo", "StickReinboo", "Doll", "LeatherBall", "SantaSnowGlobe", "SnowmanSnowGlobe", "RedOrnament", "YellowOrnament", "GreenOrnament", "AquaOrnament", "BlueOrnament", "MagentaOrnament", "RawTalisman", "FlightTalisman", "StrangeCoin", "RedChristmasStocking"; + getitem @oldstock$[rand(getarraysize(@oldstock$))], 1; + cleararray @oldstock$, "", getarraysize(@oldstock$); + goto L_Global200k_Return; + +L_Rank15: + setarray @oldstock, ChristmasElfHat, Towel, ElfNightcap, PaperBag, ChristmasTreeHat, MovieCap, FourLeafClover, BlueWolfHelmet; + getitem @oldstock[rand(getarraysize(@oldstock))], 1; + cleararray @oldstock, 0, getarraysize(@oldstock); + goto L_LoopReward15; + +L_Rank10: + setarray @oldstock, ChristmasElfHat, Towel, ElfNightcap, PaperBag, RedNose, Earmuffs, FunkyHat, ScarabArmlet, SantaBeardHat, MovieCap, AFKCap, FourLeafClover, ChicSantaHat, BlueWolfHelmet; + getitem @oldstock[rand(getarraysize(@oldstock))], 1; + cleararray @oldstock, 0, getarraysize(@oldstock); + goto L_LoopReward10; + +L_Rank5: + setarray @oldstock, RedNose, Earmuffs, FunkyHat, ScarabArmlet, ChristmasTreeHat, TamOShanter, SantaBeardHat, GroovyHat, JazzyHat, AFKCap, DarkHelm, ChicSantaHat, PilotHat; + getitem @oldstock[rand(getarraysize(@oldstock))], 1; + cleararray @oldstock, 0, getarraysize(@oldstock); + goto L_LoopReward5; + +L_Rank2: + setarray @oldstock, TamOShanter, GroovyHat, JazzyHat, DarkHelm, PilotHat; + getitem @oldstock[rand(getarraysize(@oldstock))], 1; + cleararray @oldstock, 0, getarraysize(@oldstock); + goto L_LoopReward2; L_Close: close; } diff --git a/world/map/npc/annuals/fathertime.txt b/world/map/npc/annuals/fathertime.txt index 340976c3..91bbec65 100644 --- a/world/map/npc/annuals/fathertime.txt +++ b/world/map/npc/annuals/fathertime.txt @@ -7,7 +7,7 @@ OnInit: if (debug >= 2) end; donpcevent strnpcinfo(0) + "::OnTimer20000"; - goto L_Clock; + end; OnTimer20000: donpcevent "#XmasConfig::OnCommandRestartQuest"; @@ -66,17 +66,6 @@ OnClock2313: goto L_Clock; L_Clock: - // Christmas 2022 code, remove it later - areamonster "034-1", 20, 20, 160, 110, "", 1162, 64; - areamonster "033-1", 20, 20, 120, 110, "", 1162, 64; - areamonster "046-1", 20, 20, 160, 115, "", 1162, 64; - areamonster "047-1", 20, 20, 200, 180, "", 1162, 240; - areamonster "033-1", 20, 20, 120, 110, "", SnowmanBoss, 1, "#HolidayConfig::OnCuoco331"; - areamonster "034-1", 20, 20, 160, 110, "", SnowmanBoss, 1, "#HolidayConfig::OnCuoco341"; - areamonster "046-1", 20, 20, 160, 115, "", SnowmanBoss, 1, "#HolidayConfig::OnCuoco461"; - areamonster "047-1", 20, 20, 200, 180, "", SnowmanBoss, 2, "#HolidayConfig::OnCuoco471"; - announce "Santa : Ho ho ho, I see a huge movement by the grinchboos!", 0; - // Official code below: if (gettime(4) == 5) goto L_Friday; @@ -116,37 +105,16 @@ OnLameShield: // TODO: Once MLP brings the Dragon Shield, replace with HMC Hat. if (rand(10000) > 9) goto L_Die; - getitem "DragonShield", 1; + getitem DragonShield, 1; end; OnLameHat: // Chance: 0.1% if (rand(1000) > 1) goto OnLameShield; - getitem "HMCPirateHat", 1; - end; - -OnCuoco: - // TODO: Detect alts? - getitem Naftalin, 15; + getitem HMCPirateHat, 1; end; -OnCuoco331: - areatimer 0, "033-1", 20, 20, 120, 110, 10, "#HolidayConfig::OnCuoco"; - goto OnCuoco; - -OnCuoco341: - areatimer 0, "034-1", 20, 20, 160, 110, 10, "#HolidayConfig::OnCuoco"; - goto OnCuoco; - -OnCuoco461: - areatimer 0, "046-1", 20, 20, 160, 115, 10, "#HolidayConfig::OnCuoco"; - goto OnCuoco; - -OnCuoco471: - areatimer 0, "047-1", 20, 20, 200, 180, 10, "#HolidayConfig::OnCuoco"; - goto OnCuoco; - L_Die: end; } |