2 24.10.2014 16:43 (edited by dimatiunov 24.10.2014 16:44)
Re: Нормальная реализация pvpgn+ghost
Может кто объяснить как правильно настроить луа скрипт (ghost) который лежит в архиве с pvpgn 1.99 PRO?
Просто установленный на сервер с включённым ботом, указанным в настройках, выдаёт вот это, но нечего не происходит...(во вложениях)
Re: Нормальная реализация pvpgn+ghost
Что за бот ты используешь? Свой?
Как правило команда /host не включена в Lua Pvpgn 2.0, то есть она ещё не доработана.
Re: Нормальная реализация pvpgn+ghost
Что за бот ты используешь? Свой?
Как правило команда /host не включена в Lua Pvpgn 2.0, то есть она ещё не доработана.
А можно ссылку на правильный бот?
Команда активируется в конфиге, и нормально посылает сообщения ботам.
Re: Нормальная реализация pvpgn+ghost
Что еще за правильный бот? Я же говорю что система еще не доработана, доработай ее сам и будет тебе счастье.
Re: Нормальная реализация pvpgn+ghost
Что еще за правильный бот? Я же говорю что система еще не доработана, доработай ее сам и будет тебе счастье.
Ладно, пойду делать...
Re: Нормальная реализация pvpgn+ghost
Со стороны PvPGN в Lua скриптах все готово https://github.com/HarpyWar/pvpgn/issues/35
Ожидаем, когда сделают поддержку на стороне бота ghost/ohsystem
https://github.com/Grief-Code/OHSystem/issues/279
Добавлено: 25.10.2014 17:32
я тут где то видел код бота
Ghost (code), если в игре 1400птс то на сервере PVPGN - иконка меняется на другую иконку
МОжете дать ссылку где эта тема)))
В последнем PvPGN смена иконки по рейтингу (или другому полю) уже встроена и настраивается в icons.conf.
Re: Нормальная реализация pvpgn+ghost
Со стороны PvPGN в Lua скриптах все готово https://github.com/HarpyWar/pvpgn/issues/35
Ожидаем, когда сделают поддержку на стороне бота ghost/ohsystem (как раз надо им напомнить!)
https://github.com/Grief-Code/OHSystem/issues/279Добавлено: 25.10.2014 17:32
Тоесть просто нужно адаптировать команды в боте?
Ибо команда /host передаёт такую /pvpgn host %s %s %s %s
Это можно на основе адаптированой версии ghost++ - ryGhost++, в ней есть поддержка Python
Re: Нормальная реализация pvpgn+ghost
Верно, нужна обработка команд для бота из той таблицы. Реализация взаимодействия между PvPGN и Ghost выполнена на уровне текстовых сообщений чата. В общем-то вся информация по ссылке выше есть, и будет здорово, если кто-то возьмется сделать это на другом боте, и выложит это на гитхабе. Будет из чего выбрать.
Но помимо этого там ещё должен быть разделенный рейтинг для 3х3 и 5х5 и убрано ограничение для создания множества лобби игр одновременно. И потом, если все получится с ExtraWork, сделать поддержку анонимной игры через меч.
Я выбрал ohsystem для интеграции, как наиболее активный проект из существующих ghost ботов.
10 27.10.2014 12:09 (edited by dimatiunov 27.10.2014 12:09)
Re: Нормальная реализация pvpgn+ghost
Верно, нужна обработка команд для бота из той таблицы. Реализация взаимодействия между PvPGN и Ghost выполнена на уровне текстовых сообщений чата. В общем-то вся информация по ссылке выше есть, и будет здорово, если кто-то возьмется сделать это на другом боте, и выложит это на гитхабе. Будет из чего выбрать.
Но помимо этого там ещё должен быть разделенный рейтинг для 3х3 и 5х5 и убрано ограничение для создания множества лобби игр одновременно. И потом, если все получится с ExtraWork, сделать поддержку анонимной игры через меч.
Я выбрал ohsystem для интеграции, как наиболее активный проект из существующих ghost ботов.
А разве нельзя сделать 2-3 бота для хоста игр? Там можно же сделать что-бы рандомно отправлялось одному боту сообщение о хосте.
Добавлено: 27.10.2014 12:19
Кстати можно сейчас сделать хост через ботов используя обычные команды, но проблема вот в чём, сообщения боту отправляются от PvPGN Realm, который не является админом в боте. https://www.dropbox.com/s/gg8rvdqe93q0u … 1.png?dl=0
Re: Нормальная реализация pvpgn+ghost
А разве нельзя сделать 2-3 бота для хоста игр? Там можно же сделать что-бы рандомно отправлялось одному боту сообщение о хосте.
Если это про мультилобби, то можно запустить и 2-3. Но проще запустить одного бота, который смог бы обрабатывать много лобби игр - это актуально для серверов с большим количеством игроков, чтобы другие не ждали запуска единственной игры, а смогли создать новую. Однако, поддержка множества ботов тоже уже добавлена, и можно запускать их в разных географических точках, для предоставления наилучшего пинга для всех игроков сервера.
Имя сервера "PvPGN Realm" можно изменить в конфиге bnetd.conf (параметр servername). Так и задумано - достаточно добавить это имя в разрешенные админы в конфиге бота, чтобы было меньше работы по интеграции.
Re: Нормальная реализация pvpgn+ghost
dimatiunov wrote:А разве нельзя сделать 2-3 бота для хоста игр? Там можно же сделать что-бы рандомно отправлялось одному боту сообщение о хосте.
Если это про мультилобби, то можно запустить и 2-3. Но проще запустить одного бота, который смог бы обрабатывать много лобби игр - это актуально для серверов с большим количеством игроков, чтобы другие не ждали запуска единственной игры, а смогли создать новую. Однако, поддержка множества ботов тоже уже добавлена, и можно запускать их в разных географических точках, для предоставления наилучшего пинга для всех игроков сервера.
Имя сервера "PvPGN Realm" можно изменить в конфиге bnetd.conf (параметр servername). Так и задумано - достаточно добавить это имя в разрешенные админы в конфиге бота, чтобы было меньше работы по интеграции.
Но всё же система не может правильно работать на стандартных командах, так как нужно чтобы при выполнении например .pubby отдавался ответ серверу, а этого не происходит....
Re: Нормальная реализация pvpgn+ghost
Не знаю как работает .pubby, но при должной реализации на стороне ghost бота все будет работать.
Путь каждой команды от клиента проходит следующим образом:
player -> pvpgn -> ghost ... (обработка) ... -> pvpgn -> player
Re: Нормальная реализация pvpgn+ghost
Re: Нормальная реализация pvpgn+ghost
А файл command_callback.lua не за команды от бота ли отвечает?
Re: Нормальная реализация pvpgn+ghost
А файл command_callback.lua не за команды от бота ли отвечает?
Верно.
command.lua - команды от игрока через pvpgn к боту
command_callback.lua - результат выполнения команд от бота через pvpgn к игроку (или без оповещения игрока для некоторых внутренних команд)
Re: Нормальная реализация pvpgn+ghost
dimatiunov wrote:А файл command_callback.lua не за команды от бота ли отвечает?
Верно.
command.lua - команды от игрока через pvpgn к боту
command_callback.lua - результат выполнения команд от бота через pvpgn к игроку (или без оповещения игрока для некоторых внутренних команд)
То есть так получается:
Вводишь команду /host [ mode ] [ type ] [ gamename ] - это передаёт боту /pvpgn host[ user ] [ mode ] [ type ] [ gamename ] которое хостит игру и выдаёт сигнал pvpgn командой /ghost host [ code ] [ user ] [ gamename ] выходит оповещение "Game [ gamename ] created. (host DotA map for rating)" и хостится игра?
(в скобочках пробелы ибо форум считает что это теги)
Добавлено: 28.10.2014 12:38
Сидел искал реализацию того что мне нужно для этих команд и наткнулся на эту версию гсоста, в ней встроена возможность писать скрипты на LUA.
Re: Нормальная реализация pvpgn+ghost
Все правильно, если опустить внутреннюю реализацию, то внешне так и получается.
Тоже видел этот форк, но все же 4 года инактивити это большой срок, учитывая что есть другие активные форки без Lua. И многое зависит от количества нужных функций, которые предоставляются для Lua. Но если перенести Lua из этого проекта в более актуальный, и доработать, то получится хороший вариант. Только тогда команды для PvPGN можно реализовать через скрипты.
19 28.10.2014 20:13 (edited by dimatiunov 28.10.2014 20:18)
Re: Нормальная реализация pvpgn+ghost
Все правильно, если опустить внутреннюю реализацию, то внешне так и получается.
Тоже видел этот форк, но все же 4 года инактивити это большой срок, учитывая что есть другие активные форки без Lua. И многое зависит от количества нужных функций, которые предоставляются для Lua. Но если перенести Lua из этого проекта в более актуальный, и доработать, то получится хороший вариант. Только тогда команды для PvPGN можно реализовать через скрипты.
Я сейчас попытался в обход обработчика в боте пойти:
gh_message_send(botname, string.format(".load map") ) // это у меня такой конфиг для доты
gh_message_send(botname, string.format(".pubby %s %s", account.name, args[3]) ) // args[3] как я понял название, полный синтаксис .pubby [имя игрока] [название игры]
gh_message_send(botname, string.format(".say /ghost host ok %s %s", account.name, args[3]) )
Но это очень коряво работает, и иногда не отвечает на запросы бота....
Re: Нормальная реализация pvpgn+ghost
само по себе луа слоупочная.
а реализация то что вы хотели можно переписав многие модули бота, легко делается, но это работа не на один день.
также узнать как сделать поддержку более 1 игры в лобби.
Re: Нормальная реализация pvpgn+ghost
Допустим часть функционала работает, сообщения адресует правильно, обработчик пока что минуется ибо пока для тестов. А вот отправляет не рандомному боту, а почему-то последнему в списке ( это вот в этом ghost_bots = { "hostbot1", "hostbot2" }, -- list of authorized bots )
Re: Нормальная реализация pvpgn+ghost
Можно эту часть кода? Просто не использовать последнюю ревизию и точно сказать не могу. скорее всего дело в рандоме (криво работает ?!)
Re: Нормальная реализация pvpgn+ghost
Бот выбирается не рандомно, а по пингу игрока до бота в gh_select_bot. Предполагается, что для каждой географической локации имеется по одному боту (с разрешеннум мультилобби), и игроку предлагается бот по наилучшему пингу. Подробнее это обсуждалось здесь.
Пинг обнуляется через ghost_ping_expire дней, после чего игроку предлагается войти в игры с каждым из ботов для обновления пинга (список игр сортируется тоже по пингу). Пинг для всех ботов записывается в BNET\acct_botping.
Re: Нормальная реализация pvpgn+ghost
Бот выбирается не рандомно, а по пингу игрока до бота в gh_select_bot. Предполагается, что для каждой географической локации имеется по одному боту (с разрешеннум мультилобби), и игроку предлагается бот по наилучшему пингу. Подробнее это обсуждалось здесь.
Пинг обнуляется через ghost_ping_expire дней, после чего игроку предлагается войти в игры с каждым из ботов для обновления пинга (список игр сортируется тоже по пингу). Пинг для всех ботов записывается в BNET\acct_botping.
Тогда не остаётся нечего другого как возможность из одного бота хостить много игр. Ибо Система изначально сделано под это...
Re: Нормальная реализация pvpgn+ghost
Ничто не мешает делать выбор бота случайным образом!
function gh_select_bot(username)
math.randomseed(os.time())
return config.ghost_bots[math.random(#config.ghost_bots)])
end
Re: Нормальная реализация pvpgn+ghost
Ничто не мешает делать выбор бота случайным образом!
function gh_select_bot(username) math.randomseed(os.time()) return config.ghost_bots[math.random(#config.ghost_bots)]) end
С рандомом получается всё ещё хуже, сервер посылает сообщения то одному боту, то другому и выходит каша)
Re: Нормальная реализация pvpgn+ghost
Записывать одного хоста и его бота как вариант избежания каши.