//////// // This script handles the death's of the Elemental Demons #include "hc_inc_npccorpse" #include "NW_I0_GENERIC" #include "hc_inc" #include "anph_inc" void main() { object oKiller = GetLastKiller(); string sKilled = GetTag(OBJECT_SELF); // Get a controlled undead's master if(GetLocalString(oKiller, "MY_MASTER_IS") != "") { // Don't reward XP or anything when a summon did the kill object oKillerMaster = GetMaster(oKiller); oKiller = oKillerMaster; /* string sName = GetLocalString(oKiller, "MY_MASTER_IS"); object oPC = GetFirstPC(); while(GetIsObjectValid(oPC)) { if(sName == GetPCPlayerName(oPC)) { oKiller = oPC; } oPC = GetNextPC(); } */ } int nClass = GetLevelByClass(CLASS_TYPE_COMMONER); int nAlign = GetAlignmentGoodEvil(OBJECT_SELF); if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL)) { AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5); } SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK); //Shout Attack my target, only works with the On Spawn In setup SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK); if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT)) { SignalEvent(OBJECT_SELF, EventUserDefined(1007)); } else if(GetRacialType(OBJECT_SELF)==RACIAL_TYPE_ANIMAL) { SetIsDestroyable(FALSE, FALSE, TRUE); DelayCommand(30.0,SetIsDestroyable(TRUE, FALSE, TRUE)); } else { LeaveCorpse(); } //no xp for these //AnphRewardXP (OBJECT_SELF, oKiller); if (sKilled == "magmademon") { SetLocalInt(GetObjectByTag("TrialStore"), "fire", 1); } else if (sKilled == "rockdemon") { SetLocalInt(GetObjectByTag("TrialStore"), "earth", 1); } else if (sKilled == "wavedemon") { SetLocalInt(GetObjectByTag("TrialStore"), "water", 1); } else if (sKilled == "stormdemon") { SetLocalInt(GetObjectByTag("TrialStore"), "air", 1); } else if (sKilled == "etherealguard") { SetLocalInt(GetObjectByTag("TrialStore"), "ether", 1); effect eMind = EffectVisualEffect(VFX_FNF_SUMMON_UNDEAD); object oEthNW = CreateObject(OBJECT_TYPE_CREATURE, "etherealgfriend", GetLocation(GetObjectByTag("TrialEthFriNW"))); object oEthSE = CreateObject(OBJECT_TYPE_CREATURE, "etherealgfriend", GetLocation(GetObjectByTag("TrialEthFriSE"))); ApplyEffectToObject(DURATION_TYPE_INSTANT, eMind, oEthNW); ApplyEffectToObject(DURATION_TYPE_INSTANT, eMind, oEthSE); } return; }