0
6
4 года назад
0

» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack

quq_CCCP, не совсем, правда, понимаю, почему предыдущий вариант работал с 0. Благодарю за помощь.
0
6
4 года назад
0

» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack

quq_CCCP:
WAGARAX, внимательно мои публикации смотри по мемхаку.
Насколько я понял, вы про это xgm.guru/p/wc3/damagedetect. Пока-что вроде получается кое-как менять, попробую сделать что-то внятное.
0
6
4 года назад
0

» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack

quq_CCCP:
WAGARAX, ты не тот детект взял для изменения урона юзается другой детект, он своего рода глобальный евент на урон всем юнитам на карте и работает до того как сработают триггеры на урон, там можно менять кол-во урона.
Всмысле другая система отлова урона?
0
6
4 года назад
0

» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack

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 ) )

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

Читал число после выполнения WMem - уменьшено вдвое, на деле урон не изменился.
0
6
4 года назад
0

» WarCraft 3 / Изменение кол-ва внесенного урона через Memory Hack

DracoL1ch:
выводил число? там вообще урон приходит?
изменение должно работать, у меня работает, например. ибо это первый шаг перед тем, как данные отправятся ниже по течению к стандартным обработчикам
Выводил до изменения полученное число, выглядит правдоподобно, если вы об этом.
0
6
4 года назад
0

» WarCraft 3 / Астрал без прозрачности

DracoL1ch:
без мемхака никак
Не подскажите, как с мемхаком подобное провернуть?
0
6
4 года назад
0

» WarCraft 3 / Астрал без прозрачности

PT153:
Только триггерно вернуть ему изначальный цвет. Действия - Анимация - Цвет юнита или что-то типа того. Изначальный цвет у каждого юнита свой, он написан в редакторе объектов (РО). Потому для корректной работы необходимо подготовить базу этих значений с помощью переменных.
Триггерно вернуть не выходит, во всяком случае таким образом.
0
6
0
6
5 лет назад
0

» WarCraft 3 / Эффект при перемещении перестает отображаться

Теперь не пропадает, спасибо за помощь. Только вот строку "set pGetCastRangeHook=malloc(12)" в InitMemory нужно прописать или нет разницы где?
0
6
5 лет назад
0

» WarCraft 3 / Эффект при перемещении перестает отображаться

У меня есть mr2i, но он принимает один аргумент.
0
6
5 лет назад
0

» WarCraft 3 / Эффект при перемещении перестает отображаться

DracoL1ch:
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 отлично всё работает
Эффект если что ни к чему не крепил
0
6
5 лет назад
0

» WarCraft 3 / Эффект при перемещении перестает отображаться

Не скажу, что это прям мучения, я то особо(вообще) в нем не разбираюсь, просто использую некоторые функции. Вопрос, связанный с написанным на нем, возник только сейчас, да и не факт, что проблема в этом.
1
6
5 лет назад
Отредактирован WAGARAX
1
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Теперь ясно.
0
6
5 лет назад
Отредактирован WAGARAX
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Когда искал, в чем проблема, брал стандартный спецэффект молнии, а так не работает ни один эффект.
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Это понятно, но не совсем понимаю, как это вылилось в то, что модель не было видно.
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Просто в моей карте 2-3 модели без анимации смерти, поэтому при уничтожении эффект висит еще секунд 5. Я выставил 1.1, чтобы после уничтожения эффект отображался 1.1 сек(хоть не 5), т.к. изменить в самой модели ничего не смогу.
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

KaneThaumaturge:
Триггерно всё можно. Сохраняешь эффект в хеш-таблице по заданному ключу и индексу. Запускаешь таймер эксплоит на нужное тебе время, сохраняя в нём нужный индекс. В функции выгружаешь эффект по индексу и удаляешь его.
В каком смысле удалять? Насколько я знаю, некоторые модели эффектов остаются видны после удаления несколько секунд, поэтому и использую 1.1 сек, чтобы не критично было.
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Работает. Выходит, время жизни эффекта я изменить не могу?
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Остальные не помню, откуда.
Время - 1.1 сек
8gabriel8:
На первом компьютере тоже 1.26а?
Да, тоже
0
6
5 лет назад
0

» WarCraft 3 / Проблема с AddSpecialEffectLoc

Все на максимум, пробовал и другие.
0
6
5 лет назад
0

» WarCraft 3 / Замедление сбивает замедление.

Если способ с торнадо применять, допустим, одновременно к 60 юнитам, в этот момент игра не будет тормозить?
0
6
5 лет назад
0

» WarCraft 3 / Использование скрытого скилла

0.003 слишком мало, наверное потому, что каст морфа у меня стоит на 0.01, зато на 0.02 работает нормально. Правда у героя все слоты под способности забиты, когда способность открывается, кнопка 1 скилла пропадает до окончания морфа, хоть я ее и сделал перманентной.
WAGARAX:
0.003 слишком мало, наверное потому, что каст морфа у меня стоит на 0.01, зато на 0.02 работает нормально. Правда у героя все слоты под способности забиты, когда способность открывается, кнопка 1 скилла пропадает до окончания морфа, хоть я ее и сделал перманентной.
Ошибся, все-таки забыл сделать перманентной, сделал - работает.
0
6
5 лет назад
0

» WarCraft 3 / Использование скрытого скилла

Ну скрытый морф горячей клавишей не используется.
0
6
5 лет назад
0

» WarCraft 3 / Использование скрытого скилла

Ну, способность, которую нужно использовать - морф иллидана.
Забыл уточнить, мне нужно, чтобы не пользователь использовал скилл, а заставить юнита использовать его.