summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/script_commands.txt13
-rw-r--r--src/map/script.c26
2 files changed, 39 insertions, 0 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 5fbf652a4..26801c07c 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -5636,6 +5636,19 @@ IDs.
Returns 1 upon success and 0 for all failures.
+---------------------------------------
+
+*checkhomcall()
+
+This function checks if the attached player's Homunculus is active,
+and will return the following values:
+ -1: The player has no Homunculus.
+ 0: The player's Homunculus is active.
+ 1: The player's Homunculus is vaporized.
+ 2: The player's Homunculus is in morph state.
+
+---------------------------------------
+
*gethominfo(<type>)
This function works as a direct counterpart of 'getpetinfo':
diff --git a/src/map/script.c b/src/map/script.c
index 9a123705b..7e15b3372 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -9795,6 +9795,31 @@ BUILDIN(homunculus_shuffle) {
return true;
}
+/*==========================================
+ * Check for homunculus state.
+ * Return: -1 = No homunculus
+ * 0 = Homunculus is active
+ * 1 = Homunculus is vaporized (rest)
+ * 2 = Homunculus is in morph state
+ *------------------------------------------*/
+BUILDIN(checkhomcall)
+{
+ TBL_PC *sd = script_rid2sd(st);
+ TBL_HOM *hd;
+
+ if( sd == NULL )
+ return false;
+
+ hd = sd->hd;
+
+ if( !hd )
+ script_pushint(st, -1);
+ else
+ script_pushint(st, hd->homunculus.vaporize);
+
+ return true;
+}
+
//These two functions bring the eA MAPID_* class functionality to scripts.
BUILDIN(eaclass)
{
@@ -17401,6 +17426,7 @@ void script_parse_builtin(void) {
BUILDIN_DEF2(homunculus_evolution,"homevolution",""), //[orn]
BUILDIN_DEF2(homunculus_mutate,"hommutate","?"),
BUILDIN_DEF2(homunculus_shuffle,"homshuffle",""), //[Zephyrus]
+ BUILDIN_DEF(checkhomcall,""),
BUILDIN_DEF(eaclass,"?"), //[Skotlex]
BUILDIN_DEF(roclass,"i?"), //[Skotlex]
BUILDIN_DEF(checkvending,"?"),