Added NESS. Updated Level 10
Added NESS. Updated Level 10. Full compile.
This commit is contained in:
57
Module/nss/lvl10_tp_mover.nss
Normal file
57
Module/nss/lvl10_tp_mover.nss
Normal file
@@ -0,0 +1,57 @@
|
||||
// Clears all actions and jumps the caller to the provided object.
|
||||
// (Useful when this needs to be delayed.)
|
||||
void ClearAndJumpToObject(object oDestination);
|
||||
void ClearAndJumpToObject(object oDestination)
|
||||
{
|
||||
ClearAllActions();
|
||||
JumpToObject(oDestination);
|
||||
}
|
||||
|
||||
|
||||
void main()
|
||||
{
|
||||
int nHench;
|
||||
object oHench;
|
||||
effect eVFX;
|
||||
object oTarget;
|
||||
|
||||
// Get the creature who triggered this event.
|
||||
object oPC = GetEnteringObject();
|
||||
|
||||
// Only fire for (real) PCs.
|
||||
if ( !GetIsPC(oPC) || GetIsDMPossessed(oPC) )
|
||||
return;
|
||||
|
||||
// Find the location to which to teleport.
|
||||
oTarget = GetWaypointByTag(GetLocalString(OBJECT_SELF,"DESTINATION"));
|
||||
|
||||
// Teleport the PC.
|
||||
eVFX = EffectVisualEffect(VFX_IMP_UNSUMMON);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oPC);
|
||||
DelayCommand(3.0, AssignCommand(oPC, ClearAndJumpToObject(oTarget)));
|
||||
|
||||
// Also teleport associates (but no visual effect for them).
|
||||
oHench = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, oPC);
|
||||
DelayCommand(3.1, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
|
||||
oHench = GetAssociate(ASSOCIATE_TYPE_DOMINATED, oPC);
|
||||
DelayCommand(3.1, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
|
||||
oHench = GetAssociate(ASSOCIATE_TYPE_FAMILIAR, oPC);
|
||||
DelayCommand(3.1, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
|
||||
oHench = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC);
|
||||
DelayCommand(3.1, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
|
||||
|
||||
// Support for multiple henchmen (includes horses).
|
||||
nHench = 1;
|
||||
oHench = GetHenchman(oPC, 1);
|
||||
while ( oHench != OBJECT_INVALID )
|
||||
{
|
||||
DelayCommand(3.1, AssignCommand(oHench, ClearAndJumpToObject(oTarget)));
|
||||
// Next henchman.
|
||||
oHench = GetHenchman(oPC, ++nHench);
|
||||
}
|
||||
|
||||
// Apply a visual effect.
|
||||
eVFX = EffectVisualEffect(472);
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVFX, oPC);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user