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

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

Закрытая тема
 
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Ненене, дай пример для чего это может быть нужно?
Я, например, не вижу ни одного случая, когда это могло бы пригодиться.
Старый 18.09.2009, 11:33
Elf_Stratigo

offline
Опыт: 4,699
Активность:
Van Damm, когда пишешь какую-нибудь библиотеку человеку, у которого нет сджаса, но разные тесты для этой библеотеки будешь писать в сджассе - ну вот чтоб небыло проблемы, типо у тебя то всё работает, а у него ничего, лишь потомучто ты по привычке где случайно then забыл
Старый 18.09.2009, 17:01
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
А у него и так это не будет работать т.к. такой тег тоже будет обрабатываться сижассом. Так что единственный вариант - делать эти тесты в отдельных триггерах и отключать. Ну или просто потом комментть свой код. А такого уг, как эта директива, у нас не будет =]
Старый 18.09.2009, 17:40
adic3x

offline
Опыт: 108,439
Активность:
int blah () {
    int fx = 0x00
    if fx++ == ++fx {fx--}
    return ++fx + fx++
}
будет обработано как
function blah takes nothing returns integer
local integer cj_v666_r
local boolean cj_v666_b
local integer fx=0x00
set fx=fx+1
set cj_v666_b=fx==fx
set fx=fx+1
if cj_v666_b then
set fx=fx-1
endif
set fx=fx+1
set cj_v666_r=fx+fx
set fx=fx+1
return cj_v666_r
endfunction
смысл фичи, как и использование думаю все секут?
такде сделал проверку кроме true еще и на 1 в условной компиляции
int blah () {
    int fx = 0x00
    if ++fx == 0x00 {fx--}
    return ++fx
}
офк
function blah takes nothing returns integer
local integer fx=0x00
set fx=fx+1
if fx==0x00 then
set fx=fx-1
endif
set fx=fx+1
return fx
endfunction
Старый 19.09.2009, 14:53
ScorpioT1000
Работаем
online
Опыт: отключен
даешь практическое использование, это херня какаято
ScorpioT1000 добавил:
это говно не пригодится) это нечитаемо
вобще везде запрещают делать что-то типа
if() {..}
всегда либо
if() {
..
}
либо
if()
{
..
}
не веришь - почитай
Старый 19.09.2009, 19:09
adic3x

offline
Опыт: 108,439
Активность:
ты не просек фичу
Старый 19.09.2009, 19:56
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
скорпи, ты не понял. фишка во временных переменных для инкаемых локалок.
а блок на одной строке потому что пока if () ... не понимается =]
Старый 19.09.2009, 20:12
ScorpioT1000
Работаем
online
Опыт: отключен
да я понял, но это иногда необходимо делать, что тут такого необычного?
Старый 19.09.2009, 20:42
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
просто этого раньше не было )
Старый 19.09.2009, 20:45
Daemonik

offline
Опыт: 5,084
Активность:
В общем вот код
force GetUserPlayer() { 
    force f = CreateForce()
    integer player_i = 0
    player i_player 
    loop {
        exitwhen player_i > 7
        i_player = Player(player_i)
        if GetPlayerController(i_player) == MAP_CONTROL_USER {
            ForceAddPlayer(f, i_player)
        }
        player_i++
    } // луп должен закрываться тут
    return f
} // а закрывается тут
В общем в коде проблему изложил. Почему так не понимаю.
Старый 21.09.2009, 17:47
Elf_Stratigo

offline
Опыт: 4,699
Активность:
у тя иф открывается и не закрывается
сё ок
Старый 21.09.2009, 17:54
Daemonik

offline
Опыт: 5,084
Активность:
а ничего что у меня после ForceAddPlayer() стоит закрывающая скобка?
Daemonik добавил:
Уточню if закрывается там где надо, а вот луп игнорит свою скобку и когда я его закрываю, он закрывает всю функцию до конца.
Старый 21.09.2009, 18:06
Артте
Open up your eyes
offline
Опыт: 23,423
Активность:
а условие в скобки какой телепат брать будет?
Старый 21.09.2009, 18:16
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
Daemonik, всё нормально компилится:
function GetUserPlayer takes nothing returns force
  local force f=CreateForce()
  local integer player_i=0
  local player i_player
    loop
        exitwhen player_i>7
        set i_player=Player(player_i)
        if GetPlayerController(i_player)==MAP_CONTROL_USER then
            call ForceAddPlayer(f,i_player)
        endif
        set player_i=player_i+1
    endloop
    return f
endfunction
Van Damm добавил:
Артте, это не обязательно, но рекомендуется для читаемости
Van Damm добавил:
Daemonik, и нагляднее было бы так
whilenot (player_i > 7) {
   блаблабла
}
Van Damm добавил:
А если ты про баг сворачивания, то я его уже пофиксил и сегодня выгружу обновление
Старый 21.09.2009, 19:15
ZeToX2007

offline
Опыт: 7,009
Активность:
А в cJass можно так делать: 5%2 ?
Старый 21.09.2009, 19:33
adic3x

offline
Опыт: 108,439
Активность:
вы все наширите...
если перенести условие цикла в его конец экономим + 1 переход
force GetUserPlayer() { 
    force f = CreateForce()
    integer player_i = 0
    player i_player 
    do {
        i_player = Player(player_i)
        if GetPlayerController(i_player) == MAP_CONTROL_USER {
            ForceAddPlayer(f, i_player)
        }        
    } whilenot (++player_i == 7)
    return f
}
ADOLF добавил:
+ сохраняется все верно
ADOLF добавил:
черт, надо таки фор делать...
ADOLF добавил:
деление по модулю пока не сделано
Старый 21.09.2009, 19:38
ZeToX2007

offline
Опыт: 7,009
Активность:
по идеи а%b это a - (a/b*b) или юзать функцию. интересно что будет...

Цитата:
Сообщение от ADOLF
черт, надо таки фор делать...

не мешало бы....
Старый 21.09.2009, 23:07
ScorpioT1000
Работаем
online
Опыт: отключен
не надо фор делать, баги же будут) или ты хочешь not ?)
Старый 21.09.2009, 23:12
Van Damm
wait... what?
offline
Опыт: 22,268
Активность:
фор бум делать после релиза и в нестабильной ветке, так что большинство юзеров это колыхать не будет =)
Старый 22.09.2009, 00:06
FREEZE_ball
Cataclysm => жара
offline
Опыт: 15,247
Активность:
Код:
define <InitHeroAggroModifier(Type, Mod)> {if GetUnitTypeId(whichAggro) == Type {whichNum *= Mod}}


Не пашет, выдаёт ошибку компилирования. Пробовал также разными способами. Не находит enddefine.
Старый 22.09.2009, 00:09
Закрытая тема

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

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

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

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



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