Пример #1
0
        public static void DbSqlItems <TKey>(DbDebugItem <TKey> debug, AbstractDb <TKey> db)
        {
            DbSqlWriter writer = new DbSqlWriter();

            writer.Init(debug);

            if (debug.DestinationServer == ServerType.RAthena)
            {
                DbWriterMethods.DbItemsCommaWriter(debug, db);
                writer.AppendHeader(writer.IsRenewal ? RAthenaItemDbSqlHeaderRenewal : RAthenaItemDbSqlHeader);

                foreach (string line in writer.Read())
                {
                    string[] elements = TextFileHelper.ExcludeBrackets(line.Trim('\t'));
                    if (!_getItems(writer.IsRenewal, writer.TableName, writer.Builder, elements))
                    {
                        writer.Line(line.ReplaceFirst("//", "#"));
                    }
                }
            }
            else
            {
                var table = db.Table;
                writer.AppendHeader(HerculesItemDbSqlHeader, writer.TableName.Replace("_re", ""));

                foreach (var tuple in table.FastItems.OrderBy(p => p.GetKey <TKey>()))
                {
                    _getItemsHercules(writer.TableName, writer.Builder, tuple);
                }
            }

            writer.Write();
        }
Пример #2
0
        public override void WriteDb(string dbPath, string subPath, ServerType serverType, FileType fileType = FileType.Detect)
        {
            DbDebugItem <int> debug = new DbDebugItem <int>(this);

            debug.DbSource = DbSource;
            if (debug.Write(dbPath, subPath, serverType, fileType))
            {
                DbWriterMethods.DbItemsCommaWriter(debug, this);
            }

            if (serverType == ServerType.RAthena)
            {
                debug.DbSource = ServerDbs.ItemsAvail;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsCommaRange(debug, this, ServerItemAttributes.Sprite.Index, 1, "");
                }

                debug.DbSource = ServerDbs.ItemsDelay;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsCommaRange(debug, this, ServerItemAttributes.Delay.Index, 1, "");
                }

                debug.DbSource = ServerDbs.ItemsNoUse;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsNouse(debug, this);
                }

                debug.DbSource = ServerDbs.ItemsStack;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsStack(debug, this);
                }

                debug.DbSource = ServerDbs.ItemsTrade;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsTrade(debug, this);
                }

                debug.DbSource = ServerDbs.ItemsBuyingStore;
                if (debug.Write(dbPath, subPath, serverType, fileType))
                {
                    DbWriterMethods.DbItemsBuyingStore(debug, this);
                }
            }
        }