コード例 #1
0
        public void GuildInvitationMessageFrame(WorldClient client, GuildInvitationMessage guildInvitationMessage)
        {
            if (client.ActiveCharacter.Guild == null)
            {
                return;
            }

            //check si il a le droit d'inviter a faire
            var member = client.ActiveCharacter.Guild.GuildMembers.Find(x => x.Character.Id == client.ActiveCharacter.Id);
            var guild  = client.ActiveCharacter.Guild;

            if (!member.GuildRightsItemCriterion[GuildRightsBitEnum.GUILD_RIGHT_INVITE_NEW_MEMBERS])
            {
                client.SendPacket(new GuildInvitationStateRecruterMessage("", (uint)SocialGroupInvitationStateEnum.SOCIAL_GROUP_INVITATION_FAILED));
                return;
            }

            var target = WorldManager.Instance.worldClients.Find(x => x.ActiveCharacter != null && x.ActiveCharacter.Id == guildInvitationMessage.targetId);

            if (target == null || target.ActiveCharacter.Guild != null)
            {
                return;
            }

            //ajouter dans la liste guildinvitation
            GuildManager.Instance.AddGuildInvitations(new GuildInvitation(client.ActiveCharacter.Guild.Id, client.ActiveCharacter.Id, target.ActiveCharacter.Id));

            client.SendPacket(new GuildInvitationStateRecruterMessage(target.ActiveCharacter.Name, (uint)SocialGroupInvitationStateEnum.SOCIAL_GROUP_INVITATION_SENT));
            target.SendPacket(new GuildInvitedMessage(client.ActiveCharacter.Id, client.ActiveCharacter.Name, new DofusProtocol.Network.Types.BasicGuildInformations((uint)guild.Id, guild.Name, (uint)guild.Level)));
        }
コード例 #2
0
        public static void HandleGuildInvitationMessage(GuildInvitationMessage message, WorldClient client)
        {
            if (client.Character.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_INVITE_NEW_MEMBERS))
            {
                var target = WorldServer.Instance.GetOnlineClient((long)message.targetId);

                if (target == null)
                {
                    client.Character.TextInformation(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 208);
                }
                else if (target.Character.HasGuild)
                {
                    client.Character.TextInformation(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 206);
                }
                else if (target.Character.Busy)
                {
                    client.Character.TextInformation(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 209);
                }
                else if (!client.Character.Guild.CanAddMember())
                {
                    client.Character.TextInformation(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 55, GuildProvider.MAX_MEMBERS_COUNT);
                }
                else
                {
                    target.Character.OpenRequestBox(new GuildInvitation(client.Character, target.Character));
                }
            }
        }
コード例 #3
0
        public static void HandleGuildInvitationMessage(GuildInvitationMessage message, WorldClient client)
        {
            WorldClient target = WorldServer.Instance.GetOnlineClient((int)message.targetId);

            GuildInvitationDialog dialog = new GuildInvitationDialog(client, target);

            dialog.Request();
        }
コード例 #4
0
        public static void HandleGuildInvitationMessage(WorldClient client, GuildInvitationMessage message)
        {
            if (client.Character.Guild != null)
            {
                if (!client.Character.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_INVITE_NEW_MEMBERS))
                {
                    client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 207, new object[0]);
                }
                else
                {
                    Character character = Singleton <World> .Instance.GetCharacter((int)message.targetId);

                    if (character == null)
                    {
                        client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 208, new object[0]);
                    }
                    else
                    {
                        if (character.Guild != null)
                        {
                            client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 206, new object[0]);
                        }
                        else
                        {
                            if (character.IsBusy())
                            {
                                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 209, new object[0]);
                            }
                            else
                            {
                                if (!client.Character.Guild.CanAddMember())
                                {
                                    client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 55, new object[]
                                    {
                                        Guild.MaxMembersNumber
                                    });
                                }
                                else
                                {
                                    GuildInvitationRequest guildInvitationRequest = new GuildInvitationRequest(client.Character, character);
                                    guildInvitationRequest.Open();
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #5
0
        public static void HandleGuildInvitationMessage(WorldClient client, GuildInvitationMessage message)
        {
            if (client.Character.Guild == null)
            {
                return;
            }

            if (!client.Character.GuildMember.HasRight(GuildRightsBitEnum.GUILD_RIGHT_INVITE_NEW_MEMBERS))
            {
                // Vous n'avez pas le droit requis pour inviter des joueurs dans votre guilde.
                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 207);
                return;
            }

            var target = World.Instance.GetCharacter((int)message.targetId);

            if (target == null)
            {
                // Impossible d'inviter, ce joueur est inconnu ou non connecté.
                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 208);
                return;
            }

            if (target.Guild != null)
            {
                // Impossible, ce joueur est déjà dans une guilde
                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 206);
                return;
            }

            if (target.IsBusy())
            {
                // Ce joueur est occupé. Impossible de l'inviter.
                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 209);
                return;
            }

            if (!client.Character.Guild.CanAddMember())
            {
                client.Character.SendInformationMessage(TextInformationTypeEnum.TEXT_INFORMATION_ERROR, 55, client.Character.Guild.MaxMembers);
                return;
            }

            var request = new GuildInvitationRequest(client.Character, target);

            request.Open();
        }