Example #1
0
        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());
        }
Example #4
0
        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));
            }
        }
Example #5
0
        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)));
            }
        }
Example #10
0
 public void SendGuildInfos()
 {
     if (HasGuild)
     {
         Client.Send(new GuildJoinedMessage(GuildRecord.GetGuild(GuildId).GetGuildInformations(), CharacterGuildRecord.GetCharacterGuild(Id).Rights, false));
         HumanOptions.Add(new HumanOptionGuild(GetGuild().GetGuildInformations()));
     }
 }
Example #11
0
 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));
 }