Ejemplo n.º 1
0
 public void Delete(KeyValueListBase list)
 {
     if (list.Pairs.Count == 0)
     {
         return;
     }
     ExecuteComand(SqlUtil.BuildDelete(list.TableName, SqlUtil.BuildWhere(list.Pairs)));
 }
Ejemplo n.º 2
0
        public static string BuildUpdate(KeyValueListBase liste, string where)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("UPDATE " + liste.TableName + " SET ");
            AppendKeyValuePairs(sb, liste.Pairs, ", ");
            sb.Append(" WHERE ");
            sb.Append(where);
            return(sb.ToString());
        }
Ejemplo n.º 3
0
        public static string BuildInsert(KeyValueListBase liste)
        {
            List <KeyValuePair <string, object> > pairs = liste.Pairs;
            int           count         = pairs.Count;
            StringBuilder stringBuilder = PrepareInsertBuilder(liste);

            stringBuilder.Append("(");
            for (int index = 0; index < count; ++index)
            {
                KeyValuePair <string, object> keyValuePair = pairs[index];
                stringBuilder.Append(GetValueString(keyValuePair.Value));
                if (index < count - 1)
                {
                    stringBuilder.Append(",");
                }
            }

            stringBuilder.Append(")");
            return(stringBuilder.ToString());
        }
Ejemplo n.º 4
0
        private static StringBuilder PrepareInsertBuilder(KeyValueListBase liste)
        {
            List <KeyValuePair <string, object> > pairs = liste.Pairs;
            int           count         = pairs.Count;
            StringBuilder stringBuilder = new StringBuilder(150);

            stringBuilder.Append("INSERT INTO " + DatabaseUtil.Dialect.QuoteForTableName(liste.TableName) + " (");
            for (int index = 0; index < count; ++index)
            {
                KeyValuePair <string, object> keyValuePair = pairs[index];
                stringBuilder.Append(DatabaseUtil.Dialect.QuoteForColumnName(keyValuePair.Key));
                if (index < count - 1)
                {
                    stringBuilder.Append(",");
                }
            }

            stringBuilder.Append(") VALUES ");
            return(stringBuilder);
        }
