WAGARAX, ты не тот детект взял для изменения урона юзается другой детект, он своего рода глобальный евент на урон всем юнитам на карте и работает до того как сработают триггеры на урон, там можно менять кол-во урона.
function Trig_SelfCast_Shield_Act takes nothing returns nothing
local unit unt = GetTriggerUnit()
local integer EventData = GetDamageEventESPData()
local integer Data = RMem(EventData + $00)
local effect effeShield = LoadEffectHandle(hash, WH2I(unt), 200)
local trigger tr = GetTriggeringTrigger()
local triggeraction trA = LoadTriggerActionHandle(hash, WH2I(tr), 1)
local real damage = mI2R( RMem( Data + 0x10 ) )
выводил число? там вообще урон приходит?
изменение должно работать, у меня работает, например. ибо это первый шаг перед тем, как данные отправятся ниже по течению к стандартным обработчикам
Выводил до изменения полученное число, выглядит правдоподобно, если вы об этом.
Только триггерно вернуть ему изначальный цвет. Действия - Анимация - Цвет юнита или что-то типа того. Изначальный цвет у каждого юнита свой, он написан в редакторе объектов (РО). Потому для корректной работы необходимо подготовить базу этих значений с помощью переменных.
Триггерно вернуть не выходит, во всяком случае таким образом.
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
пробуй
А что за версия? У меня нет ни "WRMem" ни "pGetCastRangeHook", не нашел Bergi_Bear:
WAGARAX, а эффект к чему крепишь? если эффект свободный, то проблем быть не должно, хотя я не тестил перемещения эффеков, на мемхаке лишь размер менял. Но если эффект прикреплен к юниту, а потом смещается, то такое может быть... хотя скорее всего просто какие-то баги.. На 131 со смещением эффектов гораздо больше было тестов и тебе минимум человек 5 скажет: Всё норм, на 131 отлично всё работает
Не скажу, что это прям мучения, я то особо(вообще) в нем не разбираюсь, просто использую некоторые функции. Вопрос, связанный с написанным на нем, возник только сейчас, да и не факт, что проблема в этом.
Просто в моей карте 2-3 модели без анимации смерти, поэтому при уничтожении эффект висит еще секунд 5. Я выставил 1.1, чтобы после уничтожения эффект отображался 1.1 сек(хоть не 5), т.к. изменить в самой модели ничего не смогу.
Триггерно всё можно. Сохраняешь эффект в хеш-таблице по заданному ключу и индексу. Запускаешь таймер эксплоит на нужное тебе время, сохраняя в нём нужный индекс. В функции выгружаешь эффект по индексу и удаляешь его.
В каком смысле удалять? Насколько я знаю, некоторые модели эффектов остаются видны после удаления несколько секунд, поэтому и использую 1.1 сек, чтобы не критично было.
0.003 слишком мало, наверное потому, что каст морфа у меня стоит на 0.01, зато на 0.02 работает нормально. Правда у героя все слоты под способности забиты, когда способность открывается, кнопка 1 скилла пропадает до окончания морфа, хоть я ее и сделал перманентной. WAGARAX:
0.003 слишком мало, наверное потому, что каст морфа у меня стоит на 0.01, зато на 0.02 работает нормально. Правда у героя все слоты под способности забиты, когда способность открывается, кнопка 1 скилла пропадает до окончания морфа, хоть я ее и сделал перманентной.
Ошибся, все-таки забыл сделать перманентной, сделал - работает.
Ну, способность, которую нужно использовать - морф иллидана.
Забыл уточнить, мне нужно, чтобы не пользователь использовал скилл, а заставить юнита использовать его.
» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack
» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack
» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack
» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack
local unit unt = GetTriggerUnit()
local integer EventData = GetDamageEventESPData()
local integer Data = RMem(EventData + $00)
local effect effeShield = LoadEffectHandle(hash, WH2I(unt), 200)
local trigger tr = GetTriggeringTrigger()
local triggeraction trA = LoadTriggerActionHandle(hash, WH2I(tr), 1)
local real damage = mI2R( RMem( Data + 0x10 ) )
if(damage <= 400)then
call WMem( Data + 0x10, 0 )
else
call WMem( Data + 0x10, mR2I( damage/2 ) )
endif
call DestroyEffect(effeShield)
call EffeDestrTimed(AddSpecialEffectTarget("Energy Release.mdx", unt, "origin"), 0.4)
call TriggerRemoveAction(tr, trA)
call TriggerClearActions(tr)
call FlushChildHashtable(hash, WH2I(tr))
call DestroyTrigger(tr)
endfunction
» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack
» WarCraft 3 / Астрал без прозрачности
» WarCraft 3 / Астрал без прозрачности
» WarCraft 3 / Эффект при перемещении перестает отображаться
» WarCraft 3 / Эффект при перемещении перестает отображаться
» WarCraft 3 / Эффект при перемещении перестает отображаться
» WarCraft 3 / Эффект при перемещении перестает отображаться
Bergi_Bear: Эффект если что ни к чему не крепил
» WarCraft 3 / Эффект при перемещении перестает отображаться
Отредактирован WAGARAX
» WarCraft 3 / Эффект при перемещении перестает отображаться
» WarCraft 3 / Проблема с AddSpecialEffectLoc
Отредактирован WAGARAX
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Проблема с AddSpecialEffectLoc
Время - 1.1 сек
8gabriel8: Да, тоже
» WarCraft 3 / Проблема с AddSpecialEffectLoc
» WarCraft 3 / Замедление сбивает замедление.
» WarCraft 3 / Использование скрытого скилла
WAGARAX: Ошибся, все-таки забыл сделать перманентной, сделал - работает.
» WarCraft 3 / Использование скрытого скилла
» WarCraft 3 / Использование скрытого скилла
Забыл уточнить, мне нужно, чтобы не пользователь использовал скилл, а заставить юнита использовать его.