diff options
-rw-r--r-- | doc/script_commands.txt | 12 | ||||
-rw-r--r-- | src/map/script.c | 14 |
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"), |