From e6b45dd0db67ccc4522d445c1f2adbf7ebf41ce5 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Tue, 16 Apr 2019 00:24:49 -0300 Subject: Hurnscald Siege Pre Alpha --- npc/012-1/guards.txt | 202 ++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 201 insertions(+), 1 deletion(-) diff --git a/npc/012-1/guards.txt b/npc/012-1/guards.txt index 4238af41c..be93bc603 100644 --- a/npc/012-1/guards.txt +++ b/npc/012-1/guards.txt @@ -186,7 +186,7 @@ OnInit: // Liberation Day Script -003-1,122,25,0 script Hurnsguard NPC_PLAYER,{ +012-1,122,25,0 script Hurnsguard NPC_PLAYER,{ query_sql("SELECT online FROM `char` WHERE name='Saulc GM'", .@online); if (!.@online) { mesn; @@ -588,3 +588,203 @@ OnInit: end; } + + +012-1,0,0,0 script #HurnscaldSiege NPC_HIDDEN,{ + end; +OnBlackScorpionDeath: + areamonster("014-3", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "#HurnscaldSiege::OnBlackScorpionDeath"); + getmapxy(.@m$,.@x,.@y,3); + if (rand(10000) <= 90+($@SIEGE_HURNS*100)) + makeitem StrangeCoin, 1, .@m$, .@x, .@y; + end; + +OnBlackScorpion2Death: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, BlackScorpion), BlackScorpion, 1, "#HurnscaldSiege::OnBlackScorpion2Death"); + getmapxy(.@m$,.@x,.@y,3); + if (rand(10000) <= 850+($@SIEGE_HURNS*100)) + makeitem StrangeCoin, 1, .@m$, .@x, .@y; + end; + +OnGreenSlimeDeath: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, GreenSlime), GreenSlime, 1, "#HurnscaldSiege::OnGreenSlimeDeath"); + getmapxy(.@m$,.@x,.@y,3); + if (rand(10000) <= 200+($@SIEGE_HURNS*100)) + makeitem StrangeCoin, 1, .@m$, .@x, .@y; + end; + +OnCandiedSlimeDeath: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, CandiedSlime), CandiedSlime, 1, "#HurnscaldSiege::OnCandiedSlimeDeath"); + getmapxy(.@m$,.@x,.@y,3); + if (rand(10000) <= 150+($@SIEGE_HURNS*100)) + makeitem StrangeCoin, 1, .@m$, .@x, .@y; + end; + +OnManaGhostDeath: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), ManaGhost, 1, "#HurnscaldSiege::OnManaGhostDeath"); + getmapxy(.@m$,.@x,.@y,3); + if (rand(10000) <= 900+($@SIEGE_HURNS*100)) + makeitem StrangeCoin, 1, .@m$, .@x, .@y; + end; + +OnLieutenantDeath: + getitem StrangeCoin, 1; + Karma=Karma+1; + mapannounce("012-1", l("##2The Monster Lieutenant was defeated by @@!", strcharinfo(0)), bc_map); + end; + +OnColonelDeath: + getitem StrangeCoin, 1; + Karma=Karma+1; + $MOST_HEROIC$=strcharinfo(0); + mapannounce("012-1", l("##2The Monster Colonel was defeated by @@!", strcharinfo(0)), bc_map); + end; + +OnMKSiege: + addmapmask "012-1", MASK_MATTACK; + addmapmask "012-3", MASK_MATTACK; + changemusic "012-1", any("mythica.ogg", "eric_matyas_ghouls.ogg", "misuse.ogg", "Arabesque.ogg"); + disablenpc("Mana Stone"); + $@SIEGE_HURNS=($@MK_AGGRO/30); // Each 30 aggro raises difficulty in 1 + pvpon("012-1"); + pvpon("012-3"); + announce(("##1WARNING! WARNING! Siege starting at Hurnscald!!"), bc_all); + areamonster("012-3", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, BlackScorpion), BlackScorpion, 10, "#HurnscaldSiege::OnBlackScorpionDeath"); + initnpctimer; + end; + +// Timers +OnTimer5000: + areamonster("014-3", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, "Black Scorpion", BlackScorpion, 5+$@SIEGE_HURNS, "#HurnscaldSiege::OnBlackScorpionDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, "Black Scorpion", BlackScorpion, 5+$@SIEGE_HURNS, "#HurnscaldSiege::OnBlackScorpion2Death"); + mapannounce("012-1", "##2Message to all Hurnscald NPCs: Take shelter!", bc_map); + disablenpc "Gwendolyn"; + disablenpc "Milly"; + disablenpc "LOFBot"; + disablenpc "Locamit"; + disablenpc "Andrei Sakar"; + disablenpc "Luffyx"; + disablenpc "Tezzerin"; + disablenpc "Hinnak"; + disablenpc "Igor"; + disablenpc "Dyrin The Traveler"; + disablenpc "Mahad"; + disablenpc "Jack"; + end; + +OnTimer15000: + areamonster("014-3", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, "Black Scorpion", BlackScorpion, 5+$@SIEGE_HURNS, "#HurnscaldSiege::OnBlackScorpionDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, "Black Scorpion", BlackScorpion, 5+$@SIEGE_HURNS, "#HurnscaldSiege::OnBlackScorpion2Death"); + disablenpc "Shoppa Kep"; + disablenpc "Richard"; + + disablenpc "Celestia"; + disablenpc "Airlia"; + disablenpc "Nicholas"; + disablenpc "Wyara"; + disablenpc "Alan"; + disablenpc "Khafar"; + disablenpc "Melina"; + disablenpc "Helena"; + disablenpc "Rakinorf, Mayor"; + end; + +OnTimer60000: + if ($@SIEGE_HURNS == 1) { + mapannounce("012-1", "##1The Monster Lieutenant arrived!", bc_map); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Monster Lieutenant"), 1077, 1, "#HurnscaldSiege::OnLieutenantDeath"); + } + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Black Scorpion"), BlackScorpion, 3, "#HurnscaldSiege::OnBlackScorpion2Death"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, GreenSlime), 1085, 10+$@SIEGE_HURNS, "#HurnscaldSiege::OnGreenSlimeDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, CandiedSlime), 1089, 1+$@SIEGE_HURNS, "#HurnscaldSiege::OnCandiedSlimeDeath"); + end; + +OnTimer120000: + if ($@SIEGE_HURNS == 5) { + mapannounce("012-1", "##1The Monster Colonel arrived!", bc_map); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Monster Colonel"), 1036, 1, "#HurnscaldSiege::OnColonelDeath"); + } + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 15); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Black Scorpion"), BlackScorpion, 1, "#HurnscaldSiege::OnBlackScorpion2Death"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, GreenSlime), 1085, 10, "#HurnscaldSiege::OnGreenSlimeDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), 1068, 2, "#HurnscaldSiege::OnManaGhostDeath"); + end; + +OnTimer180000: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 25); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Black Scorpion"), BlackScorpion, 1, "#HurnscaldSiege::OnBlackScorpion2Death"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, CandiedSlime), 1089, 10, "#HurnscaldSiege::OnCandiedSlimeDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), 1068, 2, "#HurnscaldSiege::OnManaGhostDeath"); + end; + +OnTimer240000: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 25); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Black Scorpion"), BlackScorpion, 1, "#HurnscaldSiege::OnBlackScorpion2Death"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), 1068, 2, "#HurnscaldSiege::OnManaGhostDeath"); + end; + +OnTimer300000: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 5); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, CandiedSlime), 1089, 1, "#HurnscaldSiege::OnCandiedSlimeDeath"); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), 1068, 1, "#HurnscaldSiege::OnManaGhostDeath"); + end; + +OnTimer360000: +OnTimer420000: +OnTimer480000: + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_HURNS); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, ("Red Slime"), 1092, 1+$@SIEGE_HURNS); + end; + +OnTimer540000: + mapannounce("012-1", "##1The Monster Army is getting tired of resistance!", bc_map); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, SlimeBlast), 1090, 5+$@SIEGE_HURNS); + areamonster("012-1", 20, 20, getmapinfo(MAPINFO_SIZE_X)-20, getmapinfo(MAPINFO_SIZE_X)-20, strmobinfo(1, ManaGhost), 1068, 1, "#HurnscaldSiege::OnManaGhostDeath"); + end; + +OnTimer600000: + $@MK_SCENE=MK_NONE; + $@MK_AGGRO=$@MK_AGGRO/20; + mapannounce("012-1", "##1The Monster King army is preparing to withdraw!", bc_map); + end; +OnTimer630000: + removemapmask "012-1", MASK_MATTACK; + removemapmask "014-3", MASK_MATTACK; + changemusic "012-1", "caketown.ogg"; // Restore to default + enablenpc("Mana Stone"); + $@SIEGE_HURNS=0; + killmonsterall("012-1", 0); + killmonsterall("014-3", 0); + pvpoff("012-1"); + pvpoff("014-3"); + announce(("Hurnscald siege is over!"), bc_all); + enablenpc "Gwendolyn"; + enablenpc "Milly"; + enablenpc "LOFBot"; + enablenpc "Locamit"; + enablenpc "Andrei Sakar"; + enablenpc "Luffyx"; + enablenpc "Tezzerin"; + enablenpc "Hinnak"; + enablenpc "Igor"; + enablenpc "Dyrin The Traveler"; + enablenpc "Mahad"; + enablenpc "Jack"; + enablenpc "Shoppa Kep"; + enablenpc "Richard"; + enablenpc "Celestia"; + enablenpc "Airlia"; + enablenpc "Nicholas"; + enablenpc "Wyara"; + enablenpc "Alan"; + enablenpc "Khafar"; + enablenpc "Melina"; + enablenpc "Helena"; + enablenpc "Rakinorf, Mayor"; + stopnpctimer; + end; + +OnInit: + end; +} + -- cgit v1.2.3-60-g2f50