Урон по линии (спеллом)
|
|
FatalBlade | Дата: Воскресенье, 01 Января 2012, 20:08:13 | Сообщение # 1 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| У меня есть несколько героев, у который нету обычной атаки в РО. Зато у них есть атакующие спеллы, которые довольно часто применяются. Они должны быть заменителями обычной атаки. Смысл в том, что бы был урон по линии, т.е. все подобные абилки сделаны на основы Carrion Swarm.
Как сделать, что бы когда герой кликал правой кнопкой по вражескому юниту, он юзал нужный спелл в те координаты где находится цель? Это если конечно расстояние от героя и цели меньше 900. Если больше, то герой подойдёт и заюзает спелл. Короче что бы заменял обычную атаку.
|
|
|
|
DEMON_CHETS_V2 | Дата: Воскресенье, 01 Января 2012, 20:56:01 | Сообщение # 2 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| FatalBlade, Могу описать в текстовом варианте: Вам понадобится ОДИН ТРИГГЕР. Событие: Общее Событие Юнита - Юнит Атаковал Действие: Применить способность - Повелитель Ужаса - Тёмная Стая.
|
|
|
|
FatalBlade | Дата: Воскресенье, 01 Января 2012, 21:00:13 | Сообщение # 3 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| DEMON_CHETS_V2, ты не понял. Я отменил обычную атаку юнитам. Тут не может быть события Юнит Атакует, потому что атаки просто нету.
|
|
|
|
Saginara00 | Дата: Воскресенье, 01 Января 2012, 21:08:54 | Сообщение # 4 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| там есть вроде события игрок нажал левую/правую клавишу мыши?? если есть то попробуй через это Добавлено (01 Январь 2012, 21:08:54) --------------------------------------------- а вот, юнит отдал приказ(цель-обьект) условие: пикт юнит = враг Действие ордер волна
|
|
|
|
FatalBlade | Дата: Воскресенье, 01 Января 2012, 21:30:34 | Сообщение # 5 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Saginara00) а вот, юнит отдал приказ(цель-обьект) условие: пикт юнит = враг Действие ордер волна 1) - Какой приказ там нужен? 2) - А если герой далеко от юнита?
|
|
|
|
Ty3uK | Дата: Воскресенье, 01 Января 2012, 21:48:10 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Приказ "move" или 851986, ведь если у юнита нет атаки, то он должен идти в ту точку (если мне память не изменяет)
|
|
|
|
FatalBlade | Дата: Воскресенье, 01 Января 2012, 22:02:37 | Сообщение # 7 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Ty3uK) Приказ "move" или 851986, ведь если у юнита нет атаки, то он должен идти в ту точку (если мне память не изменяет) нет Если я правой кнопкой кликнул по юниту, не имея при этом атаки, то юнит будет за ним следовать. Вообще где можно достать список всех приказов?
Сообщение отредактировал FatalBlade - Воскресенье, 01 Января 2012, 22:08:35 |
|
|
|
DEMON_CHETS_V2 | Дата: Воскресенье, 01 Января 2012, 22:22:19 | Сообщение # 8 |
Тайга-сперма
Группа: Проверенные
Сообщений: 913
Награды: 0
Репутация: 316
Блокировки:
| Quote (FatalBlade) список всех приказов? Выучить английский. Patrol наверное, попробуй, хуже не станет.
|
|
|
|
FatalBlade | Дата: Воскресенье, 01 Января 2012, 22:27:20 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (DEMON_CHETS_V2) Выучить английский. Patrol наверное, попробуй, хуже не станет. Есть приказы о которых не так просто узнать. Например ты знаешь такой приказ "smart"? И это не абилка.
|
|
|
|
Borodach | Дата: Воскресенье, 01 Января 2012, 22:43:45 | Сообщение # 10 |
9 уровень
Группа: Проверенные
Сообщений: 930
Награды: 0
Репутация: 422
Блокировки:
| Ты в действии создай плавающий текст, и конвертируй приказ в строку, так узнаешь какой приказ нужен.
Karamba
|
|
|
|
Slonick | Дата: Понедельник, 02 Января 2012, 00:13:10 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 1688
Награды: 0
Репутация: 247
Блокировки:
| советую зделать этим юнитам атаку 1-1 и чтобы они не получали бонусов от предметов, иначе они будут убегать при получении урона (если атака 1-1 то можно автокаст с даммикастом) Добавлено (02 Январь 2012, 00:13:10) --------------------------------------------- советую зделать этим юнитам атаку 1-1 и чтобы они не получали бонусов от предметов, иначе они будут убегать при получении урона (если атака 1-1 то можно автокаст с даммикастом)
|
|
|
|
FatalBlade | Дата: Понедельник, 02 Января 2012, 00:52:23 | Сообщение # 12 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Slonick) иначе они будут убегать при получении урона Это можно отменить в РО И они не будут убегать
|
|
|
|
SirNikolas | Дата: Понедельник, 02 Января 2012, 09:30:45 | Сообщение # 13 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (FatalBlade) Например, ты знаешь такой приказ "smart"? Только хотел написать. И в чем проблема? Отслеживаешь приказ "smart", если он направлен на врага, берешь таймер из массива с индексом игрока - владельца героя. Запускаешь периодически на (cooldown + 1.) и приказываешь применить способность. По таймеру применяешь способность. При получении другого приказа паузишь таймер.
|
|
|
|
Saginara00 | Дата: Понедельник, 02 Января 2012, 12:20:04 | Сообщение # 14 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| Quote (FatalBlade) 1) - Какой приказ там нужен? 2) - А если герой далеко от юнита?
там сразу так и написано приказ.. не надо выбирать
|
|
|
|
FatalBlade | Дата: Понедельник, 02 Января 2012, 13:00:18 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (SirNikolas) Только хотел написать. И в чем проблема? Отслеживаешь приказ "smart", если он направлен на врага, берешь таймер из массива с индексом игрока - владельца героя. Запускаешь периодически на (cooldown + 1.) и приказываешь применить способность. По таймеру применяешь способность. При получении другого приказа паузишь таймер. Проверил в отдельной карте в ГУИ - работает. Создал то же самое на джассе в своей карте - не работает. Код как бы работает, просто герой не выполняет приказ. В отдельной карте в ГУИ он его выполнял. wtf?
|
|
|
|
Saginara00 | Дата: Понедельник, 02 Января 2012, 13:02:42 | Сообщение # 16 |
6 уровень
Группа: Проверенные
Сообщений: 185
Награды: 0
Репутация: 67
Блокировки:
| ты проверял на ГУИ в своей карте?
|
|
|
|
FatalBlade | Дата: Понедельник, 02 Января 2012, 13:06:16 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Quote (Saginara00) ты проверял на ГУИ в своей карте? Нет. Зачем? Даже если будет работать, всё равно я так не оставлю это на ГУИ. Дело в том что события которые происходят очень часто, я хочу что бы их триггеры были оптимизированны.
|
|
|
|
SirNikolas | Дата: Понедельник, 02 Января 2012, 13:15:00 | Сообщение # 18 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code, please.
|
|
|
|
FatalBlade | Дата: Понедельник, 02 Января 2012, 19:40:42 | Сообщение # 19 |
10 уровень
Группа: Проверенные
Сообщений: 1523
Награды: 0
Репутация: 439
Блокировки:
| Code function Trig_AI_Firebolt_Conditions takes nothing returns boolean local integer ut = GetUnitTypeId(GetOrderedUnit()) return ( GetIssuedOrderId() == 851971 ) and ( ut == 'H00V' or ut == 'H00Z' or ut == 'H03R' or ut == 'H00G' or ut == 'H00D' ) endfunction
function Trig_AI_Firebolt_Actions takes nothing returns nothing local unit u1 = GetOrderedUnit() local integer uid = GetHandleId(u1) local unit u2 = GetOrderTargetUnit() call SetUnitAbilityLevel( u1, LoadInteger(udg_Hash, uid, 450), R2I( GetHeroInt( u1, true ) / 3 ) )
call IssuePointOrderById( u1, 852218, GetWidgetX(u2), GetWidgetY(u2) ) call SaveAgentHandle(udg_Hash, uid, 446, u2) set u1 = null set u2 = null endfunction
//=========================================================================== function InitTrig_AI_Firebolt takes nothing returns nothing local integer index = 0 set gg_trg_AI_Firebolt = CreateTrigger() loop call TriggerRegisterPlayerUnitEvent( gg_trg_AI_Firebolt, Player(index), EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER, null ) set index = index + 1 exitwhen index >= 10 endloop call TriggerAddCondition( gg_trg_AI_Firebolt, Condition( function Trig_AI_Firebolt_Conditions ) ) call TriggerAddAction( gg_trg_AI_Firebolt, function Trig_AI_Firebolt_Actions ) endfunction
Добавлено (02 Январь 2012, 14:48:14) --------------------------------------------- Так вот всё работает в отдельной карте, и на ГУИ и на джасс, но в моей карте неработает не на ГУИ не на джасс. Конкретнее - код работает. Единственное что не работает, это сам приказ. Юнит не выполняет приказ. Пробовал с другими юнитами, с другими героями... Результат тот же. Что может мешать выполнению приказа в определённой карте?Добавлено (02 Январь 2012, 19:40:42) --------------------------------------------- Неужто никто не знает и не сталкивался с такой проблемой?
Сообщение отредактировал FatalBlade - Понедельник, 02 Января 2012, 15:40:52 |
|
|
|