12

» WarCraft 3 / Способы заменить героя для игрока-компьютера

Тоесть, в чём сейчас задача. Рассматриваем чисто Орду в качестве примера.
Вот стандартный скрипт выбора героев из common.ai:
//============================================================================
//  PickMeleeHero 
//============================================================================
function PickMeleeHero takes race raceid returns integer
    local integer first
    local integer second
    local integer third
    local integer last
    local integer array heroes


    //------------------------------------------------------------------------
    elseif raceid == RACE_ORC then
    //------------------------------------------------------------------------
        set heroes[1] = BLADE_MASTER
        set heroes[2] = FAR_SEER
        set heroes[3] = TAUREN_CHIEF
        set heroes[4] = SHADOW_HUNTER

    else
        set hero_id = 0
    endif

        set last = 4


    set first  = GetRandomInt(1,last)
    set second = GetRandomInt(1,last-1)
    set third  = GetRandomInt(1,last-2)

    set hero_id        = heroes[first]
    set heroes[first]  = heroes[last]
    set hero_id2       = heroes[second]
    set heroes[second] = heroes[last-1]
    set hero_id3       = heroes[third]

    return hero_id
endfunction
Мне сейчас нужно сделать так, чтобы ИИ сначала подобрал себе список из 3 героев кампании. Я это реализовал следующим образом:
//============================================================================
//  PickCampaignHero 
//============================================================================
function PickCampaignHero takes race raceid returns integer
    local integer first
    local integer second
    local integer third
    local integer last
    local integer array heroes

    //------------------------------------------------------------------------
    elseif raceid == RACE_ORC then
    //------------------------------------------------------------------------
        set heroes[1] = GROM
        set heroes[2] = THRALL
        set heroes[3] = CAIRNE
        set heroes[4] = GULDAN
        set heroes[5] = WARLORD

    else
        set hero_id = 0
    endif

        set last = 5

    set first  = GetRandomInt(1,last)
    set second = GetRandomInt(1,last-1)
    set third  = GetRandomInt(1,last-2)

    set camp_hero_id   = heroes[first]
    set heroes[first]  = heroes[last]
    set camp_hero_id2  = heroes[second]
    set heroes[second] = heroes[last-1]
    set camp_hero_id3  = heroes[third]

    return hero_id
endfunction
Теперь мне нужно каким-то образом в orc.ai вписать код, который бы на момент первой покупки, проверял бы доступность героя кампании, например:
GetPlayerTechMaxAllowedSwap('camp_hero_id', Player(0)) == 1 )
Если герой доступен, то купить его, и использовать hero_id = camp_hero_id
А если герой не доступен, тогда нанимать hero_id по старинке.
Проблема в том, что после покупки героя кампании, у всех игроков на карте срабатывает функция
SetPlayerTechMaxAllowedSwap( 'Obla', 0, Player(0)
Т.е. герой становится недоступен никому из игроков. И вот для текущего ИИ в том числе. Так что нужно проверять ещё не купил ли он УЖЕ героя. Чтобы он продолжал оперировать им.
В общем пока даже не знаю что куда вставлять.
12

» WarCraft 3 / Способы заменить героя для игрока-компьютера

EugeAl, да, всё верно. У меня кроме стандартных героев, можно покупать героев из кампании. И хочется сделать поддержку ИИ для каждого героя.
Я сейчас зашёл в .ai и обнаружил что герои покупаютя через hero_id. Т.е. нет запечатанных в ИИ героев типа Obla - Блейд Мастера. Всё это прописано в common.ai. Надеюсь, если я отредактирую его, он импортнётся. И надеюсь что в случае если компу будет недоступен какой-то из героев кампании (пикнуть их можно единожды на всех игроков), то он не будет фризить, а просто купит другого. upd: По всей видимости если выбранный им герой недоступен, то он просто никого не покупает.
И ещё момент. У меня герои кампании вынесены в альтернативный алтарь, который вызывается через Crow Form. Я вот думаю, может для ИИ проще добавить всех героев в один алтарь, чтобы не мучиться. Deep Seek подсказал мне следующий скрипт:
function AddHeroToAltar takes nothing returns nothing
    unit altar = GetTriggerUnit() // Получаем алтарь
    integer heroId = 'Oshd' // ID Shadow Hunter (замените на нужный ID героя)

    // Добавляем героя в список доступных для найма
    call UnitAddAbility(altar, heroId)
endfunction

// Инициализация триггера
function InitTrig_AddHeroToAltar takes nothing returns nothing
    local trigger t = CreateTrigger()
    call TriggerRegisterAnyUnitEvent(t, EVENT_PLAYER_UNIT_CONSTRUCT_FINISH)
    call TriggerAddCondition(t, Condition(function IsAltar))
    call TriggerAddAction(t, function AddHeroToAltar)
endfunction

// Проверка, что построенное здание — алтарь
function IsAltar takes nothing returns boolean
    return GetUnitTypeId(GetTriggerUnit()) == 'oalt'
endfunction
Но я не совсем понимаю как им пользоваться. Обычно скрипты которые он мне советует - не работают. Либо я их неправильно использую.
На крайняк, буду просто делать разные типы алтарей для компов и людей, чтобы не возиться с jass лишний раз.
12

» WarCraft 3 / Способы заменить героя для игрока-компьютера

EugeAl, а по какому пути мне импортировать common.ai чтобы он применился к карте? Я пробовал кидать скрипты от AMAI в Scripts/ в саму карту, но новый ИИ почему-то не заменял стандартный. Боюсь, как бы здесь не получилось того же.
12

» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps

ZergLanda, если версия игры 1.29.2 и выше, значит возможно вы скачали версию карты 0.9. В 0.9.1 эта проблема исправлена.
Чтобы проверить, какую версию карты вы скачали, попробуйте запустить любую карту до 4 игроков. Если она откроется, значит у вас 0.9. Просто перекачайте пак.
А версия варкрафта написана мелким шрифтом справа внизу сразу, как запускаете игру. Скачать 1.29.2 можно тут. disk.yandex.ru/d/_kI4qPkP5w2t0g
12

» MM Engine / MM Engine: Warcraft III Rebirth

Очень интересная работа. Только непонятно, откуда столько ресурсов его сделать? WAA всё пытались и пытались, но так и не смогли доделать мод. Близзы пытались, но так и не перерисовали нормально классику. А тут просто фаны взяли и кучу моделек нарисовали. Удивительно.
12

» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps

Интересно, 3 поста здесь стёрто. Почему трёте? Если вы считаете что я рукожоп, так напишите об этом :)
12

