/// <summary> /// Send the specified player to jail. /// </summary> /// <param name="aName">The name of the player to send to jail.</param> /// <returns>True on success, false otherwise.</returns> public static Boolean SendPlayerToJail(String aName) { bool success = false; GameMap map = null; if (!MapManager.TryGetMap(MapManager.PRISON_MAP_UID, out map)) { return(false); } using (var connection = sDefaultPool.GetConnection()) { using (var command = connection.CreateCommand()) { command.CommandText = ( "UPDATE `user` SET `record_map` = @record_map, `record_x` = @record_x, `record_y` = @record_y, " + "`jail` = `jail` + 1 WHERE `name` = @name"); command.Parameters.AddWithValue("@name", aName); command.Parameters.AddWithValue("@record_map", map.Id); command.Parameters.AddWithValue("@record_x", map.PortalX); command.Parameters.AddWithValue("@record_y", map.PortalY); command.Prepare(); sLogger.Debug("Executing SQL: {0}", GetSqlCommand(command)); try { int count = command.ExecuteNonQuery(); success = count == 1; } catch (MySqlException exc) { sLogger.Error("Failed to execute the following cmd : \"{0}\"\nError {1}: {2}", GetSqlCommand(command), exc.Number, exc.Message); } } } if (success) { Player player = null; if (World.AllPlayerNames.TryGetValue(aName, out player)) { player.Move(map.Id, map.PortalX, map.PortalY); ++player.JailC; } World.BroadcastMsg(new MsgTalk("SYSTEM", "ALLUSERS", aName + " has been sent to jail!", Channel.GM, Color.White)); } return(success); }
public bool Destroy() { lock (World.AllSyndicates) { if (World.AllSyndicates.ContainsKey(Id)) { Msg msg = null; msg = new MsgTalk( "SYSTEM", "ALLUSERS", String.Format(StrRes.STR_SYN_DISBAND, Name), Channel.GM, Color.White); World.BroadcastMsg(msg); msg = new MsgSyndicate((UInt16)Id, MsgSyndicate.Action.DestroySyn); World.BroadcastMsg(msg); Syndicate master = GetMasterSyn(); Player player = null; lock (mMembers) { List <Syndicate.Member> members = new List <Syndicate.Member>(mMembers.Values); members.Add(mLeader); foreach (Syndicate.Member member in members) { if (master == this) { if (World.AllPlayers.TryGetValue(member.Id, out player)) { LeaveSyn(player, false, true); } else { Database.LeaveSyn(member.Name); } } else { master.AddMember(player); } } } foreach (UInt16 allyId in Allies) { Syndicate ally = null; if (World.AllSyndicates.TryGetValue(allyId, out ally)) { if (ally.Allies.Contains(Id)) { var allies = ally.Allies; allies[allies.IndexOf(Id)] = 0; ally.Allies = allies; msg = new MsgSyndicate(Id, MsgSyndicate.Action.ClearAlly); World.BroadcastSynMsg(ally, msg); } } } World.AllSyndicates.Remove(Id); return(Database.Delete(this)); } } return(false); }