summaryrefslogtreecommitdiff
path: root/npc/functions
diff options
context:
space:
mode:
authorJesusaves <cpntb1@ymail.com>2019-08-18 01:26:39 -0300
committerJesusaves <cpntb1@ymail.com>2019-08-18 01:26:39 -0300
commit960dee60bbd65262c951bfed1f8eea067d26a35f (patch)
tree653d0a3277ebbd4eceb9f093e2fdc364b1515e50 /npc/functions
parent7e6b82f9ee252e862e551493dc0836b0d98047f0 (diff)
downloadserverdata-960dee60bbd65262c951bfed1f8eea067d26a35f.tar.gz
serverdata-960dee60bbd65262c951bfed1f8eea067d26a35f.tar.bz2
serverdata-960dee60bbd65262c951bfed1f8eea067d26a35f.tar.xz
serverdata-960dee60bbd65262c951bfed1f8eea067d26a35f.zip
Minor improvements and corrections. This allows sieges to keep happening until
the Fortress is sieged itself.
Diffstat (limited to 'npc/functions')
-rw-r--r--npc/functions/gmbot.txt4
-rw-r--r--npc/functions/math.txt4
-rw-r--r--npc/functions/siege.txt5
3 files changed, 8 insertions, 5 deletions
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));