protected override void OnTarget(Mobile from, object targeted) { IPoint3D p = targeted as IPoint3D; if (p == null) { return; } Spells.SpellHelper.GetSurfaceTop(ref p); m_Destination = new Point3D(p); m_Facet = from.Map; // Place New Gates // Unguarded //PlaceEventGate(2714, 2173, 0); // Buccaneer's Den //PlaceEventGate(1377, 1504, 10); // Britain Graveyard //PlaceEventGate(1827, 2770, 0); // Trinsic Entrance //PlaceEventGate(2001, 2933, 0); // Trinsic South Gate //PlaceEventGate(2901, 605, 0); // North of Vesper Bank //PlaceEventGate(1367, 888, 0); // Wind Entrance PlaceEventGate(1458, 844, 5); // Chaos Shrine PlaceEventGate(1858, 875, -1); // Compassion PlaceEventGate(4211, 564, 42); // Honesty PlaceEventGate(1727, 3528, 3); // Honor PlaceEventGate(4274, 3697, 0); // Humility PlaceEventGate(1301, 634, 16); // Justice PlaceEventGate(3355, 290, 4); // Sacrifice PlaceEventGate(1600, 2489, 12); // Spirituality PlaceEventGate(2492, 3931, 5); // Valor //PlaceEventGate(5349, 3957, 2); // Delucia Pond PlaceEventGate(5274, 1162, 0); // Jail Cell 1 // Guarded PlaceEventGate(1421, 1698, 0); // Britain Bank PlaceEventGate(2286, 1200, 0); // Cove PlaceEventGate(3731, 2169, 20); // Magincia PlaceEventGate(2522, 558, 0); // Minoc PlaceEventGate(4462, 1176, 0); // Moonglow Bank PlaceEventGate(4479, 1124, 0); // Moonglow Counselor's Guild PlaceEventGate(3676, 2508, 0); // Ocllo PlaceEventGate(2880, 3465, 15); // Serps PlaceEventGate(2900, 692, 0); // Vesper Bank PlaceEventGate(5354, 90, 15); // Wind Bank PlaceEventGate(535, 992, 0); // Center of Yew PlaceEventGate(5273, 3994, 37); // Delucia Bank // Notify Clients That Gates Are Open foreach (NetState state in NetState.Instances) { Mobile m = state.Mobile; //if ( m is PlayerMobile && (m as PlayerMobile).EventBanned ) //continue; if (m != null) { m.SendGump(new EventNoticeGump()); } } // Notify IRC Users IRCBot.SendMessage(IRCBot.Channel, String.Format("[EVENT] An event has been opened by {0}. Check the nearest bank, town center, or shrine for a gate.", from.Name)); }
private static void LogSync(TargetInfo sync) { EquipInfo eq = null; for (int e = 0; e < m_Equips.Count; e++) { if (m_Equips[e].Time > sync.Time) { break; } if (m_Equips[e].From == sync.From) { eq = m_Equips[e]; m_Equips.RemoveAt(e); break; } for (int i = 0; i < sync.Matches.Count; i++) { if (sync.Matches[i].From == m_Equips[e].From) { eq = m_Equips[e]; m_Equips.RemoveAt(e); break; } } if (eq != null) { break; } } try { StringBuilder msg = new StringBuilder("Sync Notice "); msg.AppendFormat("(on '{0}'): ", sync.Target.Name); using (System.IO.StreamWriter w = new System.IO.StreamWriter("Syncers.log", true, System.Text.Encoding.ASCII)) { w.WriteLine("Sync on '{0}' ({1}):", sync.Target.Name, sync.Target.Account == null ? "<npc>" : sync.Target.Account.Username); if (eq != null) { msg.AppendFormat("!'{0}' equipped {1} @ {2}! ", eq.From, eq.Item.GetType(), (eq.Time - sync.Time).TotalSeconds); w.WriteLine("\t!!'{0}' equipped {1} @ {2}", eq.From, eq.Item.GetType(), (eq.Time - sync.Time).TotalSeconds); } w.WriteLine("\t'{0}'/'{1}' ({2}) @ {3}", sync.From.Name, sync.From.Account == null ? "<null>" : sync.From.Account.Username, sync.Type.FullName, sync.Time); msg.AppendFormat("'{0}' ", sync.From.Name); foreach (TargetInfo info in sync.Matches) { w.WriteLine("\t'{0}'/'{1}' ({2}) @+{3}", info.From.Name, info.From.Account == null ? "<null>" : info.From.Account.Username, info.Type.FullName, (info.Time - sync.Time).TotalSeconds); msg.AppendFormat("'{0}'+{1} ", info.From.Name, (info.Time - sync.Time).TotalSeconds); } w.Flush(); } foreach (NetState ns in NetState.Instances) { if (ns.Mobile != null && ns.Mobile.AccessLevel > AccessLevel.Counselor) { ns.Mobile.SendMessage(msg.ToString()); } } IRCBot.StaffNotice(msg.ToString()); } catch { } }