Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   ArcheAge (https://forum.zone-game.info/forumdisplay.php?f=187)
-   -   Исследование базы ArcheAge (https://forum.zone-game.info/showthread.php?t=33319)

MadHacker 31.12.2013 15:52

Re: Исследование базы ArcheAge
 
В бд большая куча всего. Но пока на глаза попадается больше "мусора". Модели, анимация, какая то фигня...
Найти в этой каше статы мобов\шмота\прочего пока не удаётся.

Небольшой скриптик, который проставляет текст из таблицы локализации по всем остальным. На нескольких таблицах не отрабатывает и адски медленный (курсорами бегать некошерно, но что-то под sqlite ничего более приличного не нашёл). Гораздо лучше сконвертировать во что нибудь вроде MySQL и сделать то же самое одним запросом за пару минут.
import sqlite3
import sys
 
if (len(sys.argv) < 2):
	print("usage dblocale.py locale(ko|ru|other in db) <dbname default gamedb.sqlite3>")
	sys.exit()
 
 
dbname = "gamedb.sqlite3"
if (len(sys.argv) >= 3):
	dbname = sys.argv[2]
 
print("connect to: %s" % dbname)
conn = sqlite3.connect(dbname)
cur_tbname = conn.cursor()
print("begin tranzaction")
conn.execute('BEGIN TRANSACTION')
print("select table names")
cur_tbname.execute('SELECT tbl_name from localized_texts GROUP BY tbl_name')
cur_fieldname = conn.cursor()
cur_data = conn.cursor()
for record in cur_tbname:
	print("process table %s" % record[0])
	param = (record[0],)
	cur_fieldname.execute('SELECT tbl_column_name from localized_texts WHERE tbl_name = ? GROUP BY tbl_column_name', record)
	for field_rec in cur_fieldname:	
		print ("\t%s"% field_rec[0])
		cur_data.execute('SELECT %s, idx FROM localized_texts WHERE tbl_name="%s" AND tbl_column_name="%s"' % (sys.argv[1], record[0], field_rec[0]))
		query = 'UPDATE %s SET %s = ? WHERE id = ?' %(record[0], field_rec[0])
		for text_rec in cur_data:
			try:
				conn.execute(query, text_rec)
			except sqlite3.OperationalError:
				print ("bad query: %s; params: (%s, %s)" % (query, record[0], field_rec[0]))
 
print("COMMIT")
conn.execute('COMMIT')
print("end all operate")
 
Code: Python
У меня он уже полтора часа пытается справиться с этой базой :)

Mooni 31.12.2013 15:59

Re: Исследование базы ArcheAge
 
Мобы там не обнаружены. Из статов шмота только самое основное.

MadHacker 31.12.2013 16:06

Re: Исследование базы ArcheAge
 
Ага. Ну да. Теперь понятно почему скрипт так тормозил. Я неправильно транзакцию открыл. Или её кто-то закрыл в процессе... Вобщем скрипт нуждается в доработке :)

Mooni 31.12.2013 16:15

Re: Исследование базы ArcheAge
 
300к локалей - удачи...

MadHacker 31.12.2013 16:21

Re: Исследование базы ArcheAge
 
Уже получилось :)
Теперь работать с базой вообще красота.

http://files.mail.ru/93AB24F1A4FF4823BD65E2B66EEB9532

Breaker-RUS 31.12.2013 17:44

Re: Исследование базы ArcheAge
 
Спасибки за базу.... будем ковырять... ток для начала щас в MYSQL перенесу для удобства =)

trixiejack 31.12.2013 19:07

Re: Исследование базы ArcheAge
 
Хе-хе. Всего 1200 НПСов.

MadHacker 10.01.2014 13:39

Re: Исследование базы ArcheAge
 
И никто не хочет ничем делиться.
Ну давайте буду вести монолог с разбродными мыслями.
Табличка allowed_name_chars казалось бы - разрешённые имена для персонажей. А вот хрен. По факту это разрешённые символы для имён гильдий. И да. Там нет половины букв русского алфавита. Зато овердофига корейских иероглифов.

Kelax 10.01.2014 13:56

Re: Исследование базы ArcheAge
 
Цитата:

Сообщение от MadHacker (Сообщение 344983)
И никто не хочет ничем делиться.
Ну давайте буду вести монолог с разбродными мыслями.
Табличка allowed_name_chars казалось бы - разрешённые имена для персонажей. А вот хрен. По факту это разрешённые символы для имён гильдий. И да. Там нет половины букв русского алфавита. Зато овердофига корейских иероглифов.

Про невозможность создать гильдию с определенными русскими буквами уже говорилось, это будет исправлено на ОБТ.

Посмотрел базу, и почему то теперь таблица blocked_texts пуста. Там как раз и были запреты в чате/создание персонажей.

Добавлено через 25 минут
Сравнил базы более ранних билдов, действительно от 14.12 много вырезали.

MadHacker 10.01.2014 14:34

Re: Исследование базы ArcheAge
 
Книги. Кто нибудь соберёт вэб версию?
SELECT books.[name], book_pages.[name], book_page_contents.[text] FROM books 
LEFT JOIN book_elems ON books.[id] = book_elems.[book_id]
LEFT JOIN book_pages ON book_elems.[book_page_id] = book_pages.[id]
LEFT JOIN book_page_contents ON book_elems.[book_page_id] = book_page_contents.[id]
Code: SQL


Текущее время: 00:59. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2023, Jelsoft Enterprises Ltd. Перевод: zCarot