Сейчас 13:46:42 Четверг, 28 марта, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите сделать скилл (снова...)
Помогите сделать скилл
AaronДата: Вторник, 02 Октября 2012, 05:48:15 | Сообщение # 1
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
Хочу сделать скилл на основе ледяных стрел (так-же с автокастом) , который бы замедлял и наносил урон равный % от здоровья.

Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!
 

Ty3uKДата: Вторник, 02 Октября 2012, 12:40:35 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
отлавливать каст и наносить нужный урон

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

збсДата: Вторник, 02 Октября 2012, 12:44:32 | Сообщение # 3
5 уровень
Группа: Проверенные
Сообщений: 102
Награды: 0
Репутация: 52
Блокировки:
Quote (Ty3uK)
отлавливать каст и наносить нужный урон

Отлавливать наличие баффа при получении урона, снимать бафф и добавлять дамаг.


Я н нфг.
 

sumertДата: Вторник, 02 Октября 2012, 12:48:19 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 2330
Награды: 2
Репутация: 1094
Блокировки:
Quote (збс)
Отлавливать наличие баффа при получении урона, снимать бафф

Зачем? Ведь
Quote (Aaron)
который бы замедлял и наносил урон
 

NaturekidДата: Вторник, 02 Октября 2012, 13:16:06 | Сообщение # 5
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Quote (збс)
Отлавливать наличие баффа при получении урона, снимать бафф и добавлять дамаг.

this
только бафф не надо снимать, надо поставить минимальный срок действия и замедлять триггерно.


 

AaronДата: Среда, 03 Октября 2012, 02:30:55 | Сообщение # 6
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
ребят, в голове каша какая-то, можно поподробнее pray

Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!
 

SmartarosДата: Среда, 03 Октября 2012, 02:51:42 | Сообщение # 7
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
надо снимать, лол
 

AaronДата: Среда, 03 Октября 2012, 03:02:30 | Сообщение # 8
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
Smartaros,
Quote (Aaron)
который бы замедлял и наносил урон равный % от здоровья
то есть не надо снимать


Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!


Сообщение отредактировал Aaron - Среда, 03 Октября 2012, 03:02:51
 

SmartarosДата: Среда, 03 Октября 2012, 08:03:23 | Сообщение # 9
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
баф
 

AaronДата: Среда, 03 Октября 2012, 08:06:01 | Сообщение # 10
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
можно поподробнее описать, создание данного скила, а то я ничего не понял :/

Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!
 

NaturekidДата: Среда, 03 Октября 2012, 15:01:56 | Сообщение # 11
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Ой ... Тут короче отслеживаем приказ на автокаст и приказ на отключение автокаста, отслеживаем атаку и если герой не имеет сала, печати, пламени обречённости и имеет достаточно маны, а также переменная для отлова включения автокаста = ДА то заносим уровень стрел героя в память и ждём, пока атакуемый получит баф "Ледяная стрела" проверяя каждые 0.25 сек, либо ... если вдруг юнит станет невидимыми или невосприимчивым к магии - то условие расстояние между атакующим и атакуемым будет больше 1500 скажем, чтобы 1 выстрел не ожидал слишком долго.
Так вот, когда этот вейт прокнет, который кстати утечен по самое нехочу, - проверяем есть ли баф "Ледяная стрела" у атакуемого и если да - создаём дамми на его позиции и даём ему "замедление", устанавливаем уровень замедления для него на число, занесённое в память, приказываем дамику "Волшебница - замедление" атакуемого юнита. Пишем действие
Б.Е. - damage target - хозяин последнего созданного юнита - атакуемого юнита(triggering unit) dealing макс здоровье of triggering unit*0.03...
Теперь одиночный каст, т.е. не автокаст. Юнит приводит способность в действие - занести в память цель приказа, по аналогичному типу ждём пока он имеет баф стрелы или ушёл очень далеко. Так же создаём дамми, замеедляем и наносим урон.
Честное слово..., это же так просто! ХДХДХД

Добавлено (03 Октября 2012, 15:01:56)
---------------------------------------------
Ну вместо утечной дистанции можно что-то типа локального таймера наверное впихнуть. Потому что осень много наштопается утечных точек,




Сообщение отредактировал Naturekid - Среда, 03 Октября 2012, 15:06:15
 

SmartarosДата: Среда, 03 Октября 2012, 16:49:02 | Сообщение # 12
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
а не проще проверять таймером всех юнитов вокруг обладателя абилы на баф, если истина то делать действия и снимать баф? Как то разумнее это, без извращений
 

NaturekidДата: Среда, 03 Октября 2012, 18:06:18 | Сообщение # 13
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Smartaros, не пойдёт, ледяные стрелы не у 1 героя могут быть.

 

Ty3uKДата: Среда, 03 Октября 2012, 18:07:54 | Сообщение # 14
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
вейт не утечен
он кривой


╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

BorodachДата: Среда, 03 Октября 2012, 18:31:03 | Сообщение # 15
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
Примерно так. Ох уж это ГУИ, намучился пока сделать небольшой пример

Karamba
 

