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

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

Закрытая тема
 
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
проблема с условием сравнения числа
    local integer a = 0
    set a = (a + 1)
    if ( a == 7 ) then
незнаю может я где ошибся но почему то не хочет проверятся условие.
» Код
function Trig_AdmiralPassive_Conditions takes nothing returns boolean
    if ( GetUnitAbilityLevel(GetAttacker(), 'A01T' ) >= 1 ) then
        return false
    endif
    return true
endfunction

function Trig_AdmiralPassive_Actions takes nothing returns nothing
    local unit t = GetTriggerUnit()
    local unit m = GetAttacker()
    local integer a = 0
    set a = (a + 1)
    if ( a == 7 ) then
        call DestroyEffect ( AddSpecialEffectTarget( "Objects\\Spawnmodels\\Naga\\NagaDeath\\NagaDeath.mdl", t, "origin" ))
        call UnitAddAbility( t, 'Amrf' )
        call UnitRemoveAbility( t, 'Amrf' )
        call SetUnitFlyHeight( t, 500.00, 390.00 )
        call PauseUnit( t, true )
        call TriggerSleepAction( 0.40 )
        call SetUnitFlyHeight( t, 0.00, 325.00 )
        call IssueTargetOrder( m, "attack", t )
        call TriggerSleepAction( 1.00 )
        call PauseUnit( t, false )
        set a = 0
        set t = null
        set m = null
    endif
endfunction

Отредактировано Cosonic5, 12.05.2012 в 13:10.
Старый 12.05.2012, 12:59
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Cosonic5, а с какого перепуга а будет равно 7?
Зачем тебе else?
Старый 12.05.2012, 13:03
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
quq_CCCP, ну я думал туда a+1 записывать а потом понял что можно сразу.
Вообщем ошибку я понял приравниваю каждый раз к 0

Отредактировано Nerevar, 12.05.2012 в 14:12.
Старый 12.05.2012, 13:06
quq_CCCP
Я белый и пушистый!
offline
Опыт: 93,279
Активность:
Cosonic5, нет локальная переменная удаляется всякий раз когда заканчивается выполнение триггера...
Она вначале равна 0...

Отредактировано Nerevar, 12.05.2012 в 14:12.
Старый 12.05.2012, 13:14
16GB
GhostOne User
offline
Опыт: 60,317
Активность:
мда
ну гляжу в книгу вижу фигу, это называется
а не сохраняется после выполнения функции, замени глобалкой или сохраняй через хэш
и вейты рак используй таймеры, статья есть
если читая статью не понял её, читай до упора, если не поможет читай все статьи заново, повторять пока не научишься, или более простой метод, делать методом научного тыка, но не постить тут 100500 тем с раковопросами.
Старый 12.05.2012, 13:21
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
Cosonic5, записывай в хеш, либо глобалкой поставь (стеки и аттачи читай для мультиприменяемости). Или структурой. Вообщем как уже тебе сказали - ты новым действием приравниваешь локалку к нулю, соответственно по твоим действиям получается что а всегда == 1
Старый 12.05.2012, 13:22
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
16GB, раковопросы у вас уважаемый (следим за речью)
уж лучше буду юзать глобальную (ЛОЛ)
Старый 12.05.2012, 13:23
Sidhe
Unity3D engine
offline
Опыт: 7,721
Активность:
Cosonic5, мультипременение тогда пострадает, если переменная одна на всех. Прочитай про аттачи.
Код:
globals
    integer MUI = GetPlayerId(GetOwnerPlayer(GetTriggerUnit()) // номер игрока для аттачивания
    integer array A
endglobals

function бла бла бла
    set A[MUI] = A[MUI]+1 // складываем А[номер аттача]
    // - - - -
endfunction


++A[MUI] - на cJass проще =)

integer MUI = GetPlayerId(GetOwnerPlayer(GetTriggerUnit()) - запишет номер игрока только по подходящему событию, к примеру - юнит применил способность

если действия связанные с игрком то - GetPlayerId(GetTriggeringPlayer())

Ну а вообще в MUI можно любое число записать, как сам захочешь, я просто привел простейший пример
Старый 12.05.2012, 13:34
Cosonic5
Моймозггоритогнем
offline
Опыт: 13,584
Активность:
Sidhe, это и дураку понятно (все тему можно закрывать)
Старый 12.05.2012, 14:17
Закрытая тема

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

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

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

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



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