Оптимизировал гуи в джасс, дооптимизировался так, что все триггеры перестали работать. Даже те, что я вообще не трогал...
Из-за чего такое вообще возможно?

Принятый ответ

А какая ошибка?
И почему вы не сделали так:
function InitTrig_AnimationBirthWaterElem takes nothing returns nothing
...
	set allregion = CreateRegion()
    call RegionAddRect(allregion, GetWorldBounds())
    call TriggerRegisterEnterRegion( gg_trg_AnimationBirthWaterElem, allregion, null)
...
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
2
19
5 лет назад
2
Похожие вопросы:

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

ответ
Мой внутренний экстрасенс говорит, что скорее всего вы где-то превысили лимит операций. Более потробно можно сказать только имея карту (ваш Кэп).

0
19
5 лет назад
0
О, бот хорошую инфу дал, сейчас попробую.
Нашёл ошибку, может кто объяснить как ее избежать?
Ошибка
//В шапке
globals
    region allregion 
endglobals

//Триггер с событием "Инициализация"
function Trig_Initialization_JASS_Actions takes nothing returns nothing
    set allregion = CreateRegion()
    call RegionAddRect(allregion, GetWorldBounds())
endfunction

//===========================================================================
function InitTrig_Initialization_JASS takes nothing returns nothing
    set gg_trg_Initialization_JASS = CreateTrigger(  )
    call TriggerAddAction( gg_trg_Initialization_JASS, function Trig_Initialization_JASS_Actions )
endfunction

//Где используется переменная
function InitTrig_AnimationBirthWaterElem takes nothing returns nothing
...
    call TriggerRegisterEnterRegion( gg_trg_AnimationBirthWaterElem, allregion, null)
...
endfunction
Вместо триггера с событием "Инициализация" прописал в шапке функцию с Init, но это не помогло.
1
21
5 лет назад
1
А какая ошибка?
И почему вы не сделали так:
function InitTrig_AnimationBirthWaterElem takes nothing returns nothing
...
	set allregion = CreateRegion()
    call RegionAddRect(allregion, GetWorldBounds())
    call TriggerRegisterEnterRegion( gg_trg_AnimationBirthWaterElem, allregion, null)
...
endfunction
Принятый ответ
0
19
5 лет назад
0
ScopteRectuS, ну в том, что триггеры не работают. Если удалить объявление переменной и второй триггер, а TriggerRegisterEnterRegion заменить на TriggerRegisterEnterRectSimple, то все работает.
ScopteRectuS, эмм, не знаю. Сейчас попробую.
ScopteRectuS, все заработало. Спасибо.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.