Захотел сделать такую банальную штуку... С регулировкой шанса и силы. Если с заклинаниями (планируются только триггерные) проблем совершенно нет, то для физ критов нужно отлавливать только физ урон. Решил спросить у знающих людей ссылочку на саму систему отлова физ урона или общего направления в чтении мануалов. Самое простое, что приходит в голову - проверка типа урона, но соответствующих функций в JPNG не нашел.

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

Я расскажу тебе чудо: Мертвые не умеют наносить урон. Что из этого следует? Из этого следует, что весь спеллдемедж должен наносить не герой, а даммик, стоящий где то на респе, который никогда не умрет.
А из этого следует, что единственный урон, который сможет нанести герой - физический.
Маня, переделовай.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
48
8 лет назад
0
Свои системы залог прогресса автора
Отлавливаем урон при случайном числе целогики/реале (разницы особой нет) выдаем дополнительный обычный урон в коэффициенте на умножение. Для визуализации плавающий текст (переменная).
0
13
8 лет назад
Отредактирован Nelloy
0
Вопрос в том, как отличить урон с автоатаки от урона со спела
Не сложно отловить весь урон
Да и в будующем было бы полезно научиться их различать для реализации каких-нибудь мудреных пассивок
Есть мысли на счет глобалок с ~0 таймером жизни, которые бы перекрывали на этот промежуток времени срабатывание крита для игрока применившего спелл, но не оч элегантное решение. И исходя из этого другой вопрос: после нанесения урона, что сработает раньше, висящий после команды 0-й таймер или событие полученного урона?
0
3
8 лет назад
Отредактирован Snowik
0
В случае со способностями, тут нужен не отлов, а коэффициент урона, то есть умножение стандартно установленного урона на какое либо значение например "3", будет равно "300%", отдалимся от простейшей математики и перейдем ближе к логике.
Вот ты имеешь способность, скажем "Фаербол", при касте ты разумеется генерируешь случайное число и проверяешь на совпадение с установленным значением шанса критического эффекта, я думаю тут и так все понятно с этим.
Дальше у тебя есть условный оператор с помощью которого ты проверяешь совпадает ли значение, то есть "Крит это будет, или нет?".
Если крит, то умножаешь изначально выставленный тобой урон, разумеется с учетом уровней способности, на коэффициент кратности урона.
Если не крит, то наносишь стандартный урон.
По поводу автоатак, проще конечно написать собственную автоатаку, даже если и не проще то в дальнейшем все равно пригодится.
И аналогичным способом проделать и с атакой.
Отлов урона и прибавление умноженной его части тоже хорошо, но это занимает очень много процессов, в общем так просто это не сделать, существуют даже невидимые на панели способности, и даже способ скрыть другие, советую обратить внимание на них что бы не озадачивать себя, или же просто использовать стандартный крит или написать собственную (способность) крит.
P.S. Если ты пишешь на jass-е то советую создать функцию которая будет сама определять и скалировать урон (от способностей).
0
48
8 лет назад
0
Nelloy:
Вопрос в том, как отличить урон с автоатаки от урона со спела
Не сложно отловить весь урон
Да и в будующем было бы полезно научиться их различать для реализации каких-нибудь мудреных пассивок
Есть мысли на счет глобалок с ~0 таймером жизни, которые бы перекрывали на этот промежуток времени срабатывание крита для игрока применившего спелл, но не оч элегантное решение
Честно, в этом я профан... Но думаю можно через отлов урона сделать, зафиксировать средний урон и если дальнейший больше среднего, то выдавать действие.
или же да, как писал про свою авто атаку Snowik.
0
3
8 лет назад
0
Есть мысли на счет глобалок с ~0 таймером жизни, которые бы перекрывали на этот промежуток времени срабатывание крита для игрока применившего спелл, но не оч элегантное решение. И исходя из этого другой вопрос: после нанесения урона, что сработает раньше, висящий после команды 0-й таймер или событие полученного урона?
Не очень удачно мыслишь, тут нужна динамика.
А так как у Jass-а возможностей мало, приходится действовать самыми изощренными методами, (как я ранее указал "сделать это не так просто")
Но если тебе очень нужно, то советую посмотреть наработки систем отлова урона, и внедриться в код что бы понять как это работает, и на этой основе лепить уже свое.
0
13
8 лет назад
0
Snowik:
Есть мысли на счет глобалок с ~0 таймером жизни, которые бы перекрывали на этот промежуток времени срабатывание крита для игрока применившего спелл, но не оч элегантное решение. И исходя из этого другой вопрос: после нанесения урона, что сработает раньше, висящий после команды 0-й таймер или событие полученного урона?
Не очень удачно мыслишь, тут нужна динамика.
А так как у Jass-а возможностей мало, приходится действовать самыми изощренными методами, (как я ранее указал "сделать это не так просто")
Но если тебе очень нужно, то советую посмотреть наработки систем отлова урона, и внедриться в код что бы понять как это работает, и на этой основе лепить уже свое.
Не понял что не так с динамикой... имел ввиду следующее: спел героя после нанесения урона вешает буленовской флаг к юниту, пока флаг висит ~0сек, критов нет
Завтра надо будет потестить
0
3
8 лет назад
0
Не понял что не так с динамикой...
Ты не понял о чем идет речь.
Nelloy:
спел героя после нанесения урона вешает буленовской флаг к юниту, пока флаг висит ~0сек, критов нет
А это не нужно вовсе.
Если ты пишешь на GUI, то настоятельно рекомендую почитать статьи о jass, так как подобные вещи реализовывать лучше именно на нем, тогда ты поймешь о чем я говорил.
Есть еще одно решение твоей проблемы и оно мягко говоря не самое лучшее: xgm.guru/p/wc3/catch-dmg
А на счет булевых значений, которые будут пользоваться таймерами, то тут хочу сказать что без локальных переменных не обойтись, иначе говоря почитай о jass, там есть пример со спеллом щит, который поглощает некое кол-во урона, и на его основе ты поймешь о чем я говорю.
0
19
8 лет назад
0
Я расскажу тебе чудо: Мертвые не умеют наносить урон. Что из этого следует? Из этого следует, что весь спеллдемедж должен наносить не герой, а даммик, стоящий где то на респе, который никогда не умрет.
А из этого следует, что единственный урон, который сможет нанести герой - физический.
Маня, переделовай.
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.