summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/script_commands.txt5
-rw-r--r--src/map/script.c21
2 files changed, 25 insertions, 1 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 6e6c9127f..6ce6b186f 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -2766,7 +2766,10 @@ Type is the type of object to search for:
0 - Character object
1 - NPC object
2 - Pet object
- 3 - Monster object.
+ 3 - Monster object
+ 4 - Homunculus object
+ 5 - Mercenary object
+ 6 - Elemental object
While 3 is meant to look for a monster object, no searching will be done if you
specify type 3, and the function will always return -1.
diff --git a/src/map/script.c b/src/map/script.c
index 8c3ce0e1f..f83264315 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -48,6 +48,7 @@
#include "mail.h"
#include "script.h"
#include "quest.h"
+#include "elemental.h"
#include <stdio.h>
#include <stdlib.h>
@@ -12370,6 +12371,8 @@ BUILDIN_FUNC(getsavepoint)
* 2 - Pet coord
* 3 - Mob coord (not released)
* 4 - Homun coord
+ * 5 - Mercenary coord
+ * 6 - Elemental coord
* CharName$ - Name object. If miss or "this" the current object
*
* Return:
@@ -12447,6 +12450,24 @@ BUILDIN_FUNC(getmapxy)
if (sd && sd->hd)
bl = &sd->hd->bl;
break;
+ case 5: //Get Mercenary Position
+ if(script_hasdata(st,6))
+ sd=map_nick2sd(script_getstr(st,6));
+ else
+ sd=script_rid2sd(st);
+
+ if (sd && sd->md)
+ bl = &sd->md->bl;
+ break;
+ case 6: //Get Elemental Position
+ if(script_hasdata(st,6))
+ sd=map_nick2sd(script_getstr(st,6));
+ else
+ sd=script_rid2sd(st);
+
+ if (sd && sd->ed)
+ bl = &sd->ed->bl;
+ break;
default:
ShowWarning("script: buildin_getmapxy: Invalid type %d\n", type);
script_pushint(st,-1);