コード例 #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));
     }
 }
コード例 #2
0
ファイル: TitleComamnd.cs プロジェクト: 745c5412/tera-emu
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            if (parameters.Lenght > 1)
            {
                try
                {
                    var targeti = parameters.GetParameter(0);
                    var packet  = parameters.getShortParamater(1);

                    var target = CharacterTable.GetCharacter(targeti);

                    if (target == null || !target.IsOnline())
                    {
                        client.Send(new ConsoleMessage("Cible invalide !", ConsoleColorEnum.RED));
                        return;
                    }

                    target.Title = packet;

                    target.RefreshOnMap();

                    client.Send(new ConsoleMessage("Le titre a été modifié avec succès !", ConsoleColorEnum.GREEN));
                }
                catch (FormatException e)
                {
                    client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
                }
            }
            else
            {
                client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
            }
        }
コード例 #3
0
ファイル: AddNpcCommand.cs プロジェクト: 745c5412/tera-emu
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var packet = parameters.GetParameter(0);
         int npcid;
         if (!int.TryParse(packet, out npcid))
         {
             client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
             return;
         }
         var npc = client.Character.myMap.addNpc(npcid, client.Character.CellId, client.Character.Orientation);
         if (npc == null)
         {
             client.Send(new ConsoleMessage("Echoue de l'ajout du pnj invalide !", ConsoleColorEnum.RED));
             return;
         }
         client.Character.myMap.InitNpc(npc);
         NpcTemplateTable.Add(npcid, client.Character);
         client.Send(new ConsoleMessage("PNJ ajouté sur la map avec succès !", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
コード例 #4
0
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            var mapid      = parameters.getShortParamater(0);
            var cellid     = parameters.GetIntParameter(1);
            var toTeleport = client.Character;

            if (parameters.Lenght > 2)
            {
                var playerName = parameters.GetParameter(2);
                toTeleport = CharacterTable.GetCharacter(playerName);
            }

            if (toTeleport != null)
            {
                var NextMap = MapTable.Get(mapid);
                if (NextMap == null)
                {
                    client.Send(new ConsoleMessage("Mapid invalide"));
                    return;
                }
                toTeleport.Teleport(NextMap, cellid);
                client.Send(new ConsoleMessage("Teleportation effectuer"));
            }
            else
            {
                client.Send(new ConsoleMessage("Impossible de trouver le joueur", ConsoleColorEnum.RED));
            }
        }
コード例 #5
0
        public override void Execute(WorldClient Client, CommandParameters parameters)
        {
            if (parameters.Lenght > 0)
            {
                var packet = parameters.GetParameter(0);
                if (packet.Equals("on"))
                {
                    if (Client.IsGameAction(GameActionTypeEnum.KOLIZEUM))
                    {
                        Client.Send(new ChatGameMessage("Vous êtes déjà inscrit au Kolizeum !", "046380"));
                        return;
                    }
                    else if (Client.IsGameAction(GameActionTypeEnum.FIGHT))
                    {
                        Client.Send(new ChatGameMessage("Vous êtes en combat !", "046380"));
                        return;
                    }
                    Client.AddGameAction(new GameKolizeum(Client.GetCharacter()));
                    Client.Send(new ChatGameMessage("Vous vous êtes inscrit au Kolizeum !", "046380"));
                    return;
                }
                else if (packet.Equals("off"))
                {
                    if (!Client.IsGameAction(GameActionTypeEnum.KOLIZEUM))
                    {
                        Client.Send(new ChatGameMessage("Vous n'êtes pas inscrit au Kolizeum !", "046380"));
                        return;
                    }
                    Client.EndGameAction(GameActionTypeEnum.KOLIZEUM);
                    Client.Send(new ChatGameMessage("Vous avez quitté le Kolizeum !", "046380"));
                    return;
                }

                /*else if (packet.Equals("shop"))
                 * {
                 *  if (!Client.CanGameAction(GameActionTypeEnum.EXCHANGE))
                 *  {
                 *      Client.Send(new BasicNoOperationMessage());
                 *      return;
                 *  }
                 *  var Npc = ShopNpcTable.Cache[ItemTypeEnum.ITEM_TYPE_TROPHE];
                 *  var Exchange = new KoliShopExchange(Client, Npc);
                 *  Client.AddGameAction(new GameExchange(Client.Character, Exchange));
                 *  Client.SetExchange(Exchange);
                 *  var CachedP = Client.Character.InventoryCache.getCache().Values.Where(x => x.TemplateID == Settings.AppSettings.GetIntElement("Kolizeum.WinItem")).Count();
                 *  Client.Send(new ChatGameMessage("Bienvenue dans le marché de Kolizeum vous disposez de "+CachedP+" Kolizetons", "046380"));
                 *  Client.Send(new ExchangeCreateMessage(ExchangeTypeEnum.EXCHANGE_SHOP, Client.Character.ActorId.ToString()));
                 *  Client.Send(new ExchangeShopItemListMessage(Npc));
                 *  return;
                 * }*/
            }
            Client.Send(new ChatGameMessage("<b>Kolizeum : </b>\n"
                                            + ".koli on/off - s'inscrire / Quitter au kolizeum\n"
                                            + ".kolig on/off - inscris votre groupe / Quitter\n"
                                            + ".koli shop - marché de kolizeum", "046380"));
        }
コード例 #6
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));
     }
 }
