Как сделать общую систему направленного стана?Отдельный молот бурь на каждый стан в карте слишком расточительно для редактора, когда нужно только застанить на небольшое время .
Хочется систему без десятка однотипных болтов и без 100 уровневых абилок , примерного вида StunUnit(caster,target,time),
Чтобы время можно было любое сразу числом.Может кастер тут и не нужен даже будет.
Подскажите как лучше сделать?

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

Полностью кастом стан возможен на мемхаке, а так система из даммиков и молотка бурь с всеми возможными интервалами стуна.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
6 лет назад
0
Похожие вопросы:

ответ
в моей карте лимит пищи 300, но всегда стоит "нет расходов"
я не совсем понимаю что тебе нужно
ответ
Steal nerves:
Тестил, тестил. Думал найду ошибку. Короче не знаю в чем дело, видимо и в правду баг. Решил по-другому. Ловить поставку, и ловить продажу. То есть ловить то, что пришло, и то, что ушло.
событием - "юнит закладывает в лавку" (EVENT_PLAYER_UNIT_PAWN_ITEM) ловим продажу итемов.
GetSellingUnit() =продающий торговец (типа всякие предметы закладывает в магазин и получает деньги)
GetBuyingUnit()=GetTriggerUnit() = покупающий торговец (это обычно магазин)

событием - "юнит закладывает из лавки (продает артефакт)" (EVENT_PLAYER_UNIT_SELL_ITEM) ловим покупку итемов
GetSellingUnit()=GetTriggerUnit()=продающий торговец (обычно это магазин)
GetBuyingUnit() = покупающий торговец (наш герой получает артефакты)
Решил, я по-своему. Короче, видимо, итем в магазине исчезает при добавлении. Попробовал запоминать все добавленные итемы, и при добавлении я сначала удалю всё в магазине, а потом заново добавлю. Пришлось, еще порядок (номер слотов) запоминать, а то строятся ключи хэша на строгом порядке. Если возьму и заберу итем посередине, придется заново выстраивать порядок.
Не знаю, пока тестил много времени, пока без косяков. Главное, что работает. Меня это радует. Но пока не буду спешить. Мне бы хотелось затестить норм.
ответ
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
ответ
Нет.
ответ
посмотри как у урсы сделано
Там и скорость атаки (со счетчиком ударов) есть и алгоритм добавления зеленого урона

0
23
6 лет назад
0
вешай баф стана
0
21
6 лет назад
0
ну если у всех станов одинаковый бафф то сделай один секунд скажем 5 или сколько максимум надо
а далее вешай его даммикастом и снимай через нужное кол-во времени бафф и все
9
18
6 лет назад
Отредактирован Hodor
9
Один дамми молот бурь с 0 времени стана (или -1)
Далее хештаблица и таймер, сохраняешь юнита по хендлу таймера и запускаешь его на нужное время, потом в функции таймера удаляешь баф у юнита
0
32
6 лет назад
0
Полностью кастом стан возможен на мемхаке, а так система из даммиков и молотка бурь с всеми возможными интервалами стуна.
Принятый ответ
0
26
6 лет назад
0
Даммик на карте, которые будет иметь нужные базовые абилки (стан, сайленс), со временем действия в 0.00 сек (бесконечно). В нужный момент пишешь юнита и нужное время, даёшь стан, по таймеру выжидаешь время и снимаешь стан. Если стан уже был на цели - обновляешь его время для таймера.
Делать можно как угодно.
0
23
6 лет назад
0
Юниты, находящиеся в стане, получают определенный приказ. Может быть попробовать отдавать этот приказ триггерно? В теории должно сработать.
0
12
6 лет назад
0
Полностью кастом стан возможен на мемхаке, а так система из даммиков и молотка бурь с всеми возможными интервалами стуна.
Я думал на вариантом 1 молотка с множеством уровней , с небольшим интервалом 0.05 -0.10 сек , но как то слишком много уровней выходит - 50 для 5 секундного оглушения.
Загруженные файлы
1
21
6 лет назад
1
Daro, а в чем проблема, что много уровней? Если прелоадится абилка, то только чуть увеличится время загрузки карты и всё.
0
32
6 лет назад
0
Daro, 50 левелов ненад, лучше 5 разных абилок будет грузится быстрее, да и че такой мелкий интервал, смотри как у фрога сделано, там всего то 10 или 12 абилок.
Ну а если прям идеально надо - мемхак качай и делай.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.