summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--doc/script_commands.txt12
-rw-r--r--src/map/script.c14
2 files changed, 19 insertions, 7 deletions
diff --git a/doc/script_commands.txt b/doc/script_commands.txt
index 978e48183..f9d5c0059 100644
--- a/doc/script_commands.txt
+++ b/doc/script_commands.txt
@@ -6049,17 +6049,19 @@ sprite based sprite id in 'db/mob-avail.txt' with this.
---------------------------------------
-*movenpc <NPC name>,x,y;
+*movenpc "<NPC name>",<x>,<y>{,<dir>};
This command looks like the NPCWalkToxy function,but is a little different.
-While NPCWalkToXY just makes the NPC 'walk' to the coordinates given
-(which sometimes gives problems if the path isn't a straight line without objects),
-this command just moves the NPC. It basically warps out and in on the current and given spot.
+While NPCWalkToXY just makes the NPC 'walk' to the coordinates given (which
+sometimes gives problems if the path isn't a straight line without objects),
+this command just moves the NPC. It basically warps out and in on the current
+and given spot. Direction can be used to change the NPC's facing direction.
Example(s):
-//This will move Bugga from it's current position to the coordinates 100,20 (if those coordinates are walkable (legit)).
+// This will move Bugga from it's current position to the coordinates 100,20
+// (if those coordinates are walkable (legit)).
moveNPC "Bugga",100,20;
---------------------------------------
diff --git a/src/map/script.c b/src/map/script.c
index 72e99e8ef..4e874b5f0 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -11438,7 +11438,15 @@ BUILDIN_FUNC(specialeffect)
clif_specialeffect(&nd->bl, type, target);
}
else
- clif_specialeffect(bl, type, target);
+ {
+ if (target == SELF) {
+ TBL_PC *sd=script_rid2sd(st);
+ if (sd)
+ clif_specialeffect_single(bl,type,sd->fd);
+ } else {
+ clif_specialeffect(bl, type, target);
+ }
+ }
return 0;
}
@@ -11771,6 +11779,8 @@ BUILDIN_FUNC(movenpc)
if ((nd = npc_name2id(npc)) == NULL)
return -1;
+ if (script_hasdata(st,5))
+ nd->ud.dir = script_getnum(st,5);
npc_movenpc(nd, x, y);
return 0;
}
@@ -15081,7 +15091,7 @@ struct script_function buildin_func[] = {
BUILDIN_DEF(mapwarp,"ssii??"), // Added by RoVeRT
BUILDIN_DEF(atcommand,"s"), // [MouseJstr]
BUILDIN_DEF(charcommand,"s"), // [MouseJstr]
- BUILDIN_DEF(movenpc,"sii"), // [MouseJstr]
+ BUILDIN_DEF(movenpc,"sii?"), // [MouseJstr]
BUILDIN_DEF(message,"ss"), // [MouseJstr]
BUILDIN_DEF(npctalk,"s"), // [Valaris]
BUILDIN_DEF(mobcount,"ss"),