1. У меня создаются враги в 3 областях для игрока 11.
Нужно чтобы они атаковали героев игроков 0-10.
Как правильно им приказывать атаковать? Видел в отряде такую функцию но как часто её нужно запускать? Моя проблема в том что после ихнего спауна они выбирают случайного героя для атаки, но если выбранный герой умирает то враги стоят на месте. И стать героем к примеру в противоположном углу карты и отправить просто суммон на место спауна мобов, враги атакую суммон, но опять же если суммон умрёт то враги стоят на месте.
  1. Как сделать крафт с двух одинаковых предметов?
Вот к примеру система крафта выглядит примерно так:
  1. Использует скилл.
  2. Скилл == создать.
3.
Если юнит манипулирует когтями.
Если юнит манипулирует шлемом.
То
Удалить когти.
Удалить шлем.
Создать и отдать юниту Колючий шлем
.
Вопрос в том как сделать чтобы к примеру нужно было 2 предмета когтей?..

Принятый ответ

  1. Даешь одиннадцатому игроку видимость над всей картой. Даешь нужным боевым единицам радиус агрессии на всю карту.
    Если не работает, то: Во время спавна мобов даешь им приказ атаковать ближайшего героя, если ЛЮБОЙ герой умер, повторяешь это действие.
  2. Если юнит манипулирует когтями
    Выкинуть когти
    Если юнит манипулирует когтями
    Поднять когти
    Удалить когти
    Удалить когти
    Создать нужный предмет
P.S. Неужели планируешь создать свою Goblin Survival? Пересекались на боте, может помнишь меня. Ты еще грузился по несколько лет в карту и назвал меня школьником, лол.
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
6 лет назад
0
Похожие вопросы:

ответ
Ну как бы там все одно да потому, код тот же что я описал выше, вот только проверять все надо в МУИ это раз, два время затраченное на синхронизацию может быть пипец каким большим...
function Trig_SyncStr_Actions takes nothing returns nothing
    local string splayer = null
    local player pl = Player(0)
    
    if GetLocalPlayer() == pl then
        call StoreString( udg_Data, "A", "B", "твоя строка!" )
    endif

    call TriggerSyncReady()
    
    if GetLocalPlayer) == pl  then
        call SyncStoredString( udg_Data, "A", "B"  )
    endif

    call TriggerSleepAction( 2.00 )
    
    call TriggerSyncReady()
    
    set splayer = GetStoredString( udg_Data, "A", "B" ) // выгрузи строку из кеша в локалку и делай с ней что хочешь
    
endfunction

//===========================================================================
function InitTrig_SyncStr takes nothing returns nothing
    set gg_trg_SyncStr = CreateTrigger(  )
    call TriggerAddAction( gg_trg_SyncStr, function Trig_SyncStr_Actions )