Ejemplo n.º 5
0
        private static StringBuilder PrepareInsertBuilder(KeyValueListBase liste)
        {
            var pairs = liste.Pairs;
            var count = pairs.Count;

            var sb = new StringBuilder(150);

            sb.Append("INSERT INTO " + DatabaseUtil.Dialect.QuoteForTableName(liste.TableName) + " (");
            for (var i = 0; i < count; i++)
            {
                var pair = pairs[i];
                sb.Append(DatabaseUtil.Dialect.QuoteForColumnName(pair.Key));
                if (i < count - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append(") VALUES ");
            return(sb);
        }
Ejemplo n.º 6
0
        public static string BuildInsert(KeyValueListBase liste)
        {
            var pairs = liste.Pairs;
            var count = pairs.Count;

            // create the basic statement
            var sb = PrepareInsertBuilder(liste);

            // append values
            sb.Append("(");
            for (var i = 0; i < count; i++)
            {
                var pair = pairs[i];
                sb.Append(GetValueString(pair.Value));
                if (i < count - 1)
                {
                    sb.Append(",");
                }
            }
            sb.Append(")");

            return(sb.ToString());
        }
Ejemplo n.º 7
0
        public static void Initialize()
        {
            if (!Active)
            {
                return;
            }

            m_patchPath = Path.Combine(Path.GetDirectoryName(Plugin.CurrentPlugin.Context.AssemblyPath), PatchName);
            if (File.Exists(m_patchPath))
            {
                File.Delete(m_patchPath);
            }

            var orbSellerAction = new KeyValueListBase("npcs_actions");

            orbSellerAction.AddPair("Type", "Shop");
            orbSellerAction.AddPair("NpcId", OrbSeller);
            orbSellerAction.AddPair("Parameter0", OrbItemTemplate);

            AppendQuery("SET @orbshop=(SELECT Id FROM `npcs_actions` WHERE " +
                        string.Format("`NpcId`={0} AND `Type`='Shop')", OrbSeller));
            AppendQuery(SqlBuilder.BuildDelete("npcs_actions", "Id=@orbshop"));
            AppendQuery(SqlBuilder.BuildDelete("npcs_items", "NpcShopId=@orbshop"));

            AppendQuery(SqlBuilder.BuildInsert(orbSellerAction));
            AppendQuery("SET @orbshop=(SELECT LAST_INSERT_ID())");

            foreach (var seller in Sellers)
            {
                var npcAction = new KeyValueListBase("npcs_actions");
                npcAction.AddPair("Type", "Shop");
                npcAction.AddPair("NpcId", seller.Key);

                AppendQuery("SET @shopid=(SELECT Id FROM `npcs_actions` WHERE " +
                            string.Format("`NpcId`={0} AND `Type`='Shop')", seller.Key));
                AppendQuery(SqlBuilder.BuildDelete("npcs_actions", "Id=@shopid"));
                AppendQuery(SqlBuilder.BuildDelete("npcs_items", "NpcShopId=@shopid"));

                AppendQuery(SqlBuilder.BuildInsert(npcAction));
                AppendQuery("SET @shopid=(SELECT LAST_INSERT_ID())");

                var selector = (from entry in ItemManager.Instance.GetTemplates()
                                where
                                Array.IndexOf(seller.Value, (ItemTypeEnum)entry.TypeId) !=
                                -1 && entry.Level >= MinItemLevel &&
                                entry.Effects.Count > 0 && !entry.Etheral
                                orderby entry.Level ascending
                                select entry);

                foreach (var template in selector)
                {
                    if (IgnoredItems.Contains(template.Id))
                    {
                        continue;
                    }

                    var price = Prices.First(entry => template.Level <= entry.Key).Value;

                    if (template.TypeId == (int)ItemTypeEnum.PAIN)
                    {
                        var restoreEffect =
                            template.Effects.SingleOrDefault(entry => entry.EffectId == EffectsEnum.Effect_AddHealth) as
                            EffectDice;

                        if (restoreEffect == null)
                        {
                            continue;
                        }

                        price = (int)(Math.Max(restoreEffect.DiceFace, restoreEffect.DiceNum) * BreadHpPerKama);
                    }

                    var itemQuery = new KeyValueListBase("npcs_items");
                    itemQuery.AddPair("ItemId", template.Id);
                    itemQuery.AddPair("NpcShopId", new RawData("@shopid"));
                    itemQuery.AddPair("CustomPrice", price);
                    itemQuery.AddPair("BuyCriterion", string.Empty);
                    AppendQuery(SqlBuilder.BuildInsert(itemQuery));

                    if (price > 0)
                    {
                        var orbPrice = OrbsPrices.First(entry => template.Level <= entry.Key).Value;

                        var perfectItemQuery = new KeyValueListBase("npcs_items");
                        perfectItemQuery.AddPair("ItemId", template.Id);
                        perfectItemQuery.AddPair("NpcShopId", new RawData("@orbshop"));
                        perfectItemQuery.AddPair("CustomPrice", orbPrice);
                        perfectItemQuery.AddPair("MaxStats", "1");
                        perfectItemQuery.AddPair("BuyCriterion", string.Empty);
                        AppendQuery(SqlBuilder.BuildInsert(perfectItemQuery));
                    }

                    if (price != 0)
                    {
                        continue;
                    }

                    var updatePrice = new UpdateKeyValueList("items_templates");
                    updatePrice.AddPair("Price", 0);
                    updatePrice.AddWherePair("Id", template.Id);
                    AppendQuery(SqlBuilder.BuildUpdate(updatePrice));
                }
            }
        }
Ejemplo n.º 8
0
 public void Insert(KeyValueListBase list)
 {
     ExecuteComand(SqlUtil.BuildInsert(list));
 }
Ejemplo n.º 9
0
 public void Delete(KeyValueListBase list)
 {
     ExecuteComand(SqlUtil.BuildDelete(list.TableName, SqlUtil.BuildWhere(list.Pairs)));
 }