Меняю позицию эффекта (любого) с помощью мемхака, а точней SetEffectX, SetEffectZ и т.п. На некоторых частях карты он перестает быть видимым, если переместить обратно - снова отображается. Вблизи точки создания эффект виден, но вдали - нет. Может пропадать на расстоянии примерно 2000, а может и на 800, смотря в каком направлении двигаю и на какой карте нахожусь, поэтому не могу представить, в чем проблема.
Принятый ответ
function SetObjectPosition takes handle h, real x, real y, real z returns nothing
//doesn't update cached (creation) position, so object get hidden when it's spawn XYZ are out of current camera's bounds
//probably useful to move effect slightly but definitely shouldn't be used for big (200+) movements
set LastConvertedHandle=ConvertHandle(h)
if LastConvertedHandle!=0 then
call CallThisCallWith4Args(GameDLL+0x4D3180,RMem(LastConvertedHandle+0x28),mR2I(x),mR2I(y),mR2I(z))
endif
endfunction
function SetEffectPositionComplex takes effect fx, real x, real y, real z returns nothing
//DOES update cached (creation) position, could be sync-sensible
//widget-base offset different from UNIT: Effects into B0, unit into B8, idk about others
local integer a
set LastConvertedHandle=ConvertHandle(fx)
if LastConvertedHandle!=0 then
set a=LastConvertedHandle
call WRMem(pGetCastRangeHook+500,x)
call WRMem(pGetCastRangeHook+504,y)
call WRMem(pGetCastRangeHook+508,z)
set a=CallThisCallWith1Args(RMem(RMem(a)+0xB0),a)//B0 for effects, B8 for unit
call CallThisCallWith2Args(GameDLL+0x4743C0,a,pGetCastRangeHook+500)
call SetObjectPosition(fx,x,y,z)
endif
endfunction
пробуй
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован WAGARAX
Bergi_Bear: Эффект если что ни к чему не крепил