Пример #1
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_itemobject.xml"
filedbfname = Configuration.data_dir() + "/itemobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

db_fields = romdb.DBFields(cur, 'item', fields, [ 'dropability' ])
db_fields.recreate_table([ ])

cur.execute('DROP TABLE IF EXISTS item_ability')
cur.execute("""CREATE TABLE item_ability (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	abilityid INTEGER NOT NULL,
	CONSTRAINT item_ability_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 6),
	CONSTRAINT item_ability_ability_range CHECK (abilityid / 10000 IN (51, 72)),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES item
)
""")
Пример #2
0
#!/usr/bin/env python3

import os, sys

sys.path.append(os.path.join(os.path.dirname(__file__), "..", "lib"))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_weaponobject.xml"
filedbfname = Configuration.data_dir() + "/weaponobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

# construct db table
db_fields = romdb.DBFields(cur, "weapon", fields, ["eqtype", "dropability"])
db_fields.recreate_table([("guid", "sys_name", "id")])

cur.execute("DROP TABLE IF EXISTS weapon_ability")
cur.execute(
    """CREATE TABLE weapon_ability (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	abilityid INTEGER NOT NULL,
	CONSTRAINT weapon_ability_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 6),
	CONSTRAINT weapon_ability_ability_range CHECK (abilityid / 10000 IN (51, 72)),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES weapon
Пример #3
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_addpowerobject.xml"
filedbfname = Configuration.data_dir() + "/addpowerobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

# construct db table
db_fields = romdb.DBFields(cur, 'addpower', fields, [ 'eqtype' ])
db_fields.recreate_table([ ])

cur.execute('DROP TABLE IF EXISTS addpower_weareq ')
cur.execute("""CREATE TABLE addpower_weareq (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	typeid INTEGER NOT NULL,
	value INTEGER NOT NULL,
	CONSTRAINT addpower_weareq_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 10),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES addpower,
	FOREIGN KEY (typeid) REFERENCES sys_weareqtype (id)
)
Пример #4
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_armorobject.xml"
filedbfname = Configuration.data_dir() + "/armorobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

# construct db table
db_fields = romdb.DBFields(cur, 'armor', fields, [ 'eqtype', 'dropability' ])
db_fields.recreate_table([ ('guid', 'sys_name', 'id') ])

cur.execute("""DROP TABLE IF EXISTS armor_ability""")
cur.execute("""CREATE TABLE armor_ability (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	abilityid INTEGER NOT NULL,
	CONSTRAINT armor_ability_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 6),
	CONSTRAINT aror_ability_ability_range CHECK (abilityid / 10000 IN (51, 72)),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES armor
)
""")
Пример #5
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_itemcombine.xml"
filedbfname = Configuration.data_dir() + "/itemcombine.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

db_fields = romdb.DBFields(cur, 'item_combine', fields, [ 'src' ])
db_fields.recreate_table([ ('dstitem', 'sys_name', 'id') ])

cur.execute('DROP TABLE IF EXISTS item_combine_src ')
cur.execute("""CREATE TABLE item_combine_src (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	item INTEGER NOT NULL,
	amount INTEGER NOT NULL,
	CONSTRAINT item_combine_src_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 3),
	CONSTRAINT item_combine_src_amount_range CHECK (amount >= 1),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES item_combine
)""")
conn.commit()
Пример #6
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_treasureobject.xml"
filedbfname = Configuration.data_dir() + "/treasureobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)
db_fields = romdb.DBFields(cur, 'treasure', fields, [ 'dropability', 'item' ])
db_fields.recreate_table([ ('guid', 'sys_name', 'id') ])

cur.execute('DROP TABLE IF EXISTS treasure_drop ')
cur.execute("""CREATE TABLE treasure_drop (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	item INTEGER,
	rate INTEGER NOT NULL,
	count INTEGER NOT NULL,
	CONSTRAINT treasure_drop_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 100),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES treasure
)
""")
conn.commit()
Пример #7
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_recipeobject.xml"
filedbfname = Configuration.data_dir() + "/recipeobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