endfunction
Триггер запускаем ExecuteTrigger а "Твоя строка" заменяется на глобальную переменную.
ответ
Steal nerves:
ответы
Как объединить зелья лечения в одно с зарядом, если герой имеет одно в инвентаре и поднимает второе?
обычно используют "событие - юнит получает предмет", И на предмет, который вы получаете, ссылается переменная, которая называется item being manipulated. А юнит, который получает итем - Triggering Unit. Вы можете с помощью этой переменной итема узнать тип, сравнить. Потом циклом пробегаете по слотам (от 1 до 6), тут вся суть в одной команде триггерной (item in slot X, итем в слоте Х) и проверяете есть ли такой же итем (не забываем делать проверки, на то что этот предмет не равен item being manipulated и сравниваете не одинаковые ли типы). Если есть такой же (находите тот же тип что и item being manipulated), то от item being manipulated берете заряды и прибавляете к зарядам существующего, а потом item being manipulated удаляете. Недостаток: при заполненном инвентаре такая штука не будет работать.Не хватает свободного места.
код
цикл А от 1 до 6
if тип итема (item being manipulated) РАВНО тип итема (item in slot А) and item being manipulated НЕ РАВНО item in slot А then проверяете
set k = Charges remaining in ( item being manipulated) + Charges remaining in ( item in slot А) складываете заряды
Set charges remaining in ( item in slot А) to ( k) устанавливаете кол-во зарядов
Remove Item (item being manipulated) удаляете
endif
Есть гуишная проверка на наличие итема определенного типа в инвентаре, но она утечна. И лучше циклом прогонять.
Кстати выше пример, там вот дропают итем, зачем? чтобы проверить есть ли такой же итем. А то мб проверка на наличие итема определенного типа в инвентаре найти подобранный итем. А нам нужно знать, что есть еще один, кроме подобранного. Поэтому дропают. Только не понятно зачем создаете новый итем.
Проверка, на то что подобранный предмет имеет зарядов больше 0, говорит нам о том что это не обычный предмет.
есть статьи
Как зелье с зарядом разделить, если игрок перекладывает зелье с зарядом в другую ячейку инвентаря, если возможно, то разделение происходить должно только при нажатии какой-то клавиши?
можно перекладывать в другой слот. для этого ловят приказ. Короче смотрите системы CCS
там создают новый такой же предмет, и выделяют кол-во зарядов, деля поровну например. Абилкой например, попробуй сделать целевую активную абилку с целью предмет, указывай на инвентарь и дели.
Как это можно сделать покороче для множества разных типов предметов?
всмысле покороче? сделать под одну группу? есть же классификация. Я вот делаю так, что все предметы, которые с зарядами, должны иметь классификацию "с зарядами". Не помню точно как называется класс итемов.
Как правильно реализовать в инвентаре 7 слот?
если у героя заполнен инвентарь, то он может подобрать руну. Вот в доте система скрещивания. То же самое можно сделать и с зарядами. На земле у него лежат руны, при подборе руна исчезает. Но мы проверяем слоты, есть ли такой итем. Если есть, прибавляем заряды к существующему. Иначе создать новый. При дропе итема, оригинал подменяет снова на руну. В руну можно передать значения зарядов.
А также ограничения какие-то на количество зарядов нужно ставить или сама система выше какой-то планки не даст собирать?
до такого не доходил.
скинул примеры (хотя многие дурацкие, но делал здесь хгм в качестве ответов)
вот еще одна система hh
ответ
Ну делать триггерную версию иллюзий, ибо придется создавать иллюзии жезлом иллюзий, ну а так же лепить спецэффект с помощтью юнитов снарядов.
Я как то делал кастомный аналог иллюзий мастера клинка. Там все просто, скрываем кастера и его клонов а на его место создаем спецэффект и даммики-снаряды, чтобы сделать спецэффект. У дефолтной mirror image - скорость снаряда 1150 ед.\сек. а дальность полета 150.
ответ
ApoloZ2, то что нужно?

0
7
6 лет назад
0
  1. Даешь одиннадцатому игроку видимость над всей картой. Даешь нужным боевым единицам радиус агрессии на всю карту.
    Если не работает, то: Во время спавна мобов даешь им приказ атаковать ближайшего героя, если ЛЮБОЙ герой умер, повторяешь это действие.
  2. Если юнит манипулирует когтями
    Выкинуть когти
    Если юнит манипулирует когтями
    Поднять когти
    Удалить когти
    Удалить когти
    Создать нужный предмет
P.S. Неужели планируешь создать свою Goblin Survival? Пересекались на боте, может помнишь меня. Ты еще грузился по несколько лет в карту и назвал меня школьником, лол.
Принятый ответ
0
6
6 лет назад
Отредактирован qzGoon
0
Haikyo:
  1. Даешь одиннадцатому игроку видимость над всей картой. Даешь нужным боевым единицам радиус агрессии на всю карту.
    Если не работает, то: Во время спавна мобов даешь им приказ атаковать ближайшего героя, если ЛЮБОЙ герой умер, повторяешь это действие.
  2. Если юнит манипулирует когтями
    Выкинуть когти
    Если юнит манипулирует когтями
    Поднять когти
    Удалить когти
    Удалить когти
    Создать нужный предмет
P.S. Неужели планируешь создать свою Goblin Survival? Пересекались на боте, может помнишь меня. Ты еще грузился по несколько лет в карту и назвал меня школьником, лол.
Чем же тут пахнет GS? То что я собераюсь волны сделать?.. Или же что для крафта нужно 2 одинаковых предмета?.. Бредишь..
Ну а ты разве не школьник?)
0
27
6 лет назад
0
qzGoon, За такие вопросы положены баны.

Открываем опен доту и смотрим, как реализован маршрут крипов.

Чтобы проверить наличие двух предметов можно сделать так: Поднимает предмет, проверить есть ли такой же в инвентаре у героея, если да, то скрестить. И всего то.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.