コード例 #7
0
ファイル: ReloadCommand.cs プロジェクト: 745c5412/tera-emu
        public override void Execute(WorldClient client, CommandParameters parameters)
        {
            if (parameters.Lenght > 0)
            {
                switch (parameters.GetParameter(0))
                {
                case "script":
                    Scripting.ScriptKernel.Load();
                    break;

                case "config":
                    Tera.WorldServer.Utils.Settings.Initialize();
                    break;
                }
                client.Send(new ConsoleMessage(parameters.GetParameter(0) + " reloaded !", ConsoleColorEnum.GREEN));
            }
            else
            {
                client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
            }
        }
コード例 #8
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         int itemID = 0;
         try
         {
             itemID = parameters.GetIntParameter(0);
         }
         catch (FormatException e)
         {
             client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
             return;
         }
         var itemTemplate = ItemTemplateTable.GetTemplate(itemID);
         var quantity     = 1;
         var style        = false;
         if (itemTemplate != null)
         {
             if (parameters.Lenght > 1)
             {
                 try
                 {
                     quantity = parameters.GetIntParameter(1);
                 }
                 catch (FormatException e)
                 {
                     client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
                     return;
                 }
             }
             if (parameters.Lenght > 2)
             {
                 var styleStr = parameters.GetParameter(2).ToLower();
                 if (styleStr == "max")
                 {
                     style = true;
                 }
             }
             var item = InventoryItemTable.TryCreateItem(itemID, client.Character, 1, -1, null, style);
             client.Send(new ConsoleMessage("L'objet <b>'" + itemTemplate.Name + "'</b> a correctement ete generer !", ConsoleColorEnum.GREEN));
         }
         else
         {
             client.Send(new ConsoleMessage("Impossible de trouver l'objet n°" + itemID, ConsoleColorEnum.RED));
         }
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
コード例 #9
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var packet = parameters.GetParameter(0);
         client.Send(packet);
         client.Send(new ConsoleMessage("Le packet a été envoyé avec succès !", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
コード例 #10
0
ファイル: HonorCommand.cs プロジェクト: 745c5412/tera-emu
        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));
            }
        }
