работа с базой characters извне
Всем привет. Появилась пара интересных мыслишек для работы с базой персонажей, а именно - создание/копирование/перенос персонажей через вебморду.
Насколько я понимаю, при генерации гуидов шмоток/персонажей, используются максимальные значения, берущиеся из базы при запуске сервера, и автоматически им увеличиваемые. Это позволяет уменьшить количество запросов в базу данных при добавлении записей о вещах/персонажах.
Но при этом возникает проблема следующего характера: если вручную добавить запись в таблицу characters или item_instance, то сервер заменит эту запись, как только будет создан новый персонаж/копия предмета в игре.
Таким образом, подобные операции невозможны при включенном сервере.
Возможные варианты решения проблемы:
а) Разрешить в базе создание записей с отрицательным значением гуида, и написать патч для ядра, который при построении списка персонажей будет пересоздавать персонажей с отрицательным гуидом. Например, из пхп скрипта мы создаем в базе чара с гуидом -1, а при следующем входе на экран выбора персонажей для этого аккаунта он будет автоматически пересоздан, с нормальными гуидами. Это наиболее удобный вариант на мой взгляд
б) Написать патч для ядра, с добавлением таблиц в БД characters, и обрабатывать их так же, как в предыдущем варианте, за исключением того, что в этих таблицах будет свой порядок гуидов. Главный недостаток - лишние несколько таблиц, дублирующих уже имеющиеся, и которые нужно подгружать.
в) Написать патч для ядра, позволяющий создавать персонажей и добавлять им предметы через консоль сервера (имхо наиболее неудобный вариант)
Соответственно прежде чем что-то на эту тему думать, хотелось бы узнать у разработчиков, какой из вышеперечисленных вариантов наиболее приемлем, и имеет шанс попасть в виде патча в ядро мангоса. Или может быть есть еще какие-то варианты реализации данной функции?
|