Добавлен quq_CCCP,
опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
Версия Warcraft:
1.26 и ниже
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
создаю юнита сразу же устанавливаю случайный показатель к атаке..., но с определённым шансом я получаю фатал...
иногда вылетает фатал после 40 созданных юнитов, иногда после 150...
где я мог накосячить..?
Обязательно проверяйте входные аргументы.
Отредактирован Алексей Андреич
отключённый "Безымянный триггер 001" - делал для теста... собственно тот триггер, что создаёт юнита каждые 0.1 сек...
на всякий выложу сюда...
timer t = GetExpiredTimer()
int tid = GetHandleId(t)
bj_lastCreatedUnit = LoadUnitHandle(gg_htb_HashData,tid,1)
SetUnitBaseDamage(bj_lastCreatedUnit,1)
DestroyTimer(t)
FlushChildHashtable(gg_htb_HashData,tid)
t=null
}
bj_lastCreatedUnit=CreateUnit(Player(1),RandomUnit[GetRandomInt(1,RandomUnitMax)],GetRandomReal((size-1)*-128,(size-1)*128.),GetRandomReal((size-1)*-128,(size-1)*128.),270.)
SetUnitBaseDamage(bj_lastCreatedUnit,0)
timer t=CreateTimer()
int tid = GetHandleId(t)
SetUnitArmor(bj_lastCreatedUnit,0.)
count++
BJDebugMsg(I2S(count))
SaveUnitHandle(gg_htb_HashData,tid,1,bj_lastCreatedUnit)
TimerStart(t,0.01,false,function Ta)
t=null
endfunction
function InitTrig_____________________________________001 takes nothing returns nothing
set gg_trg_____________________________________001 = CreateTrigger( )
TriggerRegisterTimerEvent(gg_trg_____________________________________001,0.1,true)
call TriggerRegisterPlayerEventEndCinematic( gg_trg_____________________________________001, Player(0) )
call TriggerAddAction( gg_trg_____________________________________001, function Trig_____________________________________001_Actions )
endfunction
Отредактирован ClotPh
и как бы работало всё без фаталов...
со стресс тестом попробую...