public void Deserialize(GenReader reader) { int version = reader.ReadInt(); switch (version) { case 0: { int count = reader.ReadInt(); for (int i = 0; i < count; i++) { JailInfo info = new JailInfo(); info.Deserialize(reader); if (info.Character != null) { JailInfo.Add(info); } } if (JailInfo.Count > 0) { CheckTimer.Start(); } } break; } }
public static void JailCharacter(Character c, int Days, int Hours, int Minutes) { c.Teleport(X, Y, Z, MapId); c.SendMessage(String.Format("You have been jailed on {0} days, {1} hours, {2} minutes", Days, Hours, Minutes)); JailInfo info = new JailInfo(); info.Character = c; info.JailedDate = DateTime.Now; info.JailTime = new TimeSpan(Days, Hours, Minutes, 0); Jail.JailInfo.Add(info); if (Jail.JailInfo.Count == 1) { Jail.CheckTimer.Start(); } }
private static bool WhoJailed_OnCommand(CommandEventArgs e) { if (Jail.JailInfo.Count > 0) { for (int i = 0; i < Jail.JailInfo.Count; i++) { JailInfo info = Jail.JailInfo[i] as JailInfo; e.SendMessage("{0}) {1} jailed {2}.{3}.{4} {5}:{6}:{7} on {8} days, {9} hours, {10} minutes", i, info.Character.Name, info.JailedDate.Day, info.JailedDate.Month, info.JailedDate.Year, info.JailedDate.Hour, info.JailedDate.Minute, info.JailedDate.Second, info.JailTime.Days, info.JailTime.Hours, info.JailTime.Minutes); } return(true); } else { e.SendMessage("Nobody jailed."); return(true); } }
public override void OnTick() { if (Jail.JailInfo.Count > 0) { for (int i = 0; i < Jail.JailInfo.Count; i++) { JailInfo info = Jail.JailInfo[i] as JailInfo; if (info.Character != null) { if (info.Character.Distance(Jail.X, Jail.Y, Jail.Z) > (Jail.Range * Jail.Range) || info.Character.MapId != Jail.MapId) { if (World.allConnectedChars.Contains(info.Character)) { info.Character.Teleport(Jail.X, Jail.Y, Jail.Z, Jail.MapId); } else { info.Character.X = Jail.X; info.Character.Y = Jail.Y; info.Character.Z = Jail.Z; info.Character.MapId = Jail.MapId; } info.Character.SendMessage("Where are you going?"); info.Character.SendMessage(String.Format("You have been jailed {0}.{1}.{2} {3}:{4}:{5} on {6} days, {7} hours, {8} minutes", info.JailedDate.Day, info.JailedDate.Month, info.JailedDate.Year, info.JailedDate.Hour, info.JailedDate.Minute, info.JailedDate.Second, info.JailTime.Days, info.JailTime.Hours, info.JailTime.Minutes)); } if ((info.JailedDate + info.JailTime) <= DateTime.Now) { Jail.UnJailCharacter(info.Character); i--; } } else { Jail.JailInfo.RemoveAt(i); i--; } } } if (Jail.JailInfo.Count <= 0) { this.Stop(); } }