 |
05.09.2011, 23:35
|
#1
|
|
|
|
Рыцарь-защитник
|
 Регистрация: 08.07.2010
 Сообщений: 631
 Популярность: 3773
 Сказал(а) спасибо: 88
Поблагодарили 275 раз(а) в 163 сообщениях
|
Gamedbd Модуль-игровой-базы-данных
Gamedbd - Один из модулей игрового сервера Perfect World
Используется для хранения игровых данных
I. Содержание и структура
Насколько уже известно, игровые данные запакованы zlib-ом и представлены в формате Berkeley Database
II.Примеры работы с базой
Работать с базой не так сложно, как можно представить по началу, но всё же это стоит делать с максимальной осторожностью.
Запрос делается следующей командой напрямую к сервису базы
 |
Цитата: |
 |
|
|
|
|
|
|
|
./gamedbd gamesys.conf команда параметры |
|
 |
|
 |
|
Команды параметров:
 |
Цитата: |
 |
|
|
|
|
|
|
|
listrolebrief
// — список всех персонажей, в коротком формате:
// roleid,userid,name,occupation,level,exp,moneyall,r eputation
listuserbrief
// — список всех игроков, их голд + статистика:
// userid,rolelist,cash,money,cash_add,cash_buy,cash_ sell,cash_used,add_serial,use_serial,
// cash_current,exg_logcount
listfaction
// — кланы:
// fid,name,level,masterid,masterrole,member_size
listfactionuser
// — список игроков и персонажей, состоящих в кланах:
// rid,name,fid,cls,role,loyalty,nickname
listcity
// — информация о городах, кто захвачен, когда, кем, а также информация о ставках:
// id,level,owner,occupy_time,challenger,deposit,cuto ff_time,battle_time,bonus_time,color,status,timeou t,maxbonus
updateroles
// — должно обновить персонажей, сохранить последние изменения, не тестил
convertdb
// — т.к. база по-умолчанию упакована с помощью zlib, это одна из функций по конвертации
repairdb
// — аналогично mysql — восстановит побитые индексы или базу целиком (если есть бекап)
tablestat
// — сомнительно-полезная инфа о таблицах всей базы
tablestatraw
// — сомнительно-полезная инфа о таблицах всей базы
towdb
// — wbd и есть формат упакованных данных
tobdb
// — bdb — метод хранения данных — кому интересно курите википедию
compressdb
// — ?
decompressdb
// — ?
gennameidx
// — ?
listid tablename
// — выведет занятые ID у любой из таблиц
// например, ./gamedbd gamesys.conf listid user выведет занятые ID пользователей
rewritetable fromname toname
// — функция сомнительного названия, не проверял
rewritetable roleidfile fromname toname
// — функция сомнительного названия, не проверял
read tablename roleid
// — интересная штукенция, выведет двоичную инфу об персонаже
// например, ./gamedbd gamesys.conf read user 16
query roleid
// — выведет всю информацию о персонаже
merge dbdatapath
// слияние баз, полезно при переносе
// в параметре надо указать полный путь к старой папке с базой
listshoplog
// — лог голдшопа:
// roldid,order_id,item_id,expire,item_count,order_co unt,cash_need,time,guid1,guid2
findmaxsize dumpfilename
// — ? |
|
 |
|
 |
|
Вышеперечисленные команды служат в основном для просмотра параметров игровой базы данных.
Самая соль в упаковке, модификации, запаковке. Смотрите команды towdb tobdb compressdb decompressdb. Работать с ними нужно исключительно на тестовых серверах.
Также есть свой сервис (предположительно) для конвертации данных- gamedbd.conv
Запрос делается командой
PHP код:
./gamedbd.conv gamesys.conf команда параметра
Команды параметров:
 |
Цитата: |
 |
|
|
|
|
|
|
|
- importclsconfig
- exportclsconfig
- clearclsconfig
- listrole
- listrolebrief
- listfaction
- listfactionuser
- listcity
- updateroles
- convertdb
- repairdb
- tablestat
- tablestatraw
- towdb
- tobdb
- compressdb
- decompressdb
- gennameidx
- query roleid
- merge dbdatapath
|
|
 |
|
 |
