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.
99 lines
2.9 KiB
Plaintext
99 lines
2.9 KiB
Plaintext
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));
|
|
|
|
}
|
|
}
|
|
}
|
|
}
|