1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

Тема помощи brtghost

Тема в разделе 'Помощь по Проектам & Поддержка', создана пользователем dev, 21 сен 2011.

  1. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Если у вас возникли сложности в использовании этого бота, если вы нашли в нем какие-то ошибки, пишите в этой теме.
    Пожалуйста, пишите максимально информативные посты. Желательно с подробным описанием ошибки, с логами нужного фрагмента.

    Я не помогаю настраивать ботов, и я не делаю нужные вам функции на заказ.
  2. VladGod2 Парнишка с небывалым умом

    Сообщения:
    228
    Спасибы:
    4
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.00
    Skype:
    Мой статус
    Напиши в чем отличия от обычного GHost++
  3. Zetsubou Ньюфаг

    Сообщения:
    42
    Спасибы:
    0
    Управление только командами через игру
    Брт гораздо быстрее загружается и работает, нежели ++
    И, если не ошибаюсь, то у брт функционал обширнее
  4. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    Установил 2 бота поменял порты выходит такая ошибка
    На 2х ботах аналогичные ошибки . Что посоветуете?
    Когда было тока 1 бот , то ошибки не было
    Код:
     MYSQL] error spawning thread on attempt #1 [boost::thread_resource_error], pausing execution and trying again in 50ms
    [Thu Sep 22 10:56:51 2011] [                            MYSQL] error spawning thread on attempt #2 [boost::thread_resource_error], giving up
    [Thu Sep 22 10:56:51 2011] [                            MYSQL] error spawning thread on attempt #1 [boost::thread_resource_error], pausing execution and trying again in 50ms
    [Thu Sep 22 10:57:37 2011] [             ERROR: playground.ru] The server will shut down in 20 seconds. (1388 connections remaining).
    [Thu Sep 22 10:57:57 2011] [                        TCPSOCKET] closed by remote host
    
    Код:
    TCPSOCKET] error (recv) - ECONNREFUSED
  5. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Версия бота какая?

    По поводу ошибки, оффициальный источник говорит что она возникает когда недостаточно оперативной памяти
    http://www.boost.org/doc/libs/1_34_0/do ... error.html
    Код:
    thread_resource_error is used only when thread-related resources cannot be acquired; memory allocation failures are indicated by std::bad_alloc.
  6. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    Код:
    ERROR: playground.ru] The server will shut down in 20 seconds. (1388 connections remaining).
    pg офнули...

    Код:
    MYSQL] error spawning thread on attempt #1 [boost::thread_resource_error], pausing execution and trying again in 50ms
    но это не есть нормальным.
  7. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    Вывод: не достаточно оперативной памяти и оффнули пг о_О, ок попробуем поднять оперативку . Спасибо за ответ

    2 вопрос команды !votestart !nv !notvoted не работают нормально
    Пишешь например !votestart он никак не реагирует .Иногда напишет 1 раз и все . Даже попробовали когда фулл игра
    !nv иногда просто не работает или тока 2 -3 ника выводит

    Сколько примерно ресурсов съедает бот на 1 игру ?
  8. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    в ghost one не про инициализированы переменные.
    поскольку у тя брт бот, дев подскажет как это исправить, ибо мне в падлу объяснять что такое конструктор и куда именно в gameplayer.cpp нужно вставить
    Код:
    PEREMENNAYA=false;
  9. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    Ок , пока ждем ответ след. вопрос
    Например игра 5х5
    Игра записывается на сайте но в некоторых играх не хватает игроков, их просто не записало и в их профиле этой игры нету . Играли 5х5 а на сайте показывается 4х5 или 5х4 и тд
    То есть последнего нету . ща тока что играл игру и меня не записало хотя и был 3 :ohmy:
    В чем может быть проблема когда юзал brtGhost1.7.0.92 проблем не было или просто их не видел.
  10. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Спасибо за информацию, но мере возможности попробую провести тесты, и определить где ошибка.

    На сколько я помню до 50 МБайт оперативной памяти.


    Эта проблема мне известна еще со времен GHostOne, и меня очень удивило то что она присутствует до сих пор. Все что я смог вычислить, это то что только после 5 одновременных игр появляется эта проблема.
    Скорей всего это просто мега идиотская система работы с потоками и mysql, просто миллион новых классов которые можно было не создавать а сделать это гораздо проще. Отсюда вывод, что какому-то потоку не хватает ресурсов, либо превышено количество потоков, либо создается слишком большое количество mysql коннектов ( которые к тому-же не закрываются на протяжении всей работы бота! ). В общем работать работать и еще раз работать.
    К сожалению сейчас у меня не так много времени что-бы довести бота до ума, а так-же я давно уже жалею что за основу взял GHostOne, слишком уж много приходится переделывать. Поэтому разработка у меня проходит не как написание новых функций, а просто как рефакторинг чужого кода, а это не слишком уж мотивирует
  11. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    Где можно найти информацию про brtServer ? что он из себя представляет и как с ним работать?
  12. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    brtServer задумывался как общая управляющая сущность для обычных ботов. Если ввести эту сущность, можно добиться огромных плюсов, а именно:
    1. Сервер подключается ко всем вашим ботам.
    2. Вынести всю работу с базой данных на сервер.
    3. Вынести подсчет очков (ЕЛО или своя формула не важно)
    4. Написать свой клиент, который подключался к серверу, и можно было играть через локальную сеть всем желающим.
    5. Сервер может подключаться к баттл.нет и слушать оттуда команды
    6. К серверу можно подключится используя какую-нибудь простую консольную тулзу, и принимать/отдавать серверу команды.
    7. Сервер может отдавать команды на создание игры, анхост игры, вывод очков. Огромный простор для лиг, если ввести понятие как капитан, то к серверу можно доделать такие команды как вызов на бой другого капитана, после этого капитаны на канале могут набирать себе игроков как в доте по типу 1-2-2-1-2-1-2.

    Если все это реализовать, то боты станут очень легкими, без лишних функций, что даст ощутимые преимущества в плане ресурсов. Ботов можно раскидать по всему миру удаленно дабы снизить пинг игрокам.

    Но так как я делаю все это один, то из всех этих пунктов реализовано только три, а именно 3, 4, 5 пункт. Сейчас хочу сделать что-бы сервер мог выдавать очки на battle.net канале плюс имел возможность дать команду на создание игры, после этого сервер можно будет использовать.
  13. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    маловесные эт офк норм, но сам знаю как долго и нужно выпиливать все не нужное из него..
    сейчас у мну бинарник весит 800 кб в *.ехе релизе

    но с 2
    не согласен, как по мне, то лучше, да и проще, оставить это в боте , предварительно выпилив весь бан\админ листы
    оставив только инфу о играх.
    почему не боты к серверу?
  14. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Ну здесь нет принципиальной разницы, просто пока сделал что бот слушает порт, а сервер инициирует соединение.
    Почему именно так, потому что я не хотел что-бы сервер слушал лишние порты и не давал хакерам лишние возможности для атаки на сервер.
    В кратце соединение происходит так, сервер инициирует соединение к боту, бот принимает соединение, сервер отправляет хеш пароля ( 1000 раз md5(password) ), бот сравнивает со своим хешем в конфиге, если все сходится соединение остается, если нет делаем drop.

    Да это вообще спорный вопрос, планы наполеоновские, и выносить всю работу с mysql я наверное не решусь никогда, на это нужно потратить месяц минимум.
    А вот почему нужно выносить на сервер работу с базой данных, смотри у нас есть куда ботов, каждой бот имеет до 30 спящих открытых mysql потоков. Если у тебя 10 ботов, то это количество может доходить до 300. Но даже не это суть важно. Если только сервер будет работать с базой данных, а боты запрашивать у него нужную информацию можно сделать кешированые данных на сервере, например очков. Перечислю список плюсов если работу с базой вынести на сервер:
    1. Уменьшается количество открытых mysql соединений в n количество раз, где n - (Num of ghosts bot) * (idle mysql connection)
    2. Можно сделать кеширование на стороне сервера данных

    Минусы:
    1. Падает сервер - данные недоступны. В принципе тут ничего страшного нет, просто бот будет хранить в очереди данные на сохранение ( данные об играх, и т.д ), и ждать пока сервер опять поднимется, и потом уже сохранит их.

    Ну если мы говорим о малых количествах ботах, то разницы конечно же нет. Но опять же, это все в теории, и сделать такое я наверное не решусь, у меня нет такого количества времени, поэтому все будет работать так как и раньше
  15. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    :lol:
    ну я не знаю, какие могут быть атаки на tcp, предварительно не зная как происходит логин, а если ты про дос\ддос
    то этого одного порта хватит.
    для того, чтобы сервер конектился к ботам он должен знать его ip, тоесть для добовления 1го бота нужно хотябы изменить конфиг,а тоесть нужен доступ к боту, что как по мне не есть гуд)
    помоему лучше сделать систему логина, и добовлять ботов командой в чат, или вообще без команд.
    Но все зависит от того, что конкретно ты хочеш сделать, если платформу для игры в определенную карту( дота в3ммд етк), то подсчет на стороне сервера и конект сервера к боту это правельный подход, но если ты хочешь сделать сервер с системой лиг, чтобы каждая лига имея своего бота могла производить свои действия и иметь доступ к "бд" через сервер, то я считаю правельнее делать, чтобы боты конектились к серверу, считали очки и передавали уже результат игры.



    зы :Вообщем я хз поймешь ли ты чет с того, что я тут написал ибо мне сейчас не очень),но я старался) :rickroll:



    забыл написать про ресурсы и бота)
    ну судя по коду 50 мбайт это сильно преувеличенно),возможно еслибы бот был написанн на жаве, он бы столько не жрал, если оценивать код, то я думаю там и 3 метров не будет,хотя точно сказать не могу
    но помоему PVPGN, у тебя проблемы не с играми, а с потоками, насколько я знаю буст используется только при спавне потоков(остальное это работа с фаилами\строками, что не должно много озу жрать)
    насчет потоков я хз сколько надо озу это все слишком специфически, лучше выгугли этот ерор я думаю до тебя его ктото задал)
  16. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Ничего смешного по поводу хеша пароля, 1000 раз md5(password) это unix style, и именно так происходит авторизация в линуксовых дистрибутивах
  17. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    я не знаю где ты это нашел, лично сам никогда не увлекался линуксом
    но даже с начальными понятиями о хешах, можно предположить, что такой алгоритм не эффективен при работе в сети, так как тому кто будет взламывать не обязательно знать, какой был исходный пароль, ему нужно узнать, только хеш передаваемый от сервера к боту, его можно узнать как сниффингом , так и грубым перебором (а использовав md5 2 или более раз, вы только ограничиваете область допустимых значений аргумента для второго md5 алфавитом [0-9,a-f])
    а уж если вы хотите использовать систему для логина, где передается зашифрованы пароль, то не используйте константы, уж лучше пусть бот передает сколько раз сервер должен использовать md5 для паролья..
  18. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    но помоему PVPGN, у тебя проблемы не с играми, а с потоками, насколько я знаю буст используется только при спавне потоков(остальное это работа с фаилами\строками, что не должно много озу жрать)
    насчет потоков я хз сколько надо озу это все слишком специфически, лучше выгугли этот ерор я думаю до тебя его ктото задал)


    Поднял озу на 256 и все проблема пропала , пока не беспокоит... Вот выгуглил кому интересноhttp://www.codelain.com/forum/index.php?topic=14130.0
  19. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    fake
    http://ru.wikipedia.org/wiki/Md5

    Существует несколько надстроек над MD5.

    * MD5 (HMAC) — HMAC — Keyed-Hashing for Message Authentication (хеширование с ключом для аутентификации сообщения) — алгоритм позволяет хешировать входное сообщение L с некоторым ключом K, такое хеширование позволяет аутентифицировать подпись.
    * MD5 (Base64) — здесь полученный MD5 хеш кодируется алгоритмом Base64.
    * MD5 (Unix) — алгоритм вызывает тысячу раз стандартный MD5.

    Вычисления хеша пароля через md5(password) опасно, потому что на сегодняшний день узнать пароль зная хеш md5 не представляется большой сложностью ( алгоритм брутфорса очень хорошо парралелится, и очень хорошо ложится на процессоры видеокарты ), поэтому не стал выдумывать велосипед а просто беру 1000 раз md5.
    Но опять же это спор ни о чем.
  20. rssrcnn Парнишка с небывалым умом

    Сообщения:
    114
    Спасибы:
    0
    brtGHost1.7.1 Win7x64
    Вылетает с еррором (appcrash) после конца игры (энд/выход всех игроков). В логе следов нет.