From e6b45dd0db67ccc4522d445c1f2adbf7ebf41ce5 Mon Sep 17 00:00:00 2001
From: Jesusaves <cpntb1@ymail.com>
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(-)

(limited to 'npc')

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-70-g09d2