コード例 #11
0
        public override void Execute(WorldClient Client, CommandParameters parameters)
        {
            if (Settings.AppSettings.GetBoolElement("NpcShop.ConsultPoint"))
            {
                try
                {
                    if (parameters.Lenght < 1)
                    {
                        Client.Send(new ChatGameMessage("<b>Titres : </b>\n"
                                                        + ".titre koli - Donne ton titre avec ton classement en Kolizeum\n"
                                                        + ".titre pvp - Donne ton titre avec ton classement en PvP / Quitter\n"
                                                        + ".titre pvm - Donne ton titre avec ton classement en Pvm\n"
                                                        + ".notitle - Enleve ton titre", "046380"));
                        return;
                    }
                    if (Program.currentTimeMillis() - Client.myChatRestrictions[ChatChannelEnum.CHANNEL_POINT] < 4000)
                    {
                        return;
                    }
                    switch (parameters.GetParameter(0))
                    {
                    case "koli":
                        Client.GetCharacter().Title = 11;
                        break;

                    case "pvp":
                        Client.GetCharacter().Title = 10;
                        break;

                    case "pvm":
                        Client.GetCharacter().Title = 12;
                        break;

                    default:
                        Client.Send(new ChatGameMessage("Titre Invalide consultez la liste en tapant .titre", "3882AC"));
                        return;
                    }
                    Client.Character.RefreshOnMap();
                    Client.Send(new ChatGameMessage("Votre titre a été modifié", "3882AC"));
                    Client.myChatRestrictions[ChatChannelEnum.CHANNEL_POINT] = Program.currentTimeMillis();
                    return;
                }
                catch (Exception e) { Logger.Error(e); return; }
            }
            else
            {
                Client.Send(new ChatGameMessage("Commande desactivée", "046380"));
            }
        }
コード例 #12
0
 public override void Execute(WorldClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var packet = parameters.GetParameter(0);
         client.GetCharacter().myMap.AddStaticGroup(new Couple <int, String>(client.Character.CellId, packet));
         MobGroupFixTable.Update(client.Character.myMap.Id, client.Character.CellId, packet);
         client.Character.RefreshOnMap();
         client.Send(new ConsoleMessage("Le groupe de monstre a été ajouté avec succès !", ConsoleColorEnum.GREEN));
     }
     else
     {
         client.Send(new ConsoleMessage("Parametres invalide !", ConsoleColorEnum.RED));
     }
 }
コード例 #13
0
ファイル: FindCommand.cs プロジェクト: Emudofus/ArkaliaCore
        public override void Execute(Network.Game.GameClient client, CommandParameters parameters)
        {
            if(parameters.Lenght > 0)
            {
                var searchType = parameters.GetParameter(0).ToLower();
                switch (searchType)
                {
                    case "item"://Item finder order by level
                        if (parameters.Lenght > 1)
                        {
                            var itemCriterion = parameters.GetParameter(1);
                            var itemSearched = new StringBuilder();
                            foreach (var item in Database.Tables.ItemTemplateTable.Cache.Values.
                                ToList().FindAll(x => x.Name.ToLower().Contains(itemCriterion.ToLower())).OrderBy(x => x.Level))
                            {
                                itemSearched.Append(item.Name + "(" + item.ID + ") Niveau : " + item.Level + "<br />");
                            }
                            client.ConsoleMessage("Liste des resultats :", Enums.ConsoleColorEnum.GREEN);
                            client.ConsoleMessage(itemSearched.ToString(), Enums.ConsoleColorEnum.WHITE);
                        }
                        else
                        {
                            client.ConsoleMessage("Parametre invalide, entrer un terme a chercher !", Enums.ConsoleColorEnum.RED);
                        }
                        break;

                    default:
                        client.ConsoleMessage("Terme de recherche '" + searchType + "' invalide", Enums.ConsoleColorEnum.RED);
                        break;
                }
            }
            else
            {
                client.ConsoleMessage("Parametre invalide, entrer un terme a chercher !", Enums.ConsoleColorEnum.RED);
            }
        }
コード例 #14
0
ファイル: KamasCommand.cs プロジェクト: Emudofus/ArkaliaCore
        public override void Execute(Network.Game.GameClient client, CommandParameters parameters)
        {
            var quantity = parameters.GetIntParameter(0);
            var to = client;

            if (parameters.Lenght > 1)
            {
                var name = parameters.GetParameter(1);
                to = World.GetClient(name);
            }

            if (to != null)
            {
                to.Character.Kamas += quantity;
                to.SendStats();
                client.ConsoleMessage("Kamas ajouter");
                client.Character.Save();
            }
            else
            {
                client.ConsoleMessage("Impossible de trouver le joueur", Enums.ConsoleColorEnum.RED);
            }
        }
