Zeix, во-первых у тебя отсутствует then после равкода абилки ... == 'A000' then
Во-вторых, ты объявляешься локалку внутри ифа, а это нужно делать только в начале функции, т.е. нужно либо объявить её в начале и уже потом после/внутри ифа установить ей значение (хотя в данном случае можно этоисразу сделать), либо выносить проверку из ифа в отдельную предыдущую функцию, которая уже будет вызывать эту.
ScorpioT1000, на мониторах ещё большего размера и большие иконки будут выглядеть как маленькие пятнышки... а ещё трава зелёная, и небо голубое. Каскад неоспоримых фактов.
Если ты не видишь такие иконки на большом мониторе, может тебе и вовсе не нужен такой большой монитор?) вдруг ещё чего не углядишь.
Chongoyuto, это ж Орчид из доты. Тут не нужен DamageEngine, тут можно просто детектить входящий урон по юниту, записывать его пока висит бафф (суммировать), а при снятии баффа наносить юниту 0.3 от записанного урона.
Примерно так же работает Маледикт у ВичДоктора, и по таком же детекту работал СоулКетчер у ШадоуДемона.
Проблема известная. Проблема старая. У себя в карте так же с ней сталкивался.
Решения "раз и навсегда" не нашёл, поэтому делаю иначе:
Когда мне больше НЕ нужен какой-либо объект в РО, я просто убираю его отовсюду, сбрасываю до дефолтных значений, переименовываю во что-то типа "DELETE - Name of ...", и скидываю в отдельную категорию (куда-нибудь к нейтралами через "расу" и прочие параметры).
Когда мне понадобится НОВЫЙ объект, то я сначала посмотрю что у меня там в "мусорке" имеется, и возможно выберу оттуда (с юнитами/предмета/баффами/гредйам работает на 100%, а вот с абилками - тут нужно выбирать основу).
Конечно если у тебя эти ненужных объектов около 1000-1500, то это уже такое себе...
Я раньше залипал в доту-имбу, когда ещё гарена жива была (2011-2015 года). Собирали фуллы по 5х5 за пару минут, порой не успеваешь зайти они уже поехали.
Сейчас увидел её кто-то схостил на ирине, другая версия конечно, но схожая. Игра всего-то 2х2, я уж думал что всё, фигня это... но через пару дней я влился в костяк постоянных игроков (среди которых даже узбеки были) и их оказалось на много больше. Так что мыуже собирали 5х5 и катали нормально. Только осталось подгадать время, у меня так выходило с этими ребятами собираться с 16 до 20 часов по МСК, в остальное время - их поменьше, но они есть. В другие карты других игроков так же может быть довольно много, так что просто надо мониторить и не стесняться контактировать с адекватными игроками.
Chongoyuto, если делать совсем топорно, то за основу можно взять дефолтный "веер клинков" Варденки, и в нём выставить базовый урон 20/40/60/80. Далее триггерно отлавливать момент каста, и выбирая всех вокруг наносить им дополнительный урон, который надо как-то посчитать...
Я бы сделал триггерный дебафф, который считал бц стаки на конкретном юните, а при попытке нанести ему урон - проверял бы наличие баффа. Если он есть, то +1 стак и урон от числа стаков. Если нету - то просто добавить бафф и первый стак + урон от этого стака (я не помню получает ли он урон первого стака в момент его получения, или же только после первого).
Chongoyuto, ну здесь же всё подписано, и можно изменить.
Базовый урон, расчет мин/макс значений для пика Силы/Ловкости, отталкивание (хоть и мгновенное), время стана...
Chongoyuto, ты уверен что оно тебе надо?
Вот тебе как из доты, только тут базовый урон сразу 20/40/60/80 и плюс ещё от 25% до 50/100/150/200% (от Ловкости). А оглушение от 0.25 до 0.75/1.5/2.25/3.0 секунды.
local unit CASTER = GetTriggerUnit()
local unit TARGET = GetSpellTargetUnit()
local integer LEVEL = GetUnitAbilityLevel(CASTER,'A0G6') // A0G6 - равкод от "Adaptive Strike"
local integer AGI = GetHeroAgi(CASTER,true)
local integer STR = GetHeroStr(CASTER,true)
local real AxS = I2R(AGI) / I2R(STR)
local real SxA = I2R(STR) / I2R(AGI)
local real AGI_BONUS = 0.25
local real DAMAGE_BASE = LEVEL * 20.
local real STUN = 0.25
local real PUSH = 100.
local real DAMAGE_TOTAL
local real ANGLE = Atan2(GetUnitY(TARGET)-GetUnitY(CASTER),GetUnitX(TARGET)-GetUnitX(CASTER))
local location POINT
if AxS > 1.5 then
set AGI_BONUS = LEVEL * 0.5
elseif AxS >= 0.5 then
set AGI_BONUS = AGI_BONUS + (AxS-0.5) * (0.5*LEVEL-0.25)
endif
if SxA > 1.5 then
set STUN = LEVEL * 0.75
set PUSH = 300.
elseif SxA >= 0.5 then
set PUSH = PUSH + (SxA-0.5) * 200
set STUN = STUN + (SxA-0.5) * (0.75*LEVEL-0.25)
endif
set DAMAGE_TOTAL = DAMAGE_BASE + AGI_BONUS * AGI
// толчок + ломает деревья
set POINT = Location(GetUnitX(TARGET)+PUSH*Cos(ANGLE),GetUnitY(TARGET)+PUSH*Sin(ANGLE))
call SetUnitPositionLoc(TARGET,POINT)
call DestroyTree(GetLocationX(POINT),GetLocationY(POINT),200.) // ломает деревья в радиусе 200
call RemoveLocation(POINT)
// наносит урон конкретного типа
call DealDamage(CASTER,TARGET,1,DAMAGE_TOTAL)
// даммикаст оглушения (ротация на 24 уровня от 0.25 до 4.00)
call DStun_cast(CASTER,TARGET,STUN)
Изначально ульт СФа из доты базировался на 2м скилле Горного Короля (клэп), только урон на 0 выставлен и добавлено время подготовки. Сам по себе он обеспечивал только лишь кратковременно замедляющий дебафф (не знаю как там сейчас, не слежу). Раз от деформации рельефа избавились, то полагаю что можно использовать вместо него любой другой скилл, например Рёв (без наложения эффекта), а дебафф - накладывать вручную (не говоря уже об уроне от так же вручную создаваемых волн).
IceFog, странная штука. У меня она так не делает.
У меня на карте стоят "рынки" у которых есть абилки Aneu,Apit,Avul (выбор, скупка, инвул).
Я кучу раз прогонял множества версий своей карты через Lni, и у меня ни разу не было такой проблемы.
А проблема только в иконке? или что-то не работает?
Где-то тут давно поднимали тему на счет того что после загрузки абилки кэшируются не в том порядке и что-то в таком духе... Кароче, надо тестить эту фигню. И найти тот древний топик, где про это писали. Но мне кажется вылечить это врядли получится, максимум - придумать костыль для момента загрузки.
human1, можно, я же написал выше пример для GUI - просто юзаешь арифметику, и оно нормально считает результат и задаёт это значение. Для jass ограничение вроде в 10 символов, дальше то ли смысла нет писать, то ли оно просто не выводит результаты конда проверяешь, но считает правильно... Ну там посмотреть самому можно, если тебе прям нужно уточнить эту информацию.
Makeba, смысл не в том что оно меньше (спойлер - оно не меньше), а в том что не нужно вручную забивать все знаки после точки, ибо 1/64 = 0.0158730158...
Можно в тупую без особого напряга - каждые 1/32 сек проверять хп юнита
Ну я ж так делал у себя, только мне там было достаточно и 0.1 секунды Это та самая абилка которая при понижении ХП возвращала 20/40/60% от потери, и при повышении - докидывала ещё 20/40/60% сверху.
Нужно сделать отдельную функцию для "лечения", и внедрить её везде.
Внутри этой функции будет идти проверка на бафф, либо вообще на ряд баффов и суммарное изменение эффективности лечения.
Потихоньку все те хилки, где у тебя стоит функция "становить ХП юнита как его ткущее ХП + число" будешь заменять на эту новую, которая внутри будет проверять/считать что нужно и регулировать отхил.
Вполне можно юзать абилку Благославение Элуны
При её правильной настройке она просто множит урон на некое значение.
В стандарте число менее 1.00 будет уменьшать урон, а более - увеличивать.
Я у себя её юзаю на 6-ти секундном баффе, который уменьшает входящий маг.урон на 15/30/45/60% (это 0.85/0.70/0.55/0.40 от урона).
Еще есть другой дебафф, который временно повышает входящий маг.урон по указанному врагу на 20/25/30% (это 1.20/1.25/1.30 от урона).
» WarCraft 3 / Способности и алгоритмы на заказ
Ред. Extremator
» WarCraft 3 / Не запускается скрипт пишет ошибку, гляньте
» WarCraft 3 / Ladik's MPQ Editor v4.0.0.937
» WarCraft 3 / Способности и алгоритмы на заказ
Примерно так же работает Маледикт у ВичДоктора, и по таком же детекту работал СоулКетчер у ШадоуДемона.
Ред. Extremator
» WarCraft 3 / При удалении способности из РО, выходит ошибка
Решения "раз и навсегда" не нашёл, поэтому делаю иначе:
Когда мне больше НЕ нужен какой-либо объект в РО, я просто убираю его отовсюду, сбрасываю до дефолтных значений, переименовываю во что-то типа "DELETE - Name of ...", и скидываю в отдельную категорию (куда-нибудь к нейтралами через "расу" и прочие параметры).
Когда мне понадобится НОВЫЙ объект, то я сначала посмотрю что у меня там в "мусорке" имеется, и возможно выберу оттуда (с юнитами/предмета/баффами/гредйам работает на 100%, а вот с абилками - тут нужно выбирать основу).
Ред. Extremator
» WarCraft 3 / Поиск игроков
Ред. Extremator
» WarCraft 3 / Как сделать MUI через глобалки? - [Jass]
Архивом не пускает
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Способности и алгоритмы на заказ
Базовый урон, расчет мин/макс значений для пика Силы/Ловкости, отталкивание (хоть и мгновенное), время стана...
Ред. Extremator
» WarCraft 3 / Способности и алгоритмы на заказ
Вот тебе как из доты, только тут базовый урон сразу 20/40/60/80 и плюс ещё от 25% до 50/100/150/200% (от Ловкости). А оглушение от 0.25 до 0.75/1.5/2.25/3.0 секунды.
Ред. Extremator
» WarCraft 3 / Способности и алгоритмы на заказ
» WarCraft 3 / Анимация юнита при нажатии способности
Ред. Extremator
» WarCraft 3 / SLK оптимизация при помощи w3x2lni
У меня на карте стоят "рынки" у которых есть абилки Aneu,Apit,Avul (выбор, скупка, инвул).
Я кучу раз прогонял множества версий своей карты через Lni, и у меня ни разу не было такой проблемы.
» WarCraft 3 / SLK оптимизация при помощи w3x2lni
Или всё же сделанную с неё копию?
» WarCraft 3 / Как узнать есть ли цель способности за кастующим юнитом
» WarCraft 3 / Сбрасываются триггерные способности
» WarCraft 3 / Эффект снижения лечения
» WarCraft 3 / Эффект снижения лечения
Ред. Extremator
» WarCraft 3 / Эффект снижения лечения
А так ты можешь указать и 0.01 * 0.01, и он тебе посчитает 0.0001
Ред. Extremator
» WarCraft 3 / Эффект снижения лечения
Это та самая абилка которая при понижении ХП возвращала 20/40/60% от потери, и при повышении - докидывала ещё 20/40/60% сверху.
» WarCraft 3 / Эффект снижения лечения
Внутри этой функции будет идти проверка на бафф, либо вообще на ряд баффов и суммарное изменение эффективности лечения.
» WarCraft 3 / Как была сделана карта Dota LoD?
» WarCraft 3 / процентное увеличение маг урона как сделать?
Ред. Extremator
» WarCraft 3 / процентное увеличение маг урона как сделать?
При её правильной настройке она просто множит урон на некое значение.
В стандарте число менее 1.00 будет уменьшать урон, а более - увеличивать.
» WarCraft 3 / Конкатенация переменной и строки vjass, для получения нового имени переменной