28

» WarCraft 3 / Волны от Водопада

VuRdaLaK1337, волны идут с точки у самой модели, ничего там не влияет на них
28

» WarCraft 3 / Волны от Водопада

ну как бы это модель такая, лол)
возьми другую модель с интернета, у огре в картах часто юзался FX водопад, там нет волн
28

» WarCraft 3 / Отслеживание умирания всех юнитов

ну нужно так-то делать проверку что юниты мертвы, ты же и мёртвых выбираешь в зоне
28

» WarCraft 3 / Вода на склоне

Легко, и я вроде как задавал вопрос по похожей теме, тебе останется только поиграться с этим


То есть тебе на втором скрине нужно сделать клифф, тыкнуть на него уклоном а затем уровнем воды
28

» WarCraft 3 / Способности и алгоритмы на заказ

KPOKODIL, ну если фонтан хилит больше 25 хп в 0.01 сек тогда да, сложно, вместе с предметом нужно брать кучу условий)
Опять же, в таком случае проще кастомный хил сделать
28

» WarCraft 3 / Способности и алгоритмы на заказ

KPOKODIL, таймером перебираешь юнитов и сравниваешь их текущее хп с предыдущим, если разница больше 25 то дай ману, ничего сложного

События на отхил вроде как нет

Только если делать кастомный хил
28

» WarCraft 3 / На модель странно ложатся тени, в чём причина?

причина в нормалях, в мдлвисе можно усреднить, в ретере или блендере можно сделать перерасчёт нормалей, можно ручками править
28

» WarCraft 3 / инверсия области воздействия

эм, ну выделяешь юнитов в одну группу, радиусом 250 от точки, и другой группой выделяешь всех юнитов на карте, при условии, что они не находятся в первой группе
28

» «Hyperion» / GSC Game World о звуках оружия

вроде и раньше не жаловался на звуки, но тут прям ответственно подходят к этому, молодцы
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

мне не нужны секреты, кредиты и прочее, у меня даже рефа нет)
напишешь в карте спасибо xgm и всё
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

Да, должно быть за гера 100 голды, а за юнита высчитывать.
ну здрасьте, а тут наоборот)

rsfghd, ты нашел решение.
не я, а PT153 с quq_CCCP

значит ничерта не пофиксили в рефе
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

у тебя если юнит герой то происходят проверки с той функцией, а если наоборот, то +100 голды
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

может проблема быть с тем, что возвращает форгруп и где оно юзается потом, там же переменные перезаписываются

если краш произойдёт, значит и вправду в форгрупе дело, и всё равно взгляд падает на GetUnitGoldCost

меня именно if not IsUnitType( GetEnumUnit( ), UNIT_TYPE_HERO ) then смущает
мне кажется not нужно убрать
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

VinerX, тогда включи обратно форгруп и закомменти всё что после GroupClear идёт, до комментария с коррупцией конец
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

VinerX, ну я и не рассчитывал на это, по факту просто прошёлся и ещё лучше "оптимизировал"

хорошо, попробуй тогда отключить блоки где выдаётся/отнимается голда

нам нужно хотя бы понять какая функция краш вызывает, и начинать нужно с конечной

попробуй отключить форгруп
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

в случае чего попробуй маленькую бд сделать, вначале игры в хэш юнита или в его целочое число закидываешь стоимость, а вместо GetGoldCost достаёшь это значение
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

VinerX, местами нужно поменять юнита и абилку, сорян)

я ж раскрывал бж функцию, а там местами свапнули близзарды
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

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

GetUnitGoldCost, GetUnitWoodCost и GetUnitBuildTime критуют, если передать равкод, содержащий буквы верхнего регистра.
28

» WarCraft 3 / Оптимизация: поредактировал jass триггер, но он начал фаталить.

попробуй этот код, я хз
раскрыть
//Условие

function Trig_Disincome_OV_Func001Func004002 takes nothing returns boolean
    return GetWidgetLife( GetFilterUnit( ) ) >= 0.405 and GetOwningPlayer( GetFilterUnit( ) ) == bj_groupEnumOwningPlayer and not IsUnitType( GetFilterUnit( ), UNIT_TYPE_STRUCTURE )
endfunction

// Каждый юнит

