function script SoulMenhir { mes "[Soul Menhir]"; mes "(A mystical aura surrounds this stone. You feel mysteriously attracted to it. Something tells you to touch it. What do you do?)"; menu "Touch it.", L_Bind, "Leave it alone.", L_Return; //L_Towel: // if (TowelLastUsed > (gettimetick(2) - 1800)) // goto L_DontPanic; // TowelLastUsed = gettimetick(2); // mes "[Soul Menhir]"; // mes "(You touch the mysterious stone. Somehow it feels hard and soft at the same time.)"; // getitem "HitchhikersTowel", 1; // goto L_Return; L_Bind: if (Menhir_Activated == 1) goto L_Shortversion; mes "[Soul Menhir]"; mes "(You touch the mysterious stone. Somehow it feels warm and cold at the same time.)"; mes "(Suddenly a strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone.)"; mes "(As suddenly as the feeling started it stops. The strange attraction is away from one moment to the next and the menhir feels like just an ordinary stone.)"; Menhir_Activated = 1; goto L_Save; L_Shortversion: mes "[Soul Menhir]"; mes "(A strange sensation flows through you. It feels like your soul leaves your body and becomes one with the stone. As suddenly as the feeling started it stops.)"; goto L_Save; L_Save: if (@x == 0 && @y == 0) goto L_FindPoint; goto L_Do_Save; L_DontPanic: message strcharinfo(0), "(A strange barrier keeps you from touching the stone at this time.)"; goto L_Return; L_Do_Save: savepoint @map$, @x, @y; specialeffect(4, SELF, getcharid(3)); // As we have a dialog box open, this function produces an undesirable player talk. //savepointparticle @map$, @x, @y, NO_INN; goto L_Return; L_FindPoint: @n = rand(getarraysize(@Xs)); @x = @Xs[@n]; @y = @Ys[@n]; goto L_Do_Save; L_Return: return; }