ok, here is the full set.
ap_rune_chain
#include "pqj_inc"
void main()
{
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
if(RetrieveQuestState("q_chalice", oPC) != 40) return;
if(GetLocalInt(OBJECT_SELF, "Activated") == 1) return;
//Checktag and assign VFX
string sTag = GetTag(OBJECT_SELF);
int nBeam;
if(sTag == "rune_ice") nBeam = VFX_BEAM_COLD;
else if(sTag == "rune_fire") nBeam = VFX_BEAM_FIRE;
else if(sTag == "rune_evil") nBeam = VFX_BEAM_EVIL;
else if(sTag == "rune_holy") nBeam = VFX_BEAM_HOLY;
//Set a local int to indicate the rune is activated
SetLocalInt(OBJECT_SELF, "Activated", 1);
object oTarget = GetObjectByTag("rune_black");
ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectBeam(nBeam, GetObjectByTag("rune_black"), BODY_NODE_CHEST), GetObjectByTag(sTag));
//If all four are activated activate the rune pillar
if(GetLocalInt(GetObjectByTag("rune_ice"), "Activated") == 1 &&
GetLocalInt(GetObjectByTag("rune_fire"), "Activated") == 1 &&
GetLocalInt(GetObjectByTag("rune_evil"), "Activated") == 1 &&
GetLocalInt(GetObjectByTag("rune_holy"), "Activated") == 1)
{
SetLocalObject(oTarget, "PC", oPC);
ExecuteScript("ap_rune_pillar", oTarget);
ExecuteScript("ap_pillar_summon", OBJECT_SELF);
SetUseableFlag(OBJECT_SELF, FALSE);
DelayCommand(900.0, SetUseableFlag(OBJECT_SELF, TRUE));
}
}
ap_rune_pillar
#include "pqj_inc"
#include "nw_i0_2q4luskan"
void main()
{
object oPC = GetLocalObject (OBJECT_SELF, "PC");
if (!GetIsPC(oPC)) return;
int nInt = RetrieveQuestState("q_helden",oPC);
if (nInt == 40)
return;
object oTarget;
oTarget = OBJECT_SELF;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SUNSTRIKE), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_SUNSTRIKE), GetLocation(oTarget));
oTarget = GetObjectByTag("rune_pillar");
nInt = GetObjectType(oTarget);
effect eEffect;
eEffect = EffectVisualEffect(VFX_COM_CHUNK_STONE_MEDIUM);
if (nInt != OBJECT_TYPE_WAYPOINT)
DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eEffect, oTarget));
else
DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, GetLocation(oTarget)));
DelayCommand(1.0, DestroyObject(oTarget, 3.0));
oTarget = GetObjectByTag("invis_rune");
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIRESTORM), oTarget);
else ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIRESTORM), GetLocation(oTarget));
location lTarget;
oTarget = GetWaypointByTag("WP_summon");
lTarget = GetLocation(oTarget);
DelayCommand(2.0, CreateObjectVoid(OBJECT_TYPE_CREATURE, "dragon_h_guard", lTarget));
eEffect = EffectVisualEffect(VFX_FNF_SUMMON_CELESTIAL);
DelayCommand(2.0, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eEffect, lTarget));
{
effect eVFX = GetFirstEffect(OBJECT_SELF);
while(GetIsEffectValid(eVFX))
{
if(GetEffectType(eVFX) == EFFECT_TYPE_VISUALEFFECT) RemoveEffect(OBJECT_SELF, eVFX);
eVFX = GetNextEffect(OBJECT_SELF);
}
DeleteLocalInt(GetObjectByTag("rune_ice"), "Activated");
DeleteLocalInt(GetObjectByTag("rune_fire"), "Activated");
DeleteLocalInt(GetObjectByTag("rune_evil"), "Activated");
DeleteLocalInt(GetObjectByTag("rune_holy"), "Activated");
}
}
ap_pillar_summon
#include "nw_i0_generic"
void main()
{
object oPC = GetLastUsedBy();
if (!GetIsPC(oPC)) return;
object oTarget;
object oSpawn;
location lTarget;
oTarget = GetWaypointByTag("watcher_one");
lTarget = GetLocation(oTarget);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "heldenwatcher", lTarget);
oTarget = oSpawn;
SetIsTemporaryEnemy(oPC, oTarget);
AssignCommand(oTarget, ActionAttack(oPC));
AssignCommand(oTarget, DetermineCombatRound(oPC));
int nInt;
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), oTarget));
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), GetLocation(oTarget)));
oTarget = GetWaypointByTag("helden_two");
lTarget = GetLocation(oTarget);
oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "heldenwatcher", lTarget);
oTarget = oSpawn;
SetIsTemporaryEnemy(oPC, oTarget);
AssignCommand(oTarget, ActionAttack(oPC));
AssignCommand(oTarget, DetermineCombatRound(oPC));
nInt = GetObjectType(oTarget);
if (nInt != OBJECT_TYPE_WAYPOINT) DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), oTarget));
else DelayCommand(0.5, ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_SUMMON_EPIC_UNDEAD), GetLocation(oTarget)));
}
as i said before, the scripts work, just not the part with the beams.