Добавлен , опубликован
Программы
Предназначение:
Работа с кодом
Утилита для преобразования Jass кода в cJass .
  • автоматически расставляет отступы.
  • распутывает навороченные GUI условия.
Использование
Скопируйте исходный код в буфер обмена (CTRL+C) и запустите программу.
После чего вы можете вставить отредактированный код в свою карту.
Пример
Исходный код: 276 строк
function Trig_ff_Func001C takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true ) ) then
        return false
    endif
    if ( not ( GetSpellAbilityId() == 'AUan' ) ) then
        return false
    endif
    if ( not ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTlt' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func002Func001C takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_ANCIENT) == true ) ) then
        return false
    endif
    if ( not ( 'AUau' == 'AUan' ) ) then
        return false
    endif
    if ( not ( 'YTfc' == 'LTlt' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func002C takes nothing returns boolean
    return true
endfunction

function Trig_ff_Func003Func001C takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_FLYING) == true ) ) then
        return false
    endif
    if ( not ( GetSpellAbilityId() == 'AEsv' ) ) then
        return false
    endif
    if ( not ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTbs' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func003Func002C takes nothing returns boolean
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'AUan' ) ) then
        return true
    endif
    if ( ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTlt' ) ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func003C takes nothing returns boolean
    if ( not Trig_ff_Func003Func001C() ) then
        return false
    endif
    if ( not Trig_ff_Func003Func002C() ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func004Func002C takes nothing returns boolean
    if ( not ( GetTerrainTypeBJ(GetRectCenter(GetPlayableMapRect())) == 'Ldrt' ) ) then
        return false
    endif
    if ( not ( GetUnitStateSwap(UNIT_STATE_LIFE, GetTriggerUnit()) >= 10 ) ) then
        return false
    endif
    if ( not ( GetUnitTypeId(GetTriggerUnit()) == 'hfoo' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func004Func004Func001C takes nothing returns boolean
    if ( not ( UnitCanSleepBJ(GetTriggerUnit()) == true ) ) then
        return false
    endif
    if ( not ( GetLearnedSkillBJ() == 'AHbz' ) ) then
        return false
    endif
    if ( not ( GetOwningPlayer(GetTriggerUnit()) == Player(0) ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func004Func004C takes nothing returns boolean
    if ( Trig_ff_Func004Func004Func001C() ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func004C takes nothing returns boolean
    if ( not ( UnitCanSleepBJ(GetTriggerUnit()) == true ) ) then
        return false
    endif
    if ( not Trig_ff_Func004Func002C() ) then
        return false
    endif
    if ( not ( IsUnitPausedBJ(GetTriggerUnit()) == true ) ) then
        return false
    endif
    if ( not Trig_ff_Func004Func004C() ) then
        return false
    endif
    if ( not ( IsUnitAliveBJ(GetTriggerUnit()) == true ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func005Func001C takes nothing returns boolean
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_SUMMONED) == true ) ) then
        return true
    endif
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_POISONED) == true ) ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func005C takes nothing returns boolean
    if ( not Trig_ff_Func005Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func006Func001Func002C takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_GROUND) == true ) ) then
        return false
    endif
    if ( not ( GetSpellAbilityId() == 'Acdh' ) ) then
        return false
    endif
    if ( not ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTbs' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func006Func001C takes nothing returns boolean
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_GROUND) == true ) ) then
        return true
    endif
    if ( Trig_ff_Func006Func001Func002C() ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func006C takes nothing returns boolean
    if ( not Trig_ff_Func006Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func007Func001Func001C takes nothing returns boolean
    if ( not ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_FLYING) == true ) ) then
        return false
    endif
    if ( not ( GetSpellAbilityId() == 'AEsv' ) ) then
        return false
    endif
    if ( not ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTbs' ) ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func007Func001Func002C takes nothing returns boolean
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'AUan' ) ) then
        return true
    endif
    if ( ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTlt' ) ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func007Func001C takes nothing returns boolean
    if ( Trig_ff_Func007Func001Func001C() ) then
        return true
    endif
    if ( Trig_ff_Func007Func001Func002C() ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func007C takes nothing returns boolean
    if ( not Trig_ff_Func007Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Func008Func001Func001C takes nothing returns boolean
    if ( ( IsUnitType(GetTriggerUnit(), UNIT_TYPE_STRUCTURE) == true ) ) then
        return true
    endif
    if ( ( GetSpellAbilityId() == 'AUan' ) ) then
        return true
    endif
    if ( ( GetDestructableTypeId(GetLastCreatedDestructable()) == 'LTlt' ) ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func008Func001C takes nothing returns boolean
    if ( Trig_ff_Func008Func001Func001C() ) then
        return true
    endif
    return false
endfunction

function Trig_ff_Func008C takes nothing returns boolean
    if ( not Trig_ff_Func008Func001C() ) then
        return false
    endif
    return true
endfunction

function Trig_ff_Actions takes nothing returns nothing
    if ( Trig_ff_Func001C() ) then
    else
    endif
    if ( Trig_ff_Func002C() ) then
        if ( Trig_ff_Func002Func001C() ) then
        else
        endif
    else
    endif
    if ( Trig_ff_Func003C() ) then
    else
    endif
    if ( Trig_ff_Func004C() ) then
    else
    endif
    if ( Trig_ff_Func005C() ) then
    else
    endif
    if ( Trig_ff_Func006C() ) then
    else
    endif
    if ( Trig_ff_Func007C() ) then
    else
    endif
    if ( Trig_ff_Func008C() ) then
        set bj_forLoopAIndex = 1
        set bj_forLoopAIndexEnd = 10
        loop
            exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
            set bj_forLoopAIndex = bj_forLoopAIndex + 1
        endloop
    else
    endif
endfunction

//===========================================================================
function InitTrig_ff takes nothing returns nothing
    set gg_trg_ff = CreateTrigger(  )
    call TriggerAddAction( gg_trg_ff, function Trig_ff_Actions )
endfunction
Конечный код 40 строк
  nothing Trig_ff_Actions ( ){ 
    if IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE) and GetSpellAbilityId()=='AUan' and GetDestructableTypeId(GetLastCreatedDestructable())=='LTlt' {
    }else{
   }
   if true {
     if IsUnitType(GetTriggerUnit(),UNIT_TYPE_ANCIENT) and 'AUau'=='AUan' and 'YTfc'=='LTlt' {
     }else{
    }
    }else{
   }
    if (IsUnitType(GetTriggerUnit(),UNIT_TYPE_FLYING) and GetSpellAbilityId()=='AEsv' and GetDestructableTypeId(GetLastCreatedDestructable())=='LTbs') and (IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE) or GetSpellAbilityId()=='AUan' or GetDestructableTypeId(GetLastCreatedDestructable())=='LTlt') {
    }else{
   }
    if UnitCanSleepBJ(GetTriggerUnit()) and (GetTerrainTypeBJ(GetRectCenter(GetPlayableMapRect()))=='Ldrt' and GetUnitStateSwap(UNIT_STATE_LIFE,GetTriggerUnit())>=10 and GetUnitTypeId(GetTriggerUnit())=='hfoo') and IsUnitPausedBJ(GetTriggerUnit()) and ((UnitCanSleepBJ(GetTriggerUnit()) and GetLearnedSkillBJ()=='AHbz' and GetOwningPlayer(GetTriggerUnit())==Player(0))) and IsUnitAliveBJ(GetTriggerUnit()) {
    }else{
   }
    if (IsUnitType(GetTriggerUnit(),UNIT_TYPE_SUMMONED) or IsUnitType(GetTriggerUnit(),UNIT_TYPE_POISONED)) {
    }else{
   }
    if (IsUnitType(GetTriggerUnit(),UNIT_TYPE_GROUND) or (IsUnitType(GetTriggerUnit(),UNIT_TYPE_GROUND) and GetSpellAbilityId()=='Acdh' and GetDestructableTypeId(GetLastCreatedDestructable())=='LTbs')) {
    }else{
   }
    if ((IsUnitType(GetTriggerUnit(),UNIT_TYPE_FLYING) and GetSpellAbilityId()=='AEsv' and GetDestructableTypeId(GetLastCreatedDestructable())=='LTbs') or (IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE) or GetSpellAbilityId()=='AUan' or GetDestructableTypeId(GetLastCreatedDestructable())=='LTlt')) {
    }else{
   }
    if ((IsUnitType(GetTriggerUnit(),UNIT_TYPE_STRUCTURE) or GetSpellAbilityId()=='AUan' or GetDestructableTypeId(GetLastCreatedDestructable())=='LTlt')) {
    bj_forLoopAIndex = 1
    bj_forLoopAIndexEnd = 10
     loop{
     exitwhen bj_forLoopAIndex > bj_forLoopAIndexEnd
     bj_forLoopAIndex = bj_forLoopAIndex + 1
    }
    }else{
   }
 }
 //===========================================================================
  nothing InitTrig_ff ( ){ 
   gg_trg_ff = CreateTrigger( )
   TriggerAddAction( gg_trg_ff, function Trig_ff_Actions )
 }

Oбновления

Roadmap
v.1.01
  • Вертикальное выравнивание кода
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
13
6 лет назад
0
nvc123:
это просто дефайн записанный в файле cj_types.j
Гонишь. По крайней мере в новой версии jngp while работает без подключения библиотеки.
0
8
6 лет назад
Отредактирован uranus
0
Я увидел нечто странное в файле cj_types:
while(cond) = whilenot not(cond)
0
13
6 лет назад
0
uranus, так в документации об этом написано
0
12
6 лет назад
0
Утила выглядит довольно перспективно .Проверяли на больших пачках кода?
Цикл while() довольно проблемный , у меня он не сохранялся до этого.К тому же он обратный и еще криво считает.Не вижу в нем надобности в ВЕ никакой.
0
29
6 лет назад
0
Где сурсы?
1
25
6 лет назад
1
Daro:
Утила выглядит довольно перспективно .Проверяли на больших пачках кода?
Пробовал, вроде не ломалась.
Doc:
Где сурсы?
Внутри, оно на vbs'e можешь винраром открыть. Но лучше не надо, там все упорото очень)
0
12
6 лет назад
0
Хотел бы я похвалить, но вот что -то утила твоя не справилась с конвентированым гуи-муи скиллом и раставила неправильно скобки в массиве интегра.Проверь на гуи-муи.Если можешь допиливай чтоб было похоже на скрипт аллигер ( тот что отступы раставляет).Советую нацелиться на разгребание мусора от ГУИ.Могло бы реально помочь тем, кто взломаные карты ковыряет.
uranus:
Я увидел нечто странное в файле cj_types:
while(cond) = whilenot not(cond)
Пологаю эту баганую строчку лучше совсем удалить из бибилиотек.
0
32
6 лет назад
0
Daro, хм, гуи конвертить в jass а затем в cjass, мсье знает толк в извращениях...
Так если че ваше гуи превратится в чистый jass после сохранения карты и если оно работает и гуи это ваше призвание - оставьте все как есть, имхо лучше оно работать не будет.
Ну а эта тула я так понял чтобы облекчить жизнь людям которые учили с++ и пишут карты онли на сjass чтобы переводить чужой код (вроде всяких наработок или вовсе чего то из чужой карты) в удобный для них формат.
1
25
6 лет назад
Отредактирован Jack-of-shadow
1
Daro:
раставила неправильно скобки в массиве интегра.
точно!, на массивах я не проверял. Добвалю в список исправлений.
0
12
6 лет назад
0
Daro, хм, гуи конвертить в jass а затем в cjass, мсье знает толк в извращениях...
Так если че ваше гуи превратится в чистый jass после сохранения карты и если оно работает и гуи это ваше призвание - оставьте все как есть, имхо лучше оно работать не будет.
Я про что некоторые гуи - муи старые системы и скиллы неплохо было б не переписывать с нуля на хеш или Vjass, а оставить на муи раскрыв бдж функции.Глобалки (массив +I).Как-то так.
Я знаю, что СJass превращается после сохранения в Jass2.
0
32
6 лет назад
0
Daro, ни одна тула не перепишет скилл с гуи на jass со структурами, хештаблицами и блекджеком с... Ну в общем смотрим что делает спелл и просто пишем на jass с учетом всех но и если.
Беда многих способностей еще и отсутствие совместимости и прочего, что нужно продумывать в живой карте где десятки способностей. Увы это порой не просто...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.