コード例 #15
0
        public override void Execute(Network.Game.GameClient client, CommandParameters parameters)
        {
            var mapid = parameters.GetIntParameter(0);
            var cellid = parameters.GetIntParameter(1);
            var toTeleport = client;

            if (parameters.Lenght > 2)
            {
                var playerName = parameters.GetParameter(2);
                toTeleport = World.GetClient(playerName);
            }

            if (toTeleport != null)
            {
                toTeleport.Teleport(mapid, cellid);
                client.ConsoleMessage("Teleportation effectuer !");
                toTeleport.Character.Save();
            }
            else
            {
                client.ConsoleMessage("Impossible de trouver le joueur", Enums.ConsoleColorEnum.RED);
            }
        }
コード例 #16
0
ファイル: ItemCommand.cs プロジェクト: Emudofus/ArkaliaCore
 public override void Execute(Network.Game.GameClient client, CommandParameters parameters)
 {
     if (parameters.Lenght > 0)
     {
         var itemID = parameters.GetIntParameter(0);
         var itemTemplate = Items.ItemManager.GetTemplate(itemID);
         var quantity = 1;
         var style = false;
         if (itemTemplate != null)
         {
             if (parameters.Lenght > 1)
             {
                 quantity = parameters.GetIntParameter(1);
             }
             if (parameters.Lenght > 2)
             {
                 var styleStr = parameters.GetParameter(2).ToLower();
                 if (styleStr == "max")
                 {
                     style = true;
                 }
             }
             var item = Items.ItemManager.GenerateItem(client.Character.ID, itemTemplate, quantity, style);
             client.Character.Bag.Add(item);
             client.ConsoleMessage("L'objet <b>'" +  itemTemplate.Name + "'</b> a correctement ete generer !", Enums.ConsoleColorEnum.GREEN);
         }
         else
         {
             client.ConsoleMessage("Impossible de trouver l'objet n°" + itemID, Enums.ConsoleColorEnum.RED);
         }
     }
     else
     {
         client.ConsoleMessage("Parametres invalide !", Enums.ConsoleColorEnum.RED);
     }
 }
