Боты 7.01 №2

  1. в прошлом году

    Nikoliasik_Zeus

    11 Mar 2017 Администратор + 482189 RP

    <offtop>

    Icefrog продолжает развивать искусственный интеллект, возможно, в этом году мы увидим нечто новое , связанное с ними

    </offtop>

    Хорошие новости!

    В Workshop'е добавили возможность добавления своих ботов , так что ждем оттуда хороших и качественных ботов

    Переходим к подробностям. После НГ понеслись от Valve добавление новых консольных команд для ботов.
    Большую часть новых команд, которые добавляются в игру, вы можете найти на [u]http://dev.dota2.com[/u].

    Для начала - [u]как сделать своих ботов.[/u]

    Для начала переходим в папку с дотой.
    Стандартный путь :
    [u]$папка_со_стимом[/u]\SteamApps\common\dota 2 beta\game\dota\scripts\vscripts\bots_example

    Это основная папка, в которой находятся скрипты ботов.

    [u]Для запуска стандартных ботов:[/u]

    -image-

    Создаем лобби > включаем читы > заполнить пустые слоты ботами > выбираем за Radiant дефолтный скрипт ( либо любой , скачанный вами ) / за Dire те же самые операции > Запускаем игру

    Важно!

    ВЫ можете изменять скрипты ботов по ходу игры, однако,для их активации вам нужно перегрузить ботов консольной командой dota_bot_reload_scripts
    ОФФ вики [u]не рекомендует[/u] это делать,лучше пересоздавать лобби, так как возможны краши во время игры

    Также вы тестируете стратегии ботов ( время пуша, дефа, атаки на рошана ) , пользуйтесь командной
    host_timescale

    [u]Как пользоваться[/u] - например, для ускорения игры в 4 раза пишите в консоли host_timescale 4.0

    Обновления от 9 января ( Valve[u] не пишут[/u] в новостях о всех изменениях, которые вносят в игру, dev.dota - один из надежных источников ):

    Добавлена команда fill_with_bots для запуска ботов на выделенных серверах;
    Пофикшен скрипт луны;
    Команда dota_bot_dump_state все также делает дамп всех ботов;
    Пофикшена функция ботов Action_DropItem() и Action_PickUpItem() и теперь работает нормально;
    Добавлен Action_SwapItems() в API ботов. Теперь бот может менять предметы в запасник и обратно;
    Добавлена область видимости для ботов - GetBoundingRadius() ;
    Добавлена область видимости для ботов - GetItemSlotType() в API ботов. Бот меняет вещи в определенных слотах ( например, 1 слот меняется с 1 слотом в запаснике, 5 с 5 );
    Добавлена область видимости - WasRecentlyDamagedByTower(), TimeSinceDamagedByTower(), WasRecentlyDamagedByCreep(), and TimeSinceDamagedByCreep() в API ботов.
    Добавлена глобальная переменная GetDroppedItemList() в API ботов. Показывает все выкинутые предметы в области видимости ботов.
    Добавлен ITEM_SLOT_TYPE_INVALID, ITEM_SLOT_TYPE_MAIN, ITEM_SLOT_TYPE_BACKPACK, и ITEM_SLOT_TYPE_STASH константы в API.
    Пофикшена функция IsCooldownReady() и GetCooldownTimeRemaining() , которая работала только на себя и свою команду ( бот может просчитывать время вражеских спеллов и ультов, если ОН видел, как их кастовали ).
    Пофикшены краши Action_MoveToUnit(), Action_AttackUnit(), Action_UseAbility(), Action_UseAbilityOnEntity(), Action_UseAbilityOnLocation(), Action_UseAbilityOnTree().
    Добавлена команда FindItemSlot() в API .

    Живой пример работоспособности ботов от модмейкера:
    https://streamable.com/ssw3e - бот неплохо пытается фармить и харасить вражеского опонента.

    На текущий момент список ботов:

    Скрипт мипо и пака + стаки в лесу от мипо
    https://github.com/furiouspuppy/Dota2_Bots

    Простые боты ( фармят и харасят )
    https://github.com/insraq/dota2bots

    Список материалов, где вы можете начать писать своих ботов с 0 ( обладая даже 0 знаниями ):

    Список ВСЕХ доступных команд
    http://docs.moddota.com/
    Описание ВСЕХ команд от Valve ( отличие - первая ссылка для быстрого поиска нужной команды )
    https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API
    Реддит и его подкаст
    https://www.reddit.com/r/dota2AI/
    Официальный подфорум о ботах от Valve
    http://dev.dota2.com/forumdisplay.php?f=497

    [u]И последняя команда :[/u]

    npcBot:Action_Chat( "Report team, I've seen passive bots do better than them.", true );
    npcBot:Action_Chat( "Good game,well played!", true );

 

или зарегистрируйтесь чтобы ответить!