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

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

Закрытая тема
 
The Requiem

offline
Опыт: 2,766
Активность:
Почему не работает код?
Привет всем сюда зашедшим. У меня нарисовалась проблема (не могу вкурить). Имеется код, который осуществляет создание дамми-юнита после того, как герой выход из области. Даммик должен кастовать замедление на "выходца", но отказывается делать это. Вот сам код:
function Energy_OFF takes nothing returns nothing
    local unit Q = GetLeavingUnit()
    local unit W
    local real E = GetUnitStateSwap(UNIT_STATE_MANA, Q)
    local player R = Player(PLAYER_NEUTRAL_AGGRESSIVE)
    call SetUnitState(Q, UNIT_STATE_MANA, (E - 1))
    call UnitAddAbility(Q, 'A001')
    call CreateUnit(R, 'h004', GetUnitX(Q), GetUnitY(Q), 0.00)
    set W = GetLastCreatedUnit()
    call IssueTargetOrder(W, "slow", Q)
        if E == 0.00 then
           call KillUnit(Q)
        endif
    call TriggerSleepAction(5.00)
    call RemoveUnit(W)
    set Q = null
    set W = null
endfunction
Я вроде все правильно сделал ._.
Помогите, чем сможете ^___^
The Requiem добавил:
И да, добавлю к вопросу:
        if E == 0.00 then
           call KillUnit(Q)
        endif
Эти действия тоже почему-то не работают.
Старый 06.11.2011, 03:08
LostCoast

offline
Опыт: 2,633
Активность:
Код:
call UnitAddAbility(Q, 'A001')
угадай почему?) не тому даешь скилл слоу.
Код:
call TriggerSleepAction(5.00)
лучше не используй это, а дамни дай
Код:
call UnitApplyTimedLife(W, 'BTLF', 5.00)
Старый 06.11.2011, 03:28
The Requiem

offline
Опыт: 2,766
Активность:
LostCoast, смотри: это не слоу, эта восполнение маны (с отрицательным значением). Но это уже другая история) А слоу я даю тому юниту.
The Requiem добавил:
И да, слоу уже заранее занесен в дамми.
Старый 06.11.2011, 03:30
LostCoast

offline
Опыт: 2,633
Активность:
ну у меня щас тоже дамник не хочет кастовать почему ничего,


Код:
if E < 5 then
           call KillUnit(Q)
        endif


например так все работает

LostCoast добавил:
бред какой-то с кодом, когда делаешь все действия с покидающим регион юнитом, то все норм, а как пытаешься что-то сделать с созданным дамни, так ничего не хочет работать
Старый 06.11.2011, 03:48
The Requiem

offline
Опыт: 2,766
Активность:
LostCoast, я о том-же. Что-же буду ждать людей типа дока или фариона...
Старый 06.11.2011, 03:53
DqUaliTy

offline
Опыт: 1,076
Активность:
local unit W
set W=CreateUnit(R, 'h004', GetUnitX(Q), GetUnitY(Q), 0.00)
Так не легче зделать ? :D
Напиши какое событие , и какое условие чтоль.
Старый 06.11.2011, 09:56
spellwerk

offline
Опыт: 4,869
Активность:
    call CreateUnit(R, 'h004', GetUnitX(Q), GetUnitY(Q), 0.00)
    set W = GetLastCreatedUnit()
в W не будет нужного значения, потому что функция CreateUnit не записывает ничего в bj_lastCreatedUnit, в отличие от CreateNUnitsAtLoc. раскрывайте бж
как сделать, только что сказали выше
Старый 06.11.2011, 10:39
Nerevar
I'll be back!
offline
Опыт: 18,352
Активность:
function Energy_OFF takes nothing returns nothing
    local unit Q = GetTriggerUnit()
    local real E = GetUnitState(Q,UNIT_STATE_MANA)-1.
    local unit W
    if E == 0. then
           call KillUnit(Q)
    else
    set W=CreateUnit(Player(PLAYER_NEUTRAL_AGGRESSIVE), 'h004', GetUnitX(Q), GetUnitY(Q), 0.)
    call UnitApplyTimedLife(W,'BTLF',5.)
    call SetUnitState(Q, UNIT_STATE_MANA, E)
    call UnitAddAbility(Q, 'A001')
    call IssueTargetOrder(W, "slow", Q)
    endif
    set Q = null
    set W = null
endfunction
Как то так
Msey, какого здесь точки нужны?
Старый 06.11.2011, 10:56
The Requiem

offline
Опыт: 2,766
Активность:
Nerevar, ок. Спасибо, только теперь он почему-то не замедляется, а стоит как в сетке. И да, условие:
        if E == 0. then
           call KillUnit(Q)
        else
Все равно не убивает юнита(
Старый 06.11.2011, 15:21
Doc

offline
Опыт: 63,163
Активность:
<= 1.
Старый 06.11.2011, 15:48
The Requiem

offline
Опыт: 2,766
Активность:
Doc, я так пробовал уже - не помогло.
Старый 06.11.2011, 16:00
Doc

offline
Опыт: 63,163
Активность:
ну дай карту, гляну.
Старый 06.11.2011, 16:02
The Requiem

offline
Опыт: 2,766
Активность:
Кинул в ПС
Старый 06.11.2011, 16:08
Doc

offline
Опыт: 63,163
Активность:
У тебя слишком быстрая регенерация маны. +что ты хочешь, чтобы юнит при 0 маны умирал за городом? Тут нужен периодик либо событие "мана юнита становится меньше". Ах да и в редакторе объектов у тебя стоит замедление на 250%, но тебе видней.
Старый 06.11.2011, 16:22
The Requiem

offline
Опыт: 2,766
Активность:
Doc, 250? О_о Я думал 25% =D Ок. Да мне нужно чтобы юнит дох за городом. Ладно, пойду разбираться. Всем спасибо.
Close
Старый 06.11.2011, 16:52
Закрытая тема

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

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

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

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



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