Amon_PRC8/_module/nss/kryxplacestaff.nss

61 lines
1.3 KiB
Plaintext
Raw Permalink Normal View History

2025-04-03 19:00:46 -04:00
string sDeny;
/* Script generated by
Lilac Soul's NWN Script Generator, v. 1.6
For download info, please visit:
http://www.lilacsoul.revility.com */
//Put this OnUsed
void main()
{
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
if (GetItemPossessedBy(oPC, "KryxStaff")!= OBJECT_INVALID)
{
sDeny="You may only possess one of Kryx's Staves";
SendMessageToPC(oPC, sDeny);
return;
}
int DoOnce = GetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF));
if (DoOnce==TRUE) return;
SetLocalInt(OBJECT_SELF, GetTag(OBJECT_SELF), TRUE);
CreateItemOnObject("kryxstaff", oPC);
object oTarget;
location lTarget;
oTarget = GetWaypointByTag("Heijan");
lTarget = GetLocation(oTarget);
//only do the jump if the location is valid.
//though not flawless, we just check if it is in a valid area.
//the script will stop if the location isn't valid - meaning that
//nothing put after the teleport will fire either.
//the current location won't be stored, either
if (GetAreaFromLocation(lTarget)==OBJECT_INVALID) return;
oTarget=GetFirstFactionMember(oPC, FALSE);
while (GetIsObjectValid(oTarget))
{
AssignCommand(oTarget, ClearAllActions());
AssignCommand(oTarget, ActionJumpToLocation(lTarget));
oTarget=GetNextFactionMember(oPC, FALSE);
}
DestroyObject(OBJECT_SELF);
}