XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Вызвать приказ применения способности
Как на Jass можно вызвать применение способности? Тоесть произошло событие и появился выбор цели способности, заданной в коде
Старый 11.02.2011, 14:57
reALien

offline
Опыт: 29,211
Активность:
native ForceUIKey takes string key returns nothing
где кеу - хоткей твоей способности
Старый 11.02.2011, 15:01
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Попробовал, ничего не происходит. Что я написал:
call UnitAddAbility(GameUnit, 'Alsh')
call ForceUIKey("L")
Старый 11.02.2011, 21:08
spellwerk

offline
Опыт: 4,869
Активность:
там вроде через GetLocalPlayer нужно.
а вообще есть замечательные функции IssueTargetOrder, IssueImmediateOrder, IssuePointOrder
Spy_ добавил:
или тебе нужен именно выбор, а не сам каст?
Старый 11.02.2011, 21:25
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Мне нужен именно выбор
Старый 11.02.2011, 21:27
Hanabishi
COOL STATUS
offline
Опыт: отключен
StMechanus
  1. убедись что у юнита эта способность есть и у неё именно такой хоткей
  2. убедись что юнит во время форса хоткея выделен
Старый 11.02.2011, 21:58
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Добавил таймер и заработало, однако как мне убрать способность после ее применения?
function HotKey takes nothing returns nothing
 call ForceUIKey("L")
endfunction

function Actions takes nothing returns nothing
 local timer time = CreateTimer()
 call UnitAddAbility(GameUnit, 'Alsh')
 call TimerStart(time, 0.1,false, function HotKey)
 set time - null
endfunction
StMechanus добавил:
Пробовал церез локальный триг - способность исчезает, однако тогда все паузится и я ниче не могус делать
Старый 11.02.2011, 22:08
Hanabishi
COOL STATUS
offline
Опыт: отключен
call UnitRemoveAbility(GameUnit, 'Alsh')
естественно после каста, т.е. ещё один триггер на отлов самого каста
но тут есть проблема: юзер может нажать отмена
Старый 11.02.2011, 22:11
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
А если я не хочу создавать новый триг, а сделать все в той же функции?
Старый 11.02.2011, 22:13
Hanabishi
COOL STATUS
offline
Опыт: отключен
StMechanus, не получится, тут нужен ивент что юнит скастовал
Hanabishi добавил:
кстати если поставить таймеру true переодичность, то юзер будет вынужден скастовать
Старый 11.02.2011, 22:20
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
И тогда даже если юнит скастует, приказ каста вызовется снова;)
StMechanus добавил:
тут нужен ивент что юнит скастовал
можно так
local trigger t = CreateTrigger()
call TriggerRegisterPlayerUnitEvent(t, GamePlayer, EVENT_PLAYER_UNIT_SPELL_CAST, null)
call TriggerAddAction(t, function DeleteSkills)
Все сработает - скилл удалится, однако тогда паузится полностью все, ни одна кнопка не реагирует а юнит не может двигаться
Старый 11.02.2011, 22:26
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
function DeleteSkills
покажи ее нам
Старый 11.02.2011, 22:37
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
function DeleteSkills takes nothing returns nothing
    call UnitRemoveAbility(GameUnit, 'Alsh')
endfunction
Старый 11.02.2011, 22:39
Master_chan
Полуночный командир
offline
Опыт: 15,660
Активность:
поставь в действие - юнит заканчивает каст или спеллэффект
Старый 11.02.2011, 23:12
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Попробую
Старый 11.02.2011, 23:31
Hanabishi
COOL STATUS
offline
Опыт: отключен
StMechanus, используй EVENT_PLAYER_UNIT_SPELL_ENDCAST, иначе ты пытаешься удалить абилу во время каста, что вар неадекватно воспринимает
Старый 11.02.2011, 23:48
DioD

offline
Опыт: 45,134
Активность:
нужно удалять из другого потока, по событию эндкаст делайте таймер 0 и из таймера удаляете.
Старый 12.02.2011, 07:34
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Работает, но теперь возникают еще вопросы. Как удалить абилку при отмене приказа, а также как ее удалить если у героя недостаточно маны. Насчет маны, думаю, можно делать проверку на количество маны у героя, и если не хватает то удалять, а если говорить точнее, то вообще не давать
Старый 12.02.2011, 11:17
Hanabishi
COOL STATUS
offline
Опыт: отключен
StMechanus, отмену никак не отследить
Старый 12.02.2011, 11:29
StMechanus
Дух сети
offline
Опыт: 11,458
Активность:
Как вычислить мана кост спелла
StMechanus добавил:
?
Старый 12.02.2011, 11:35
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 22:54.