Initial commit
Initial commit.
This commit is contained in:
61
_module/nss/BookOfTownPortal.nss
Normal file
61
_module/nss/BookOfTownPortal.nss
Normal file
@@ -0,0 +1,61 @@
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
//:: ITM_BookOfTownPortal.nss
|
||||
////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
void main()
|
||||
{
|
||||
object oItem = GetItemActivated();
|
||||
object oPC = GetItemActivator();
|
||||
object oTownPortal;
|
||||
|
||||
if (GetTag(oItem) == "ITM_BookOfTownPortal")
|
||||
{
|
||||
if (GetTag(GetArea(oPC)) != "TRISTRAM")
|
||||
{
|
||||
if (GetTag(GetArea(oPC)) != "NOTOWNPORTAL")
|
||||
{
|
||||
// if player already has a town portal destroy it
|
||||
oTownPortal = GetLocalObject(oPC,"TownPortal");
|
||||
if (oTownPortal != OBJECT_INVALID) DestroyObject(oTownPortal);
|
||||
|
||||
// create new town portal at player location
|
||||
oTownPortal = CreateObject(OBJECT_TYPE_PLACEABLE,"townportal",GetLocation(oPC));
|
||||
SetLocalObject(oPC,"TownPortal",oTownPortal);
|
||||
switch (d6())
|
||||
{
|
||||
case 1: AssignCommand(oTownPortal,PlaySound("sco_lgrinholy01")); break;
|
||||
case 2: AssignCommand(oTownPortal,PlaySound("sco_lgsprholy01")); break;
|
||||
case 3: AssignCommand(oTownPortal,PlaySound("sco_lgupholy01")); break;
|
||||
case 4: AssignCommand(oTownPortal,PlaySound("sco_lgrinodd01")); break;
|
||||
case 5: AssignCommand(oTownPortal,PlaySound("sco_lgsprodd01")); break;
|
||||
case 6: AssignCommand(oTownPortal,PlaySound("sco_mehanodd03")); break;
|
||||
}
|
||||
DelayCommand(0.3,
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT,EffectVisualEffect(VFX_FNF_SMOKE_PUFF),oTownPortal));
|
||||
DelayCommand(0.5,SignalEvent(oTownPortal,EventUserDefined(9000)));
|
||||
|
||||
// if there is no town portal in Tristram create one
|
||||
oTownPortal = GetLocalObject(OBJECT_SELF,"TownPortal");
|
||||
if (!GetIsObjectValid(oTownPortal))
|
||||
{
|
||||
oTownPortal = CreateObject(OBJECT_TYPE_PLACEABLE,"townportal",GetLocation(GetObjectByTag("WP_TownPortal")));
|
||||
SetLocalObject(OBJECT_SELF,"TownPortal",oTownPortal);
|
||||
DelayCommand(0.6,SignalEvent(oTownPortal,EventUserDefined(9000)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FloatingTextStringOnCreature("The spell fizzles! The town portal does not work here!", oPC);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
FloatingTextStringOnCreature("The spell fizzles! You're already in town!", oPC);
|
||||
}
|
||||
}
|
||||
ExecuteScript("dmfi_activate", OBJECT_SELF);
|
||||
ExecuteScript("69_activateheal", OBJECT_SELF);
|
||||
//ExecuteScript("s_apocalypse", OBJECT_SELF);
|
||||
//ExecuteScript("s_teleport", OBJECT_SELF);
|
||||
ExecuteScript(GetTag(GetItemActivated()), OBJECT_SELF);
|
||||
}
|
Reference in New Issue
Block a user