» WarCraft 3 / SCHQ TerrainArt

Идея классная, но проблема в мыльности. Вроде как разрешение увеличилось, но на деле смотрится мыльнее оригинала. При этом шарплёно, что режет глаз.
Точно такая же проблема и у Reforged 2.0. Через нейронки невозможно сделать нормальный апскейл. Нужны нормальные художники, которым показать референс, под который они нарисуют такие же текстуры, но лучше. На такое деньги есть только у Близзов. Но даже если они не стали это делать, то у этой идеи 0 шансов.
12

» WarCraft 3 / SCHQ TerrainArt

ScorpioT1000, забавно, у меня не открывается "You do not have permission to view this page or perform this action." Возможно Близзы удалили, чтобы ты с их Рефорджем не конкурировал))
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

Ha_Do6poM, это пушка в представлении фанов, и на бумаге у маркетологов. На деле же они эти тени запороли. Их просто не видно. Если сравнить с классикой, тени, как и вся картинка, были темнее. В этом их промах. Снова не спецов привлекли на проект.
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

nastiolink, да у вас глаз вытечет в это играть. Текстуры хорошо смотрятся новые. Но картинка пересвечена и перенасыщена. Мне больше даже на скрины смотреть, не то что играть. Посмотрите какой тёмной была графика в простом классике. Если они смогут добиться такой же яркости при новом освещении + добавят полигоны в модели, то это уже будет весомый повод перейти на Reforged.
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

AMark, я не понимаю. Не уже ли у близзов нет нормальных исходников? Они же наверняка разрабатывали все текстуры в большем разрешении, чем в самой игре. Зачем было прогонять всё через непонятную нейронку, которая всё перешарпливает?
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

nastiolink, всё равно в рефордже такое плохое Classic HD, что играть останется только в просто классику.
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

nastiolink, чуть меньше бы яркости и насыщенности и было бы нормально. Но даже так - мыльноватость всё портит. Сами модельки ещё не рассчитаны на динамические тени, и выглядят ужасно. Нужно моделькам больше полигонов добавить, и сделать им текстуры нормальные, а не через нейронку сделанные мыльное говно.
12

» WarCraft 3 / Blizzard объявили Reforged 2.0 и ещё

nastiolink, писец. Это просто добитие. Как можно было Classic HD сделать хуже оригинала?
12

» WarCraft 3 / Люк Валонфорт перед встречей с Артесом

Подскажите пожалуйста. Я могу оставить ссылку на скачивание в виде поста во ВК? По правилам форума, вроде как можно, потому что из ВК можно скачать файл без регистрации. Но на всякий случай уточняю. Это нужно для счётчика. И чтобы поблагодарить автора группы, который вдохновил меня на релиз второй главы.
12

» WarCraft 3 / Перезапуск Warcraft III?

Saen Taar, если так посмотреть, весь гейм дев только и делает что разочаровывает, почти что всегда.
12

» Melee Campaign Heroes / Melee Campaign Heroes Pack - 167 maps

Вышла новая версия! Прокрутить к ресурсу
  • Теперь запускаются все карты.
О причинах ошибки
Проблема была связана с SharpCraft. По какой-то причине у него на виртуалке, задача которой было импортировать триггеры и объекты и сохранять карту, не запускалась функция записи триггеров. Т.е. просто во время сохранения этого не происходило. И это поломало многие карты в паке. К счастью, все карты на 2-4 игрока сохранялись через обычный компьютер, и хотя бы в них можно было поиграть. А ещё были доступны некоторые другие карты на 8, 10 и 12 игроков, потому что они были пересохранены с основного компьютера.
Чтобы избежать этой ошибки, пришлось сохранять все карты через основной компьютер, и потратить кучу времени. Теперь буду думать как откатиться с SharpCraft на обычный редактор, и попробовать поработать на Better Triggers.
12

» WarCraft 3 / SharpCraft XGM Addon

Есть ли способы откатиться с SharpCraft на стандартный редактор?
12

» WarCraft 3 / Better Triggers

Таренас, почему только 1.32? На хайве указано 1.28+.
Кстати, из SharpCraft-а не подтягивает триггеры. :( Есть идеи что можно сделать?
12

» WarCraft 3 / Перезапуск Warcraft III?

Хочется верить, что они сделают третью версию графики с классическими моделями, но в HD. По типу моделей из SC II.