function Trig_Disincome_OV_Func001Func006A takes nothing returns nothing
    set udg_Kol_voUnitod = udg_Kol_voUnitod + 1
    
    if not IsUnitType( GetEnumUnit( ), UNIT_TYPE_HERO ) then
        set udg_GoldCost = udg_GoldCost + 100.00
    else
        set udg_Price = GetUnitGoldCost( GetUnitTypeId( GetEnumUnit( ) ) )
        set udg_GoldCost = udg_GoldCost + udg_Price * 0.10
        // ---------------------------Особые условия-----------------------------          +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
        // ---------------------------Топливо гоблинов-----------------------------
        if GetUnitAbilityLevel( 'A0A5', GetEnumUnit( ) ) > 0 then
            set udg_GoldCost = udg_GoldCost + udg_Price * 0.10 * ( 1.60 - GetUnitAbilityLevel( 'A0A5', GetEnumUnit( ) ) * 0.10 )
        endif
        // ---------------------------Топливо гоблинов закончилось-----------------------------
    endif
endfunction


//Каждый игрок

function Trig_Disincome_OV_Func001A takes nothing returns nothing
    set udg_GoldCost = 0.00
    set udg_Kol_voUnitod = 0
    set udg_LocalInteger = 0
    set udg_Boolexpr = Condition( function Trig_Disincome_OV_Func001Func004002 )
    
    set bj_groupEnumOwningPlayer = GetEnumPlayer( )
    call GroupEnumUnitsInRect( udg_LocalOtrad2, bj_mapInitialPlayableArea, udg_Boolexpr )
    call ForGroup( udg_LocalOtrad2, function Trig_Disincome_OV_Func001Func006A )
    call GroupClear( udg_LocalOtrad2 )
    call SetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD ) - R2I( udg_GoldCost ) )
    set udg_LocalText2 = "|cffff0000Расходы:|r " + I2S( R2I( udg_GoldCost ) )
    call DisplayTextToPlayer( bj_groupEnumOwningPlayer, 0.00, 0.00, udg_LocalText2 )
    // -------
    // ---------------------------Система сверхпотребления-----------------------------
    set udg_LocalInteger = R2I( udg_Kol_voUnitod / 50.00 )
    call SetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD ) + udg_LocalInteger * -500 )
    set udg_LocalText2 = "|cffff0000Логистика:|r " + I2S( udg_LocalInteger * 500 ) + "(" + I2S( udg_LocalInteger ) + "x)"
    call DisplayTextToPlayer( bj_groupEnumOwningPlayer, 0.00, 0.00, udg_LocalText2 )
    set udg_Kol_voUnitod = 0
    set udg_LocalInteger = 0
    // ---------------------------Система сверхпотребления конец-----------------------------
    // -------
    // ---------------------------Система коррупции-----------------------------
    if GetPlayerTechCount( bj_groupEnumOwningPlayer, 'R04O', true ) > 0 then
        set udg_GoldCost = udg_GoldCost * GetPlayerTechCount( bj_groupEnumOwningPlayer, 'R04O', true ) * 0.15
        call SetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD, GetPlayerState( bj_groupEnumOwningPlayer, PLAYER_STATE_RESOURCE_GOLD ) + R2I( udg_GoldCost ) )
        set udg_LocalText2 = "|cff800000Наворовано бюджета: |r" + R2S( udg_GoldCost )
        call DisplayTextToPlayer( bj_groupEnumOwningPlayer, 0.00, 0.00, udg_LocalText2 )
    endif
    // ---------------------------Система коррупции конец-----------------------------
endfunction

// Основа
function Trig_Disincome_OV_Actions takes nothing returns nothing
    call ForForce( udg_AllPlayers, function Trig_Disincome_OV_Func001A )
endfunction

//===========================================================================
function InitTrig_Disincome_OV takes nothing returns nothing
    set gg_trg_Disincome_OV = CreateTrigger(  )
    call TriggerRegisterTimerExpireEventBJ( gg_trg_Disincome_OV, udg_IncomeTimerSecond )
    call TriggerAddAction( gg_trg_Disincome_OV, function Trig_Disincome_OV_Actions )
endfunction
вряд ли поможет, к тому же я компилятором не прошёлся, мб ошибки есть