Если перед запуском карты не выбирать, видима ли карта, разведана или открыта, то она по умолчанию будет разведана. Однако, мне надо даже если она "разведана", всё равно включить чёрную маску. Для надёжности я попытался это реализовать аж целым комплектом дейтсвий:
function Fog takes nothing returns nothing
    local integer a=0
	local fogmodifier m = null
    if ( IsMapFlagSet(MAP_FOG_HIDE_TERRAIN) == false ) then
	    call SetMapFlag( MAP_FOG_MAP_EXPLORED, false )
        call SetMapFlag( MAP_FOG_HIDE_TERRAIN, true )
		call FogMaskEnableOn(  )
		loop
		set m = CreateFogModifierRectBJ( true, Player(a), FOG_OF_WAR_MASKED, GetEntireMapRect() )
        call DestroyFogModifier( m )
		exitwhen a==11
		set a=a+1
		endloop
    endif
endfunction
И всё равно ничего не работает! Как так-то?

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

Самое удивительное: если карта "открыта" - всё работает, чёрная маска создаётся. Если же "разведана" - нет...
Как мне удалось наконец-то выяснить:
  • Если выставлен флаг "карта открыта" - просто запрещаются туман войны и чёрная маска. И чтобы вернуть всё на место, нужно разрешить их, а потом создать модификатор чёрной маски.
  • Если выставлен флаг "карта разведана" - ничего не запрещается, но создается модификатор тумана войны на всю карту. И его просто не может перекрыть новый модификатор чёрной маски, который я создаю триггерно. Нужно как-то отловить этот первоначальный модификатор тумана войны - и удалить его. Обращение через "последний созданный модификатор" не помогает. Может быть, есть еще какие-то способы найти и удалить этот модификатор?
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
18
7 лет назад
0
При инициализации?
0
23
7 лет назад
Отредактирован Тимур
0
dave_wwid, да.
0
18
7 лет назад
0
Не все работает при инициализации. Можно попробовать создавать модификатор видимости не при инициализации а через 0.1 (0.01?) сек.
0
23
7 лет назад
0
dave_wwid, не помогает..
0
16
7 лет назад
0
Вкладка "Сценарий", подвлкадка "Параметры карты", снять галочку "Скрытые области частично видимы".
0
18
7 лет назад
Отредактирован dave_wwid
0
создавать модификатор тумана изначально разблокированным через call ?
типа
call CreateFogModifierRectBJ( true, Player(0), FOG_OF_WAR_VISIBLE, GetPlayableMapRect() )
set юзается только для переменных (имя или изменение значения) напр.
set udg_m = GetLastCreatedFogModifier() (Это естественно для глобальной переменной)
0
23
7 лет назад
0
dave_wwid, результат всё тот же. Игра упорно игнорирует любой модификатор "черной маски", если выставлена видимость "по умолчанию", а не "скрыта".
Naadir, если бы было всё так просто... Это в моём случае не годится, здесь может помочь только триггерное решение.
0
18
7 лет назад
Отредактирован dave_wwid
0
Я не то написал (просто писал для примера как вызвать функц) , нужно FOG_OF_WAR_MASKED вместо FOG_OF_WAR_VISIBLE. И для начала, отключи проверку на какие-либо условия.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.