public ClanKick(Client User, XmlDocument Packet) : base(User, Packet) { long num = long.Parse(this.Query.Attributes["profile_id"].InnerText); if (User.Player.Clan == null || User.Player.ClanPlayer.ClanRole != Clan.CLAN_ROLE.LEADER) { throw new StanzaException(User, Packet, 4); } Client client = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.UserID == long.Parse(this.Query.Attributes["profile_id"].InnerText))); if (client != null) { User.Player.Clan.RemovePlayer(client.Player); client.Player.Clan = new Clan(); client.Player.ClanPlayer = new ClanProperties(); client.ShowMessage("@clans_you_was_kicked", false); client.Player.Save(); if (client.Player.RoomPlayer.Room != null) { if (client.Player.RoomPlayer.Room.Core.RoomType == (byte)4) { GameRoom_OnKicked gameRoomOnKicked = new GameRoom_OnKicked(client.Player.RoomPlayer.Room.Players.Users.ToList <Client>().Find((Predicate <Client>)(Attribute => Attribute.Player.UserID == client.Player.UserID)), GameRoom_OnKicked.Reason.KickedByUser); } else { client.Player.RoomPlayer.Room.Sync((Client)null); } } ClanInfo clanInfo = new ClanInfo(client, (XmlDocument)null); } else { client = new Client(); client.Player = new Player() { UserID = num }; User.Player.Clan.RemovePlayer(client.Player); if (!client.Player.Load(true).Result) { throw new StanzaException(User, Packet, 4); } client.Player.ClanPlayer = new ClanProperties(); client.Player.Clan = new Clan(); client.Player.AddCustomMessage("@clans_you_was_kicked"); client.Player.Save(); } foreach (XElement xelement in User.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").ToList <XElement>()) { XElement clanMember = xelement; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(x => x.Player.UserID == long.Parse(clanMember.Attribute((XName)"profile_id").Value))); if (User1 != null) { ClanInfo clanInfo = new ClanInfo(User1, (XmlDocument)null); } } this.Process(); }
public ClanSetMemberRole(Client User, XmlDocument Packet) : base(User, Packet) { if (this.Type == "result") { return; } long TargetID = long.Parse(this.Query.Attributes["profile_id"].InnerText); Clan.CLAN_ROLE clanRole = (Clan.CLAN_ROLE) byte.Parse(this.Query.Attributes["role"].InnerText); if (!Enum.IsDefined(typeof(Clan.CLAN_ROLE), (object)clanRole) || User.Player.Clan == null || User.Player.ClanPlayer.ClanRole != Clan.CLAN_ROLE.LEADER) { throw new StanzaException(User, Packet, 7); } Client client = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.UserID == TargetID)); client.Player.ClanPlayer.ClanRole = clanRole; switch (clanRole - 1) { case Clan.CLAN_ROLE.NOT_IN_CLAN: client.ShowMessage("@clans_you_are_promoted_to_master", false); break; case Clan.CLAN_ROLE.LEADER: client.ShowMessage("@clans_you_are_promoted_to_officer", false); break; case Clan.CLAN_ROLE.CO_LEADER: client.ShowMessage("@clans_you_are_demoted_to_regular", false); break; } if (clanRole == Clan.CLAN_ROLE.LEADER) { User.Player.ClanPlayer.ClanRole = Clan.CLAN_ROLE.CO_LEADER; User.Player.Clan.UpdatePlayer(User.Player); } User.Player.Clan.UpdatePlayer(client.Player); foreach (XElement xelement in User.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").ToList <XElement>()) { XElement clanMember = xelement; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(x => x.Player.UserID == long.Parse(clanMember.Attribute((XName)"profile_id").Value))); if (User1 != null) { ClanInfo clanInfo = new ClanInfo(User1, (XmlDocument)null); } } this.Process(); }
public ConfirmNotification(Client User, XmlDocument Packet) : base(User, Packet) { foreach (XmlNode childNode1 in this.Query.ChildNodes) { foreach (XmlNode childNode2 in User.Player.Notifications["notifications"].ChildNodes) { if (childNode2.Attributes["id"].InnerText == childNode1.Attributes["id"].InnerText) { if (childNode2.Attributes["type"].InnerText == "16") { string ReceivedUser = childNode2["invitation"].Attributes["initiator"].InnerText; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.Nickname == ReceivedUser)); if (User1 != null && User.Player.Clan.ID == 0L && User1.Player.Clan.ClanMembers.Elements().Count <XElement>() < 50) { User1.Player.AddResultNotification(User.Player.UserID, User.JID, User.Player.Nickname, User.Status, childNode1["confirmation"].Attributes["location"].InnerText, User.Player.Experience, childNode1["confirmation"].Attributes["result"].InnerText, true); new SyncNotification(User1, (XmlDocument)null).Process(); if (childNode1["confirmation"].Attributes["result"].InnerText == "0") { User.Player.Clan = User1.Player.Clan; User.Player.ClanPlayer.InvitationDate = DateTimeOffset.UtcNow.ToUnixTimeSeconds(); User.Player.ClanPlayer.ClanRole = Clan.CLAN_ROLE.DEFAULT; User1.Player.Clan.AddPlayer(User.Player); foreach (XElement xelement in User.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").ToList <XElement>()) { XElement clanMember = xelement; Client User2 = ArrayList.OnlineUsers.Find((Predicate <Client>)(x => x.Player.UserID == long.Parse(clanMember.Attribute((XName)"profile_id").Value))); if (User2 != null) { ClanInfo clanInfo = new ClanInfo(User2, (XmlDocument)null); } } User.Player.Save(); } } } if (childNode2.Attributes["type"].InnerText == "64") { string ReceivedUser2 = childNode2["invitation"].Attributes["initiator"].InnerText; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.Nickname == ReceivedUser2)); if (User1 != null) { if (childNode1["confirmation"].Attributes["result"].InnerText == "0") { User.Player.AddFriend(User1.Player.UserID.ToString()); User1.Player.AddFriend(User.Player.UserID.ToString()); User.Player.AddResultNotification(User1.Player.UserID, User1.JID, User1.Player.Nickname, User1.Status, User1.Location, User.Player.Experience, childNode1["confirmation"].Attributes["result"].InnerText, false); new SyncNotification(User, (XmlDocument)null).Process(); } User1.Player.AddResultNotification(User.Player.UserID, User.JID, User.Player.Nickname, User.Status, childNode1["confirmation"].Attributes["location"].InnerText, User.Player.Experience, childNode1["confirmation"].Attributes["result"].InnerText, false); new SyncNotification(User1, (XmlDocument)null).Process(); } else { Player player = new Player() { Nickname = ReceivedUser2 }; player.Load(true); if (childNode1["confirmation"].Attributes["result"].InnerText == "0") { User.Player.AddFriend(player.UserID.ToString()); player.AddFriend(User.Player.UserID.ToString()); User.Player.AddResultNotification(player.UserID, "", player.Nickname, 0, "", player.Experience, childNode1["confirmation"].Attributes["result"].InnerText, false); new SyncNotification(User, (XmlDocument)null).Process(); } player.AddResultNotification(User.Player.UserID, User.JID, User.Player.Nickname, User.Status, childNode1["confirmation"].Attributes["location"].InnerText, User.Player.Experience, childNode1["confirmation"].Attributes["result"].InnerText, false); player.Save(); } } User.Player.Notifications["notifications"].RemoveChild(childNode2); User.Player.Save(); FriendList friendList = new FriendList(User, (XmlDocument)null); } } } User.Player.Save(); this.Process(); }
public ClanLeave(Client User, XmlDocument Packet = null) : base(User, Packet) { if (User.Player.Clan == null) { throw new StanzaException(User, Packet, 2); } User.Player.Clan.RemovePlayer(User.Player); if (User.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").Count <XElement>() == 0) { User.Player.Clan.DeleteClan(); } else if (User.Player.ClanPlayer.ClanRole == Clan.CLAN_ROLE.LEADER) { XElement new_leader = User.Player.Clan.ClanMembers.Descendants((XName)"clan_member_info").ToList <XElement>().First <XElement>(); Client client = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player.UserID == Convert.ToInt64(new_leader.Attribute((XName)"profile_id").Value))); if (client != null) { client.Player.Clan = User.Player.Clan; client.Player.Clan.LeaderName = client.Player.Nickname; client.Player.ClanPlayer.ClanRole = Clan.CLAN_ROLE.LEADER; client.ShowMessage("@clans_you_are_promoted_to_master", false); User.Player.Clan.UpdatePlayer(client.Player); } else { Player player = new Player() { UserID = Convert.ToInt64(new_leader.Attribute((XName)"profile_id").Value) }; player.Clan.ID = User.Player.Clan.ID; if (player.Load(true).Result) { player.Clan = User.Player.Clan; player.ClanPlayer.ClanRole = Clan.CLAN_ROLE.LEADER; player.Clan.LeaderName = player.Nickname; player.Save(); User.Player.Clan.UpdatePlayer(player); } } } foreach (XElement xelement in User.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").ToList <XElement>()) { XElement clanMember = xelement; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(x => x.Player.UserID == long.Parse(clanMember.Attribute((XName)"profile_id").Value))); if (User1 != null) { ClanInfo clanInfo = new ClanInfo(User1, (XmlDocument)null); } } User.Player.ClanPlayer = new ClanProperties(); User.Player.Clan = new Clan(); ClanInfo clanInfo1 = new ClanInfo(User, (XmlDocument)null); if (User.Player.RoomPlayer.Room != null) { if (User.Player.RoomPlayer.Room.Core.RoomType == (byte)4) { GameRoom_OnKicked gameRoomOnKicked = new GameRoom_OnKicked(User.Player.RoomPlayer.Room.Players.Users.ToList <Client>().Find((Predicate <Client>)(Attribute => Attribute.Player.UserID == User.Player.UserID)), GameRoom_OnKicked.Reason.KickedByUser); } else { User.Player.RoomPlayer.Room.Sync((Client)null); } } User.Player.Save(); this.Process(); }
public SetRewardsInfo(Client User, XmlDocument Packet) : base(User, Packet) { string innerText = this.Query.Attributes["winning_team_id"].InnerText; int int32 = Convert.ToInt32(Math.Round(double.Parse(this.Query.Attributes["session_time"].InnerText, (IFormatProvider)CultureInfo.InvariantCulture))); foreach (XmlNode childNode1 in this.Query.ChildNodes) { if (childNode1.Name == "team") { double num1 = 0.0; foreach (XmlElement childNode2 in childNode1.ChildNodes) { XmlElement PlayerEl = childNode2; try { Client client = ArrayList.OnlineUsers.Find((Predicate <Client>)(Attribute => Attribute.Player != null && Attribute.Player.UserID == long.Parse(PlayerEl.Attributes["profile_id"].InnerText))); if (client != null) { this.BcastReceivers.Add(client); if (PlayerEl.Attributes["in_session_from_start"].InnerText == "0") { int32 /= 2; } double num2 = 0.0; double num3 = 0.0; double num4 = 0.0; double num5 = ((double)int32 / (childNode1.Attributes["id"].InnerText == innerText ? 2.61 : 3.1) + num1) * 5.0 * 2.0; double num6 = ((double)int32 / (childNode1.Attributes["id"].InnerText == innerText ? 3.31 : 3.68) + num1) * 5.0 * 2.0; double num7 = ((double)int32 / (childNode1.Attributes["id"].InnerText == innerText ? 2.97 : 3.45) + num1) * 5.0 * 2.0; if (User.Player.RoomPlayer.Room.Mission.Mode != "ffa" && User.Player.RoomPlayer.Room.Mission.Mode != "hnt") { if (childNode1.Attributes["id"].InnerText == innerText) { client.Player.StatMgr.IncrementDifficultyModePlayerStat("", "PVP", "player_sessions_won", 1L); num5 *= 1.5; num6 *= 1.5; num7 *= 1.5; } else { client.Player.StatMgr.IncrementDifficultyModePlayerStat("", "PVP", "player_sessions_lost", 1L); } } foreach (Item obj in client.Player.Items) { if (obj.Name == "booster_02" && obj.SecondsLeft > 0L) { ++num3; num2 += 0.5; num4 += 0.75; } else if (obj.Name == "booster_11" && obj.SecondsLeft > 0L) { num3 += 1.79999995231628; num2 += 1.29999995231628; num4 += 1.64999997615814; } else if (obj.Name == "booster_01" && obj.SecondsLeft > 0L) { num4 += 0.150000005960464; } else if (obj.Name == "booster_03" && obj.SecondsLeft > 0L) { num3 += 0.150000005960464; } else if (obj.Name == "booster_04" && obj.SecondsLeft > 0L) { num2 += 0.150000005960464; } } if (num2 != 0.0) { num7 *= num2; } if (num4 != 0.0) { num6 *= num4; } if (num3 != 0.0) { num5 *= num3; } if (client.Player.Experience < 28856000) { client.Player.Experience += (int)num5; } else { num5 = 0.0; client.Player.Experience = 28856000; } client.Player.GameMoney += (int)num6; client.Player.CrownMoney += 50; if (client.Player.StatMgr.GetPlayerStat("player_max_session_time") < (long)(int32 * 10)) { client.Player.StatMgr.IncrementPlayerStat("player_max_session_time", (long)(int32 * 10)); } client.Player.StatMgr.IncrementPlayerStat("player_online_time", (long)(int32 * 10)); client.Player.StatMgr.IncrementPlayerStat("player_gained_money", (long)(int)num6); XElement xelement1 = new XElement((XName)"player_result"); xelement1.Add((object)new XAttribute((XName)"nickname", (object)client.Player.Nickname)); xelement1.Add((object)new XAttribute((XName)"experience", (object)(int)num5)); xelement1.Add((object)new XAttribute((XName)"sponsor_points", (object)(int)num7)); xelement1.Add((object)new XAttribute((XName)"money", (object)(int)num6)); xelement1.Add((object)new XAttribute((XName)"bonus_money", (object)0)); xelement1.Add((object)new XAttribute((XName)"gained_crown_money", (object)0)); xelement1.Add((object)new XAttribute((XName)"bonus_experience", (object)0)); xelement1.Add((object)new XAttribute((XName)"bonus_sponsor_points", (object)0)); xelement1.Add((object)new XAttribute((XName)"completed_stages", (object)"")); xelement1.Add((object)new XAttribute((XName)"money_boost", (object)0)); xelement1.Add((object)new XAttribute((XName)"experience_boost", (object)0)); xelement1.Add((object)new XAttribute((XName)"sponsor_points_boost", (object)0)); xelement1.Add((object)new XAttribute((XName)"experience_boost_percent", (object)num3)); xelement1.Add((object)new XAttribute((XName)"money_boost_percent", (object)num4)); xelement1.Add((object)new XAttribute((XName)"sponsor_points_boost_percent", (object)num2)); xelement1.Add((object)new XAttribute((XName)"is_vip", (object)(num3 != 0.0 || num2 != 0.0 || num4 != 0.0 ? 1 : 0))); xelement1.Add((object)new XAttribute((XName)"score", (object)client.Player.Nickname)); xelement1.Add((object)new XAttribute((XName)"no_crown_rewards", (object)0)); xelement1.Add((object)new XAttribute((XName)"dynamic_multipliers_info", (object)0)); this.Results.Add(xelement1); if (client.Player.Clan.ID != 0L) { if (User.Player.RoomPlayer.Room.Core.RoomType == (byte)4) { if (childNode1.Attributes["id"].InnerText == innerText) { client.Player.ClanPlayer.Points += Convert.ToInt32((double)int32 * 1.5); } else { client.Player.ClanPlayer.Points += Convert.ToInt32((double)int32 / 1.5); } } else { client.Player.ClanPlayer.Points += Convert.ToInt32(int32 / 3); } client.Player.Clan.UpdatePlayer(client.Player); foreach (XElement xelement2 in client.Player.Clan.ClanMembers.Elements((XName)"clan_member_info").ToList <XElement>()) { XElement clanMember = xelement2; Client User1 = ArrayList.OnlineUsers.Find((Predicate <Client>)(x => x.Player.UserID == long.Parse(clanMember.Attribute((XName)"profile_id").Value))); if (User1 != null) { ClanInfo clanInfo = new ClanInfo(User1, (XmlDocument)null); } } } client.Player.Save(); } } catch { } } } } foreach (Client bcastReceiver in this.BcastReceivers) { new BroadcastSessionResults(bcastReceiver, this.Results).Process(); } this.Process(); }