コード例 #17
0
ファイル: FmCommand.cs プロジェクト: 745c5412/tera-emu
        public override void Execute(WorldClient Client, CommandParameters parameters)
        {
            if (Settings.AppSettings.GetBoolElement("NpcShop.Fm"))
            {
                if ((Program.currentTimeMillis() - Client.lastCheckPoint) < 3000)
                {
                    return;
                }
                if (parameters.Lenght < 2)
                {
                    Client.Send(new ChatGameMessage("Syntaxe invalide : .fm coiffe/cape pa/po/pm", "682B2B"));
                    return;
                }
                ItemSlotEnum Slot = ItemSlotEnum.SLOT_ITEMBAR_13;
                if (parameters.GetParameter(0) == "coiffe")
                {
                    Slot = ItemSlotEnum.SLOT_COIFFE;
                }
                else if (parameters.GetParameter(0) == "cape")
                {
                    Slot = ItemSlotEnum.SLOT_CAPE;
                }
                else
                {
                    Client.Send(new ChatGameMessage("Liste disponnible : coiffe/cape", "682B2B"));
                    return;
                }
                var Effect = EffectEnum.AddPods;
                switch (parameters.GetParameter(1))
                {
                case "pa":
                    Effect = EffectEnum.AddPA;
                    break;

                case "pm":
                    Effect = EffectEnum.AddPM;
                    break;

                case "po":
                    Effect = EffectEnum.AddPO;
                    break;

                default:
                    Client.Send(new ChatGameMessage("Liste disponnible : pa/pm/po", "682B2B"));
                    return;
                }
                var Points = AccountTable.getPoints(Client.Account);
                if (Settings.AppSettings.GetIntElement("NpcShop.FmCost") > Points)
                {
                    Client.Send(new ChatGameMessage("Il vous manque " + (Settings.AppSettings.GetIntElement("NpcShop.FmCost") - Points) + " points pour utiliser ce privilege", "682B2B"));
                    return;
                }
                var Object = Client.Character.InventoryCache.GetItemInSlot(Slot);
                if (Object == null)
                {
                    Client.Send(new ChatGameMessage("Vous ne portez pas de " + parameters.GetParameter(0), "682B2B"));
                    return;
                }
                if (Client.GetFight() != null)
                {
                    Client.Send(new ChatGameMessage("Impossible en combat", "682B2B"));
                    return;
                }
                if (Object.GetStats().GetEffectFM(Effect).Total != 0)
                {
                    Client.Send(new ChatGameMessage("Votre " + parameters.GetParameter(0) + " donne déjà un " + parameters.GetParameter(1), "682B2B"));
                    return;
                }
                if (Effect != EffectEnum.AddPO)
                {
                    if (Object.GetStats().GetEffectFM(EffectEnum.AddPM).Total != 0 || Object.GetStats().GetEffectFM(EffectEnum.AddPA).Total != 0)
                    {
                        Client.Send(new ChatGameMessage("Votre " + parameters.GetParameter(0) + " donne déjà un pa ou un pm", "682B2B"));
                        return;
                    }
                }
                AccountTable.SubstractPoints(Client.Account.ID, Settings.AppSettings.GetIntElement("NpcShop.FmCost"));
                Client.Character.GetStats().UnMerge(Object.GetStats());
                Object.GetStats().AddItem(Effect, 1);
                Client.Character.GetStats().Merge(Object.GetStats());

                Client.Send(new ObjectRemoveMessage(Object.ID));
                Client.Send(new ObjectAddInventoryMessage(Object));
                Client.Send(new FmMoveMessage("KO+" + Object.ID + "|1|" + Object.TemplateID + "|" + Object.GetStats().ToItemStats().Replace(";", "#")));
                Client.Send(new FmCMessage("K;" + Object.TemplateID));
                InventoryItemTable.Update(Object);
                Client.Send(new ChatGameMessage("Votre " + Object.Template.Name + " donne désormais +1" + parameters.GetParameter(1).ToUpper() + " en plus de ses jets habituels !", "FF0000"));
                Client.Send(new AccountStatsMessage(Client.Character));
                Client.lastCheckPoint = Program.currentTimeMillis();
                return;
            }
            else
            {
                Client.Send(new ChatGameMessage("Fromagerie desactivée", "046380"));
            }
        }
