28

» WarCraft 3 / Необходимо вывести стандартные модельки из варкрафта

Mpq-архиватором можно достать модельки с варика



В папке с вариком просто находишь файл (war3.mpq или как-то так) и открываешь этой прогой
28

» WarCraft 3 / Анимирование башни

Bergi_Bear, ну не знаю, всякие мелочи и ништячки дают неплохой бонус к карте. Оно вроде и не заметно, но очень сильно ощущается
28

» Блог им. rsfghd / Волны помойных волн

Нашел кучу ошибок, чуть позже выложу норм версию, так же добавлю плавное проявление/исчезновение
28

» WarCraft 3 / Большое колво сторк

pro100master, кстати хорошее уточнение, мы же не знаем как часто вызывается триггер у автора
28

» WarCraft 3 / Большое колво сторк

Обсуждали же этот вопрос совсем недавно
Оптимизация.
GetLocalPlayer
В твоем случае даже появляется угроза превышения лимита операций, что приведет к прерыванию работы триггера, не говоря уже о невозможности поддержки такой гигантской лестницы условий.
28

» WarCraft 3 / Вопрос по группам джасс

Всё, довольно быстро разобрался
Помогла функция от quq_CCCP если не ошибаюсь
function CopyGroup takes group g returns group
    set bj_groupAddGroupDest = CreateGroup()
    call ForGroup(g, function GroupAddGroupEnum)
    return bj_groupAddGroupDest
endfunction
Вот так переделал
	...
	local group gg = null
	...
	set TempG = LoadGroupHandle(udg_Hash,i,4)
    set TempReal = LoadReal(udg_Hash,i,3)
    call ForGroup(g,function move1)
    set gg = CopyGroup(TempG)
    call SaveGroupHandle(udg_Hash,i,4,gg)
    call GroupClear(TempG)
    set TempG = null
	...
Хотя вроде каждые 0.03 сек создаётся новая группа, а удаляется лишь один раз вместе с таймером, мне кажется там утечек из-за этого дофига. Но это чуть позже проверю, в таком случае откажусь от ForGroup

Да, к сожалению оно вызывает утечки, но это было очевидно. Копирование группы лучше использовать для локальных групп, которые можно будет потом уничтожить. В общем перенесу всё в луп

Код
private function move takes nothing returns nothing
    local timer t = GetExpiredTimer()
    local integer i = GetHandleId(t)
    local group g = LoadGroupHandle(udg_Hash,i,0)
    local group gg = CopyGroup(g)
    local group ggg = CreateGroup()
    local group g1 = LoadGroupHandle(udg_Hash,i,4)
    local real d = LoadReal(udg_Hash,i,2)+WavesSpeed
    local real a
    local unit u = null
    local unit uu = null
    
    loop
        set u = FirstOfGroup(gg)
        exitwhen u == null
        set a = GetUnitFacing(u)*bj_DEGTORAD
        call SetUnitX(u,GetUnitX(u)+WavesSpeed*Cos(a))
        call SetUnitY(u,GetUnitY(u)+WavesSpeed*Sin(a))
        set bj_groupEnumOwningPlayer = GetOwningPlayer(u)
        call GroupEnumUnitsInRange(ggg,GetUnitX(u),GetUnitY(u),WaveRadius,Condition(function myfilt))
        set bj_groupEnumOwningPlayer = null
        loop
            set uu = FirstOfGroup(ggg)
            exitwhen uu == null
            if not IsUnitInGroup(uu,g1) then
                call UnitDamageTarget(u,uu,LoadReal(udg_Hash,i,3),true,false,AttackType,DamageType,WeaponType)
                call GroupAddUnit(g1,uu)
            endif
            call GroupRemoveUnit(ggg,uu)
            set uu = null
        endloop
        call GroupRemoveUnit(gg,u)
        set u = null
    endloop
    
    if d >= LoadReal(udg_Hash,i,1) then
    DisplayTextToPlayer(Player(0),0,0,I2S(1))
        call PauseTimer(t)
        call DestroyTimer(t)
        call FlushChildHashtable(udg_Hash,i)
        call ForGroup(g,function kill)
        call GroupClear(g)
        call DestroyGroup(g)
        call GroupClear(g1)
        call DestroyGroup(g1)
    else
        call SaveReal(udg_Hash,i,2,d)
    endif
    
    call DestroyGroup(gg)
    call DestroyGroup(ggg)
    set g = null
    set gg = null
    set ggg = null
    set g1 = null
    set t = null
    set g = null
endfunction

Что это за абилку я делаю, можете посмотреть с 20.12.2020 вечером в моём блоге))
Да, это реклама говноабилок, я лох
28

» WarCraft 3 / Зафлудил вопросами сегодня, это последний честно.Насчет контроля

David David, ну так я о чём, дать контроль можно вроде только над всеми войсками, а не лишь над одним юнитом
28

» WarCraft 3 / Ребята хочу создать тригерный скилл, помогите.

Окс, 5 мин

Вот что я хотел сделать на гуи, там какая-то фигня вообще происходила, что юнит скилл кидать не хотел (даже без ждать 0.10)

Давай попробуем на джасе))
Бтв, если ты знаешь джасс, то что это вообще за вопросы)
Загруженные файлы
28

» WarCraft 3 / Зафлудил вопросами сегодня, это последний честно.Насчет контроля

Ну конкретно над одним юнитом контроль всем нельзя дать (могу глубоко ошибаться и в общем я лох), а вот чтобы всеми нейтральными можно было управлять..
Хотя можно сделать через клик по юниту. Типо если юнит в данный момент не выбран игроком-владельцем, то передать командование тому, кто кликнул по нему