Example #1
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var spellid = parameters.GetIntParameter(0);
         var target  = client.Character;
         if (parameters.Lenght > 1)
         {
             if (CharacterTable.Contains(parameters.GetParameter(1)))
             {
                 target = CharacterTable.GetCharacter(parameters.GetParameter(1));
             }
         }
         if (!target.IsOnline())
         {
             client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
             return;
         }
         if (!SpellTable.Cache.ContainsKey(spellid))
         {
             client.Send(new ConsoleMessage("Impossible de trouver le sort n°" + spellid, ConsoleColorEnum.RED));
             return;
         }
         target.GetSpellBook().AddSpell(spellid, 6, 25, client);
         target.Send(new SpellsListMessage(target));
         client.Send(new ConsoleMessage("Le sort a été appris", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
Example #2
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         int level;
         try
         {
             level = parameters.GetIntParameter(0);
         }
         catch (FormatException e)
         {
             client.Send(new ConsoleMessage("Le parametre 1 n'est pas un nombre décimal", ConsoleColorEnum.RED));
             return;
         }
         var target = client.Character;
         if (parameters.Lenght > 1)
         {
             if (CharacterTable.Contains(parameters.GetParameter(1)))
             {
                 target = CharacterTable.GetCharacter(parameters.GetParameter(1));
             }
         }
         if (!target.IsOnline())
         {
             client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
             return;
         }
         while (target.Level < level)
         {
             target.LevelUP();
         }
         target.Send(new AccountStatsMessage(target));
         target.Send(new CharacterNewLevelMessage(target.Level));
         target.Send(new SpellsListMessage(target));
         client.Send(new ConsoleMessage("Le niveau a été modifié", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
Example #3
0
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            if (parameters.Lenght > 0)
            {
                int honor;
                try
                {
                    honor = parameters.GetIntParameter(0);
                }
                catch (FormatException e)
                {
                    client.Send(new ConsoleMessage("Le parametre 1 n'est pas un nombre décimal", ConsoleColorEnum.RED));
                    return;
                }
                var target = client.Character;
                if (parameters.Lenght > 1)
                {
                    if (CharacterTable.Contains(parameters.GetParameter(1)))
                    {
                        target = CharacterTable.GetCharacter(parameters.GetParameter(1));
                    }
                }
                if (!target.IsOnline())
                {
                    client.Send(new ConsoleMessage("La Cible est deconnecté", ConsoleColorEnum.RED));
                    return;
                }

                target.AddHonor(honor);
                target.RefreshOnMap();

                client.Send(new ConsoleMessage("Les points d'honneurs ont été ajouté", ConsoleColorEnum.GREEN));
            }
            else
            {
                client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
            }
        }
        private static void ProcessCharacterCreationRequest(WorldClient Client, string Packet)
        {
            var characterInfos = Packet.Substring(2);

            // fake Packet
            if (!characterInfos.Contains('|'))
            {
                Client.Disconnect();
                return;
            }

            var infos = characterInfos.Split('|');

            // fake Packet
            if (infos.Length != 6)
            {
                Client.Disconnect();
                return;
            }

            String first = (infos[0][0].ToString()).ToUpper();
            var    Name  = first + infos[0].Substring(1).ToLower();

            var Class  = int.Parse(infos[1]);
            var Sex    = int.Parse(infos[2]);
            var Color1 = int.Parse(infos[3]);
            var Color2 = int.Parse(infos[4]);
            var Color3 = int.Parse(infos[5]);

            // trop de personnage
            if (Client.Account.Characters.Count > (Settings.AppSettings.GetIntElement("Account.MaxPlayer") - 1))
            {
                Client.Send(new CharacterSlotFullMessage());
                return;
            }

            // fake class
            if (!StringHelper.isValidName(Name) || Class < (int)ClassEnum.CLASS_FECA || Class > (int)ClassEnum.CLASS_PANDAWA)
            {
                Client.Send(new CharacterCreationFailMessage());
                return;
            }

            // fake sex
            if (Sex > 1 || Sex < 0)
            {
                Client.Send(new CharacterCreationFailMessage());
                return;
            }

            // fake color
            if (Color1 < -1 || Color2 < -1 || Color3 < -1)
            {
                Client.Send(new CharacterCreationFailMessage());
                return;
            }

            // pseudo deja pris ?
            if (CharacterTable.Contains(Name) || 4 > Name.Length)
            {
                Client.Send(new CharacterNameAlreadyExistMessage());
                return;
            }

            var character = new Database.Models.Player()
            {
                ID              = DatabaseCache.nextPlayerGuid++,
                Owner           = Client.Account.ID,
                Name            = Name,
                Level           = Settings.AppSettings.GetIntElement("World.StartLevel"),
                Color1          = Color1,
                Color2          = Color2,
                Color3          = Color3,
                Look            = Class * 10,
                Sexe            = Sex,
                Classe          = Class,
                EnabledChannels = "i*#$p%!?:@",
                Map             = Settings.AppSettings.GetShortElement("World.StartMap"),
                CellId          = Settings.AppSettings.GetIntElement("World.StartCell"),
                Restriction     = 0,
                Experience      = ExpFloorTable.GetFloorByLevel(Settings.AppSettings.GetIntElement("World.StartLevel")).Character,
                Kamas           = Settings.AppSettings.GetIntElement("World.KamasStart"),
                CaractPoint     = (Settings.AppSettings.GetIntElement("World.StartLevel") - 1) * 5,
                SpellPoint      = Settings.AppSettings.GetIntElement("World.StartLevel") - 1,
                LifePer         = 100,
                Energy          = 10000,
                AP              = (Settings.AppSettings.GetIntElement("World.StartLevel") >= 100 ? 7 : 6),
                MP              = 3,
                Vitality        = 0,
                Wisdom          = 0,
                Strength        = 0,
                Intell          = 0,
                Agility         = 0,
                Chance          = 0,
                Alignement      = 0,
                Honor           = 0,
                Deshonor        = 0,
                Stuff           = "",
                MountID         = -1,
                MountXPGive     = 0,
                Title           = 0,
                SavePos         = Settings.AppSettings.GetShortElement("World.StartMap") + "," + Settings.AppSettings.GetIntElement("World.StartCell"),
                Account         = Client.Account,
            };

            if (!CharacterTable.Add(character))
            {
                Client.Send(new CharacterCreationFailMessage());
                return;
            }

            Client.Account.Characters.Add(character.ID, character);

            using (CachedBuffer Buffer = new CachedBuffer(Client))
            {
                Buffer.Append(new CharacterCreationSuccessMessage());
                Buffer.Append(new CharactersListMessage(Client.Account.Characters));
            }
        }