/* * DAWN OF LIGHT - The first free open source DAoC server emulator * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * */ /***[ petchooser.cs ]**** * DOL: 1.8+ * author|date: Nanowish | 2007/05/29 * description: permet de choisir l'arme et/ou le skin des familier, (1.83). ******************/ using System; using System.Reflection; using System.Collections; using DOL; using DOL.GS; using DOL.AI.Brain; using DOL.Events; using DOL.Database; using DOL.Language; using DOL.GS.Scripts; using DOL.GS.Effects; using DOL.GS.PacketHandler; using DOL.GS.SkillHandler; using log4net; namespace DOL.GS.Scripts { [CmdAttribute("&pet", //command to handle (int)ePrivLevel.Player, //minimum privelege level "[Pet Skinner]","Pour plus d'informations utiliser la commande:","/pet info")] /// /// Description of petchooser. /// public class PetChooserCommand : AbstractCommandHandler, ICommandHandler { /// /// Defines a logger for this class. /// private static readonly ILog log = LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType); private static string petinfo = "U2NyaXB0IGNvZGVkIGJ5IE5hbm93aXNoLCBmb3Igd3d3LmRvbHNlcnZlci5uZXQu"; private static GamePlayer player = null; private static InventoryItem item = null; private static IControlledBrain pet = null; public const int dmgCrush = (int)GS.eWeaponDamageType.Crush; public const int dmgSlash = (int)GS.eWeaponDamageType.Slash; public const int dmgThrust = (int)GS.eWeaponDamageType.Thrust; public const int typeSword = (int)eObjectType.Sword; public const int typeHammer = (int)eObjectType.Hammer; public const int typeAxe = (int)eObjectType.Axe; public const int typeSpear = (int)eObjectType.Spear; public const int slotRightHand = (int)eInventorySlot.RightHandWeapon; public const int slotTwoHand = (int)eInventorySlot.TwoHandWeapon; public const int handRight = 0; public const int handTwo = 1; private static ItemTemplate spiritLongSwordTemplate = null; private static ItemTemplate spiritBeardedAxeTemplate = null; private static ItemTemplate spiritWarHammerTemplate = null; private static ItemTemplate spiritLongSpearTemplate = null; private static ItemTemplate bonedancer1HandedSwordTemplate = null; private static ItemTemplate bonedancer1HandedHammerTemplate = null; private static ItemTemplate bonedancer1HandedAxeTemplate = null; private static ItemTemplate bonedancer2HandedSwordTemplate = null; private static ItemTemplate bonedancer2HandedHammerTemplate = null; private static ItemTemplate bonedancer2HandedAxeTemplate = null; private static ushort norsemanModel; private static ushort trollModel; private static ushort dwarfModel; private static ushort koboldModel; private static ushort valkynModel; private static ushort elfModel; private static ushort luriModel; private static ushort lynxModel; private static ushort treeModel; private static ushort wolfModel; [GameServerStartedEvent] public static void OnServerStartup(DOLEvent e, object sender, EventArgs args) { #region [Spiritmaster Weapons] #region -Spirit Long Sword- spiritLongSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_long_sword"); if (spiritLongSwordTemplate == null) { spiritLongSwordTemplate = new ItemTemplate(); spiritLongSwordTemplate.Name = "spirit long sword"; spiritLongSwordTemplate.Level = 45; spiritLongSwordTemplate.Durability = 100; spiritLongSwordTemplate.MaxDurability = 100; spiritLongSwordTemplate.Condition = 50000; spiritLongSwordTemplate.MaxCondition = 50000; spiritLongSwordTemplate.Quality = 100; spiritLongSwordTemplate.DPS_AF = 145; spiritLongSwordTemplate.SPD_ABS = 30; spiritLongSwordTemplate.Hand = handRight; spiritLongSwordTemplate.Type_Damage = dmgSlash; spiritLongSwordTemplate.Object_Type = typeSword; spiritLongSwordTemplate.Item_Type = slotRightHand; spiritLongSwordTemplate.Weight = 10; spiritLongSwordTemplate.Model = 311; spiritLongSwordTemplate.IsPickable = false; spiritLongSwordTemplate.IsDropable = false; spiritLongSwordTemplate.Id_nb = "spirit_long_sword"; GameServer.Database.AddNewObject(spiritLongSwordTemplate); if (log.IsDebugEnabled) log.Debug("Added " + spiritLongSwordTemplate.Id_nb); } #endregion #region -Spirit Bearded Axe- ItemTemplate spiritBeardedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_bearded_axe"); if (spiritBeardedAxeTemplate == null) { spiritBeardedAxeTemplate = new ItemTemplate(); spiritBeardedAxeTemplate.Name = "spirit bearded axe"; spiritBeardedAxeTemplate.Level = 45; spiritBeardedAxeTemplate.Durability = 100; spiritBeardedAxeTemplate.MaxDurability = 100; spiritBeardedAxeTemplate.Condition = 50000; spiritBeardedAxeTemplate.MaxCondition = 50000; spiritBeardedAxeTemplate.Quality = 100; spiritBeardedAxeTemplate.DPS_AF = 145; spiritBeardedAxeTemplate.SPD_ABS = 32; spiritBeardedAxeTemplate.Hand = handRight; spiritBeardedAxeTemplate.Type_Damage = dmgSlash; spiritBeardedAxeTemplate.Object_Type = typeAxe; spiritBeardedAxeTemplate.Item_Type = slotRightHand; spiritBeardedAxeTemplate.Weight = 10; spiritBeardedAxeTemplate.Model = 316; spiritBeardedAxeTemplate.IsPickable = false; spiritBeardedAxeTemplate.IsDropable = false; spiritBeardedAxeTemplate.Id_nb = "spirit_bearded_axe"; GameServer.Database.AddNewObject(spiritBeardedAxeTemplate); if (log.IsDebugEnabled) log.Debug("Added " + spiritBeardedAxeTemplate.Id_nb); } #endregion #region -Spirit War Hammer- ItemTemplate spiritWarHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_war_hammer"); if (spiritWarHammerTemplate == null) { spiritWarHammerTemplate = new ItemTemplate(); spiritWarHammerTemplate.Name = "spirit war hammer"; spiritWarHammerTemplate.Level = 45; spiritWarHammerTemplate.Durability = 100; spiritWarHammerTemplate.MaxDurability = 100; spiritWarHammerTemplate.Condition = 50000; spiritWarHammerTemplate.MaxCondition = 50000; spiritWarHammerTemplate.Quality = 100; spiritWarHammerTemplate.DPS_AF = 145; spiritWarHammerTemplate.SPD_ABS = 35; spiritWarHammerTemplate.Hand = handRight; spiritWarHammerTemplate.Type_Damage = dmgCrush; spiritWarHammerTemplate.Object_Type = typeHammer; spiritWarHammerTemplate.Item_Type = slotRightHand; spiritWarHammerTemplate.Weight = 10; spiritWarHammerTemplate.Model = 322; spiritWarHammerTemplate.IsPickable = false; spiritWarHammerTemplate.IsDropable = false; spiritWarHammerTemplate.Id_nb = "spirit_war_hammer"; GameServer.Database.AddNewObject(spiritWarHammerTemplate); if (log.IsDebugEnabled) log.Debug("Added " + spiritWarHammerTemplate.Id_nb); } #endregion #region -Spirit Long Spear- ItemTemplate spiritLongSpearTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_long_spear"); if (spiritLongSpearTemplate == null) { spiritLongSpearTemplate = new ItemTemplate(); spiritLongSpearTemplate.Name = "spirit long spear"; spiritLongSpearTemplate.Level = 45; spiritLongSpearTemplate.Durability = 100; spiritLongSpearTemplate.MaxDurability = 100; spiritLongSpearTemplate.Condition = 50000; spiritLongSpearTemplate.MaxCondition = 50000; spiritLongSpearTemplate.Quality = 100; spiritLongSpearTemplate.DPS_AF = 145; spiritLongSpearTemplate.SPD_ABS = 48; spiritLongSpearTemplate.Hand = handTwo; spiritLongSpearTemplate.Type_Damage = dmgSlash; spiritLongSpearTemplate.Object_Type = typeSpear; spiritLongSpearTemplate.Item_Type = slotTwoHand; spiritLongSpearTemplate.Weight = 10; spiritLongSpearTemplate.Model = 329; spiritLongSpearTemplate.IsPickable = false; spiritLongSpearTemplate.IsDropable = false; spiritLongSpearTemplate.Id_nb = "spirit_long_spear"; GameServer.Database.AddNewObject(spiritLongSpearTemplate); if (log.IsDebugEnabled) log.Debug("Added " + spiritLongSpearTemplate.Id_nb); } #endregion #endregion #region [Commander Weapons] #region -Bonedancer 1 Handed Sword- ItemTemplate bonedancer1HandedSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_sword"); if (bonedancer1HandedSwordTemplate == null) { bonedancer1HandedSwordTemplate = new ItemTemplate(); bonedancer1HandedSwordTemplate.Name = "bonedancer 1 handed sword"; bonedancer1HandedSwordTemplate.Level = 50; bonedancer1HandedSwordTemplate.Durability = 100; bonedancer1HandedSwordTemplate.MaxDurability = 100; bonedancer1HandedSwordTemplate.Condition = 50000; bonedancer1HandedSwordTemplate.MaxCondition = 50000; bonedancer1HandedSwordTemplate.Quality = 100; bonedancer1HandedSwordTemplate.DPS_AF = 165; bonedancer1HandedSwordTemplate.SPD_ABS = 36; bonedancer1HandedSwordTemplate.Hand = handRight; bonedancer1HandedSwordTemplate.Type_Damage = dmgSlash; bonedancer1HandedSwordTemplate.Object_Type = typeSword; bonedancer1HandedSwordTemplate.Item_Type = slotRightHand; bonedancer1HandedSwordTemplate.Weight = 10; bonedancer1HandedSwordTemplate.Model = 3463; bonedancer1HandedSwordTemplate.IsPickable = false; bonedancer1HandedSwordTemplate.IsDropable = false; bonedancer1HandedSwordTemplate.Id_nb = "bonedancer_1_handed_sword"; GameServer.Database.AddNewObject(bonedancer1HandedSwordTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer1HandedSwordTemplate.Id_nb); } #endregion #region -Bonedancer 2 Handed Sword- ItemTemplate bonedancer2HandedSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_sword"); if (bonedancer2HandedSwordTemplate == null) { bonedancer2HandedSwordTemplate = new ItemTemplate(); bonedancer2HandedSwordTemplate.Name = "bonedancer 2 handed sword"; bonedancer2HandedSwordTemplate.Level = 50; bonedancer2HandedSwordTemplate.Durability = 100; bonedancer2HandedSwordTemplate.MaxDurability = 100; bonedancer2HandedSwordTemplate.Condition = 50000; bonedancer2HandedSwordTemplate.MaxCondition = 50000; bonedancer2HandedSwordTemplate.Quality = 100; bonedancer2HandedSwordTemplate.DPS_AF = 165; bonedancer2HandedSwordTemplate.SPD_ABS = 41; bonedancer2HandedSwordTemplate.Hand = handTwo; bonedancer2HandedSwordTemplate.Type_Damage = dmgSlash; bonedancer2HandedSwordTemplate.Object_Type = typeSword; bonedancer2HandedSwordTemplate.Item_Type = slotTwoHand; bonedancer2HandedSwordTemplate.Weight = 10; bonedancer2HandedSwordTemplate.Model = 3462; bonedancer2HandedSwordTemplate.IsPickable = false; bonedancer2HandedSwordTemplate.IsDropable = false; bonedancer2HandedSwordTemplate.Id_nb = "bonedancer_2_handed_sword"; GameServer.Database.AddNewObject(bonedancer2HandedSwordTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer2HandedSwordTemplate.Id_nb); } #endregion #region -Bonedancer 1 Handed Hammer- ItemTemplate bonedancer1HandedHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_hammer"); if (bonedancer1HandedHammerTemplate == null) { bonedancer1HandedHammerTemplate = new ItemTemplate(); bonedancer1HandedHammerTemplate.Name = "bonedancer 1 handed hammer"; bonedancer1HandedHammerTemplate.Level = 50; bonedancer1HandedHammerTemplate.Durability = 100; bonedancer1HandedHammerTemplate.MaxDurability = 100; bonedancer1HandedHammerTemplate.Condition = 50000; bonedancer1HandedHammerTemplate.MaxCondition = 50000; bonedancer1HandedHammerTemplate.Quality = 100; bonedancer1HandedHammerTemplate.DPS_AF = 165; bonedancer1HandedHammerTemplate.SPD_ABS = 36; bonedancer1HandedHammerTemplate.Hand = handRight; bonedancer1HandedHammerTemplate.Type_Damage = dmgCrush; bonedancer1HandedHammerTemplate.Object_Type = typeHammer; bonedancer1HandedHammerTemplate.Item_Type = slotRightHand; bonedancer1HandedHammerTemplate.Weight = 10; bonedancer1HandedHammerTemplate.Model = 3466; bonedancer1HandedHammerTemplate.IsPickable = false; bonedancer1HandedHammerTemplate.IsDropable = false; bonedancer1HandedHammerTemplate.Id_nb = "bonedancer_1_handed_hammer"; GameServer.Database.AddNewObject(bonedancer1HandedHammerTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer1HandedHammerTemplate.Id_nb); } #endregion #region -Bonedancer 2 Handed Hammer- ItemTemplate bonedancer2HandedHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_hammer"); if (bonedancer2HandedHammerTemplate == null) { bonedancer2HandedHammerTemplate = new ItemTemplate(); bonedancer2HandedHammerTemplate.Name = "bonedancer 2 handed hammer"; bonedancer2HandedHammerTemplate.Level = 50; bonedancer2HandedHammerTemplate.Durability = 100; bonedancer2HandedHammerTemplate.MaxDurability = 100; bonedancer2HandedHammerTemplate.Condition = 50000; bonedancer2HandedHammerTemplate.MaxCondition = 50000; bonedancer2HandedHammerTemplate.Quality = 100; bonedancer2HandedHammerTemplate.DPS_AF = 165; bonedancer2HandedHammerTemplate.SPD_ABS = 41; bonedancer2HandedHammerTemplate.Hand = handTwo; bonedancer2HandedHammerTemplate.Type_Damage = dmgCrush; bonedancer2HandedHammerTemplate.Object_Type = typeHammer; bonedancer2HandedHammerTemplate.Item_Type = slotTwoHand; bonedancer2HandedHammerTemplate.Weight = 10; bonedancer2HandedHammerTemplate.Model = 3465; bonedancer2HandedHammerTemplate.IsPickable = false; bonedancer2HandedHammerTemplate.IsDropable = false; bonedancer2HandedHammerTemplate.Id_nb = "bonedancer_2_handed_hammer"; GameServer.Database.AddNewObject(bonedancer2HandedHammerTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer2HandedHammerTemplate.Id_nb); } #endregion #region -Bonedancer 1 Handed Axe- ItemTemplate bonedancer1HandedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_axe"); if (bonedancer1HandedAxeTemplate == null) { bonedancer1HandedAxeTemplate = new ItemTemplate(); bonedancer1HandedAxeTemplate.Name = "bonedancer 1 handed axe"; bonedancer1HandedAxeTemplate.Level = 50; bonedancer1HandedAxeTemplate.Durability = 100; bonedancer1HandedAxeTemplate.MaxDurability = 100; bonedancer1HandedAxeTemplate.Condition = 50000; bonedancer1HandedAxeTemplate.MaxCondition = 50000; bonedancer1HandedAxeTemplate.Quality = 100; bonedancer1HandedAxeTemplate.DPS_AF = 165; bonedancer1HandedAxeTemplate.SPD_ABS = 36; bonedancer1HandedAxeTemplate.Hand = handRight; bonedancer1HandedAxeTemplate.Type_Damage = dmgSlash; bonedancer1HandedAxeTemplate.Object_Type = typeAxe; bonedancer1HandedAxeTemplate.Item_Type = slotRightHand; bonedancer1HandedAxeTemplate.Weight = 10; bonedancer1HandedAxeTemplate.Model = 3469; bonedancer1HandedAxeTemplate.IsPickable = false; bonedancer1HandedAxeTemplate.IsDropable = false; bonedancer1HandedAxeTemplate.Id_nb = "bonedancer_1_handed_axe"; GameServer.Database.AddNewObject(bonedancer1HandedAxeTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer1HandedAxeTemplate.Id_nb); } #endregion #region -Bonedancer 2 Handed Axe- ItemTemplate bonedancer2HandedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_axe"); if (bonedancer2HandedAxeTemplate == null) { bonedancer2HandedAxeTemplate = new ItemTemplate(); bonedancer2HandedAxeTemplate.Name = "bonedancer 2 handed axe"; bonedancer2HandedAxeTemplate.Level = 50; bonedancer2HandedAxeTemplate.Durability = 100; bonedancer2HandedAxeTemplate.MaxDurability = 100; bonedancer2HandedAxeTemplate.Condition = 50000; bonedancer2HandedAxeTemplate.MaxCondition = 50000; bonedancer2HandedAxeTemplate.Quality = 100; bonedancer2HandedAxeTemplate.DPS_AF = 165; bonedancer2HandedAxeTemplate.SPD_ABS = 41; bonedancer2HandedAxeTemplate.Hand = handTwo; bonedancer2HandedAxeTemplate.Type_Damage = dmgSlash; bonedancer2HandedAxeTemplate.Object_Type = typeAxe; bonedancer2HandedAxeTemplate.Item_Type = slotTwoHand; bonedancer2HandedAxeTemplate.Weight = 10; bonedancer2HandedAxeTemplate.Model = 3468; bonedancer2HandedAxeTemplate.IsPickable = false; bonedancer2HandedAxeTemplate.IsDropable = false; bonedancer2HandedAxeTemplate.Id_nb = "bonedancer_2_handed_axe"; GameServer.Database.AddNewObject(bonedancer2HandedAxeTemplate); if (log.IsDebugEnabled) log.Debug("Added " + bonedancer2HandedAxeTemplate.Id_nb); } #endregion #endregion } public void SetWeapon(ItemTemplate weapon, eInventorySlot slot) { item = pet.Body.Inventory.GetItem(eInventorySlot.RightHandWeapon); pet.Body.Inventory.RemoveItem(item); pet.Body.Inventory.RemoveItem(pet.Body.Inventory.GetItem(eInventorySlot.LeftHandWeapon)); pet.Body.Inventory.RemoveItem(pet.Body.Inventory.GetItem(eInventorySlot.TwoHandWeapon)); pet.Body.Inventory.AddTemplate(weapon, 1, slot, slot); pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded); pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.Standard); } public int OnCommand(GameClient client, string[] args) { pet = client.Player.ControlledNpc; player = client.Player; #region -spirit weapons var- spiritLongSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_long_sword"); spiritBeardedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_bearded_axe"); spiritWarHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_war_hammer"); spiritLongSpearTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "spirit_long_spear"); #endregion #region -commander weapons var- bonedancer1HandedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_axe"); bonedancer1HandedHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_hammer"); bonedancer1HandedSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_1_handed_sword"); bonedancer2HandedAxeTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_axe"); bonedancer2HandedHammerTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_hammer"); bonedancer2HandedSwordTemplate = (ItemTemplate)GameServer.Database.FindObjectByKey(typeof(ItemTemplate), "bonedancer_2_handed_sword"); #endregion elfModel = (ushort)Util.Random(334, 349); luriModel = (ushort)Util.Random(318, 333); norsemanModel = (ushort)Util.Random(503, 510); trollModel = (ushort)Util.Random(511, 518); dwarfModel = (ushort)Util.Random(519, 526); koboldModel = (ushort)Util.Random(527, 534); valkynModel = (ushort)Util.Random(832, 839); lynxModel = (ushort)135; treeModel = (ushort)97; wolfModel = (ushort)650; if (player.CharacterClass.ID != (int)eCharacterClass.Bonedancer && args.Length > 4) { return DisplaySyntax(client); } if (args.Length == 1) { return DisplaySyntax(client); } if (pet == null) { client.Out.SendMessage("Vous n'avez pas de familier sous votre contrôle.", eChatType.CT_System, eChatLoc.CL_SystemWindow); return 0; } switch (args[1]) { #region [Commande info] case "info": { if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { player.Out.SendMessage( "Pour personnaliser votre familier, en tant que Prêtre de Hel, il vous suffit d'utiliser les commandes suivante: \n" + "Choisir la race de votre familier: \n" + "/pet race \n" + "Pour choisir l'arme de votre familier: \n" + "/pet arme \n\n\n" + PetInfo(petinfo) , eChatType.CT_Staff, eChatLoc.CL_PopupWindow); } if (player.CharacterClass.ID == (int)eCharacterClass.Bonedancer) { player.Out.SendMessage( "Pour personnaliser votre familier, en tant que Prêtre de Bogdar, il vous suffit d'utiliser la commande suivante: \n" + "Pour choisir l'arme de votre familier: \n" + "/pet arme 1|2 (1: arme à une main, 2: arme à deux mains) \n\n\n" + PetInfo(petinfo) , eChatType.CT_Staff, eChatLoc.CL_PopupWindow); } if (player.CharacterClass.ID == (int)eCharacterClass.Enchanter) { player.Out.SendMessage( "Pour personnaliser votre familier, en tant qu'Enchanteur, il vous suffit d'utiliser les commandes suivante: \n" + "Choisir la race de votre familier: \n" + "/pet race \n\n\n" + PetInfo(petinfo) , eChatType.CT_Staff, eChatLoc.CL_PopupWindow); } if (player.CharacterClass.ID == (int)eCharacterClass.Druid) { player.Out.SendMessage( "Pour personnaliser votre familier, en tant que Druid, il vous suffit d'utiliser les commandes suivante: \n" + "Choisir la race de votre familier: \n" + "/pet race \n\n\n" + PetInfo(petinfo) , eChatType.CT_Staff, eChatLoc.CL_PopupWindow); } } break; #endregion #region [Race] case "race": { #region [SpiritMaster Race] //[Mid]race: troll, viking, nain, kobold et valkyn uniquement pour les spiritmaster. if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { try { switch (args[2]) { case "viking": { pet.Body.Model = norsemanModel; } break; case "troll": { pet.Body.Model = trollModel; } break; case "nain": { pet.Body.Model = dwarfModel; } break; case "kobold": { pet.Body.Model = koboldModel; } break; case "valkyn": { pet.Body.Model = valkynModel; } break; } } catch (Exception) { return DisplaySyntax(client); } } #endregion #region [Enchanter Race] //[Hib]race: elfe, luri pour les enchanteurs. if (player.CharacterClass.ID == (int)eCharacterClass.Enchanter) { try { switch (args[2]) { case "elfe": { pet.Body.Model = elfModel; } break; case "luri": { pet.Body.Model = luriModel; } break; } } catch (Exception) { return DisplaySyntax(client); } } #endregion #region [Druid Race] //[Hib]race: lynx,arbre,loup pour les druides. if (player.CharacterClass.ID == (int)eCharacterClass.Druid) { try { switch (args[2]) { case "lynx": { pet.Body.Model = lynxModel; } break; case "arbre": { pet.Body.Model = treeModel; } break; case "loup": { pet.Body.Model = wolfModel; } break; } } catch (Exception) { return DisplaySyntax(client); } } #endregion #region [Classe invalide] //Si aucune classe ne correspond... if (player.CharacterClass.ID == (int)eCharacterClass.Bonedancer) { player.Out.SendMessage("Votre classe ne vous permet pas de choisir la race de votre familier !", eChatType.CT_System, eChatLoc.CL_SystemWindow); return 0; } #endregion } break; #endregion #region [Weapons] case "arme": { if (!pet.Body.InCombat) { try { switch (args[2]) { #region [épée] case "epee": { if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { SetWeapon(spiritLongSwordTemplate, eInventorySlot.RightHandWeapon); } if (player.CharacterClass.ID == (int)eCharacterClass.Bonedancer) { switch (args[3]) { case "1": { SetWeapon(bonedancer1HandedSwordTemplate, eInventorySlot.RightHandWeapon); } break; case "2": { SetWeapon(bonedancer2HandedSwordTemplate, eInventorySlot.TwoHandWeapon); pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded); } break; } } } break; #endregion #region [hache] case "hache": { if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { SetWeapon(spiritBeardedAxeTemplate, eInventorySlot.RightHandWeapon); } if (player.CharacterClass.ID == (int)eCharacterClass.Bonedancer) { switch (args[3]) { case "1": { SetWeapon(bonedancer1HandedAxeTemplate, eInventorySlot.RightHandWeapon); } break; case "2": { SetWeapon(bonedancer2HandedAxeTemplate, eInventorySlot.TwoHandWeapon); pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded); } break; } } } break; #endregion #region [marteau] case "marteau": { if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { SetWeapon(spiritWarHammerTemplate, eInventorySlot.RightHandWeapon); } if (player.CharacterClass.ID == (int)eCharacterClass.Bonedancer) { switch (args[3]) { case "1": { SetWeapon(bonedancer1HandedHammerTemplate, eInventorySlot.RightHandWeapon); } break; case "2": { SetWeapon(bonedancer2HandedHammerTemplate, eInventorySlot.TwoHandWeapon); pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded); } break; } } } break; #endregion] #region [lance] case "lance": { if (player.CharacterClass.ID == (int)eCharacterClass.Spiritmaster) { SetWeapon(spiritLongSpearTemplate, eInventorySlot.TwoHandWeapon); ; pet.Body.SwitchWeapon(GameLiving.eActiveWeaponSlot.TwoHanded); } else { player.Out.SendMessage("Vote familier n'a pas accès à ce type d'arme !", eChatType.CT_System, eChatLoc.CL_SystemWindow); } } break; #endregion] } } catch (Exception) { return DisplaySyntax(client); } } else { player.Out.SendMessage("Vous ne pouvez pas changer l'arme de votre familier lorsqu'il est en combat !", eChatType.CT_Important, eChatLoc.CL_SystemWindow); } break; } #endregion } return 1; } public string PetInfo(string str) {byte[] decbuff = Convert.FromBase64String(str); return System.Text.Encoding.UTF8.GetString(decbuff);} } }