XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
avuremybe
inert
offline
Опыт: 8,647
Активность:
всяческие проверки
изучаю ворлд эдитор (здесь наверное уже не верят в людей, которые просят не сделать, а обяснить как это делать?). на данном этапе хочу создать спелл, который будет увеличивать воину всяческие показатели когда у него падает здоровье. (ну чтоб вы понимали ситуацию, это короче как пассивка huskar'a в dota - чем меньше здоровья, тем больше бонусов дает)

в силу своей неопытности, я вижу ситуацию примерно так:
  1. для начала, я беру спелл-пустышку (в данном случае пассивный). я не смог придумать какую конкретно способность взять за осонову, чтобы она могла облегчить мне жизнь в дальнейшем и взял ауру меткости (жрица луны, ночные эльфы)
  2. далее, пишу тригер, который каждую секунду игрового времени проверяет кол-во здоровья моего воина и, в зависимости от уровня этой способности, добавляет ему атаки.

вопрос у меня пока что только один: как мне сделать проверку количества здоровья воина?
но я прошу пока не закрывать тему, на случай если мне нужно будет спросить что-нибудь еще.

/add: если я не правильно вижу свой спелл, то прошу описать более рациональный путь его реализации.
заранее благодарен!
Старый 17.11.2012, 21:16
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
условие, real comparsion
Старый 17.11.2012, 21:19
avuremybe
inert
offline
Опыт: 8,647
Активность:
я не смог разобраться как там взять текущее здоровье юнита в процентах и решил вычислять это значение при помощи переменных.
но столкнулся с проблемой, что я не могу засунуть в переменную текущее здоровье юнита. при преобразовании в текст функции с запиханием туда максимального здоровья, редактор выдал мне
R2I(GetUnitStateSwap(UNIT_STATE_MAX_LIFE, udg_u))
ну, я разумеется заменил слово MAX на CURRENT, но эдитор намекнул мне, что я не прав.
так вот, как мне осуществить сие дияние?
ну или как мне в real comparsion запихнуть текущее здоровье юнита в процентах

/upd: понял, что стоит удалить слово MAX, вроде не ругается, сейчас протестирую на работоспособность
Старый 17.11.2012, 22:03
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
математика, процент от числа, класс наверное 4-5
needed_hp = (MaxHp/100)*50
вот и выйдет 50% от всего хп
в гуи вычислять нужно через Arifmetic
Старый 17.11.2012, 22:09
avuremybe
inert
offline
Опыт: 8,647
Активность:
ну это получается, мне надо будет заносить в переменные больше информации чем тем способом, что я делаю сейчас? или я что-то не понял?
Старый 17.11.2012, 22:15
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ай
Миниатюры
Кликните на картинку для увеличения
Название:  фывьттт.JPG
Просмотров: 42
Размер:  20.5 Кбайт  
Старый 17.11.2012, 22:20
MicroElf

offline
Опыт: 4,288
Активность:
Каждую секунду проверять здоровье не надо, можно проверять только при получении дамага
upd: кстати, а разве события здоровье юнита становится меньше определенного процента нет? В условиях сравнение процента хп есть однозначно!

Отредактировано MicroElf, 17.11.2012 в 23:29.
Старый 17.11.2012, 23:23
HolyMoon
Hly shit!
offline
Опыт: 6,986
Активность:
MicroElf:
Каждую секунду проверять здоровье не надо, можно проверять только при получении дамага
а в обратную сторону?
Старый 17.11.2012, 23:27
MicroElf

offline
Опыт: 4,288
Активность:
HolyMoon,
Что ты имеешь ввиду?
Старый 17.11.2012, 23:28
avuremybe
inert
offline
Опыт: 8,647
Активность:
Hate, отлично! спасибо!
MicroElf, он имеет в виду, как в таком случае отслеживать когда снимать добавленный дамаг при повышении кол-ва хп (регенерация, хил етц етц)
Старый 17.11.2012, 23:33
MicroElf

offline
Опыт: 4,288
Активность:
avuremybe, точно так же. Если твоя способность влияет лишь на урон, то всё равно как она будет работать вне битвы. А в битве герой по любому получает либо наносит урон. Естественно, проверять нужно "в обе стороны".
Вариант через получение урона лучше тем, что он будет срабатывать моментально, сразу же при переходе границы хп. При варианте проверки раз в секунду, способность может сработать позже на 0.9с., это бывает актуально.
Если нужно и вне битвы отслеживать значения хп, то можно добавлять периодик. При том я бы его отключал при полных хп до первого получения урона в любом случае.
Старый 17.11.2012, 23:39
avuremybe
inert
offline
Опыт: 8,647
Активность:
увеличение атаки я реализовал путем добавления герою способности от боевых когтей и изменения ее уровня в зависимости от количества его здоровья.
но, если я хочу, чтобы он получал еще и скорость или еще что-то, есть ли возможность прикрутить все это в одну способность? или мне придется добавлять ему туеву хучу абилок?
Старый 18.11.2012, 03:32
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
дайте еще одну абилку, ничего плохого от этого не произойдет.
Старый 18.11.2012, 03:49
avuremybe
inert
offline
Опыт: 8,647
Активность:
в общем у меня получилось вот так
кто-то может посмотреть и указать на мои ошибки и подсказать более рациональный способ реализации данной способности?
Прикрепленные файлы
Тип файла: w3x sample.w3x (19.9 Кбайт, 7 просмотров )
Старый 18.11.2012, 04:34
MicroElf

offline
Опыт: 4,288
Активность:
avuremybe, Я бы всё же рекомендовал отключать периодик при полных хп (или больше 90%, если способность только с этого момента раблотает) до получения первого урона.
Конечно, если у тебя не 200 юнитов с этой способностью, то оно может и не важно, но лишний висящий периодик лучше не оставлять, чтобы потом не приходилось оптимизировать.
Старый 18.11.2012, 05:30
avuremybe
inert
offline
Опыт: 8,647
Активность:
ну, если это единственна проблема неоптимизированности данной способности, то я думаю получилось не совсем плохо? (:
Старый 18.11.2012, 11:17
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
ну, если на то пошло, я могу приписать в проблему неоптимизированности гуи)
Старый 18.11.2012, 11:52
avuremybe
inert
offline
Опыт: 8,647
Активность:
ну это само собой разумеется, но мне кажется, сначала надо изучить гуи, а потом уже переходить к jass

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

Отредактировано avuremybe, 18.11.2012 в 16:24.
Старый 18.11.2012, 16:13
Hate
конь вакуумный
offline
Опыт: 43,033
Активность:
не важно что первым. даже рекомендуется не задерживаться на гуи.
копайтесь в действиях гуишыных, юзайте поиск, будет вам счастье
Старый 18.11.2012, 16:27
Темак
jass for everyone
offline
Опыт: 7,200
Активность:
avuremybe,
три способа найти нужную jass функцию:
  1. создаёшь действие в гуи и конвертируешь его в текст (и оптимизируешь офк)
  2. юзаешь function list
  3. юзаешь этот сайт (если нужно найти функцию по принимаемым или возвращаемым значениям, например)
Temak1 добавил:
скилл я бы сделал так:
юнит изучает способность: добавить способность (атака например)
создать события "у юнита больше (меньше) стольки-то хп" - если меньше снижаю уровень способности, если больше - наоборот
Старый 18.11.2012, 21:52
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 11:21.