diff options
-rw-r--r-- | npc/functions/gmbot.txt | 20 | ||||
-rw-r--r-- | npc/functions/news.txt | 3 |
2 files changed, 14 insertions, 9 deletions
diff --git a/npc/functions/gmbot.txt b/npc/functions/gmbot.txt index 8ad416cce..b04c40002 100644 --- a/npc/functions/gmbot.txt +++ b/npc/functions/gmbot.txt @@ -149,31 +149,36 @@ OnTimer90000: // Siege events (req. 300 aggro, 3 users, and 70% chances to begin) if ($@MK_AGGRO >= 300 && .users >= 3 && rand(0,100) < 70 && is_between(1, 3, $GAME_STORYLINE) && $@MK_THROTTLE < gettimetick(2)){ + // Delta handles the compulsory wait time between waves. + // 6 hours normally, 12 hours if the army is in disarray. + .@delta=6; + if ($GAME_STORYLINE == 3) + .@delta=12; // Tulimshar if (.mp$ ~= "003-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+.@delta*60*60; $@MK_SCENE=MK_SIEGE_TULIM; donpcevent("Lieutenant Dausen::OnMKSiege"); } // Halinarzo else if (.mp$ ~= "009-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+.@delta*60*60; $@MK_SCENE=MK_SIEGE_HALIN; donpcevent("Lieutenant Jacob::OnMKSiege"); } // Hurnscald else if (.mp$ ~= "012-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+.@delta*60*60; $@MK_SCENE=MK_SIEGE_HURNS; donpcevent("#HurnscaldSiege::OnMKSiege"); } // Nivalis else if (.mp$ ~= "020-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; - $@MK_THROTTLE=gettimetick(2)+8*60*60; + $@MK_THROTTLE=gettimetick(2)+.@delta*60*60; $@MK_SCENE=MK_SIEGE_NIVAL; donpcevent("Lieutenant Joshua::OnMKSiege"); } @@ -182,18 +187,15 @@ OnTimer90000: // If a player is nearby while the Monster King prepares, event may happen // Minimum 60 Aggro if (.nearby > 1 && $@MK_AGGRO >= 80 && - ($GAME_STORYLINE == 1 || $GAME_STORYLINE == 3)){ + ($GAME_STORYLINE == 1 || ($GAME_STORYLINE == 3 && $@MK_THROTTLE >= gettimetick(2)) )){ // We should decide event kind, but that's NYI announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; getmapxy(.@m$, .@x, .@y, UNITTYPE_MOB, $@MK); - // 50% more monsters at night time - if (is_night()) - $@MK_AGGRO=$@MK_AGGRO*3/2; // Spawn stuff areamonster(.@m$, .@x-20, .@y-20, .@x+20, .@y+20, "Monster", ManaGhost, ($@MK_AGGRO/10)+.nearby, "Monster King::OnSlaveDie"); - $@MK_AGGRO=$@MK_AGGRO/5; + $@MK_AGGRO=($@MK_AGGRO*$GAME_STORYLINE)/5; } // Maybe, just maybe, game storyline must be updated here diff --git a/npc/functions/news.txt b/npc/functions/news.txt index 4ee44f102..1462f869f 100644 --- a/npc/functions/news.txt +++ b/npc/functions/news.txt @@ -424,6 +424,9 @@ function script Journalman { mesc l("The Monster King Army is attacking towns at random, but players already reduced their organization to @@ %%!", .@def); mesc l("With recent player activity, the Monster king is @@!", .@st$); break; + case 3: + mesc l("The Monster Army is in complete disarray, sieges are much less frequent."); + break; default: Exception(l("I do now know what this means: GS-@@-ICXN-@@", $GAME_STORYLINE, $@MK_TEMPVAR), RB_DEFAULT|RB_SPEECH); break; } |