public ArenaTeamStats(ArenaTeam arenaTeam) { team = arenaTeam; rating = 1500; gamesWeek = 0; winsWeek = 0; gamesSeason = 0; winsSeason = 0; rank = 0; }
/// <summary> /// Sends a arena team query response to the client. /// </summary> /// <param name="client">the client to send to</param> /// <param name="team">arena team to be sent</param> public static void SendArenaTeamQueryResponse(IPacketReceiver client, ArenaTeam team) { using (var packet = CreateArenaTeamQueryResponsePacket(team)) { client.Send(packet); } using (var packet = CreateArenaTeamStatsResponsePacket(team)) { client.Send(packet); } }
private static RealmPacketOut CreateArenaTeamStatsResponsePacket(ArenaTeam team) { var packet = new RealmPacketOut(RealmServerOpCode.SMSG_ARENA_TEAM_STATS, 4*7); packet.WriteUInt((byte)team.Id); packet.WriteUInt(team.Stats.rating); packet.WriteUInt(team.Stats.gamesWeek); packet.WriteUInt(team.Stats.winsWeek); packet.WriteUInt(team.Stats.gamesSeason); packet.WriteUInt(team.Stats.winsSeason); packet.WriteUInt(team.Stats.rank); return packet; }
private static RealmPacketOut CreateArenaTeamQueryResponsePacket(ArenaTeam team) { var packet = new RealmPacketOut(RealmServerOpCode.SMSG_ARENA_TEAM_QUERY_RESPONSE, 4*7+team.Name.Length+1); packet.WriteUInt((byte)team.Id); packet.WriteCString(team.Name); packet.WriteUInt(team.Type); /* TO-DO : Implement Emblem * packet.WriteUInt(team.Emblem.backgroundColor); packet.WriteUInt(team.Emblem.emblemStyle); packet.WriteUInt(team.Emblem.emblemColor); packet.WriteUInt(team.Emblem.borderStyle); packet.WriteUInt(team.Emblem.borderColor); */ return packet; }
public static void HandlePetitionTurnIn(IRealmClient client, RealmPacketIn packet) { var petitionGuid = packet.ReadEntityId(); var petition = client.ActiveCharacter.Inventory.GetItem(petitionGuid) as PetitionCharter; var name = petition.Petition.Name; var type = petition.Petition.Type; if (petition.Petition.SignedIds.Count < ((uint)type - 1)) { SendPetitionTurnInResults(client, PetitionTurns.NEED_MORE_SIGNATURES); return; } if (type == PetitionType.Guild && client.ActiveCharacter.IsInGuild) { SendPetitionTurnInResults(client, PetitionTurns.ALREADY_IN_GUILD); return; } else if (client.ActiveCharacter.ArenaTeamMember[(uint)ArenaTeamMgr.GetSlotByType((uint)type)] != null) { ArenaTeamHandler.SendResult(client, ArenaTeamCommandId.CREATE, name, string.Empty, ArenaTeamResult.ALREADY_IN_ARENA_TEAM); return; } else if (type == PetitionType.Guild && GuildMgr.DoesGuildExist(name)) { GuildHandler.SendResult(client, GuildCommandId.CREATE, name, GuildResult.NAME_EXISTS); return; } else if (ArenaTeamMgr.DoesArenaTeamExist(name)) { ArenaTeamHandler.SendResult(client, ArenaTeamCommandId.CREATE, name, string.Empty, ArenaTeamResult.NAME_EXISTS); return; } else { petition.Destroy(); if (type == PetitionType.Guild) { var guild = new Guild(client.ActiveCharacter.Record, name); foreach (var chr in petition.Petition.SignedIds) { if(chr == 0) continue; else { var character = World.GetCharacter(chr); guild.AddMember(character); } } } else { var team = new ArenaTeam(client.ActiveCharacter.Record, name, (uint)type); foreach (var chr in petition.Petition.SignedIds) { if(chr == 0) continue; else { var character = World.GetCharacter(chr); team.AddMember(character); } } } SendPetitionTurnInResults(client, PetitionTurns.OK); } }
public static void UnregisterArenaTeam(ArenaTeam team) { ArenaTeamsById.Remove(team.Id); ArenaTeamsByName.Remove(team.Name); }
/// <summary> /// New or loaded Arena Team /// </summary> /// <param name="guild"></param> public static void RegisterArenaTeam(ArenaTeam team) { ArenaTeamsById.Add(team.Id, team); ArenaTeamsByName.Add(team.Name, team); foreach (var atm in team.Members.Values) { if (atm.Character == null && !OfflineChars.ContainsKey(atm.Id)) OfflineChars.Add(atm.Id, atm); } }
internal void Init(ArenaTeam team, Character chr) { ArenaTeam = team; Character = chr; }
internal void Init(ArenaTeam team) { Init(team, World.GetCharacter((uint)CharacterLowId)); }