public static void SendInviteToJoinTeam(Team team, Client.GameState client) { if (client.Team != null) { if (!client.Team.Full && client.Team.TeamLeader) { Client.GameState Invitee; if (ServerBase.Kernel.GamePool.TryGetValue(team.UID, out Invitee)) { if (Invitee.Team == null) { team.UID = client.Entity.UID; PopupLevelBP request = new PopupLevelBP(); request.Requester = client.Entity.UID; request.Receiver = Invitee.Entity.UID; request.Level = client.Entity.Level; request.BattlePower = (uint)client.Entity.BattlePower; Invitee.Send(request); Invitee.Send(team); Invitee.Send(request); } else { client.Send(new Message(Invitee.Entity.Name + " is already in a team.", System.Drawing.Color.Purple, Message.TopLeft)); } } } } }
public static void SendRequestJoinToTeam(Team team, Client.GameState client) { if (client.Team == null && !client.Entity.Dead) { Client.GameState Leader; if (ServerBase.Kernel.GamePool.TryGetValue(team.UID, out Leader)) { if (Leader.Team != null) { if (Leader.Team.TeamLeader && !Leader.Team.Full) { team.UID = client.Entity.UID; PopupLevelBP request = new PopupLevelBP(); request.Requester = client.Entity.UID; request.Receiver = Leader.Entity.UID; request.Level = client.Entity.Level; request.BattlePower = (uint)client.Entity.BattlePower; Leader.Send(request); Leader.Send(team); Leader.Send(request); } else { client.Send(new Message(Leader.Entity.Name + "'s team is already full.", System.Drawing.Color.Peru, Message.TopLeft)); } } else { client.Send(new Message(Leader.Entity.Name + "'s doesn't have a team.", System.Drawing.Color.Red, Message.TopLeft)); } } } }
static void RequestTrade(Trade trade, Client.GameState client) { Client.GameState _client = null; if (ServerBase.Kernel.GamePool.TryGetValue(trade.dwParam, out _client)) { if (_client.Trade.InTrade || client.Trade.InTrade || client.Entity.UID == trade.dwParam || ServerBase.Kernel.GetDistance(client.Entity.X, client.Entity.Y, _client.Entity.X, _client.Entity.Y) > ServerBase.Constants.pScreenDistance) { client.Send(ServerBase.Constants.TradeInProgress); return; } client.Trade.TraderUID = _client.Entity.UID; if (_client.Trade.TraderUID == client.Entity.UID) { _client.Trade.InTrade = client.Trade.InTrade = true; trade.Type = Trade.ShowTable; client.Send(trade); trade.dwParam = client.Entity.UID; _client.Send(trade); } else { client.Send(ServerBase.Constants.TradeRequest); trade.dwParam = client.Entity.UID; PopupLevelBP request = new PopupLevelBP(); request.Requester = client.Entity.UID; request.Receiver = _client.Entity.UID; request.Level = client.Entity.Level; request.BattlePower = (uint)client.Entity.BattlePower; _client.Send(request); _client.Send(trade); _client.Send(request); } } }