예제 #1
0
        public static void HandleGuildCreationValidMessage(Client client, GuildCreationValidMessage message)
        {
            if (client.Character.Guild != null)
            {
                return;
            }

            var Guilde = new GuildEngine()
            {
                Name         = message.guildName,
                Level        = 200,
                Xp           = 354658435241,
                GuildEmblems = message.guildEmblem
            };

            client.Character.Guild     = Guilde;
            client.Character.GuildRank = 1;

            client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_OK));
            client.Character.Guild.AddCharacter(client.Character);
            client.Send(new GuildJoinedMessage(Guilde.Name, Guilde.GuildEmblems, (uint)client.Character.GuildRank));

            /*client.Send(new GuildInformationsMembersMessage(new[]
             * {
             *  new GuildMember(client.Character.Id, client.Character.Name, client.Character.Level, (sbyte)client.Character.Breed, client.Character.Sex,  1, 0, 5, 1, 1, (sbyte)client.Character.AlignmentSide, (ushort)Functions.ReturnUnixTimeStamp(client.Character.LastUsage.Value)),
             * }));*/
            client.Send(new GuildInformationsMembersMessage(Guilde.GetGuildMembers()));
            client.Send(new GuildInformationsGeneralMessage(true, (sbyte)Guilde.Level, Guilde.Xp + 120, Guilde.Xp, Guilde.Xp + 120));
        }
예제 #2
0
        public static void HandleGuildCreationValidMessage(WorldClient client, GuildCreationValidMessage message)
        {
            GuildCreationPanel guildCreationPanel = client.Character.Dialog as GuildCreationPanel;

            if (guildCreationPanel != null)
            {
                guildCreationPanel.CreateGuild(message.guildName, message.guildEmblem);
            }
        }
        /// <summary>
        /// Créer le GuildRecord et le CharacterGuildRecord, et les met en cache pour les sauvegarder en db.
        /// </summary>
        /// <param name="owner"></param>
        /// <param name="message"></param>
        /// <returns></returns>
        public GuildRecord CreateGuild(Character owner, GuildCreationValidMessage message)
        {
            GuildRecord guild = new GuildRecord(GuildRecord.PopNextId(), message.guildName, message.guildEmblem.symbolShape,
                                                message.guildEmblem.symbolColor, message.guildEmblem.backgroundShape, message.guildEmblem.backgroundColor, 1, 0, 1);

            guild.AddElement();
            JoinGuild(guild, owner, GuildRightsBitEnum.GUILD_RIGHT_BOSS, (ushort)GuildRightsBitEnum.GUILD_RIGHT_BOSS);
            return(guild);
        }
예제 #4
0
        public void ChatClientMultiMessageFrame(WorldClient client, GuildCreationValidMessage guildCreationValidMessage)
        {
            if (!Regex.IsMatch(guildCreationValidMessage.guildName, @"^\b[A-Z][A-Za-z\s-']{4,30}\b$", RegexOptions.Compiled) || Regex.IsMatch(guildCreationValidMessage.guildName, @"^\s\s$"))
            {
                client.SendPacket(new GuildCreationResultMessage((uint)SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_INVALID));
                return;
            }

            if (client.ActiveCharacter.Guild != null)
            {
                client.SendPacket(new GuildCreationResultMessage((uint)SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_ALREADY_IN_GROUP));
                return;
            }

            if (GuildRepository.Instance.IsNameAlreadyExist(guildCreationValidMessage.guildName))
            {
                client.SendPacket(new GuildCreationResultMessage((uint)SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_ERROR_NAME_ALREADY_EXISTS));
                return;
            }

            var guild = new Guild()
            {
                Id               = DatabaseManager.Instance.AutoIncrement <Guild>(GuildRepository.Instance.Collection),
                Name             = guildCreationValidMessage.guildName,
                OwnerCharacterId = client.ActiveCharacter.Id,
                Level            = 1,
                Experience       = 0,
                SymbolColor      = guildCreationValidMessage.guildEmblem.symbolColor,
                SymbolShape      = (int)guildCreationValidMessage.guildEmblem.symbolShape,
                BackgroundColor  = guildCreationValidMessage.guildEmblem.backgroundColor,
                BackgroundShape  = (int)guildCreationValidMessage.guildEmblem.backgroundShape,
                CreationDate     = (int)(DateTime.Now - new DateTime(1970, 1, 1).ToLocalTime()).TotalSeconds //a patch pas bonne date
            };

            GuildRepository.Instance.Insert(guild);

            var guildMember = new GuildMember(guild.Id, client.ActiveCharacter.Id)
            {
                Id                 = DatabaseManager.Instance.AutoIncrement <GuildMember>(GuildMemberRepository.Instance.Collection),
                Role               = 1,
                PossessedRight     = 262145,
                PourcentageXpGiven = 0
            };

            GuildMemberRepository.Instance.Insert(guildMember);

            client.SendPacket(new GuildInformationsPaddocksMessage(5, new List <Burning.DofusProtocol.Network.Types.PaddockContentInformations>()));
            client.SendPacket(new GuildHousesInformationMessage(new List <Burning.DofusProtocol.Network.Types.HouseInformationsForGuild>()));
            client.SendPacket(new GuildCreationResultMessage((uint)SocialGroupCreationResultEnum.SOCIAL_GROUP_CREATE_OK));
            client.SendPacket(new GuildJoinedMessage(client.ActiveCharacter.Guild.GetGuildInformations(), (uint)guildMember.Role));
        }
예제 #5
0
 public static void HandleGuildCreationRequest(GuildCreationValidMessage message, WorldClient client)
 {
     if (GuildProvider.Instance.HasGuild(client.Character.Id))
     {
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_ERROR_ALREADY_IN_GUILD));
         return;
     }
     if (GuildRecord.CanCreateGuild(message.guildName))
     {
         GuildRecord newGuild = GuildProvider.Instance.CreateGuild(client.Character, message);
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_OK));
     }
     else
     {
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_ERROR_NAME_ALREADY_EXISTS));
     }
 }
예제 #6
0
 public static void HandleGuildCreationRequest(GuildCreationValidMessage message, WorldClient client)
 {
     if (GuildProvider.Instance.HasGuild(client.Character.Id))
     {
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_ERROR_ALREADY_IN_GUILD));
         return;
     }
     if (GuildRecord.CanCreateGuild(message.guildName))
     {
         GuildRecord newGuild = GuildProvider.Instance.CreateGuild(client.Character, message);
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_OK));
     }
     else
     {
         client.Send(new GuildCreationResultMessage((sbyte)GuildCreationResultEnum.GUILD_CREATE_ERROR_NAME_ALREADY_EXISTS));
     }
 }
예제 #7
0
        public static void HandleGuildCreationRequest(GuildCreationValidMessage message, WorldClient client)
        {
            GuildCreationResultEnum result = GuildProvider.Instance.CreateGuild(client.Character, message.guildName, message.guildEmblem);

            client.Character.OnGuildCreated(result);
        }
예제 #8
0
 public static void HandleGuildCreationValidMessage(WorldClient client, GuildCreationValidMessage message)
 {
     (client.Character.Dialog as GuildCreationPanel)?.CreateGuild(message.guildName, message.guildEmblem);
 }