summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/script-fun.cpp22
1 files changed, 20 insertions, 2 deletions
diff --git a/src/map/script-fun.cpp b/src/map/script-fun.cpp
index 2c09ba6..e4ecdf1 100644
--- a/src/map/script-fun.cpp
+++ b/src/map/script-fun.cpp
@@ -3201,8 +3201,8 @@ void builtin_summon(ScriptState *st)
}
mob->mode |=
- MobMode::SUMMONED | MobMode::TURNS_AGAINST_BAD_MASTER;
-
+ MobMode::SUMMONED; // | MobMode::TURNS_AGAINST_BAD_MASTER; <- its fun but bugged.
+ // This flag identified to be source of AFK PK city exploits, etc.
mob->deletetimer = Timer(gettick() + lifespan,
std::bind(mob_timer_delete, ph::_1, ph::_2,
mob_id));
@@ -3740,6 +3740,23 @@ void builtin_aggravate(ScriptState *st)
}
/*==========================================
+ * Check for summoned creature
+ *------------------------------------------
+ */
+static
+void builtin_issummon(ScriptState *st)
+{
+ dumb_ptr<mob_data> md = map_id_is_mob(wrap<BlockId>(conv_num(st, &AARG(0))));
+ int val = 0;
+ if (md)
+ {
+ val = bool(md->mode & MobMode::SUMMONED);
+ }
+
+ push_int<ScriptDataInt>(st->stack, val);
+}
+
+/*==========================================
* エリア指定ユーザー数所得
* Area Designated User Income
*------------------------------------------
@@ -5770,6 +5787,7 @@ BuiltinFunction builtin_functions[] =
BUILTIN(shop, "s"_s, '\0'),
BUILTIN(isdead, ""_s, 'i'),
BUILTIN(aggravate, "i?"_s, '\0'),
+ BUILTIN(issummon, "i"_s, 'i'),
BUILTIN(fakenpcname, "ssi"_s, '\0'),
BUILTIN(puppet, "mxysi??"_s, 'i'),
BUILTIN(destroy, "?"_s, '\0'),