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

Как запретить определенную карту?

Тема в разделе 'Кодинг/Собственные решения', создана пользователем DhL, 24 янв 2011.

  1. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    сабж

    А именно DotA Imba... надо сделать чтобы стата не шла с нее..
    Парсить имя карты (w3x) думаю не вариант, сменить не долго...
  2. festival Старожила

    Сообщения:
    368
    Спасибы:
    0
    На сколько я знаю полная стата: крипы, килы, вышки не будет считаться если в конфиге карты нету вот таких пунктов:
    Код:
    map_type = dota
    map_matchmakingcategory = dota_elo
    map_statsw3mmdcategory = w3mmd
    Если их убрать то нормальной статы точно не будет, наверно только общее количество игр !stats
  3. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    Ты не совсем меня понял, это не поможет, т.к. дописать не сложно.
    Мне надо в боте запретить карту... т.к. ботнет делаю, и мой бот у всего сервера...
  4. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    2fake:

    Может есть подобное на имя игры в правом верхнем углу? (при уже начатой игре)
  5. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    версия доты штоле? :bIbIbIblya:
  6. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Удали карту.
  7. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    ну можно и так сказать :)

    Надо вот это дело запретить:
    DotA_imba_3.73.3 EV.w3x
    Based on 6.66 (c)

    НО, с нее не определяет мод через GameMode:"Mode"+string()....

    Да и вообще, не надо чтобы с нее стата шла, фан и есть фан...
  8. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    если ты для админов,то запрети вообще !map
    и создавай конфиги пусть админы юзают !load
    ещё можеш убрать автоопределение названия карты(в исходниках) и создавать конфиги с
    Код:
    map_type = dota
    map_matchmakingcategory = dota_elo
  9. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    Мой бот у всего сервера (не админство, а именно бот - настроенный на мою стату)
    Менять цфг - думаю не выход.
    Отсюда и map запрещать смысла не вижу.

    Надо именно в исходниках написать, чтобы dota_imba шла лесом :)
    парсить имя карты - вариант, но не совсем практичный...
  10. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Хочешь не юзать стату через исходник именно для этой мапы попробуй в конструкторе CBaseGame добавить проверку на локальный путь файла и если таков есть - дисаблить стату еще при объявлении объекта в памяти.
    game_base.cpp
  11. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    А какже взрыв памяти при багнутом коде One? Я так и не знаю где мы фиксили... Диалс?
  12. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Пусть попробует так. Автору на заметку. Возможно при таком раскладе вылет любой проги (в том числе гхост) который висит в процессах. Может повиснуть комп. Если что-то будет происходить не так после таких изменений попробуй сделать следующее:

    game.cpp
    Таким способом идет нейтрализация паразитного указателя который где-то ссылается на удаленный участок памяти статистики.
  13. fake Старожила

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

    найти
    Код:
    if (File.find("DotA")!=string::npos)
    dota = true;
    и изменить на
    Код:
    if (File.find("DotA")!=string::npos &&  File.find("DotA_imba")==string::npos && File.find("DotA imba")==string::npos )//
    dota = true;
    Второй же фикс нужен в любом случае...

    зы: имхо лучше разрешить создавать только через конфиги.
    ззы:можно без правки исходников переиминовать карту в Dota_imba_3.73.3 EV.w3x
  14. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Сам же пишешь что можно переименовать карту и тут же по
    Код:
    File.find
    ищешь название карты по файлу. :facepalm:
    Если так то твой код тоже бесполезен как и мой.
  15. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Твой код имхо бесполезен вообще. Фактически ты не даешь вписать в конфиг dota и dota_elo.
    Что в принципе можно сделать вручную!
    А мой код дизейблит стату на програмном уровне. И тоже по совпадении имени. Улови суть!
  16. fake Старожила

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

    В программировании у большинства заданий существует несколько решений.Я предлогаю автору несколько вариантов решения

    На сколько я понял автор создаёт через !map и он хочет чтобы при этом для карты "DotA_imba_3.73.3 EV.w3x" не использовалась статсдота...Это и делает мой пример кода...
    В отличии от мода(-wtf) название карты известно до начала игры поэтому "дизейблить стату на програмном уровне" не оправданно.
  17. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    fake, ты конечно извини. Но если не знаешь что такое конструктор - не говори что я не правильно сделал.
    Все там правильно. Как только создается игра вызывается конструктор с указанными параметрами. И если находит карту - сразу дает значение тру для дизейбла статы. А значит как только игра создалась - стату отрубило.
    Я за эти последние дни учу С++ в очень усиленном режиме. Выучил классы. Сейчас вот учу динамическую память, указатели, ссылки.
    А вообще отсчет времени до дизейбла статы происходит в другом файле. И условие для дизейбла стоит время (не от создания) от старта игры несколько десятков секунд. И если детектит мод - дизейблит стату. А если объявлено в конструкторе то дизейблит на момент создания. Ты в лобби не успеешь войти когда стата уже будет офф :)

    P.S.: Еще 1 вопрос. Скажи какая логика отключать стату если игра может и не будет создана? :bIbIbIblya:
  18. DhL Ньюфаг

    Сообщения:
    36
    Спасибы:
    0
    Не совсем так, я создаю через !load cfg, собственно заранее подготовленном. В нем указана мапа dota_imba_.....w3x

    Вот и надо как-то, по-умному :), запретить эту карту... парсить локальное имя карты - не вариант... переименовать можно..
  19. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    А тебе уже сказали нужно либо запрещать изменять конфиги с картой либо ничего не выйдет.
  20. Synth (LM) Пантограф!

    Сообщения:
    2.762
    Спасибы:
    172
    Сборка бота GHost:
    My own version of GhostOne
    Дата начала использования бота:
    15.06.2008
    Skype:
    Мой статус
    Мож по какому нибудь хешу карту детектить?