Приветствую всех!
Возможно ли во время игры менять модель юнитам?
например юнит появляется в области и ему дается случайная модель из списка,пробывал делать заменить юнит но характеристики юнита уже другие защита хп и т.д

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

создавайте новых юнитов ручками это будет быстрее чем вы изучите мемхак и поймёте как использовать функцию смены модели
function ChangeUnitModelTo takes unit u, string modelpath returns nothing
	local integer a
	local integer s
    call MakeModelAsDefault(u,modelpath)
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 then
		set a=RMem(LastConvertedHandle)+0x88
		if a>0 then
			set a=RMem(a)
			if a>0 then
				set s=GetStringAddress(modelpath)
				call CallThisCallWith3Args(a,LastConvertedHandle,s,1)
			endif
		endif
	endif
endfunction

function ChangeUnitPortraitTo takes unit u, string modelpath returns nothing
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 then
		call CallThisCallWith3Args(GameDLL+0x33ADC0,LastConvertedHandle,GetStringAddress(modelpath),1)
	endif
endfunction
В карте про сларков таком способом меняется модель лягушки после эволюции
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
3
5 лет назад
0
Хочу разнообразить игру) чтобы каждый раз выходили новые юниты, патч 1.26+
0
32
5 лет назад
0
создавайте новых юнитов ручками это будет быстрее чем вы изучите мемхак и поймёте как использовать функцию смены модели
function ChangeUnitModelTo takes unit u, string modelpath returns nothing
	local integer a
	local integer s
    call MakeModelAsDefault(u,modelpath)
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 then
		set a=RMem(LastConvertedHandle)+0x88
		if a>0 then
			set a=RMem(a)
			if a>0 then
				set s=GetStringAddress(modelpath)
				call CallThisCallWith3Args(a,LastConvertedHandle,s,1)
			endif
		endif
	endif
endfunction

function ChangeUnitPortraitTo takes unit u, string modelpath returns nothing
	set LastConvertedHandle=ConvertHandle(u)
	if LastConvertedHandle>0 then
		call CallThisCallWith3Args(GameDLL+0x33ADC0,LastConvertedHandle,GetStringAddress(modelpath),1)
	endif
endfunction
В карте про сларков таком способом меняется модель лягушки после эволюции
Принятый ответ
1
29
5 лет назад
1
Наштампуйте кучу одинаковых юнитов с разными моделями или используйте мемхак.
0
32
5 лет назад
0
Хотя я смену портрета не использовал
NazarPunk, а кто проверял? но на 99% уверен что SetRealField For Model ничего просто не сделает
0
3
5 лет назад
0
local unit u=GetTriggerUnit()
call ChangeUnitModelTo(u , "test.mdl")
правильно?
0
32
5 лет назад
0
Snak061, в общих чертах да
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.