SmartarosДата: Среда, 03 Октября 2012, 19:07:13 | Сообщение # 16
9 уровень
Группа: Проверенные
Сообщений: 810
Награды: 0
Репутация: 135
Блокировки:
Naturekid, омг не думаю что у него больше одного героя будет с этой абилой, да и тем более через юнит получил урон так же просто будет, не нужно никакие события с автокастом учитывать, просто при уроне баф проверять
 

NaturekidДата: Среда, 03 Октября 2012, 20:42:28 | Сообщение # 17
Группа: Заблокированные
Сообщений: 4982
Награды: 3
Репутация: 3347
Блокировки:
Smartaros, да через получение урона будет лучше... неужели ты в кои-то веки правильную вещь сказал :D


 

ExtrematorДата: Среда, 03 Октября 2012, 21:44:39 | Сообщение # 18
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
вот тебе стрелы Дестра из доты - Arcane Orb (spell).w3x
вот тебе триггерный бафф вешающийся по тому же принципу - Sange.w3x

в итоге... можно сделать стрелы которые будут наносит спец.урон и вешать особый бафф с пачкой эффектов...
 

Prokhor-andrewДата: Четверг, 04 Октября 2012, 00:08:10 | Сообщение # 19
6 уровень
Группа: Пользователи
Сообщений: 215
Награды: 0
Репутация: 0
Блокировки:
Extremator, как обычно все порешал

(-_-)
 

AaronДата: Четверг, 04 Октября 2012, 06:01:06 | Сообщение # 20
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
Extremator, Спасибо, но вот я только не догнал, нафига атакованного юнита в отряд заносить, если отряд больше нигде не используется?

Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!
 

ExtrematorДата: Четверг, 04 Октября 2012, 09:51:18 | Сообщение # 21
10 уровень
Группа: Проверенные
Сообщений: 3199
Награды: 0
Репутация: 1018
Блокировки:
Quote (Aaron)
нафига атакованного юнита в отряд заносить, если отряд больше нигде не используется?


что бы видеть что юнит уже есть в отряде = для этого юнита уже создан ивент (событие) на получение им урона...

в противном случаи при получении урона триггер будет срабатывать ДВА раза...
...при этом в игре будет висеть ДВА ивента... и... их число будет рости при каждой атаке...
это вызовет неописуемые лаги в сетевой игре...
...это основная ошибка гуишников пытающихся отлавливать урон...

на сколько знаю, на жассе, вроде бы можно создавать локальный триггер для этого и потом его затирать... следовательно - группа не нужно
 

AaronДата: Четверг, 04 Октября 2012, 10:04:56 | Сообщение # 22
7 уровень
Группа: Проверенные
Сообщений: 302
Награды: 0
Репутация: 110
Блокировки:
Extremator, а, ну спасибо еще раз :D

Когда ты просишь наработку по системе доты, ты заставляешь Иисуса плакать.
Только ГУИ! Только хардкор!
 

sacar777Дата: Четверг, 04 Октября 2012, 11:25:20 | Сообщение # 23
7 уровень
Группа: Проверенные
Сообщений: 416
Награды: 0
Репутация: 35
Блокировки:
Конвертировал в текст, так как в лом было кидать на файлообменник)

Code
function Trig_Ice_Arows_Conditions takes nothing returns boolean
     if ( not ( GetUnitAbilityLevelSwapped('A000', GetAttacker()) >= 1 ) ) then
         return false
     endif
     return true
endfunction

function Trig_Ice_Arows_Func001C takes nothing returns boolean
     if ( not ( UnitHasBuffBJ(GetAttackedUnitBJ(), 'Bcsd') == true ) ) then
         return false
     endif
     return true
endfunction

function Trig_Ice_Arows_Actions takes nothing returns nothing
     if ( Trig_Ice_Arows_Func001C() ) then
         call UnitDamageTargetBJ( GetAttacker(), GetAttackedUnitBJ(), ( GetUnitLifePercent(GetAttackedUnitBJ()) * 1.00 ), ATTACK_TYPE_MELEE, DAMAGE_TYPE_NORMAL )
     else
     endif
endfunction

//===========================================================================
function InitTrig_Ice_Arows takes nothing returns nothing
     set gg_trg_Ice_Arows = CreateTrigger(  )
     call TriggerRegisterAnyUnitEventBJ( gg_trg_Ice_Arows, EVENT_PLAYER_UNIT_ATTACKED )
     call TriggerAddCondition( gg_trg_Ice_Arows, Condition( function Trig_Ice_Arows_Conditions ) )
     call TriggerAddAction( gg_trg_Ice_Arows, function Trig_Ice_Arows_Actions )
endfunction


Ice_Arows название триггера
GetUnitLifePercent(GetAttackedUnitBJ()) * 1.00
Тут процент хп *1
( not ( GetUnitAbilityLevelSwapped('A000', GetAttacker()) >= 1 ) ) then
проверка, что бы атакующий юнит имел способность больше чем 0 (прокачена)
А000 -ид способности Лед стрелы


Legion

Герои: 10%
Ландшафт: 30%
Предметы: 10%
Баланс:80%
Код:70%
Общая готовность: 10%
Бета Тест карты выявил 4 довольно простых бага.
 

Форум о Warcraft 3 » Раздел для картостроителей » Вопросы по картостроению » Помогите сделать скилл (снова...)
  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz