From 55ca2cc74a8e6c211a9403aa1152019c0116469f Mon Sep 17 00:00:00 2001 From: Jared Adams Date: Tue, 20 Oct 2009 18:37:34 -0600 Subject: Adjust Soul Menhirs for better respawn points --- npc/001-1_Tulimshar/soul-menhir.txt | 6 ++++-- npc/009-1_Hurnscald/soul-menhir.txt | 6 ++++-- npc/020-1_Nivalis/soul-menhir.txt | 6 ++++-- npc/functions/soul_menhir.txt | 10 ++++++++++ 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/npc/001-1_Tulimshar/soul-menhir.txt b/npc/001-1_Tulimshar/soul-menhir.txt index 58e450a6..eacdd9e8 100644 --- a/npc/001-1_Tulimshar/soul-menhir.txt +++ b/npc/001-1_Tulimshar/soul-menhir.txt @@ -2,8 +2,10 @@ 001-1.gat,38,69,0 script Soul Menhir 144, { set @map$, "001-1.gat"; - set @x, 38; - set @y, 70; + setarray @Xs, 37, 38, 39, 37, 39, 37, 39; + setarray @Ys, 68, 68, 68, 69, 69, 70, 70; + set @x, 0; + set @y, 0; callfunc "SoulMenhir"; close; } diff --git a/npc/009-1_Hurnscald/soul-menhir.txt b/npc/009-1_Hurnscald/soul-menhir.txt index 5de1f9c2..d62a1275 100644 --- a/npc/009-1_Hurnscald/soul-menhir.txt +++ b/npc/009-1_Hurnscald/soul-menhir.txt @@ -2,8 +2,10 @@ 009-1.gat,53,40,0 script Soul Menhir 144, { set @map$, "009-1.gat"; - set @x, 53; - set @y, 41; + setarray @Xs, 52, 53, 54, 52, 54, 52, 54; + setarray @Ys, 39, 39, 39, 40, 40, 41, 41; + set @x, 0; + set @y, 0; callfunc "SoulMenhir"; close; } diff --git a/npc/020-1_Nivalis/soul-menhir.txt b/npc/020-1_Nivalis/soul-menhir.txt index 7cfcbe97..4da72853 100644 --- a/npc/020-1_Nivalis/soul-menhir.txt +++ b/npc/020-1_Nivalis/soul-menhir.txt @@ -2,8 +2,10 @@ 020-1.gat,64,89,0 script Soul Menhir 144, { set @map$, "020-1.gat"; - set @x, 64; - set @y, 90; + setarray @Xs, 63, 64, 65, 63, 65, 63, 65; + setarray @Ys, 88, 88, 88, 89, 89, 90, 90; + set @x, 0; + set @y, 0; callfunc "SoulMenhir"; close; } diff --git a/npc/functions/soul_menhir.txt b/npc/functions/soul_menhir.txt index 25ccc4db..29701b07 100644 --- a/npc/functions/soul_menhir.txt +++ b/npc/functions/soul_menhir.txt @@ -30,7 +30,17 @@ L_Shortversion: next; L_Save: + if (@x == 0 && @y == 0) goto L_FindPoint; + +L_Do_Save: savepoint @map$, @x, @y; + goto L_Return; + +L_FindPoint: + set @n, rand(0, getarraysize(@Xs)); + set @x, @Xs[@n]; + set @y, @Ys[@n]; + goto L_Do_Save; L_Return: return; -- cgit v1.2.3-60-g2f50