Initial upload
Initial upload. PRC8 has been added. Module compiles, PRC's default AI & treasure scripts have been integrated. Started work on top hak for SLA / Ability / Scripting modifications.
This commit is contained in:
98
_module/nss/tri_towaopal.nss
Normal file
98
_module/nss/tri_towaopal.nss
Normal file
@@ -0,0 +1,98 @@
|
||||
void main()
|
||||
{
|
||||
|
||||
//Checks for a gem, if the right gem, kill the guardians and opens doors
|
||||
//By Trito
|
||||
|
||||
object oObject=GetInventoryDisturbItem();
|
||||
// Run this when something is added to the inventory
|
||||
if (GetInventoryDisturbType()==INVENTORY_DISTURB_TYPE_ADDED)
|
||||
{
|
||||
// The Item placed in it is NOT the right object
|
||||
// .. so tells the PC
|
||||
if ((GetTag(oObject)!="tri_toweropal"))
|
||||
{
|
||||
ActionSpeakString("Nothing Happens");
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
// The item placed in the inventory IS the right gem
|
||||
if ((GetTag(oObject)=="tri_toweropal"))
|
||||
{
|
||||
|
||||
SetPlotFlag(oObject, FALSE);
|
||||
DestroyObject(oObject);
|
||||
|
||||
effect eExplode = EffectVisualEffect(VFX_FNF_STRIKE_HOLY);
|
||||
location lTarget = GetLocation(OBJECT_SELF);
|
||||
|
||||
SpeakString("The opal shatters and you hear doors unlock at a distance", TALKVOLUME_TALK);
|
||||
|
||||
|
||||
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eExplode, lTarget);
|
||||
|
||||
effect eDam;
|
||||
effect eRay;
|
||||
effect eVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
|
||||
object oTarget;
|
||||
int nDamage;
|
||||
nDamage=400;
|
||||
oTarget = GetObjectByTag("tri_battlhorror" );
|
||||
|
||||
eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);
|
||||
eRay = EffectBeam(VFX_BEAM_HOLY, OBJECT_SELF, BODY_NODE_HAND);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
|
||||
//get the second guardian and kill it
|
||||
|
||||
oTarget = GetObjectByTag("tri_battlhorror2" );
|
||||
|
||||
eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);
|
||||
eRay = EffectBeam(VFX_BEAM_HOLY, OBJECT_SELF, BODY_NODE_HAND);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
|
||||
//get the third guardian and kill it
|
||||
|
||||
oTarget = GetObjectByTag("tri_battlhorror3" );
|
||||
|
||||
eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);
|
||||
eRay = EffectBeam(VFX_BEAM_HOLY, OBJECT_SELF, BODY_NODE_HAND);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
|
||||
//get the fourth guardian and kill it
|
||||
|
||||
oTarget = GetObjectByTag("tri_battlhorror4" );
|
||||
|
||||
eDam = EffectDamage(nDamage, DAMAGE_TYPE_MAGICAL);
|
||||
eRay = EffectBeam(VFX_BEAM_HOLY, OBJECT_SELF, BODY_NODE_HAND);
|
||||
|
||||
ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget);
|
||||
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eRay, oTarget, 1.7);
|
||||
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
|
||||
|
||||
//gets doors and unlock them
|
||||
|
||||
object oDoor = GetObjectByTag("tri_zhentlvl1d1");
|
||||
object jDoor = GetObjectByTag("tri_zhentlvl1d2");
|
||||
|
||||
SetLocked(oDoor, 0);
|
||||
SetLocked(jDoor, 0);
|
||||
|
||||
DelayCommand(100.0, SetLocked(oDoor, TRUE));
|
||||
DelayCommand(100.0, SetLocked(jDoor, TRUE));
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user