db_fields = romdb.DBFields(cur, 'recipe', fields, [ 'source' ])
db_fields.recreate_table([ ])

cur.execute('DROP TABLE IF EXISTS recipe_source ')
cur.execute("""CREATE TABLE recipe_source (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	source INTEGER NOT NULL,
	count INTEGER NOT NULL,
	reduce INTEGER NOT NULL,
	CONSTRAINT recipe_source_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 8),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES recipe
)
""")
Пример #8
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_eqrefineabilityobject.xml"
filedbfname = Configuration.data_dir() + "/eqrefineabilityobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

# construct db table
db_fields = romdb.DBFields(cur, 'refine', fields, [ 'eqtype' ])
db_fields.recreate_table([ ])

cur.execute('DROP TABLE IF EXISTS refine_prop')
cur.execute("""CREATE TABLE refine_prop (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	typeid INTEGER NOT NULL,
	value INTEGER NOT NULL,
	CONSTRAINT refine_prop_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 10),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES refine,
	FOREIGN KEY (typeid) REFERENCES sys_weareqtype (id)
)
Пример #9
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_cardobject.xml"
filedbfname = Configuration.data_dir() + "/cardobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

db_fields = romdb.DBFields(cur, 'card', fields, [ ])
db_fields.recreate_table([ ('cardaddpower', 'addpower', 'guid') ])
conn.commit()

records = romdb.decode_db(filedbfname, fields)
for k, v in records.items():
	if not db_fields.insert_fields(v):
		# constraint failure (no sys_name most likely) - skip the item
		continue
	conn.commit()

conn.close()

# vim:set ts=2 sw=2:
Пример #10
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_suitobject.xml"
filedbfname = Configuration.data_dir() + "/suitobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

db_fields = romdb.DBFields(cur, 'suit', fields, [ 'basetype', 'suitlist' ])
db_fields.recreate_table([ ('guid', 'sys_name', 'id') ])

cur.execute('DROP TABLE IF EXISTS suit_bonus')
cur.execute("""CREATE TABLE suit_bonus (
	guid INTEGER NOT NULL,
	itemcount INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	typeid INTEGER NOT NULL,
	value INTEGER NOT NULL,
	CONSTRAINT suitbouns_itemcount_range CHECK (itemcount >= 2 AND itemcount <= 9),
	CONSTRAINT suitbonus_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 3),
	PRIMARY KEY (guid, itemcount, ordernum),
	FOREIGN KEY (typeid) REFERENCES sys_weareqtype (id),
	FOREIGN KEY (guid) REFERENCES suit 
Пример #11
0
#!/usr/bin/env python3

import os, sys
sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'lib'))
import romdb
from config import Configuration
from dbconnection import DBConnection

dbxmlfname = Configuration.xml_dir() + "/db_titleobject.xml"
filedbfname = Configuration.data_dir() + "/titleobject.db"

conn = DBConnection()
cur = conn.cursor()

fields = romdb.load_field_xml(dbxmlfname)

# construct db table
db_fields = romdb.DBFields(cur, 'title', fields, [ 'eqtype' ])
db_fields.recreate_table([ ('guid', 'sys_name', 'id') ])

cur.execute('DROP TABLE IF EXISTS title_weareq ')
cur.execute("""CREATE TABLE title_weareq (
	guid INTEGER NOT NULL,
	ordernum INTEGER NOT NULL,
	typeid INTEGER NOT NULL,
	value INTEGER NOT NULL,
	CONSTRAINT title_weareq_ordernum_range CHECK (ordernum >= 1 AND ordernum <= 5),
	PRIMARY KEY (guid, ordernum),
	FOREIGN KEY (guid) REFERENCES title,
	FOREIGN KEY (typeid) REFERENCES sys_weareqtype (id)
)