|
III. Ошибки и восстановление игровой базы
В архиве dbtool.zip (см. в приложении) имеется сомнительный сервис для восстановления и исправления базы данных dbtool.
Так же в архиве dbtool.zip (см. в приложении) имеется скрипт, который исправляет ошибки в новую базу[2] и заменяет базу[2] на старую базу[1].
С распакованными данными вам помогут следующие утилиты (~ пакеты в дебиане):
Код:
libdb-dev - Berkeley Database Libraries [development]
libdb-ruby1.8 - Interface to Berkeley DB for Ruby 1.8
libdb-ruby1.9 - Interface to Berkeley DB for Ruby 1.9
libdb4.2++-dev - Berkeley v4.2 Database Libraries for C++ [development]
libdb4.2++c2 - Berkeley v4.2 Database Libraries for C++ [runtime]
libdb4.2-dev - Berkeley v4.2 Database Libraries [development]
libdb4.2-ruby1.8 - transitional package for libdb-ruby1.8
libdb4.2-ruby1.9 - transitional package for libdb-ruby1.9
libdb4.2-tcl - Berkeley v4.2 Database Libraries for TCL [module]
libdb4.3-ruby1.8 - transitional package for libdb-ruby1.8
libdb4.3-ruby1.9 - transitional package for libdb-ruby1.9
libdb4.4-ruby1.8 - transitional package for libdb-ruby1.8
libdb4.5++ - Berkeley v4.5 Database Libraries for C++ [runtime]
libdb4.5++-dev - Berkeley v4.5 Database Libraries for C++ [development]
libdb4.5-dev - Berkeley v4.5 Database Libraries [development]
libdb4.5-java - Berkeley v4.5 Database Libraries for Java
libdb4.5-java-dev - Berkeley v4.5 Database Libraries for Java [development]
libdb4.5-java-gcj - Berkeley v4.5 Database Libraries for Java (native code)
libdb4.5-tcl - Berkeley v4.5 Database Libraries for TCL [module]
libdb4.6++ - Berkeley v4.6 Database Libraries for C++ [runtime]
libdb4.6++-dev - Berkeley v4.6 Database Libraries for C++ [development]
libdb4.6-dbg - Berkeley v4.6 Database Libraries [debug]
libdb4.6-dev - Berkeley v4.6 Database Libraries [development]
libdb4.6-java - Berkeley v4.6 Database Libraries for Java
libdb4.6-java-dev - Berkeley v4.6 Database Libraries for Java [development]
libdb4.6-java-gcj - Berkeley v4.6 Database Libraries for Java (native code)
libdb4.6-tcl - Berkeley v4.6 Database Libraries for TCL [module]
Большое спасибо: gouranga (За примеры работы с базой), BrainFair (За скрипт к dbtool)
Ав. OneFlash
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
11.02.2013, 03:48
|
#2
|
|
|
|
Разведчик
|
 Регистрация: 01.02.2013
 Сообщений: 1
 Популярность: 10
 Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
|
Re: Gamedbd Модуль-игровой-базы-данных
Уважаемый ''Unix можете подсказать как удалить занятые ники, кланы и так же их названия из базы, пробывал разными путями, клан удаляется а название всё равно занято, подскажите пожалуйста. Даже при сносе gamedbd ники всё равно заняты, где может хранится инфа и как её достаь или удалить, вопрос очень актуален среди держателей сервера. (по крайней мере начинающих). Заранее весьма благодарен )
|
|
|
14.02.2013, 23:27
|
#3
|
|
|
|
Рыцарь-защитник
|
 Регистрация: 08.07.2010
 Сообщений: 631
 Популярность: 3773
 Сказал(а) спасибо: 88
Поблагодарили 275 раз(а) в 163 сообщениях
|
Re: Gamedbd Модуль-игровой-базы-данных
ШиФ, а как же uniquenamed ?
________________
Для просмотра ссылок или изображений в подписях, у Вас должно быть не менее 10 сообщение(ий). Сейчас у Вас 0 сообщение(ий).
|
|
|
Пользователь сказал cпасибо:
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Заявление об ответственности / Список мошенников
Часовой пояс GMT +4, время: 19:01.
|
 |