コード例 #18
0
ファイル: ItemCommand.cs プロジェクト: 745c5412/tera-emu
        public override void Execute(WorldClient Client, CommandParameters parameters)
        {
            if (Settings.AppSettings.GetBoolElement("NpcShop.Use"))
            {
                if (parameters.Lenght < 1)
                {
                    StringBuilder sb = new StringBuilder("Listes des commandes d'achats d'items (" + Settings.AppSettings.GetIntElement("NpcShop.Cost") + " Points)\n");
                    sb.Append("<b>.item coiffe</b> ouvre la boutique des chapeau\n");
                    sb.Append("<b>.item cape</b> ouvre la boutique des capes\n");
                    sb.Append("<b>.item amulette</b> ouvre la boutique des amulettes\n");
                    sb.Append("<b>.item arc</b> ouvre la boutique des arc\n");
                    sb.Append("<b>.item baguette</b> ouvre la boutique des baguettes\n");
                    sb.Append("<b>.item baton</b> ouvre la boutique des batons\n");
                    sb.Append("<b>.item dague</b> ouvre la boutique des dagues\n");
                    sb.Append("<b>.item epee</b> ouvre la boutique des épes\n");
                    sb.Append("<b>.item marteau</b> ouvre la boutique des marteaux\n");
                    sb.Append("<b>.item pelle</b> ouvre la boutique des pelles\n");
                    sb.Append("<b>.item anneau</b> ouvre la boutique des anneaux\n");
                    sb.Append("<b>.item ceinture</b> ouvre la boutique des ceintures\n");
                    sb.Append("<b>.item botte</b> ouvre la boutique des bottes\n");
                    sb.Append("<b>.item famillier</b> ouvre la boutique des familliers\n");
                    sb.Append("<b>.item hache</b> ouvre la boutique des haches\n");
                    sb.Append("<b>.item dofus</b> ouvre la boutique des dofus\n");
                    sb.Append("<b>.item d2</b> ouvre la boutique des items 2.0\n");
                    sb.Append("<b>.fm coiffe/cape pa/po/pm</b>  Fm votre item\n");
                    Client.Send(new ChatGameMessage(sb.ToString(), "0281A1"));
                    return;
                }
                ItemTypeEnum Type;
                switch (parameters.GetParameter(0))
                {
                case "coiffe":
                    Type = ItemTypeEnum.ITEM_TYPE_COIFFE;
                    break;

                case "cape":
                    Type = ItemTypeEnum.ITEM_TYPE_CAPE;
                    break;

                case "amulette":
                    Type = ItemTypeEnum.ITEM_TYPE_AMULETTE;
                    break;

                case "arc":
                    Type = ItemTypeEnum.ITEM_TYPE_ARC;
                    break;

                case "baguette":
                    Type = ItemTypeEnum.ITEM_TYPE_BAGUETTE;
                    break;

                case "baton":
                    Type = ItemTypeEnum.ITEM_TYPE_BATON;
                    break;

                case "dague":
                    Type = ItemTypeEnum.ITEM_TYPE_DAGUES;
                    break;

                case "epee":
                    Type = ItemTypeEnum.ITEM_TYPE_EPEE;
                    break;

                case "marteau":
                    Type = ItemTypeEnum.ITEM_TYPE_MARTEAU;
                    break;

                case "pelle":
                    Type = ItemTypeEnum.ITEM_TYPE_PELLE;
                    break;

                case "anneau":
                    Type = ItemTypeEnum.ITEM_TYPE_ANNEAU;
                    break;

                case "ceinture":
                    Type = ItemTypeEnum.ITEM_TYPE_CEINTURE;
                    break;

                case "botte":
                    Type = ItemTypeEnum.ITEM_TYPE_BOTTES;
                    break;

                case "famillier":
                    Type = ItemTypeEnum.ITEM_TYPE_FAMILIER;
                    break;

                case "hache":
                    Type = ItemTypeEnum.ITEM_TYPE_HACHE;
                    break;

                case "dofus":
                    Type = ItemTypeEnum.ITEM_TYPE_DOFUS;
                    break;

                case "d2":
                    Type = ItemTypeEnum.ITEM_TYPE_DONS;
                    break;

                default:
                    Client.Send(new ChatGameMessage("Categorie non valide tapez .boutique pour plus d'informations", "0281A1"));
                    return;
                }
                if (!Client.CanGameAction(GameActionTypeEnum.EXCHANGE))
                {
                    Client.Send(new BasicNoOperationMessage());
                    return;
                }
                var Npc      = ShopNpcTable.Cache[Type];
                var Exchange = new ShopNpcExchange(Client, Npc);
                Client.AddGameAction(new GameExchange(Client.Character, Exchange));
                Client.SetExchange(Exchange);
                Client.Send(new ExchangeCreateMessage(ExchangeTypeEnum.EXCHANGE_SHOP, Client.Character.ActorId.ToString()));
                Client.Send(new ExchangeShopItemListMessage(Npc));
                return;
            }
            else
            {
                Client.Send(new ChatGameMessage("Commande desactivée", "046380"));
            }
        }
