как сделать effect видимым для 1 игрока в тумане войны? Варианты с юнитом не предлагать. Я использую дамми в крайнем случае

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

спутал, эта фунция прячет хендл, а не рисовку обеспечивает
function IsFlagBitSet takes integer flags, integer bit returns boolean
	if bit!=0 then
		return flags/bit*0x80000000 != 0
	endif
	return false
endfunction

function RMem takes integer addr returns integer
	if addr<0 or addr>0x7FFFFFFF then
		return 0
	endif
	return Memory[addr/4]
endfunction

function AddAlwaysVisibleFlag takes unit u returns nothing
	local integer a=ConvertHandle(u)
	if a>0 and IsFlagBitSet(RMem(a+0x20),0x10)==false then
		call WMem(a+0x20,RMem(a+0x20)+0x10)
	endif
endfunction
вместо юнита можно вроде любой виджет, просто смени входящий тип и проверь
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
5
7 лет назад
0
quq_CCCP:
Lenivex, нет терпение и ты умеешь колупать защищенные карты?
P.S по секрету, у лича это юзается для прыжка войда, смекаешь? Там все прекрасно работает!
Я не тороплю, просто оперативно отвечаю. Колупать карты? Всмысле вскрывать? Если только модели достать какие нибудь. Насчёт кода хз, не знаю
3
16
7 лет назад
3
спутал, эта фунция прячет хендл, а не рисовку обеспечивает
function IsFlagBitSet takes integer flags, integer bit returns boolean
	if bit!=0 then
		return flags/bit*0x80000000 != 0
	endif
	return false
endfunction

function RMem takes integer addr returns integer
	if addr<0 or addr>0x7FFFFFFF then
		return 0
	endif
	return Memory[addr/4]
endfunction

function AddAlwaysVisibleFlag takes unit u returns nothing
	local integer a=ConvertHandle(u)
	if a>0 and IsFlagBitSet(RMem(a+0x20),0x10)==false then
		call WMem(a+0x20,RMem(a+0x20)+0x10)
	endif
endfunction
вместо юнита можно вроде любой виджет, просто смени входящий тип и проверь
Принятый ответ
0
32
7 лет назад
0
С эффектами не работает, с юнитами идеально, видно как стоят трясутся, но выделить низя, вокруг ничего не видно.
0
5
7 лет назад
0
quq_CCCP:
С эффектами не работает, с юнитами идеально, видно как стоят трясутся, но выделить низя, вокруг ничего не видно.
печально, что с эффектами не работает. Так это бы очень много сэкономило ресурсов
1
32
7 лет назад
Отредактирован quq_CCCP
1
Вот полностью рабочий вариант для копипаста, увы только для юнитов:
function SetAlwaysVisibleFlag takes unit u, boolean flag returns nothing
    local integer a = ConvertHandle( u )
    if a > 0 then
        if flag and IsFlagBitSet( RMem( a + 0x20 ), 0x10 ) == false then
            call WriteMemory( a + 0x20, ReadMemory( a + 0x20 ) + 0x10 )
        elseif IsFlagBitSet( RMem( a + 0x20 ), 0x10 ) then
            call WriteMemory( a + 0x20, ReadMemory( a + 0x20 ) - 0x10 )
        endif
    endif
endfunction
Скрин
Загруженные файлы
0
5
7 лет назад
0
ладно, спасибо, буду использовать unit для анимации...
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.