public static void SendGuildInformationsMembers(WorldClient client) { var members = CharacterGuildRecord.GetMembers(client.Character.GuildId); client.Send(new GuildInformationsMembersMessage( members)); }
public void LeaveGuild(Character character) { CharacterGuildRecord.GetCharacterGuild(character.Id).RemoveElement(); character.HumanOptions.RemoveAll(x => x is HumanOptionGuild); character.Client.Send(new GuildLeftMessage()); AllianceRecord.OnCharacterLeftAlliance(character); character.RefreshOnMapInstance(); character.ForgetEmote(GuildProvider.EMOTE_ID); }
public static WorldClient[] GetMembers(int guildId) { List <WorldClient> clients = new List <WorldClient>(); foreach (var member in CharacterGuildRecord.GetMembers(guildId)) { clients.Add(WorldServer.Instance.GetOnlineClient((int)member.id)); } clients.RemoveAll(x => x == null); return(clients.ToArray()); }
public static void HandleGuildChangeMemberParameters(GuildChangeMemberParametersMessage message, WorldClient client) { CharacterGuildRecord member = CharacterGuildRecord.GetCharacterGuild((int)message.memberId); member.ChangeParameters(client, message.rank, message.experienceGivenPercent, message.rights); SendGuildInformationsMembers(client); if (WorldServer.Instance.IsConnected(member.CharacterId)) { WorldClient c = WorldServer.Instance.GetOnlineClient(member.CharacterId); c.Send(new GuildMembershipMessage(c.Character.GetGuild().GetGuildInformations(), message.rights, true)); } }
public static void SendGuildInformationsGeneral(WorldClient client) { GuildRecord guild = GuildRecord.GetGuild(client.Character.GuildId); ulong expFloor = ExperienceRecord.GetExperienceForGuild((ushort)(guild.Level)); ulong expNextFloor = ExperienceRecord.GetExperienceForGuild((ushort)(guild.Level + 1)); client.Send(new GuildInformationsGeneralMessage(true, false, (byte)guild.Level, expFloor, guild.Experience, expNextFloor, 0, (ushort)CharacterGuildRecord.MembersCount(guild.Id), (ushort)GuildProvider.Instance.ConnectedMembersCount(guild.Id))); }
public int ConnectedMembersCount(int guildId) { int count = 0; foreach (var member in CharacterGuildRecord.GetMembers(guildId)) { if (WorldServer.Instance.IsConnected((int)member.id)) { count++; } } return(count); }
public void JoinGuild(GuildRecord guild, Character character, GuildRightsBitEnum rights, ushort rank) { CharacterGuildRecord characterGuild = new CharacterGuildRecord(character.Id, guild.Id, rank, 0, 0, (uint)rights); characterGuild.AddElement(); character.HumanOptions.Add(new HumanOptionGuild(guild.GetGuildInformations())); character.Client.Send(new GuildJoinedMessage(guild.GetGuildInformations(), (uint)rights, true)); character.RefreshOnMapInstance(); character.LearnEmote(GuildProvider.EMOTE_ID); if (character.HasAlliance) { character.HumanOptions.Add(new HumanOptionAlliance(character.GetAlliance().GetAllianceInformations(), (sbyte)0)); character.Client.Send(new AllianceJoinedMessage(character.GetAlliance().GetAllianceInformations(), true)); character.RefreshOnMapInstance(); character.LearnEmote(AllianceProvider.EMOTE_ID); } }
public static void HandleCharacterDeletion(CharacterDeletionRequestMessage message, WorldClient client) // finish this { CharacterRecord deletedCharacter = CharacterRecord.GetCharacterRecordById(message.characterId); if (deletedCharacter == null) { return; } StatsRecord.GetStatsRecord(message.characterId).RemoveElement(); CharacterRecord.Characters.Remove(deletedCharacter); client.Characters.Remove(deletedCharacter); deletedCharacter.RemoveElement(); CharacterItemRecord.RemoveAll(message.characterId); GeneralShortcutRecord.RemoveAll(message.characterId); CharacterSpellRecord.RemoveAll(message.characterId); CharacterJobRecord.RemoveAll(message.characterId); BidShopGainRecord.RemoveAll(message.characterId); CharacterGuildRecord.RemoveAll(message.characterId); // Si il est meneur de guilde? BidShopItemRecord.RemoveAll(message.characterId); Logger.Log("Character " + deletedCharacter.Name + " deleted"); client.Send(new CharactersListMessage(client.Characters.ConvertAll <CharacterBaseInformations>(x => x.GetBaseInformation()), false)); }
public static void HandleGetGuildInFactRequest(GuildFactsRequestMessage message, WorldClient client) { GuildRecord guild = GuildRecord.GetGuild((int)message.guildId); if (guild == null) { return; } AllianceRecord alliance = AllianceProvider.GetAllianceFromGuild(guild.Id); List <CharacterMinimalInformations> membersMinimalInfos = new List <CharacterMinimalInformations>(); foreach (GuildMember member in CharacterGuildRecord.GetMembers(guild.Id)) { membersMinimalInfos.Add(new CharacterMinimalInformations(member.id, member.level, member.name)); } if (alliance == null) { client.Send(new GuildFactsMessage(new GuildFactSheetInformations((uint)guild.Id, guild.Name, guild.GetEmblemObject(), (uint)GuildProvider.GetLeader(guild.Id).CharacterId, (byte)guild.Level, (ushort)CharacterGuildRecord.GetMembers(guild.Id).Count()), 0, 0, true, (IEnumerable <CharacterMinimalInformations>)membersMinimalInfos)); } else { client.Send(new GuildInAllianceFactsMessage(new GuildFactSheetInformations((uint)guild.Id, guild.Name, guild.GetEmblemObject(), (uint)GuildProvider.GetLeader(guild.Id).CharacterId, (byte)guild.Level, (ushort)CharacterGuildRecord.GetMembers(guild.Id).Count()), 0, 0, true, (IEnumerable <CharacterMinimalInformations>)membersMinimalInfos, new BasicNamedAllianceInformations((uint)alliance.Id, alliance.Tag, alliance.Name))); } }
public void SendGuildInfos() { if (HasGuild) { Client.Send(new GuildJoinedMessage(GuildRecord.GetGuild(GuildId).GetGuildInformations(), CharacterGuildRecord.GetCharacterGuild(Id).Rights, false)); HumanOptions.Add(new HumanOptionGuild(GetGuild().GetGuildInformations())); } }
public void OnConnectedGuildInformations() { if (HasGuild) { Client.Send(new GuildMembershipMessage(this.GetGuild().GetGuildInformations(), CharacterGuildRecord.GetCharacterGuild(this.Id).Rights, true)); this.HumanOptions.Add(new HumanOptionGuild(this.GetGuild().GetGuildInformations())); Client.Character.RefreshOnMapInstance(); } }
public bool HasGuild(int characterId) { return(CharacterGuildRecord.HasGuild(characterId)); }