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

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

Ответ
 
vladfaust

offline
Опыт: 12,814
Активность:
Массив дефайнов
define {
 variable_1 = 123
 variable_2 = 456
 MAX = 2
}
...
local int i = 1
local int array ia [MAX]
whilenot (i>MAX) {
 ia[i] = variable_##i   // <== THAT
 i++
}
Правильно ли написана строка с "// <== THAT" или надо использовать другие знаки? Не надо ссылку на ману по си. Просто скажите, правильно ли так, и если нет, то как правильно.

Отредактировано inadequate_, 09.12.2011 в 21:48.
Старый 09.12.2011, 21:33
Clamp
Lost in space
offline
Опыт: 71,258
Активность:
Вообще работать должно, но схема мягко говоря сомнительная
Старый 09.12.2011, 21:43
youtube
сктыщь
offline
Опыт: 8,025
Активность:
только что был такой вопрос
Старый 09.12.2011, 22:30
vladfaust

offline
Опыт: 12,814
Активность:
» ...
define {
    VAR(n) = VAR_##n
    VARS   = 2
    VAR_1  = "x"
    VAR_2  = "y"
}

function Trig_____________________________________001_Actions takes nothing returns nothing
    local integer i = 1
    local string array a
    whilenot (i>VARS) {
        a[i] = VAR(i)
        i++
    }
    i = 1
    whilenot (i>VARS) {
        BJDebugMsg("a["+I2S(i)+"] = "+a[i])
        i++
    }
endfunction

//===========================================================================
function InitTrig_____________________________________001 takes nothing returns nothing
    set gg_trg_____________________________________001 = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_____________________________________001, 1.00 )
    call TriggerAddAction( gg_trg_____________________________________001, function Trig_____________________________________001_Actions )
endfunction
not working shit
inadequate_ добавил:
» more
define {
    VARS  = 2
    VAR(1)  = "x"
    VAR(2)  = "y"
}

function Trig_____________________________________001_Actions takes nothing returns nothing
    local integer i = 1
    local string array a
    whilenot (i++>VARS) {
        a[i] = VAR(i)
    }
    i = 1
    whilenot (i>VARS) {
        BJDebugMsg("a["+I2S(i)+"] = "+a[i])
        i++
    }
endfunction

//===========================================================================
function InitTrig_____________________________________001 takes nothing returns nothing
    set gg_trg_____________________________________001 = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_____________________________________001, 1.00 )
    call TriggerAddAction( gg_trg_____________________________________001, function Trig_____________________________________001_Actions )
endfunction
Если сделать так:
define {
    VARS  = 2
    VAR(1)  = "x"
    VAR  = "y"
}
То работает. Но так (как нужно), нет:
define {
    VARS  = 2
    VAR(1)  = "x"
    VAR(2)  = "y"
}
inadequate_ добавил:
Как в коде приаттачивать переменную к имени дефайна (если переменная - интежер)???
Старый 10.12.2011, 09:27
Doc

offline
Опыт: 63,163
Активность:
#for A(0,5)
use(var_##A)
#endfor
Старый 10.12.2011, 21:13
Ответ

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

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

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

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



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