void ApplyFireEffect() { int hour = GetTimeHour(); int minute = GetTimeMinute(); int second = GetTimeSecond(); float Duration = HoursToSeconds(12) - (HoursToSeconds(hour)) - (HoursToSeconds(minute)/60) - second; object Fire = CreateObject(OBJECT_TYPE_PLACEABLE, "narbfire", GetLocation(GetObjectByTag("wa_narbondel"))); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD), Fire); DelayCommand(Duration, DestroyObject(Fire)); } void LightNarbondel() { object Char = GetObjectByTag("drow_archmage"); AssignCommand(Char, ActionMoveToObject(GetObjectByTag("wa_narbondel"), FALSE, 3.0)); AssignCommand(Char, ActionCastFakeSpellAtObject(SPELL_DELAYED_BLAST_FIREBALL, GetObjectByTag("wa_narbondel"))); AssignCommand(Char, ActionDoCommand(ApplyFireEffect())); AssignCommand(Char, ActionWait(5.0)); AssignCommand(Char, ActionMoveToObject(GetObjectByTag("drow_archmage_post"))); } void main() { float HEIGHT = 7.0; object Waypoint = GetObjectByTag("wa_narbondel"); int hour = GetTimeHour(); int fireamount = hour; vector vWaypoint = GetPosition(Waypoint); float place = vWaypoint.z; float step = HEIGHT/12; location lFire; object Fire; effect eVis1 = EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MAJOR); effect eVis2 = EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR); // eVis = EffectLinkEffects(EffectVisualEffect(VFX_DUR_PROTECTION_ELEMENTS), eVis); // eVis = EffectLinkEffects(EffectVisualEffect(VFX_DUR_PROTECTION_EVIL_MAJOR), eVis); if (hour > 12) fireamount = 24 - hour; if (hour == 0) LightNarbondel(); int x = 0; while (x < fireamount) { lFire = Location(GetArea(Waypoint), Vector(vWaypoint.x, vWaypoint.y, vWaypoint.z + x*step), IntToFloat(0)); Fire = CreateObject(OBJECT_TYPE_PLACEABLE, "narbfire", lFire); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eVis1, Fire); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eVis2, Fire); DelayCommand(HoursToSeconds(1), DestroyObject(Fire)); // ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eVis, lFire, 120.0); x++; } /////////////////////////////////// // TIMES // _______ // | | // | | 12 - 12 (1) // | | 11 - 13 (3) // | | 10 - 14 (5) // | | 9 - 15 (7) // | | 8 - 16 (9) // | | 7 - 17 (11) // | | 6 - 18 (13) // | | 5 - 19 (15) // | | 4 - 20 (17) // | | 3 - 21 (19) // | | 2 - 22 (21) // | | 1 - 23 (23) // |_______| // // DelayCommand(3.0, RecomputeStaticLighting(GetArea(Waypoint))); DelayCommand(HoursToSeconds(1), ExecuteScript("wa_narbondel", GetModule())); }