コード例 #19
0
ファイル: FmCacCommand.cs プロジェクト: 745c5412/tera-emu
        public override void Execute(WorldClient Client, CommandParameters parameters)
        {
            if (Settings.AppSettings.GetBoolElement("NpcShop.FmCac"))
            {
                if ((Program.currentTimeMillis() - Client.lastCheckPoint) < 3000)
                {
                    return;
                }

                var Object = Client.Character.InventoryCache.GetItemInSlot(ItemSlotEnum.SLOT_ARME);
                if (Object == null)
                {
                    Client.Send(new ChatGameMessage("Vous ne portez pas d'arme", "682B2B"));
                    return;
                }
                if (Client.GetFight() != null)
                {
                    Client.Send(new ChatGameMessage("Impossible en combat", "682B2B"));
                    return;
                }
                String answer;

                try
                {
                    answer = parameters.GetParameter(0);
                }
                catch (Exception e)
                {
                    Client.Send(new ChatGameMessage("Action impossible : vous n'avez pas spécifié l'élément (air, feu, terre, eau) qui remplacera les dégats/vols de vies neutres", "682B2B"));
                    return;
                }
                if (!answer.Equals("air") && !answer.Equals("terre") && !answer.Equals("feu") && !answer.Equals("eau"))
                {
                    Client.Send(new ChatGameMessage("Action impossible : l'élément " + answer + " n'existe pas ! (dispo : air, feu, terre, eau)", "682B2B"));
                    return;
                }

                if (!Object.GetStats().GetWeaponEffects().ContainsKey(EffectEnum.VolNeutre) && !Object.GetStats().GetWeaponEffects().ContainsKey(EffectEnum.DamageNeutre))
                {
                    Client.Send(new ChatGameMessage("Action impossible : votre arme n'a pas de dégats neutre", "682B2B"));
                    return;
                }
                try
                {
                    var b = Object.GetStats().GetWeaponEffects().ToArray();
                    foreach (var i in b)
                    {
                        if (i.Key == EffectEnum.DamageNeutre)
                        {
                            if (answer.Equals("air"))
                            {
                                i.Value.EffectType = EffectEnum.DamageAir;
                            }
                            if (answer.Equals("feu"))
                            {
                                i.Value.EffectType = EffectEnum.DamageFeu;
                            }
                            if (answer.Equals("terre"))
                            {
                                i.Value.EffectType = EffectEnum.DamageTerre;
                            }
                            if (answer.Equals("eau"))
                            {
                                i.Value.EffectType = EffectEnum.DamageEau;
                            }
                            Object.GetStats().RemoveWeaponEffects(i.Key);
                            Object.GetStats().AdWeaponEffects(i.Value.EffectType, i.Value);
                        }

                        if (i.Key == EffectEnum.VolNeutre)
                        {
                            if (answer.Equals("air"))
                            {
                                i.Value.EffectType = EffectEnum.VolAir;
                            }
                            if (answer.Equals("feu"))
                            {
                                i.Value.EffectType = EffectEnum.VolFeu;
                            }
                            if (answer.Equals("terre"))
                            {
                                i.Value.EffectType = EffectEnum.VolTerre;
                            }
                            if (answer.Equals("eau"))
                            {
                                i.Value.EffectType = EffectEnum.VolEau;
                            }
                            Object.GetStats().RemoveWeaponEffects(i.Key);
                            Object.GetStats().AdWeaponEffects(i.Value.EffectType, i.Value);
                        }
                    }

                    Client.Send(new ObjectRemoveMessage(Object.ID));
                    Client.Send(new ObjectAddInventoryMessage(Object));
                    Client.Send(new FmMoveMessage("KO+" + Object.ID + "|1|" + Object.TemplateID + "|" + Object.GetStats().ToItemStats().Replace(";", "#")));
                    Client.Send(new FmCMessage("K;" + Object.TemplateID));
                    InventoryItemTable.Update(Object);
                    Client.Send(new ChatGameMessage("Votre " + Object.Template.Name + " a été FM avec succès en" + answer + " !", "FF0000"));
                    Client.Send(new AccountStatsMessage(Client.Character));
                    Client.lastCheckPoint = Program.currentTimeMillis();
                }
                catch (Exception e) { Logger.Error(e); return; }
            }
            else
            {
                Client.Send(new ChatGameMessage("Fromagerie d'Armes desactivée", "046380"));
            }
        }