Вопрос,наверняка,уже был.Но я всё равно его задам ещё раз. Как сделать так,чтоб урон который получила боевая единица(считая все фильтры типа защиты и её типа) отписался над ней. Там через добавление событие 2 триггером,но как я не делал 0 реакции. Вот одна из моих попыток: Событие заданно другим триггером Добавить событие для триггера переключающий юнит получает повреждения.
И ещё вопросик.Если я хочу чтоб урон наносился относительно хп.То есть если почти фул,то зеленые буквы,если средне то желтые,ниже середины красные. Делать через если/то/иначе,или есть другой вариант?
Сообщение отредактировал SunCreep - Суббота, 21 Мая 2011, 19:12:44
И ещё вопросик.Если я хочу чтоб урон наносился относительно хп.То есть если почти фул,то зеленые буквы,если средне то желтые,ниже середины красные. Делать через если/то/иначе,или есть другой вариант?
ты ужасен со своей логикой.
set texttagcolor (texttag,100-Lifeperc,lifeperc,0,0) приведет к тому что урон будет подкрашиваться в зависимости от текущего показателя здоровья.
в строчке на создание тексттага замени Строка(полученные повреждения) на ЦелоеВСтроку(РеальноеВЦелую(полученные повреждения)) иначе у тебя цифры будут вылетать в виде, к примеру, 35.00
и еще - положение строки при создании лучше делать так:
set texttagposition(texttag, GetWidgetX(u)-STRING_SIZE*getstringlenght(i2s(r2i(damagetaken))) таким образом у тебя твой тексттаг будет прямо по центру над юнитом а не сбоку
в строчке на создание тексттага замени Строка(полученные повреждения) на ЦелоеВСтроку(РеальноеВЦелую(полученные повреждения)) иначе у тебя цифры будут вылетать в виде, к примеру, 35.00
думаешь после понижение урона до 0.75 и вычитания защиты останется целое число?
думаешь после понижение урона до 0.75 и вычитания защиты останется целое число?
Омг. Наверное просто по-хорошему нужно выводить целое число, а не десятичное. Никому не нужны эти .156461351
Я в контакте и на warcraft3ft.info. Кто может сказать, почему **** дизайнер писал вместо "pt" "px" в CSS, благодаря чему нужно смотреть форум через лупу с Ctrl++?
If _(Percentage life of Unit) > 50.00 Then _Set Green = 255 _Set Red = Integer((((Макс. здоровье of Unit) - (Здоровье of Unit)) * 510.00) / (Макс. здоровье of Unit)) Else _Set Red = 255 _Set Green = Integer(((Здоровье of Unit) / (Макс. здоровье of Unit)) * 510.00) Custom script: call SetTextTagColor(bj_lastCreatedTextTag, udg_Red, udg_Green, 0, 255)
If _(Percentage life of Unit) > 50.00 Then _Set Green = 255 _Set Red = Integer((((Макс. здоровье of Unit) - (Здоровье of Unit)) * 510.00) / (Макс. здоровье of Unit)) Else _Set Red = 255 _Set Green = Integer(((Здоровье of Unit) / (Макс. здоровье of Unit)) * 510.00) Custom script: call SetTextTagColor(bj_lastCreatedTextTag, udg_Red, udg_Green, 0, 255)
что это за порно?
Quote (SunCreep)
Ты когда-нить с гуи работал вообще?
год короче, есть на гуи функция "Установить цвет плавающего текста" или что то в этом духе, устанавливаешь следующие значения
красный: 100-ПроцентЗдоровьяЮнита(Переключающий Юнит), зеленый: ПроцентЗдоровьяЮнита(переключающий юнит), синий: 0 все на гуях без лишних переменных и ужасных гуевых ифзенов (каждое условие == отдельная функция, ОМФГ)
Quote (SunCreep)
думаешь после понижение урона до 0.75 и вычитания защиты останется целое число?
поставь проверку на то что урон больше 1.0. в любом случае .00 после числа никто не оценит.
FkoFF, позволь с тобой не согласиться. Я сейчас проверил оба метода:
Code
scope ColorTest initializer Init private function Timer takes nothing returns nothing local real life = GetWidgetLife(gg_unit_Hblm_0009) local real maxLife = GetUnitState(gg_unit_Hblm_0009, UNIT_STATE_MAX_LIFE) local string s = I2S(R2I(life)) local multiboarditem mbi = MultiboardGetItem(bj_lastCreatedMultiboard, 0, 0) local integer r local integer g call MultiboardSetItemValue(mbi, s) if life / maxLife > .5 then set r = R2I((maxLife - life) / maxLife * 510.) set g = 255 else set g = R2I(life / maxLife * 510.) set r = 255 endif call MultiboardSetItemValueColor(mbi, r, g, 0, 255) call MultiboardReleaseItem(mbi) set mbi = MultiboardGetItem(bj_lastCreatedMultiboard, 1, 0) call MultiboardSetItemValue(mbi, s) set g = R2I(life / maxLife * 255) set r = R2I((1. - life / maxLife) * 255) call MultiboardSetItemValueColor(mbi, r, g, 0, 255) call MultiboardReleaseItem(mbi) set mbi = null endfunction
Мне так это нравится))Это что-то вроде разговора 3 пожарников: 1)"Блин,всё просто: оде..,к шест...,спры...,к маши...,за ру..., и всё,зачем изобретать велосипед?" 2)"Зачем? реально лучше так: спуститься,одется,бегом к машине,а там уже водитель." 3)"Wtf!? мы только поступили в пожарное училище"
Я понимаю,много бреда написал выше.Но увы вы мне,или друг-другу пытаетесь пояснить как изменить цвет.В то время когда вопрос был задан о том,как вообще триггер запустить.