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

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

Закрытая тема
 
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Проблемы с отдачей приказа
По какой то причине не пашет ряд функций.

Тестил:

Код:
void StunUnit(unit u, float stun_time)
{
    UnitAddAbility(u,'A002')
 
    SetUnitAbilityLevel(u,'A002',R2I(stun_time*10))
    IssueTargetOrderById(u,order_thunderbolt,u)
    IssueTargetOrder(u,"thunderbolt",u)
}


Абилка дается, лвл выставляется, но не один из приказов не исполняется. С абилкой самой все норм, мп кост 0, разрешены цели любые. Вручную этим скилом юнит успешно станится. Единственное что в голову приходит, это то что Ордеры не пашут.
[+] замечание от alexkill: название темы не отражает сути вопроса
Старый 28.07.2011, 14:51
FKoFF
Venomancer 89lvl. Europe
offline
Опыт: 5,975
Активность:
мммм, было нечто подобное, каким то секретным колдунтсвом таки заставил это работать;... проблема, возможно, заключается в том что не выставлен тип дамми? Вернее, в функцию не передается ID дамми, либо он не активный, во всяком случае рекомендую проверить и это в том числе.
Старый 28.07.2011, 16:19
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от FKoFF
мммм, было нечто подобное, каким то секретным колдунтсвом таки заставил это работать;... проблема, возможно, заключается в том что не выставлен тип дамми? Вернее, в функцию не передается ID дамми, либо он не активный, во всяком случае рекомендую проверить и это в том числе.


В данном коде проверки не используется дамми, а добавляется юниту кастеру абилка, которой он должен сам себя застанить. Отмечу что ВСЕ параметры передаются(дебагом выводил) и функция исполняется до конца. На другой чистой мапе - работает. Ордеры не дефайнились.
Старый 28.07.2011, 16:23
Elf_Stratigo

offline
Опыт: 4,699
Активность:
может цели у абилки?
попробуй выводить результат исполнения IssueTargetOrder*
Старый 28.07.2011, 16:41
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Я юзал оба варианта. Цели присутствуют=) Тут вопрос уже не в ошибке, а скорее в том, как реабилитировать функции, на другой карте этот же код работает.
Старый 28.07.2011, 16:46
Elf_Stratigo

offline
Опыт: 4,699
Активность:
Elf_Stratigo:
попробуй выводить результат исполнения IssueTargetOrder*
имел ввиду чтонить типа
if(IssueTargetOrder*){Display...}else{Display...}
если будет печататься текст из елсе значит юнит не может кастануть в себя: может у него маг сопротивление есть или ещё чтонить
попробуй код с др юнитами
также может быть, что приказ сбивается
Старый 28.07.2011, 16:53
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
» пашет

Код:
function Trig_test_Actions takes nothing returns nothing
    unit u = gg_unit_E000_0010
    UnitAddAbility(u,'A002')
    SetUnitAbilityLevel(u,'A002',R2I(4.0*10))
    IssueTargetOrder(u,"thunderbolt",u)
endfunction

//===========================================================================
function InitTrig_test takes nothing returns nothing
    set gg_trg_test = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_test, 5.00 )
    call TriggerAddAction( gg_trg_test, function Trig_test_Actions )
endfunction



» не пашет

Код:
void StunUnit()
{
    unit u = GetTriggerUnit()
    UnitAddAbility(u,'A002')
    SetUnitAbilityLevel(u,'A002',R2I(4.0*10))
    IssueTargetOrder(u,"thunderbolt",u)
}



WTH?!! O_o
Старый 28.07.2011, 18:19
Gudfree
гуи (V)_( Oo )_(V)
offline
Опыт: 8,233
Активность:
глюки вара, бро
Старый 28.07.2011, 18:27
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
Не очень понял как ты выводил передаваемые параметры в функцию такого вида,но может попробуй узнать имя тригерюнита
Старый 28.07.2011, 18:50
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от Nerevar
Не очень понял как ты выводил передаваемые параметры в функцию такого вида,но может попробуй узнать имя тригерюнита


Прежде чем пытаться давать "дельные" советы, изучи мат часть.
Старый 28.07.2011, 18:56
DotaMaster666
Silenced by GadenbIsh
offline
Опыт: 1,259
Активность:
IssueTargetOrderById(u,order_thunderbolt,u)
IssueTargetOrder(u,"thunderbolt",u)
Лучше использовать первую из них.
if(IssueTargetOrder*){Display...}else{Display...}
Так пробовали - что выдает?
unit u = gg_unit_E000_0010
UnitAddAbility(u,'A002')
Тип юнита gg_unit_E000_0010 соответствует юниту, передаваемому в функцию, с которой оно не работает?
Старый 28.07.2011, 19:23
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от DotaMaster666
Тип юнита gg_unit_E000_0010 соответствует юниту, передаваемому в функцию, с которой оно не работает?


Оба герои.

Цитата:
Сообщение от DotaMaster666
Лучше использовать первую из них.


Я использовал любые варианты, для теста.

Цитата:
Сообщение от DotaMaster666
Так пробовали - что выдает?


Дебаг показывает что все ок, все параметры на месте, и правильные, и выполняется функция до конца.
Старый 28.07.2011, 19:37
bee
vjass.optimizer
offline
Опыт: 16,615
Активность:
продебагь исполняется ли приказ? +цели разрешены должны быть: сам герой, наземные. вроде так.
+ мана/кд. также проверяй на уже наличие этой абилки в воине.

bee добавил:
ваще используй дамми. а не цель спела
Старый 29.07.2011, 00:12
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от bee
продебагь исполняется ли приказ? +цели разрешены должны быть: сам герой, наземные. вроде так.
+ мана/кд. также проверяй на уже наличие этой абилки в воине.

bee добавил:
ваще используй дамми. а не цель спела


Изначально и используется дамми, это уже сделано было для проверки добавления способности, лвла для спелла, юзабельности спелла. Цели разрешены любые, манна\кд == 0.

Код:
void CastToTargetSimple(unit u, unit t, int a, int l, int o)
{
    if u == null {BJDebugMsg("u == null")}
    if t == null {BJDebugMsg("t == null")}
    if a == 0 {BJDebugMsg("a == 0")}
    if l == 0 {BJDebugMsg("l == 0")}
    if o == 0 {BJDebugMsg("o == 0")}
    unit d = CreateUnit(GetOwningPlayer(u),'h004',GetUnitX(u),GetUnitY(u),0)
    UnitAddAbility(d,a)
    SetUnitAbilityLevel(d,a,l)
    IssueTargetOrderById(d,o,t)
    RemoveUnit(d)
    d = null
}
Старый 29.07.2011, 00:21
agentex

offline
Опыт: 34,834
Активность:
IssueTargetOrderById(d,o,t)
    RemoveUnit(d)
юнит уберется до того как будет отдан приказ.
Старый 29.07.2011, 00:57
ZeToX2007

offline
Опыт: 7,009
Активность:
Добавляй таймер исчезновение 2 секунды за место ремома
Старый 29.07.2011, 03:30
Faion
Noblesse Oblige
offline
Опыт: 30,395
Активность:
Цитата:
Сообщение от agentex
юнит уберется до того как будет отдан приказ.

Блин, ппц. Вчера весь день сидел вдуплял в чем проблема... уже начал даже писать свою баф систему...

thx, помогло=)
Старый 29.07.2011, 11:18
Закрытая тема

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

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

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

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



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