Вопрос, как заставить юнитов (нейтрально-враждебных), идти и нападать на здание, а не тупо бегать туда сюда. Или же как заставить юнитов игрока, использовать способности, а именно, выходит юнит 12 игрока и он должен использовать способность тёмную стаю на нескольких противниках, но он ничего не делает, а просто атакует.
Выше пример, моих волн, но я вижу там есть какие то проблемы, а какие именно, хз.

Вопрос, как заставить юнитов (нейтрально-враждебных), идти и нападать на здание, а не тупо бегать туда сюда.
xgm.guru/p/wc3/131468/comments?postid=245288 читаем эти вопросы
Или же как заставить юнитов игрока, использовать способности
Дать ИИ компьютера либо писать свой.
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Работай с real (числа с запятой) вместо регионов, занеси в бд или проверяй условиями нужные координаты и выбирай.
Точка не будет утекать, если хранить одну точку в глобальной переменной и для мгновенных операций перемещать ее и использовать дальше по назначению.
  1. В шапку над триггерами вставляешь этот код:
function RegionInit takes nothing returns nothing
//17/11/2016
    set udg_GL = Location(0.0, 0.0)
    set udg_RegionNumber = GetRandomInt(1, 4) // выбрать количество регионов
    set udg_RegionX1 = GetRectMinX(udg_Region[udg_RegionNumber])
    set udg_RegionY1 = GetRectMinY(udg_Region[udg_RegionNumber])
    set udg_RegionX2 = GetRectMaxX(udg_Region[udg_RegionNumber])
    set udg_RegionY2 = GetRectMaxY(udg_Region[udg_RegionNumber])
endfunction

  1. Создаешь глобальные переменные типа:
    • точка с названием GL
    • регион массив с названием Region
    • целочисленная с названием RegionNumber - для хранения номера выбранного региона
    • реальное число с названиями RegionX1, RegionX2, RegionY1, RegionY1 - для хранения координат выбранного региона
После действий на картинке в инициализацию вставляешь кастом скрипт:
call RegionInit()

  1. Перед каждым созданием юнита вставляешь кастом скрипт:
call MoveLocation(udg_GL, GetRandomReal(udg_RegionX1, udg_RegionX2), GetRandomReal(udg_RegionY1, udg_RegionY2))
В окне действия с созданием юнита используешь свою переменную GL
ответ
Лови карту.
ответ
Steal nerves:
циклом (данного юнита от 1-6 слотов, на jass от нумерация слотов начинается так 0-5) пробегаешься по каждому слоту и проверяешь тип, кол-во зарядов. я на гуи что-то не нашел эту команду UnitItemInSlot
native UnitItemInSlot takes unit whichUnit, integer itemSlot returns item
кол-во итемов
ищем в каждом слоте один и тот же тип предмета. Этот код считывает кол-во итемов занимаемые в слотах
local integer id = ''//id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
//внизу начинается цикл, его блок 
loop //начало цикла
    exitwhen i > 5 //условие выхода из цикла
    if GetItemTypeId(UnitItemInSlot(u,i)) == '' then //если тип в слоте равен ....
        set c = c + 1
    endif
    set i = i + 1
endloop //конец цикла
кол-во предметов данного типа с N зарядами
local integer id = '' //id-предмета, забудь указать в кавычках ид
local integer i=0 //для цикла
local integer c=0 //кол-во предметов
local unit u = //нужно не забыть указать юнита
loop
    exitwhen i > 5

    if GetItemTypeId(UnitItemInSlot(u,i)) == id or GetItemCharges(UnitItemInSlot(u,i)) == 5 then //если тип в слоте такой, и и у этого итема зарядов равно 5
        set c = c + 1
    endif
    set i = i + 1
endloop
set u = null
ответ
добавляешь обоих
блокируешь улучшенного при старте карты всем игрокам
лучший и простейший вариант
ответ
без мемхака - нет

