???
Математика на уровне МГУ

Показано с 1 по 25 из 69

Тема: Сервер статистики для БзБ. Может, пригодится кому.

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1
    гдетатамзагаризонтам... Аватар для Zed4ever
    Регистрация
    29.08.2006
    Адрес
    НН
    Возраст
    44
    Сообщений
    227

    Re: Сервер статистики для БзБ. Может, пригодится кому.

    Для начала нужно проверить файл DB_ErrLog.tx (лежит рядом с ехе файлом командера).
    Если в нём только записи об успешном подключении - значит всё супер, и работает как надо.
    Если в нём куча сообщений об ошибках - значит надо разбираться шо сие значит. 90% - не верно указан путь к шаблону БД для битв (или вообще не указан) - решение см. п.5 из 1-го поста.

    Поясню общий принцип работы.
    БД Serv_DB это БД, которая содержит "сводную" (игроки, персы, сквады, кто сколько всего сбил, сколько умер, сколько очков заработал, сколько было битв, какие виды техники существуют, стоимость техники и т.д. и т.п.) информацию, и позволяет получить доступ к "подробной" (логи битвы и самолёто-вылетов, инфа по самолето/персо/человеко-вылетам в битве, результаты с/п/ч-вылетов) информации средствами хранимых процедур (ХП) (см. выше ХП Show____).
    Также, через ХП этой БД командер вливает всю информацию о событиях на БоБ-сервере.
    В БД имеются следующие таблицы:
    BattleInfo - сводная информация по битвам (какая карта, чем окончилась, сколько длилась, ссылка на сводные результаты и т.д.)
    EventInfo - текстовые сообщения событий
    GeneralText - текстовые сообщения "общего назначения"
    HangarInfo - инфа о "пепелацах" (пока только самолёт, но м.б. любой управляемый объект) износ, раскраска, борт номер и т.д.
    LastGroundDestroy - инфа о 5 (или 10 - не помню) последних уничтоженных игроком наземных объектов
    LastPlaneDestroy - см. выше, но для самолётов
    Medals_Ribbons - информация о достижениях каждого игрока ("уровень" пилота, медали, нашивки и т.д.)
    Medals_Ribbons_IfCnt - настройки количественных показателей, по которым определяется выдача наград (1 строка - 1 настройка, можно создавать свои настройки по желанию)
    ObjectInfo - тут текстовые названия объектов в игре
    ObjTypeScore - "стоимость" объекта, в зависимости от его класса и типа (ягер и бонбер, пилот и наблюдатель стоят по разному, шлюпка и линкор тоже - вот тут это и настраивается)
    PersonInfo - информация по персонажам: (не игрок! Перс - это бот в "пепелаце". Игрок "вселяется" в перса) уровень умений (как в полном редакторе), налёт, ссылка на результаты и т.д.
    Pilots_OnLine - инфа об игроках он-лайн
    PlayerDep_Log - ссылки на все вылеты игроков во всех битвах
    PlayerInfo - информация об игроках: имя, в каком скваде, ссылка на результаты, аська, текуший статус, стрик (текущий и максимальный) и т.д.
    ResultInfo - "подробные" результаты, (везде, где в Serv_DB ссылка на результаты - это в неё) тут море чего: очки, кол-во уничтоженного и т.д., итого (на текущий момент) 136 параметров.
    SquadInfo - информация о скваде: название, входит-ли в другой сквад, ссылка на результаты сквада, кто командир и т.д.


    Принципы записи информации в БД-шаблон битвы ("подробная" инфа), механику начисления очков по типам (истребительные, бонберские, штурмовые, разведовательные, спасательные, транспортные), механику наказаний за "плохие" действия и т.д. распишу попозже.

    З.Ы. Также, чуть позже, выложу новые версии БД (доработана система наказаний, наград, вывод инфы в логи битвы и вылета).
    Крайний раз редактировалось Zed4ever; 17.01.2013 в 11:29.
    i7 2600К, 16Gb, GTX660Ti, SSD, Win7-64 full ака SDPG_Zed4ever

  2. #2
    Курсант Аватар для SlavikSG
    Регистрация
    26.03.2004
    Адрес
    Новомосковск Тульская обл.
    Возраст
    61
    Сообщений
    441

    Re: Сервер статистики для БзБ. Может, пригодится кому.

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ... где C:\RepkaStat\R1DB - расположение файла Clear_Battle.bak...
    Ой! Ступил по полной! Путь я указал свой, но вот хвостик пути оставил ваш "\R1DB" и получилось у меня D:\BazaSCL\R1DB Даже и не знаю, зачем так сделал. Поздно было. Видать устал уже... Сейчас все поправил. Таблицу удалил (почему-то исправлять себя в живую она мне не разрешила) и запустил запрос по новой. Теперь все выглядит вот так:


    Думаю, должно пахать. Проверить пока не могу. Ну, если только кто-то зайдет на сервер и активно на нем полетает.

    А вообще, можно как-то проверить без пользователей, стало уже что-то писаться в таблицы или нет? Пока смотрю, все по прежнему. Никаких записей в таблицах нет. А на сервере проскочило только одно единственное сообщение:
    Server: ИИ на Spitfire IIa () влетел в ландшафт.

    Спасибо за расклад по таблицам. Теперь все намного понятнее стало.

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ...чуть позже, выложу новые версии БД (доработана система наказаний, наград, вывод инфы в логи битвы и вылета).
    Только, пожалуйста, с подробным мануалом, как обновить уже текущую базу данных. Ок?

    P.S.
    За журналом ошибок понаблюдаю...
    Нет в русском языке слова дешеГО. Есть слово дешеВО.

  3. #3
    Курсант Аватар для SlavikSG
    Регистрация
    26.03.2004
    Адрес
    Новомосковск Тульская обл.
    Возраст
    61
    Сообщений
    441

    Re: Сервер статистики для БзБ. Может, пригодится кому.

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ...ShowResult она называется...
    Ага. Ясно.

    Чёт, чем дальше, тем меньше начинаю врубаться...
    Посмотрел я на процедуру ShowResult. Это всего лишь простейший запрос с выборкой по ResID из таблицы dbo.ResultInfo. В результате видим всего одну строку на, почти, 140 полей! По полям я даже уже не спрашиваю. Наверное, замучаешься расписывать. Просто такой вопрос:
    1. Эта строка должна показывать что-то обобщенное? То, что я наубивал и налетал на сервере за все время и по всем битвам? И будет показывать то, что налетаю и наубиваю еще в будущем? Верно?
    и еще вопросы...
    2. Сейчас у меня ResID равен трем. Это пожизненно? Типа, мой крест? ))
    3. То есть, все результаты, наколоченные и налетанные мною будут сливаться в одну единственную строку этой таблицы под ID равную трем? Верно я понимаю?
    4. И такой вопрос... Сейчас таблица dbo.ResultInfo содержит в себе 1022 записи. Если мне принадлежит лишь одна запись в этой таблице, то кому тогда принадлежат остальные 1019 записей? Сервак запущен вчера вечером и до сих пор пашет. В основном, в холостом режиме. Побывало на нем только 10 человек. Кому же тогда принадлежат другие ResID? Конечно, можно было бы подумать, что каждый выстрел зенитки, каждый выстрел бота на сервере будет создавать, инициировать, свою личную запись, со своим личным ID, в этой таблице. Но неужели это так?!
    5. Если на первый вопрос можно ответить утвердительно, то значит расшифровку этой моей одной единственной строчки из таблицы dbo.ResultInfo, под ID равную трем, нужно будет искать в таблицах битв? Так я понимаю?

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ...ShowBestPlayer - опять я ошибся...
    Ага. Ждем...

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ...Обязательно приделаю ХП "DelWorkDB", которая будет вычищать указанную БД битвы + вычищать из Serv_DB...
    Собственно, пока не горит. ShowBestPlayer намного важнее.
    ...небольшое уточнение. Базы битв нужно не вычищать, а удалять. Физически! Чтобы их не было на сервере SQL. Так вами планируется?..

    Цитата Сообщение от Zed4ever Посмотреть сообщение
    ...ObjTypeScore - "стоимость" объекта, в зависимости от его класса и типа (ягер и бонбер, пилот и наблюдатель стоят по разному, шлюпка и линкор тоже - вот тут это и настраивается)...
    А кто-то это уже настроил? Очень бы хотелось эту настройку. Сам я точно никогда не смогу адекватно и правильно назначить очки за тот или иной объект в БзБ. Или так настрою, что потом камнями закидают.

    Большое спасибо за ваши ответы!
    Честно, не часто встретишь столь подробное освещение вопросов на форумах.

    --- Добавлено ---

    Цитата Сообщение от Small_Bee Посмотреть сообщение
    ...счет записей в отдельных таблицах переваливал за миллион.
    Может не стоит уж так подробно расписывать каждое событие в таблицы? Хотя, решение с "Битво-базами" снимает вопрос. Тут вы правы. Теперь бы еще сливать периодически общую инфу из этих "Битво-баз" в главную базу, а сами "Битво-базы" убивать, и было отлично.

    Да. Представляю себе запрос по миллиону записей!!! Любой комп сдохнет. А пользователь фиг дождется результата вычислений по своей статистике.
    Нет в русском языке слова дешеГО. Есть слово дешеВО.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •