XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов> Jass
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Закрытая тема
 
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
RegionAddRect вызывает крит ошибку
Нужно было добавить несколько ректов в регион, что бы вместо 7 разных проверок сделать всего одну..Собственно код ничтожно малый, но потестив понял что крит вылетает как только я пытаюсь сделать что-нибудь с регионом. Собственно вот он сам:
globals
  region reg = CreateRegion()
endglobals

потом триггер с событием MapInitialization и действием

function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
call RegionAddRect(reg, gg_rct_Region_000)
endfunction

и еще один триггер с периодиком в 2 секунды и действием

function Trig_Melee_Initialization_Actions takes nothing returns nothing
if IsUnitInRegion(reg, gg_unit_hkni_0001) == true then
    call DisplayTimedTextToPlayer(Player(0), 0, 0, 2, "true")
else
    call DisplayTimedTextToPlayer(Player(0), 0, 0, 2, "false")
endif
endfunction
карта не крашится только, если оба этих триггера вырубить
впринципе, вот и сама тест-карта
Прикрепленные файлы
Тип файла: w3x test.w3x (12.0 Кбайт, 10 просмотров )
Старый 14.02.2010, 20:00
Doc

offline
Опыт: 63,163
Активность:
Vampirrr, эээ, недавно сам столкнулся, нельзя при инициализации глобалок создавать регион.
Старый 14.02.2010, 20:58
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
Да, например можно сделать так:
...
globals
  region reg = CreateRegion()
endglobals

потом триггер с событием MapInitialization и действием

function Trig_Untitled_Trigger_001_Actions takes nothing returns nothing
    TriggerSleepAction(0.)
    call RegionAddRect(reg, gg_rct_Region_000)
endfunction

и еще один триггер с периодиком в 2 секунды и действием

function Trig_Melee_Initialization_Actions takes nothing returns nothing
if IsUnitInRegion(reg, gg_unit_hkni_0001) == true then
    call DisplayTimedTextToPlayer(Player(0), 0, 0, 2, "true")
else
    call DisplayTimedTextToPlayer(Player(0), 0, 0, 2, "false")
endif
endfunction
Старый 14.02.2010, 22:03
DioD

offline
Опыт: 45,134
Активность:
некоторые типы нельзя создавать при ините, капитан как бы намекает создавать регион в другом месте, но никак не в декларации переменных.
Старый 15.02.2010, 09:11
Doc

offline
Опыт: 63,163
Активность:
Hellfim, неправильно, нельзя именно создавать регион во время инита.
Старый 15.02.2010, 09:58
Hellfim
Новичок
offline
Опыт: 79,707
Активность:
DoctorGester, правильно, кэп намекает, что там есть функция TriggerSleepAction(0.)
Старый 15.02.2010, 15:33
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Hellfim, триггер слип экшион не помогает. Действительно, было достаточно убрать CreateRegion() из глобалки и сделать через set reg = CreateRegion() в триггере инициализации карты, как все заработало..
Всем большое спасибо, можно закрыть!
Старый 16.02.2010, 05:43
Закрытая тема

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

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

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 05:04.