From 356d9693d69c43f2a66f7e60aa10483803b50951 Mon Sep 17 00:00:00 2001 From: Jesusaves Date: Sun, 11 Apr 2021 15:11:22 -0300 Subject: Add several changes from 2018 which had been excluded by accident =/ --- npc/functions/ghost.txt | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 npc/functions/ghost.txt (limited to 'npc/functions/ghost.txt') diff --git a/npc/functions/ghost.txt b/npc/functions/ghost.txt new file mode 100644 index 00000000..1325525b --- /dev/null +++ b/npc/functions/ghost.txt @@ -0,0 +1,36 @@ +function script SpawnGhost { + if ($GHOSTS_DISABLED) + goto L_Return; + + if (BaseLevel >= 40 && + (getmapname() == "026-1" || + getmapname() == "027-1" || + getmapname() == "027-2" || + getmapname() == "027-3" || + getmapname() == "027-4" || + getmapname() == "027-5")) + goto L_Spawn; + return; + +L_Spawn: + .@x = POS_X; + .@y = POS_Y; + + if (!(iscollision(getmapname(), .@x, .@y - 1))) set .@y, .@y - 1; // up + else if (!(iscollision(getmapname(), .@x, .@y + 1))) set .@y, .@y + 1; // down + else if (!(iscollision(getmapname(), .@x - 1, .@y))) set .@x, .@x - 1; // left + else if (!(iscollision(getmapname(), .@x + 1, .@y))) set .@x, .@x + 1; // right + // else on the player + + // FIXME (Is this a valid event label??) + if (@GHOST_MAP$ != "") + killmonster @GHOST_MAP$, "~GH~" + getcharid(0); + + @GHOST_MAP$ = getmapname(); + specialeffect(39, SELF, getcharid(3)); + monster getmapname(), .@x, .@y, strcharinfo(0), 1136, 1, "~GH~" + getcharid(0); + return; + +L_Return: + return; +} -- cgit v1.2.3-60-g2f50