Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #region Team
- public static void AcceptInviteToJoinTeam(Team team, Client.GameClient client)
- {
- if (client.Team == null && !client.Entity.Dead)
- {
- Client.GameClient Leader;
- if (Kernel.GamePool.TryGetValue(team.UID, out Leader))
- {
- if (Leader.Team != null)
- {
- if (Leader.Team.Full || Leader.Team.ForbidJoin)
- return;
- if (Leader.InTeamQualifier()) return;
- client.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
- AddToTeam AddYou = new AddToTeam();
- AddToTeam AddMe = new AddToTeam();
- AddMe.Name = client.Entity.Name;
- AddMe.MaxHitpoints = (ushort)client.Entity.MaxHitpoints;
- AddMe.Hitpoints = (ushort)client.Entity.Hitpoints;
- AddMe.Mesh = client.Entity.Mesh;
- AddMe.UID = client.Entity.UID;
- foreach (Client.GameClient Teammate in Leader.Team.Teammates)
- {
- if (Teammate != null)
- {
- Teammate.Send(AddMe);
- client.Team.Add(Teammate);
- AddYou.Name = Teammate.Entity.Name;
- AddYou.MaxHitpoints = (ushort)Teammate.Entity.MaxHitpoints;
- AddYou.Hitpoints = (ushort)Teammate.Entity.Hitpoints;
- AddYou.Mesh = Teammate.Entity.Mesh;
- AddYou.UID = Teammate.Entity.UID;
- client.Send(AddYou);
- if (Teammate.Entity.UID != Leader.Entity.UID)
- Teammate.Team.Add(client);
- }
- }
- Leader.Team.Add(client);
- client.Team.Add(client);
- client.Team.Active = true;
- client.Team.TeamLeader = false;
- client.Send(AddMe);
- }
- }
- }
- }
- public static void SendInviteToJoinTeam(Team team, Client.GameClient client)
- {
- if (client.InTeamQualifier()) return;
- if (client.Team != null)
- {
- if (!client.Team.Full && client.Team.TeamLeader)
- {
- Client.GameClient Invitee;
- if (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 AcceptRequestToJoinTeam(Team team, Client.GameClient client)
- {
- if (client.InTeamQualifier()) return;
- if (client.Team != null && !client.Entity.Dead)
- {
- if (!client.Team.Full && client.Team.TeamLeader && !client.Team.ForbidJoin)
- {
- Client.GameClient NewTeammate;
- if (Kernel.GamePool.TryGetValue(team.UID, out NewTeammate))
- {
- if (NewTeammate.Team != null)
- return;
- NewTeammate.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
- AddToTeam AddMe = new AddToTeam();
- AddToTeam AddYou = new AddToTeam();
- AddYou.Name = NewTeammate.Entity.Name;
- AddYou.MaxHitpoints = (ushort)NewTeammate.Entity.MaxHitpoints;
- AddYou.Hitpoints = (ushort)NewTeammate.Entity.Hitpoints;
- AddYou.Mesh = NewTeammate.Entity.Mesh;
- AddYou.UID = NewTeammate.Entity.UID;
- //lock (client.Team.Teammates)
- {
- foreach (Client.GameClient Teammate in client.Team.Teammates)
- {
- if (Teammate != null)
- {
- Teammate.Send(AddYou);
- NewTeammate.Team.Add(Teammate);
- AddMe.Name = Teammate.Entity.Name;
- AddMe.MaxHitpoints = (ushort)Teammate.Entity.MaxHitpoints;
- AddMe.Hitpoints = (ushort)Teammate.Entity.Hitpoints;
- AddMe.Mesh = Teammate.Entity.Mesh;
- AddMe.UID = Teammate.Entity.UID;
- NewTeammate.Send(AddMe);
- if (Teammate.Entity.UID != client.Entity.UID)
- Teammate.Team.Add(NewTeammate);
- }
- }
- client.Team.Add(NewTeammate);
- NewTeammate.Team.Add(NewTeammate);
- NewTeammate.Team.Active = true;
- NewTeammate.Team.TeamLeader = false;
- client.Send(AddYou);
- NewTeammate.Send(AddYou);
- }
- }
- }
- }
- }
- public static void SendRequestJoinToTeam(Team team, Client.GameClient client)
- {
- if (client.Team == null && !client.Entity.Dead)
- {
- Client.GameClient Leader;
- if (Kernel.GamePool.TryGetValue(team.UID, out Leader))
- {
- if (Leader.Team != null)
- {
- if (Leader.InTeamQualifier()) return;
- 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));
- }
- }
- }
- }
- public static void LeaveTeam(Team team, Client.GameClient client)
- {
- if (client.Team != null)
- {
- if (!client.Team.TeamLeader)
- {
- if (client.InTeamQualifier()) return;
- lock (client.Team.Teammates)
- {
- foreach (Client.GameClient Teammate in client.Team.Teammates)
- {
- if (Teammate != null)
- {
- if (Teammate.Entity.UID != client.Entity.UID)
- {
- Teammate.Send(team);
- Teammate.Team.Remove(client.Entity.UID);
- }
- }
- }
- }
- client.Send(team);
- client.Team = null;
- }
- }
- }
- public static void KickFromTeam(Team team, Client.GameClient client)
- {
- if (client.Team != null)
- {
- if (client.Team.TeamLeader)
- {
- if (client.InTeamQualifier()) return;
- Client.GameClient Teammate; // The guy we're kicking out
- if (Kernel.GamePool.TryGetValue(team.UID, out Teammate))
- {
- if (Teammate.Team != null)
- {
- if (Teammate.Team.IsTeammate(client.Entity.UID))
- {
- if (!Teammate.Team.TeamLeader)
- {
- if (Teammate.InTeamQualifier())
- {
- Teammate.Entity.PreviousTeleport();
- if (Teammate.Map.BaseID == 700)
- Teammate.Entity.Teleport(1002, 272, 300);
- Teammate.Entity.BringToLife();
- Teammate.Entity.PKMode = Teammate.PrevPK;
- Teammate.Send(new Data(true) { UID = Teammate.Entity.UID, ID = Data.ChangePKMode, dwParam = (uint)Teammate.Entity.PKMode });
- Teammate.TeamQualifierGroup = null;
- }
- }
- LeaveTeam(team, Teammate);
- }
- }
- }
- }
- }
- }
- public static void DismissTeam(Team team, Client.GameClient client)
- {
- if (client.Team != null)
- {
- if (!client.Entity.Dead && client.Team.TeamLeader)
- {
- if (client.InTeamQualifier()) return;
- Leadership lship = new Leadership();
- lship.Type = 1;
- lock (client.Team.Teammates)
- {
- foreach (Client.GameClient Teammate in client.Team.Teammates)
- {
- if (Teammate != null)
- {
- if (Teammate.Entity.UID != client.Entity.UID)
- {
- lship.UID = Teammate.Entity.UID;
- Teammate.Send(lship);
- Teammate.Send(team);
- Teammate.Team = null;
- }
- }
- }
- }
- lship.UID = client.Entity.UID;
- client.Send(lship);
- client.Send(team);
- client.Team = null;
- client.Entity.RemoveFlag(Update.Flags.TeamLeader);
- }
- }
- }
- public static void CreateTeam(Team team, Client.GameClient client)
- {
- if (!client.Entity.Dead && client.Team == null)
- {
- Leadership lship = new Leadership();
- lship.Type = 1;
- lship.UID = client.Entity.UID;
- lship.LeaderUID = client.Entity.UID;
- lship.IsLeader = 1;
- client.Send(lship);
- client.Entity.AddFlag(Update.Flags.TeamLeader);
- client.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
- client.Team.Active = true;
- client.Team.TeamLeader = true;
- client.Team.Add(client);
- client.Send(team);
- }
- }
- #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement