From 960dee60bbd65262c951bfed1f8eea067d26a35f Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sun, 18 Aug 2019 01:26:39 -0300 Subject: Minor improvements and corrections. This allows sieges to keep happening until the Fortress is sieged itself. --- npc/functions/gmbot.txt | 4 ++-- npc/functions/math.txt | 4 +++- npc/functions/siege.txt | 5 +++-- 3 files changed, 8 insertions(+), 5 deletions(-) (limited to 'npc/functions') diff --git a/npc/functions/gmbot.txt b/npc/functions/gmbot.txt index 2fc06044a..8ad416cce 100644 --- a/npc/functions/gmbot.txt +++ b/npc/functions/gmbot.txt @@ -141,14 +141,14 @@ OnTimer90000: debugmes "Monster King (bot): "+.mp$+" ("+.@x+", "+.@y+")"; // If too few players are online, we don't need an event AT ALL! - if (.users < rand(2,4)) { + if (.users < rand2(2,4)) { initnpctimer; end; } // Siege events (req. 300 aggro, 3 users, and 70% chances to begin) if ($@MK_AGGRO >= 300 && .users >= 3 && rand(0,100) < 70 && - $GAME_STORYLINE == 2 && $@MK_THROTTLE < gettimetick(2)){ + is_between(1, 3, $GAME_STORYLINE) && $@MK_THROTTLE < gettimetick(2)){ // Tulimshar if (.mp$ ~= "003-*") { announce ("Monster King: I smell humans! Humans must die!"), bc_map|bc_npc; diff --git a/npc/functions/math.txt b/npc/functions/math.txt index 068d46cba..fc27bec40 100644 --- a/npc/functions/math.txt +++ b/npc/functions/math.txt @@ -73,7 +73,9 @@ function script log2 { // is_between ( lower, higher, target) function script is_between { .@val=getarg(2); - return (getarg(0) < .@val && getarg(1) >= .@val); + .@min=getarg(0); + .@max=getarg(1); + return (.@min < .@val && .@val <= .@max); } diff --git a/npc/functions/siege.txt b/npc/functions/siege.txt index baca59a63..98a600dc8 100644 --- a/npc/functions/siege.txt +++ b/npc/functions/siege.txt @@ -191,10 +191,11 @@ function script siege_check { .@mb+=mobcount(.@m$, "#SiegeCtrl::OnColonelDeath"); .@mb+=mobcount(.@m$, "#SiegeCtrl::OnGeneralDeath"); - // Players failed, so reduce score in 1 + // Players failed, so reduce score in 1~10 (like Sergeant~General). + // In future, it could be inverse proportion (-9 for sergeant, -1 for general) if (.@mb) { if ($GAME_STORYLINE == 2) - $MK_TEMPVAR-=1; + $MK_TEMPVAR-=rand2(1, 10); kamibroadcast("Players failed to defend the city!!"); debugmes "Number of boss grade monsters found: %d", .@mb; $SIEGE_DIFFICULTY=max(1, ($SIEGE_DIFFICULTY/2)); -- cgit v1.2.3-60-g2f50