Как сделать общую систему направленного стана?Отдельный молот бурь на каждый стан в карте слишком расточительно для редактора, когда нужно только застанить на небольшое время .
Хочется систему без десятка однотипных болтов и без 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 абилок.
Ну а если прям идеально надо - мемхак качай и делай.
0
28
6 лет назад
0
Полностью кастом стан
Почему?

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

Способ UrsaBoss самый лучший, если не нужно делать систему кастомных баффов.
1
32
6 лет назад
1
PT153, потому что ваши системы не учитывают наличия других источников оглашения и их взаимодействия.
Ах да, стан не тупо приказ, это еще и особый флаг + счетчик источников оглашения.
0
20
6 лет назад
0
quq_CCCP:
PT153, потому что ваши системы не учитывают наличия других источников оглашения и их взаимодействия.
Ах да, стан не тупо приказ, это еще и особый флаг + счетчик источников оглашения.
флаг хоть чтото дает? Элсо ставится ли он автоматом при отдаче приказа stunned если счетчик непрерываемостей не нулевой?
Ну а по сабжу - кастомная система станов позволит делать кучу подобных фич. Вам в помощь руны или мемхак (я не доверяю массовым даммикастам, имхо руны топ)
5
32
6 лет назад
5
Флаг стана, гарантирует что ты не отдашь любой другой приказ, их еще и 2 флага, хз второй зачем, он недает юзать только предметы. Функция стана куда более сложная чем многие думают, кроме записи флага стана, еще идут проверки есть ли еще страны у Юнита, если нету особой функцией в стек приказов на первое место ставится приказ стана, иначе приказ не отдается а продляется прошлый. Ваши триггерные приказы передают весь стек приказов, крипы после такого стана как ваши стоп и пауза не пойдут дальше пл линии а встанут стоять навечно (к примеру).
0
28
6 лет назад
0
учитывают наличия других источников оглашения и их взаимодействия.
Если в карте используется только такой стан, то все взаимодействия учитываются, иначе это плохая система.
И почему "ваши"?) Способ UrsaBoss вполне нативный же.
ты не отдашь любой другой приказ
Я так понимаю, что это касается только управления от игроков.
0
26
6 лет назад
0
Потеря очереди приказов (у юнита) из-за такого стана не играет для вас вообще никакой роли?!
0
32
6 лет назад
0
Extremator, это ты так думаешь, а вот игроки скажут карта баганое говно и ливнут, когда у них будет терятся очереть приказов после каждого такого стана.
0
20
6 лет назад
0
флаг запрета юза предметов? Шта?
0
32
6 лет назад
0
Diaboliko, у стана два флага, один неприрываемый а второй хз что, оно если юзать просто так, не дает предметы юзать, они кликаются но не работают...
0
26
6 лет назад
0
quq_CCCP:
это ты так думаешь
Читай внимательнее... я задаю вопрос - "Разве не играет роли эта потеря?"
Т.е. роль на самом деле она играет, и для задротов такая "плюшка" будет задовзрывательной...
0
28
6 лет назад
Отредактирован PT153
0
Потеря очереди приказов (у юнита) из-за такого стана не играет для вас вообще никакой роли?!
Это к кому обращение? У меня не играет, потому что.
PT153:
у меня это делается на юнитов, которых никто не контролирует
Да и у способа UrsaBoss не должно быть прерываний текущей очереди приказов.

Делается очень просто.
На каждого юнита приходится 1 число. Как только он получается стан, это число увеличивается на 1. Как только какой-то стан истекает, число уменьшается на 1. По истечению стана проверяем, чему равно число. Если 0, то снимаем бафф. Если больше 0, то ничего не делаем.
Чтобы было всё нативно, используем такое наложение стана.
UrsaBoss:
Один дамми молот бурь с 0 времени стана (или -1)
Далее хештаблица и таймер, сохраняешь юнита по хендлу таймера и запускаешь его на нужное время
Всё. Кастомная система баффов готова.

Но в таком случае придётся отказаться от других станящих способностей.
0
32
6 лет назад
0
Как бы флаг стана используют 100500 стандартных дисейблов в варе, смерчь, огненная сетка, и многое другое.
Отказаться от всех этих абилок - порой недоступная роскошь.
Кстати чет я забыл про мемхак описать, автору интересно? То про кастом станы мемхака практически нигде нету инфы...
0
28
6 лет назад
Отредактирован PT153
0
Как бы флаг стана используют 100500 стандартных дисейблов в варе, смерчь, огненная сетка, и многое другое.
Я имел в виду только те способности, что используют бафф стана BPSE. Но даже из этого есть выход, нашему стану мы даём кастомный бафф.
PT153:
Но в таком случае придётся отказаться от других станящих способностей.
Так что не придётся.
Всё. Кастомная система баффов готова.
Только не баффов, а станов.
0
32
6 лет назад
0
PT153, насколько помню с этим была какая то проблема, в доте почему не юзнули, точнее юзнули и отказались, вренулись к абилкам молотка бурь с временем на все случаи жизни.
0
28
6 лет назад
0
насколько помню с этим была какая то проблема, в доте почему не юзнули
Я вот поэтому многие механики игры и не использую, потому что иногда такие сюрпризы получаются.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.