private void Game_OnGameUpdate(EventArgs args) { if (!IsActive() || lastGameUpdateTime + new Random().Next(500, 1000) > Environment.TickCount) { return; } lastGameUpdateTime = Environment.TickCount; if (AltarTimer.GetActive()) { AltarObject altarDestroyed = null; foreach (AltarObject altar in Altars) { if (altar.Obj.IsValid) { bool hasBuff = false; foreach (BuffInstance buff in altar.Obj.Buffs) { if (buff.Name == "treelinelanternlock") { hasBuff = true; break; } } if (!hasBuff) { altar.Locked = false; altar.NextRespawnTime = 0; altar.Called = false; } else if (hasBuff && altar.Locked == false) { altar.Locked = true; altar.NextRespawnTime = altar.RespawnTime + (int)Game.ClockTime; } } else { if (altar.NextRespawnTime < (int)Game.ClockTime) { altarDestroyed = altar; } } } if (altarDestroyed != null && Altars.Remove(altarDestroyed)) { } foreach (Obj_AI_Minion altar in ObjectManager.Get <Obj_AI_Minion>()) { AltarObject nAltar = null; if (altar.Name.Contains("Buffplat")) { AltarObject health1 = Altars.Find(jm => jm.Obj.NetworkId == altar.NetworkId); if (health1 == null) { if (altar.Name.Contains("_L")) { nAltar = new AltarObject("Left Altar", altar); } else { nAltar = new AltarObject("Right Altar", altar); } } } if (nAltar != null) { Altars.Add(nAltar); } } } ///// if (AltarTimer.GetActive()) { foreach (AltarObject altar in Altars) { if (altar.Locked) { if (altar.NextRespawnTime <= 0 || altar.MapType != GMap.Type) { continue; } int time = Timer.Timers.GetMenuItem("SAssembliesTimersRemindTime").GetValue <Slider>().Value; if (!altar.Called && altar.NextRespawnTime - (int)Game.ClockTime <= time && altar.NextRespawnTime - (int)Game.ClockTime >= time - 1) { altar.Called = true; Timer.PingAndCall(altar.Name + " unlocks in " + time + " seconds!", altar.Obj.ServerPosition); if (AltarTimer.GetMenuItem("SAssembliesTimersAltarSpeech").GetValue <bool>()) { Speech.Speak(altar.Name + " unlocks in " + time + " seconds!"); } } } } } }
private void Game_OnGameUpdate(EventArgs args) { if (!IsActive() || lastGameUpdateTime + new Random().Next(500, 1000) > Environment.TickCount) return; lastGameUpdateTime = Environment.TickCount; if (AltarTimer.GetActive()) { AltarObject altarDestroyed = null; foreach (AltarObject altar in Altars) { if (altar.Obj.IsValid) { bool hasBuff = false; foreach (BuffInstance buff in altar.Obj.Buffs) { if (buff.Name == "treelinelanternlock") { hasBuff = true; break; } } if (!hasBuff) { altar.Locked = false; altar.NextRespawnTime = 0; altar.Called = false; } else if (hasBuff && altar.Locked == false) { altar.Locked = true; altar.NextRespawnTime = altar.RespawnTime + (int)Game.ClockTime; } } else { if (altar.NextRespawnTime < (int)Game.ClockTime) { altarDestroyed = altar; } } } if (altarDestroyed != null && Altars.Remove(altarDestroyed)) { } foreach (Obj_AI_Minion altar in ObjectManager.Get<Obj_AI_Minion>()) { AltarObject nAltar = null; if (altar.Name.Contains("Buffplat")) { AltarObject health1 = Altars.Find(jm => jm.Obj.NetworkId == altar.NetworkId); if (health1 == null) if (altar.Name.Contains("_L")) nAltar = new AltarObject("Left Altar", altar); else nAltar = new AltarObject("Right Altar", altar); } if (nAltar != null) Altars.Add(nAltar); } } ///// if (AltarTimer.GetActive()) { foreach (AltarObject altar in Altars) { if (altar.Locked) { if (altar.NextRespawnTime <= 0 || altar.MapType != GMap.Type) continue; int time = Timer.Timers.GetMenuItem("SAssembliesTimersRemindTime").GetValue<Slider>().Value; if (!altar.Called && altar.NextRespawnTime - (int)Game.ClockTime <= time && altar.NextRespawnTime - (int)Game.ClockTime >= time - 1) { altar.Called = true; Timer.PingAndCall(altar.Name + " unlocks in " + time + " seconds!", altar.Obj.ServerPosition); if (AltarTimer.GetMenuItem("SAssembliesTimersAltarSpeech").GetValue<bool>()) { Speech.Speak(altar.Name + " unlocks in " + time + " seconds!"); } } } } } }