Написал пару строк в рефоргэтэ.
собственно
do

    local PERIOD = 0.03125
    local TEXTURE = "Abilities\\Weapons\\RedDragonBreath\\RedDragonMissile.mdl"
    local DINTANCE = 700.0
    local SPEED = 20.0
    local BOOL = {}
    local HERO 

	local function FourCC(id)
		return string.unpack(">I4", id)
	end

    local timer = CreateTimer()
    TimerStart(timer, 0, false, function()
        HERO = CreateUnit(Player(0), FourCC('H001'), 0, 0, 0)
        for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
            BOOL[i] = true
        end
    end)

    local trg = CreateTrigger()
    for i = 0, bj_MAX_PLAYER_SLOTS - 1 do
        TriggerRegisterPlayerMouseEventBJ(trg, Player(i), bj_MOUSEEVENTTYPE_DOWN)
    end
    TriggerAddCondition(trg, Condition(function()
        return BlzGetTriggerPlayerMouseButton() == MOUSE_BUTTON_TYPE_LEFT
    end))
    TriggerAddAction(trg, function()
        local player = GetTriggerPlayer()
        local id = GetPlayerId(player)
        if(BOOL[id])then
            BOOL[id] = false
            local unit = HERO
            local x = GetUnitX(unit)
            local y = GetUnitY(unit)
            local xm = GetMouseX(id)
            local ym = GetMouseY(id)
            local angle = Atan2(ym - y, xm - x)
            local model = AddSpecialEffect(TEXTURE, x, y)
            local now = 0.0
            
            BlzSetSpecialEffectPitch(model, angle)

            TimerStart(CreateTimer(), PERIOD, true, function()
                now = now + SPEED
                if(now >= DINTANCE)then 
					BOOL[id] = true
                    DestroyEffect(model) 
                    DestroyTimer(GetExpiredTimer())
					return
                end

                x = x + SPEED * Cos(angle)
                y = y + SPEED * Sin(angle)
                BlzSetSpecialEffectPosition(model, x, y, 50.0)
            end)

        end
    end)

end
Но почем-то через пару использований(или определенное время, хз) просто ничего не происходит, что за blek megiks?

Я недавно тот же вопрос задавал, ну и ответ там же


Кароче сборщик мусора подгребает твой триггер
`
ОЖИДАНИЕ РЕКЛАМЫ...
23
Похожие вопросы:

ответ
Сначала попробуй перенести все триги в другую карту, если в другой мапе все работает - проблема не в тригах, если всеже в тригах - удаляй по очереди, категориями, выясняй из-за каких не работает. Это проблема частного триггера\переменной. Чаще всего так.
ПЫСЫ не забывай бэкапить карту
ответ
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.
ответ
XGM Bot:
Похожие вопросы:

ответ
Сначала попробуй перенести все триги в другую карту, если в другой мапе все работает - проблема не в тригах, если всеже в тригах - удаляй по очереди, категориями, выясняй из-за каких не работает. Это проблема частного триггера\переменной. Чаще всего так.
ПЫСЫ не забывай бэкапить карту
ответ
вопросы типа сделайте за меня не принимаются
по поводу того как это делать написано здесь xgm.guru/p/wc3/articles
ответ
unsinkable78, один из вариантов это большое количество однотипных триггеров с периодом
объедении их в 1
а лучше используй таймер вместо триггеров
unsinkable78, так же вероятно проблема в твоих массивах
ты судя по всему задаёшь им размер в 1000
из за чего при запуске игры твой массив заполняется ненужными значениями что забивает память и может приводить к лимиту потока (в вар3 у потока/триггера есть максимальное количество операций которые он может выполнить)
вот пример из твоего j файла
set i = 0
    loop
        exitwhen (i > 1000)
        set udg_squad[i] = CreateGroup()
        set i = i + 1
    endloop
этот код циклом от 0 до 1000 создаёт группы(1000 групп соответственно) и заносит их в массив squad
это тратит более 1000 операций
и таких моментов много
так же я видел места где ты использовал массивы вместо обычных переменных что тоже увеличивает затраты ресурсов и может приводить к лимиту потока
массивы нужно использовать лишь там где без них не обойтись
ответ
Возможно что в каком то триггере не объявил глобальную переменную. Т.е. group g, когда правильно будет group g=null or group g=CreateGroup() если же real or integer то =0
P.S.Сам с этим не раз сталкивался
ответ
Но ведь сами по себе ошибки не происходят.
Причина подобного это А) - невнимательность либо твоя либо автора В) - программное обеспечение
Что бы в дальнейшем все было окей, просто сначала потести карту полностью что бы знать что и как должно быть, а потом вноси изменения, будь внимательней.
Еще советую связаться с автором и поговорить с ним об этой проблеме, или запросить у него еще 1 исходник да бы сверЯться с ним.

ответ
А какая ошибка?
И почему вы не сделали так:
function InitTrig_AnimationBirthWaterElem takes nothing returns nothing
...
	set allregion = CreateRegion()
    call RegionAddRect(allregion, GetWorldBounds())
    call TriggerRegisterEnterRegion( gg_trg_AnimationBirthWaterElem, allregion, null)
...
endfunction

28
Потому что не нужно что-то делать до инициализации карты. Создай триггер инициализации и сделай всё действия внутри него, отпишись о результате.
33
Я недавно тот же вопрос задавал, ну и ответ там же


Кароче сборщик мусора подгребает твой триггер
Принятый ответ
9
Bergi_Bear:
Я недавно тот же вопрос задавал, ну и ответ там же


Кароче сборщик мусора подгребает твой триггер
И так с каждым триггером надо будет?
33
с триггерами да, с самописными функциями - нет
Например не нужно
	local function FourCC(id)
		return string.unpack(">I4", id)
	end
Но я тут не сильно шарю, ещё не всё протестил
30
Кароче сборщик мусора подгребает твой триггер
Странно, почему сборщик не подгребает мои триггеры?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.