29
Вопрос, как заставить юнитов (нейтрально-враждебных), идти и нападать на здание, а не тупо бегать туда сюда.
xgm.guru/p/wc3/131468/comments?postid=245288 читаем эти вопросы
Или же как заставить юнитов игрока, использовать способности
Дать ИИ компьютера либо писать свой.
Принятый ответ
15
PrincePhoenix:
Вопрос, как заставить юнитов (нейтрально-враждебных), идти и нападать на здание, а не тупо бегать туда сюда.
xgm.guru/p/wc3/131468/comments?postid=245288 читаем эти вопросы
стоит дать показатель 99999?
29
БезликийСектант, лучше не использовать нейтралов вообще, они багнутые в приказах. А для игрока да.
15
PrincePhoenix:
Вопрос, как заставить юнитов (нейтрально-враждебных), идти и нападать на здание, а не тупо бегать туда сюда.
xgm.guru/p/wc3/131468/comments?postid=245288 читаем эти вопросы
Или же как заставить юнитов игрока, использовать способности
Дать ИИ компьютера либо писать свой.
Спасибо, помогло, а ты знаешь как там в триггерах, проделать работу, чтобы после всех этих волн, пошёл таймер и пошли другие волны? Или всё также, действие (ждать) и потом снова волны и так далее.
Дать ИИ компьютера либо писать свой.
Я хз как это делаете, использую пока что нейтралов.
29
БезликийСектант, используй переменные для отряда и когда юнит из отряда умирает, проверяешь все ли юниты умерли, если да, то запускаешь следующий ивент/волну
15
Дать ИИ компьютера либо писать свой.
А ты знаешь как дать ИИ 12 игроку? А то действительно проблемы с нейтрально-враждебными, они то просто спят, то бегают непонятно куда.
7
У тебя как раз игрок 12 атакует, раз пищи стало ноль, значит все сдохли, го таймер и вторую волну.
7
bOrissko:
У тебя как раз игрок 12 атакует, раз пищи стало ноль, значит все сдохли, го таймер и вторую волну.
А если ,например, на другой линии остались крипы?
7
Mechanicus:
А если ,например, на другой линии остались крипы?
Все зависит от ваших целей, нужен постоянный поток как в доте, кляпайте каждые N секунд крипов. Этот способ хорош для карт на выживания или защиты.
32
100500 раз уже говорилось, нейтралы не годятся для таких целей как враги бегущие по линии. Для этого отлично подходят слоты обычных игроков от 0 до 11, а вот 12 игрок и выше - не пригодны для этого, т.к имеют встроенный ИИ, отключить который как либо низя, никто так и не нашел способов это сделать.
Все нейтралы являются читорами, они видят сквозь туман войны.
Если у вас совсем не осталось слотов, то чтобы юзать нейтралов придется написать немало кода, почти собственный ИИ.
7
quq_CCCP:
100500 раз уже говорилось, нейтралы не годятся для таких целей как враги бегущие по линии. Для этого отлично подходят слоты обычных игроков от 0 до 11, а вот 12 игрок и выше - не пригодны для этого.
А 12 игрок это и есть нейтрально-враждебный? Просто все игроки считаются от 1 до 12, а не от 0 до 11.
32
Mechanicus, игроки считаются от нуля, 0-11 игроки люди, какраз 12 штук. два игрока доп нейтрала и последний нейтрал пассивный, итого в игре всего 16 слотов, из которых людям доступны только 12, если речь идет о 1.26 или ниже патчах.
7
quq_CCCP:
Mechanicus, игроки считаются от нуля, 0-11 игроки люди, какраз 12 штук. два игрока доп нейтрала и последний нейтрал пассивный, итого в игре всего 16 слотов, из которых людям доступны только 12, если речь идет о 1.26 или ниже патчах.
Я не знал об этом, спасибо что рассказал.
15
Вот тут 1 волна, 11 игрок, и я хз, может ли он юзать способности или нет, но сама волна идёт и нападает 3 раза, каждые 23 сек. xgm.guru/files/100/226403/comments/420092/moyo.png
Загруженные файлы
32
БезликийСектант, как насчет не показывать такие сомнительные решения с вейтами и утечками, достаточно было упомянуть карту ExtrimeCandyWar 2004.
26
БезликийСектант:
Вот тут 1 волна, 11 игрок, и я хз, может ли он юзать способности или нет, но сама волна идёт и нападает 3 раза, каждые 23 сек. xgm.guru/files/100/226403/comments/420092/moyo.png
Если способностями зомби не пользуются, то можно триггерно их выполнение задать. А если надо выпускать следующую партию зомби после гибели предыдущих, а не просто каждые 24 секунды, то есть действие Wait For Condition, где можешь задать условие для дальнейшего выполнения триггера.
Загруженные файлы
33
кстати никогда не проверял, а что внутри Wait For Condition? там таймер сидит или что? никогда не конвертил её, какая-то она оч сомнительная
32
Bergi_Bear, да обычный вейт с циклом, не то с екзектом, все это делает с помощью таймера намного проще и изящнее даже на гуи.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.