Advertisement
Guest User

Untitled

a guest
Oct 1st, 2014
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.84 KB | None | 0 0
  1. #region Team
  2. public static void AcceptInviteToJoinTeam(Team team, Client.GameClient client)
  3. {
  4. if (client.Team == null && !client.Entity.Dead)
  5. {
  6. Client.GameClient Leader;
  7. if (Kernel.GamePool.TryGetValue(team.UID, out Leader))
  8. {
  9. if (Leader.Team != null)
  10. {
  11. if (Leader.Team.Full || Leader.Team.ForbidJoin)
  12. return;
  13. if (Leader.InTeamQualifier()) return;
  14. client.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
  15.  
  16. AddToTeam AddYou = new AddToTeam();
  17. AddToTeam AddMe = new AddToTeam();
  18. AddMe.Name = client.Entity.Name;
  19. AddMe.MaxHitpoints = (ushort)client.Entity.MaxHitpoints;
  20. AddMe.Hitpoints = (ushort)client.Entity.Hitpoints;
  21. AddMe.Mesh = client.Entity.Mesh;
  22. AddMe.UID = client.Entity.UID;
  23. foreach (Client.GameClient Teammate in Leader.Team.Teammates)
  24. {
  25. if (Teammate != null)
  26. {
  27. Teammate.Send(AddMe);
  28. client.Team.Add(Teammate);
  29. AddYou.Name = Teammate.Entity.Name;
  30. AddYou.MaxHitpoints = (ushort)Teammate.Entity.MaxHitpoints;
  31. AddYou.Hitpoints = (ushort)Teammate.Entity.Hitpoints;
  32. AddYou.Mesh = Teammate.Entity.Mesh;
  33. AddYou.UID = Teammate.Entity.UID;
  34. client.Send(AddYou);
  35. if (Teammate.Entity.UID != Leader.Entity.UID)
  36. Teammate.Team.Add(client);
  37. }
  38. }
  39. Leader.Team.Add(client);
  40. client.Team.Add(client);
  41. client.Team.Active = true;
  42. client.Team.TeamLeader = false;
  43. client.Send(AddMe);
  44. }
  45. }
  46. }
  47. }
  48. public static void SendInviteToJoinTeam(Team team, Client.GameClient client)
  49. {
  50. if (client.InTeamQualifier()) return;
  51. if (client.Team != null)
  52. {
  53. if (!client.Team.Full && client.Team.TeamLeader)
  54. {
  55. Client.GameClient Invitee;
  56. if (Kernel.GamePool.TryGetValue(team.UID, out Invitee))
  57. {
  58. if (Invitee.Team == null)
  59. {
  60. team.UID = client.Entity.UID;
  61. PopupLevelBP request = new PopupLevelBP();
  62. request.Requester = client.Entity.UID;
  63. request.Receiver = Invitee.Entity.UID;
  64. request.Level = client.Entity.Level;
  65. request.BattlePower = (uint)client.Entity.BattlePower;
  66. Invitee.Send(request);
  67. Invitee.Send(team);
  68. Invitee.Send(request);
  69.  
  70. }
  71. else
  72. {
  73. client.Send(new Message(Invitee.Entity.Name + " is already in a team.", System.Drawing.Color.Purple, Message.TopLeft));
  74. }
  75. }
  76. }
  77. }
  78. }
  79. public static void AcceptRequestToJoinTeam(Team team, Client.GameClient client)
  80. {
  81. if (client.InTeamQualifier()) return;
  82. if (client.Team != null && !client.Entity.Dead)
  83. {
  84. if (!client.Team.Full && client.Team.TeamLeader && !client.Team.ForbidJoin)
  85. {
  86. Client.GameClient NewTeammate;
  87. if (Kernel.GamePool.TryGetValue(team.UID, out NewTeammate))
  88. {
  89. if (NewTeammate.Team != null)
  90. return;
  91.  
  92. NewTeammate.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
  93.  
  94. AddToTeam AddMe = new AddToTeam();
  95. AddToTeam AddYou = new AddToTeam();
  96. AddYou.Name = NewTeammate.Entity.Name;
  97. AddYou.MaxHitpoints = (ushort)NewTeammate.Entity.MaxHitpoints;
  98. AddYou.Hitpoints = (ushort)NewTeammate.Entity.Hitpoints;
  99. AddYou.Mesh = NewTeammate.Entity.Mesh;
  100. AddYou.UID = NewTeammate.Entity.UID;
  101. //lock (client.Team.Teammates)
  102. {
  103. foreach (Client.GameClient Teammate in client.Team.Teammates)
  104. {
  105. if (Teammate != null)
  106. {
  107. Teammate.Send(AddYou);
  108. NewTeammate.Team.Add(Teammate);
  109. AddMe.Name = Teammate.Entity.Name;
  110. AddMe.MaxHitpoints = (ushort)Teammate.Entity.MaxHitpoints;
  111. AddMe.Hitpoints = (ushort)Teammate.Entity.Hitpoints;
  112. AddMe.Mesh = Teammate.Entity.Mesh;
  113. AddMe.UID = Teammate.Entity.UID;
  114. NewTeammate.Send(AddMe);
  115. if (Teammate.Entity.UID != client.Entity.UID)
  116. Teammate.Team.Add(NewTeammate);
  117. }
  118. }
  119.  
  120. client.Team.Add(NewTeammate);
  121. NewTeammate.Team.Add(NewTeammate);
  122. NewTeammate.Team.Active = true;
  123. NewTeammate.Team.TeamLeader = false;
  124. client.Send(AddYou);
  125. NewTeammate.Send(AddYou);
  126. }
  127. }
  128. }
  129. }
  130. }
  131. public static void SendRequestJoinToTeam(Team team, Client.GameClient client)
  132. {
  133. if (client.Team == null && !client.Entity.Dead)
  134. {
  135. Client.GameClient Leader;
  136. if (Kernel.GamePool.TryGetValue(team.UID, out Leader))
  137. {
  138. if (Leader.Team != null)
  139. {
  140. if (Leader.InTeamQualifier()) return;
  141. if (Leader.Team.TeamLeader && !Leader.Team.Full)
  142. {
  143. team.UID = client.Entity.UID;
  144. PopupLevelBP request = new PopupLevelBP();
  145. request.Requester = client.Entity.UID;
  146. request.Receiver = Leader.Entity.UID;
  147. request.Level = client.Entity.Level;
  148. request.BattlePower = (uint)client.Entity.BattlePower;
  149. Leader.Send(request);
  150. Leader.Send(team);
  151. Leader.Send(request);
  152.  
  153. }
  154. else
  155. {
  156. client.Send(new Message(Leader.Entity.Name + "'s team is already full.", System.Drawing.Color.Peru, Message.TopLeft));
  157. }
  158. }
  159. else
  160. {
  161. client.Send(new Message(Leader.Entity.Name + "'s doesn't have a team.", System.Drawing.Color.Red, Message.TopLeft));
  162. }
  163. }
  164. }
  165. }
  166. public static void LeaveTeam(Team team, Client.GameClient client)
  167. {
  168. if (client.Team != null)
  169. {
  170. if (!client.Team.TeamLeader)
  171. {
  172. if (client.InTeamQualifier()) return;
  173. lock (client.Team.Teammates)
  174. {
  175. foreach (Client.GameClient Teammate in client.Team.Teammates)
  176. {
  177. if (Teammate != null)
  178. {
  179. if (Teammate.Entity.UID != client.Entity.UID)
  180. {
  181. Teammate.Send(team);
  182. Teammate.Team.Remove(client.Entity.UID);
  183. }
  184. }
  185. }
  186. }
  187. client.Send(team);
  188. client.Team = null;
  189. }
  190. }
  191. }
  192. public static void KickFromTeam(Team team, Client.GameClient client)
  193. {
  194. if (client.Team != null)
  195. {
  196. if (client.Team.TeamLeader)
  197. {
  198. if (client.InTeamQualifier()) return;
  199. Client.GameClient Teammate; // The guy we're kicking out
  200. if (Kernel.GamePool.TryGetValue(team.UID, out Teammate))
  201. {
  202. if (Teammate.Team != null)
  203. {
  204. if (Teammate.Team.IsTeammate(client.Entity.UID))
  205. {
  206. if (!Teammate.Team.TeamLeader)
  207. {
  208. if (Teammate.InTeamQualifier())
  209. {
  210. Teammate.Entity.PreviousTeleport();
  211. if (Teammate.Map.BaseID == 700)
  212. Teammate.Entity.Teleport(1002, 272, 300);
  213. Teammate.Entity.BringToLife();
  214. Teammate.Entity.PKMode = Teammate.PrevPK;
  215. Teammate.Send(new Data(true) { UID = Teammate.Entity.UID, ID = Data.ChangePKMode, dwParam = (uint)Teammate.Entity.PKMode });
  216. Teammate.TeamQualifierGroup = null;
  217. }
  218. }
  219. LeaveTeam(team, Teammate);
  220. }
  221. }
  222. }
  223. }
  224. }
  225. }
  226. public static void DismissTeam(Team team, Client.GameClient client)
  227. {
  228. if (client.Team != null)
  229. {
  230. if (!client.Entity.Dead && client.Team.TeamLeader)
  231. {
  232. if (client.InTeamQualifier()) return;
  233. Leadership lship = new Leadership();
  234. lship.Type = 1;
  235. lock (client.Team.Teammates)
  236. {
  237. foreach (Client.GameClient Teammate in client.Team.Teammates)
  238. {
  239. if (Teammate != null)
  240. {
  241. if (Teammate.Entity.UID != client.Entity.UID)
  242. {
  243. lship.UID = Teammate.Entity.UID;
  244. Teammate.Send(lship);
  245. Teammate.Send(team);
  246. Teammate.Team = null;
  247. }
  248. }
  249. }
  250. }
  251. lship.UID = client.Entity.UID;
  252. client.Send(lship);
  253. client.Send(team);
  254. client.Team = null;
  255.  
  256. client.Entity.RemoveFlag(Update.Flags.TeamLeader);
  257. }
  258. }
  259. }
  260. public static void CreateTeam(Team team, Client.GameClient client)
  261. {
  262. if (!client.Entity.Dead && client.Team == null)
  263. {
  264. Leadership lship = new Leadership();
  265. lship.Type = 1;
  266. lship.UID = client.Entity.UID;
  267. lship.LeaderUID = client.Entity.UID;
  268. lship.IsLeader = 1;
  269. client.Send(lship);
  270. client.Entity.AddFlag(Update.Flags.TeamLeader);
  271. client.Team = new Conquer_Online_Server.Game.ConquerStructures.Team();
  272. client.Team.Active = true;
  273. client.Team.TeamLeader = true;
  274. client.Team.Add(client);
  275. client.Send(team);
  276. }
  277. }
  278. #endregion
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement