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

Тема помощи brtghost

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

  1. PVPGN Ньюфаг

    Сообщения:
    59
    Спасибы:
    0
    Сборка бота GHost:
    GhostOne 1.7.266
    Есть такая ошибка .
    Все голосуют за !rmk
    и так все проголосовали
    идет отсчет
    5
    4
    3
    2
    и тут 1 игрок просто так написал !noff
    и отсчет прекратилась, пришлось заного голосовать за рмк
  2. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Спасибо, я гляну почему так
  3. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Да я знаю о проблеме, думаю что скоро будет обновление
  4. rost2 Забанен за предупреждения: 5 баллов

    Сообщения:
    66
    Спасибы:
    1
    Кстате вроде ыб команда !onlys неккоректно работает.
    При прописи команды оно выкидует тех у кого очков меньше, но баръер неработате...
    тоесть далее типы у которых очков меньше все равно заходят.
    При разборке, я понял только то что вобщем неработает проверка очков... Бот иммено неузнает сколько у кого очков, хотя на sqlite вроед бы было норм (щас на mysql)
  5. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Это происходит потому что в 15% случаев при входе игрока в лобби, его очки не считываются из базы, я не знаю на каком этапе теряются очки, но эта проблема мне тоже известна, ее решение уже тоже скоро будет.
  6. rost2 Забанен за предупреждения: 5 баллов

    Сообщения:
    66
    Спасибы:
    1
    спс подождем))
    Но у меня это гораздо чаще 15%...
    Да, гдето очки теряются полюбому, проверял несколькими тестми, думал дело в баъере (его неработоспособности) но все же тесты показали что он работает нормально, просто бот незнает кто с каким счетом зашол((( плохо так( очень нужная команда.
  7. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    Хоть я и не люблю брт, так как основа не совсем удачная, готов помочь в развитии, если офк оно предвидится.
    Мой скайп dvb4ever, буду рад помочь.
  8. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    To dev:
    Видел что brtServer это и есть тот сервер который управляет ботами. Почитал код, даже часть позаимствовал :)
    Могу помочь с портированием на мульти систему... Linux || Win32... Я вот почти такой же собрал на винду. На VS 2010.
  9. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Да тот код который лежит в репозитории это самая первая версия, а та версия которая сейчас у меня на localhost очень сильно изменена, но вижу разработка этого сервера актуальная, поэтому скоро покажу залью его, возможно часть исходников вам пригодится. А по поводу портирования я давно это уже сделал, и сервер работает как под линукс так и под виндой. Но если хотите продолжать развивать этот проект дальше, буду рад любой помощи :)

    По поводу разработки, на сегодняшний день я закончил переход на новый конфиг файл формата info, завтра залью в репозиторий.

    2fake добавил в скайп.

    п.с
    В течении 5 минут залью код в репозиторий и напишу мини обзорчик для разработчиков
  10. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Для разработчиков
    Залил последние исходники в репозиторий под версией 1.8.0
    - Полностью вычистил мусор от ghost one в ghost.h классе от кучи разбросанных переменных, и упорядочил их в новый класс CConfigData где просто тупо лежат все переменный настроек для бота. Теперь для хранения настроек просто создаем экземпляр класса, и все. Соответственно весь мусор который разбросан по всем классам вида
    Код:
    m_GHost->
    
    почищен, и каждый класс теперь обращается к собственной копии экземпляра класса настроек. Функции типа отключения/выключения каких-либо функции теперь действуют только в пределе одной игры, и ни как не влияют на остальные игры.

    Что в плане сделать
    - Доделать наконец-то бот с новым конфигом
    - Доделать сервер
    - Вынести каждую игру в отдельный поток
    - Доделать GUI на Qt4 для присоединения к играм минуя pvpgn/battle.net


    После замены файла конфигурации ( и попутно переписав кучу кода в разных классах, я имею ввиду просто замена m_GHost->some_value на m_Config->some_value) , при попытке запустить тестового бота у меня появилось две проблемы, когда входит игрок в игру бот думает что его SID равен нулю, и не может отправить ему сообщение, игрока выкидывает. Не могу поймать ошибку через valgrind, нужно искать.

    Ошибка номер два, после закрытия бота, я где-то удаляю память по одному указателю дважды, так-же пока не могу найти ошибку.

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

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Ооооо люблю отладку...
  12. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Если вылетает при выходе из бота - указатель в деструкторе.
    Если не ошибаюсь, то по STL на каждый указатель в деструкторе нужно делать такую конструкцию:
    Код:
    if( pPointer )
    delete pPointer;
  13. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    стл это "Standard Template Library" и не в коем случае не стандарт кодинга, или стандарт с++.
    стл это всего лишь набор контейнеров и алгоритмов, для облегчения программирования.
    поэтому стл не может указывать как писать код.
    Это офк имеет место быть, но это никак не решение проблемы, это обход ее, что фактически нарушает стандарт, так как это можно приравнять к игнорированию предупреждения, тем более что переменная указателя может быть не обнулена, то есть проблему это не решит, гораздо проще использовать дебагер.
  14. fake Старожила

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

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Да, вот только в области динамической памяти например удалили стату (в гхост оне было такое). В деструкторе стата снова обнуляется. И скажи что проверка на ноль не уместна. Ведь она зависит от игроков.
    Т.е. создается паразитный указатель. Который указывает на область динамической которую удалили.
    А утечка памяти, когда указателю присваивают NULL или другую область памяти не удалив предыдущую.
    Дак вот. В стандарте (пардон, перепутал с СТЛ), вне деструктора каждому указателю после удаления из памяти сразу должно присваиваться NULL, А в деструкторе описанная конструкция выше. Окда?
    Утечку памяти тяжело отследить, и грозит она только заполнением динамики.
    А вот паразитный обычно бота критует. А значит лучше быть выше мной описанному.
    Уж тем более если происходит паразитный указатель. Да, конечно дебаг хорошая весч. Но это машина. Уж темболее когда речь начинает идти об указателях. И утечку памяти очень тяжело отследить.
  16. fake Старожила

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

    зы: насчет кртиов: дебаг и 2 минуты и любой крит можно найти, особенно используя вс где стек можно наблюдать, а значит очень просто найти строку где произошел крит.
    насчет утечек: в с++ гораздо проще если сравнивать с си, уж очень много нововведений начиная от деструкторов и классов в целом и заканчивая динамическими массивами, динамические массивы в с++ это очень няшная штука^^
  17. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Еще 1 факт. Программист знает че делает. не забывай что в Оне был сам по себе корявым. Так что тут не удивительно что где-то потерялся указатель.
  18. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    int * pPointer = int (5);
    delete pPointer;
    int * pPointer = NULL;
    delete pPointer;
    Вполне безопасно. Для этого везде и помечают указатель как NULL после каждого удаления.
  19. dev Ньюфаг

    Сообщения:
    51
    Спасибы:
    0
    Сборка бота GHost:
    0.0
    Код:
    if (pointer)
       delete pointer;
    
    Так писать глупо, если вы где-то увидите такое можете смело отсылать читать Страуструпа, данное выражение не имеет смысла, потому что если указатель нулевой, то delete его игнорирует.

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

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11