[Способность]Крит(Jass)
|
|
-
НубикВЕ | Дата: Среда, 25-01-2012, 18:28:51 | Сообщение # 1 |
загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
|
1-ое создаём условие юнит получает урон Code function Trig_Damage_Add_Actions takes nothing returns nothing call TriggerRegisterUnitEvent( gg_trg_Damage_Take, GetTriggerUnit(), EVENT_UNIT_DAMAGED ) endfunction
//=========================================================================== function InitTrig_Damage_Add takes nothing returns nothing set gg_trg_Damage_Add = CreateTrigger( ) call TriggerRegisterUnitInRange( gg_trg_Damage_Add, gg_unit_hhes_0096, 99999.00, null ) call TriggerAddAction( gg_trg_Damage_Add, function Trig_Damage_Add_Actions ) endfunction gg_unit_hhes_0096(юнит который стоит на карте в любом месте) 2-ой сам крит. Code function Trig_Damage_Take_Actions takes nothing returns nothing local real d = GetEventDamage() local unit u1 = GetEventDamageSource() local unit u2 = GetTriggerUnit() local integer i = GetRandomInt( 1, 100 ) local integer x=GetUnitAbilityLevel( u1, 'A02Z' ) * 30 + GetHeroAgi( u1, true ) * 2
if GetUnitAbilityLevel(u1, 'A02Z') > 0 and i <= 20 then call DestroyEffect( AddSpecialEffectTarget( "Abilities\\Spells\\NightElf\\FaerieDragonInvis\\FaerieDragon_Invis.mdl", u2, "chest") ) call UnitDamageTarget( u1, u2, x, true, false, ATTACK_TYPE_NORMAL, DAMAGE_TYPE_FORCE, WEAPON_TYPE_WHOKNOWS ) endif set u1 = null set u2 = null endfunction
//=========================================================================== function InitTrig_Damage_Take takes nothing returns nothing set gg_trg_Damage_Take = CreateTrigger( ) call TriggerAddAction( gg_trg_Damage_Take, function Trig_Damage_Take_Actions ) endfunction A02Z - id способности
[c][/c]
|
| | |
-
Caturn | Дата: Среда, 25-01-2012, 18:55:53 | Сообщение # 2 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
|
НубикВЕ, боюсь спросить, ты знаешь какую смысловую нагрузку имеют логические аргументы в функции UnitDamageTarget? Ну и последнее, наработка фейк, утечки, одни утечки, благодаря добавлению события "Юнит получает урон", ибо юниты не герои не воскрешаются, а их хиндлиды остаются, надо юнитов удалять, и удалять их событие "Юнит (хиндлид) получает урон. И каждую секунду добавлять к действию нового юнита. Хотя и переменная типа UnitEvent весит мало, но юнитов могут быть тысячи...
Мои статьи: 1. http://wc3-maps.ru/forum/78-1507-1 Школа тригеростроения, ГУИ. http://wc3-maps.ru/forum/99-1471-1
|
| | |
-
НубикВЕ | Дата: Среда, 25-01-2012, 19:11:36 | Сообщение # 3 |
загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
|
Caturn, всё работает исправно... хоть милион юнитов!Добавлено (25/01/2012, 19:11:36) --------------------------------------------- Caturn, незнаю
[c][/c]
|
| | |
-
wetalq | Дата: Среда, 25-01-2012, 19:38:18 | Сообщение # 4 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
|
НубикВЕ, а теперь представь что спел будет проверяться не 1 минуту как это делаешь ты а будет использоваться в карте, длина игры 20 минут.
и твой спел даст о себе знать.
Покупка предметов через способность
|
| | |
-
Caturn | Дата: Среда, 25-01-2012, 21:49:00 | Сообщение # 5 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
|
Прикинь, триггер весит от 100 байт, зависит это от событий и условий. Если мы уничтожаем триггер, то мы автоматом удаляем и события триггера и его условия(при условии, что триггер закончил проверку условия и выполнил намеченные действия). Ладно, пусть будет у тебя это 1 триггер, с таким массивом событий. А теперь представь что их у тебя пару десятков. И если все триггеры будут работать то у тебя будет банальный лаг, действия какого то триггера не сойдутся, а виной всему этому будут виноваты остальные триггеры. Лучше создавать временные триггеры как в доте, или же, удалять закончившие свою работу триггеры. Т.е. было событие, юнит игрока применил способность. в действии триггера объявляем новый триггер, и юнита цель вписываем в регистр нового триггера. В условии триггера проверяем от кого был получен урон, или баффом. В действии Выключаем триггер, делаем нужные действия, запускаем таймер в 0.1-1 секунду и удаляем триггер, или оставляем всё как есть.
Мои статьи: 1. http://wc3-maps.ru/forum/78-1507-1 Школа тригеростроения, ГУИ. http://wc3-maps.ru/forum/99-1471-1
|
| | |
-
$eni0r | Дата: Четверг, 26-01-2012, 05:17:13 | Сообщение # 6 |
Ополченец
загрузка наград ...
Группа: Пользователи
Сообщений: 61
Репутация: 98
Статус: Не на сайте
|
Судя по тому, что вы тут пишете, мне еще JASS-у учиться и учиться!!! Вообще на другом языке говорите!
P.S.: Оффтопик, сорри
|
| | |
-
НубикВЕ | Дата: Четверг, 26-01-2012, 08:21:49 | Сообщение # 7 |
загрузка наград ...
Группа: Пользователи
Сообщений: 187
Репутация: 261
Статус: Не на сайте
|
Caturn, wetalq, незнаю у меня в карте игра на 30-60 минут, лагает от груп, и эфектов... Но от этого неочень... Ну а так какой выход использовать убогий атакован?
[c][/c]
|
| | |
-
wetalq | Дата: Четверг, 26-01-2012, 14:55:32 | Сообщение # 8 |
Король Мёртвых
загрузка наград ...
Группа: V.I.P.
Сообщений: 1263
Репутация: 1572
Статус: Не на сайте
| | |
-
Caturn | Дата: Четверг, 26-01-2012, 22:03:56 | Сообщение # 9 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 217
Репутация: 128
Статус: Не на сайте
|
НубикВЕ, Да. Это единственный выход, ибо мы не можешь проверить тип атаки или дамага. Нету функций. Мб близы подправят, мб нет, но в скрипте есть около 60 функций которых нет в библиотеках, свойственно в варе их нельзя задействовать, как с помощью редактора, так с помощью прямого вливания в бинарный файл. Для ближнего боя есть вариант, юнит получает урон - 1 событие триггера - по нему основные действия, и 3 других, отдал приказ цель юнит, цель точка, без указания цели - по этим 3 событиям выключаем или уничтожаем триггер(временный). А вот для дальнего боя гемор будет ещё тот, концепция та же, но плюс таймер и другие проверки.
Мои статьи: 1. http://wc3-maps.ru/forum/78-1507-1 Школа тригеростроения, ГУИ. http://wc3-maps.ru/forum/99-1471-1
|
| | |
-
Astalavista | Дата: Воскресенье, 04-03-2012, 08:26:25 | Сообщение # 10 |
I`m gavno
загрузка наград ...
Группа: Заблокирован
Сообщений: 178
Репутация: -268
Статус: Не на сайте
|
УДАЛЕНО
Я гавно, нет, ну правда.
|
| | |
-
Dreii2915 | Дата: Среда, 21-03-2012, 14:30:29 | Сообщение # 11 |
Раб
загрузка наград ...
Группа: Пользователи
Сообщений: 7
Репутация: 0
Статус: Не на сайте
|
Во первых добавляем событие для всех кто входит рна карту\либоу уже стоит на ней во вторых при нанесении дамага в триггере выклучай этот триггер а после вклучай иначе у тебя будет что то вроде такого
ударил - сработал триггер - нанес крит -сработал триггер и т.д
а то что говорили тебе выше все глупости.
|
| | |