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)); } }
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)); } }
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)); } }