Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
Ред. Кет
просто у меня другие скиллы многие регают свои триггеры только через выучивание конкретно для выучившего
для оптимизации
т. е. если абилу просто дать, она ниче делать не будет
//////
так, id2string все равно достает не понятно что, не равкод, а какие-то
\x00000041...
sic!!! Ну так или иначе прорыв.
А если я быстренько махну поле выучиваемых абил, сразу выучу одну и сразу обратно перепишу поле?
пример использования
Да в принципе нужно, но не очень, равкод я при выучивании могу поймать.
каких строк?
Мои функции выше безопасны?
Пока гоняю в тест-карте, проблем не обнаруживаю, поля исправно переписываются туда и обратно и абилы учатся
ОХ, лол. Хм. Ща Мегамен забрал чародейскую ауру ладдерного архимага, работает и бафф дает вроде нормальный, но почему-то визуально отображается как "доспехи веры". То ли это у меня импорт такой и уже забыто, то ли допереписывалось (это уже XX была геройская способность, которые были переписыванием полей одному герою впихнуты и все через выучивание). Но других побочных эффектов пока не видно.
Лол набор: выучены 4 все свои абилы (но там не отображаются пассивки, специально же расчет на то, что гер абилы тырит), от чародея крови астрал, огонь и феня и от архимага буран, дух воды и аура, вот аура уже даже благополучно на панель не влезла.
///////////
Ок, не буду, прямо из одного поля в другое, да и не планировалось.
создаю юнита сразу же устанавливаю случайный показатель к атаке..., но с определённым шансом я получаю фатал...
иногда вылетает фатал после 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
и как бы работало всё без фаталов...
со стресс тестом попробую...
у меня на карте просто мемхак спаян с RenderEdge_mini... видимо, где-то там ошибку допустил...
сейчас проверил на карте с одним только мемхаком, всё нормально работает...
Там ща такие открытия ингейм, что ппц )
Например, если clawbfs.ucoz.ru/forum/3-1833-1 сворует у clawbfs.ucoz.ru/forum/3-216-1 способность clawbfs.ucoz.ru/Icons/TarPit/TarPit2.bmp (там станд морф друида ворона) и активирует, получится Смоляной Мегамен :D .
Он не сможет анморфнуться обратно, у него отрубается его активка, он навсегда теряет способность атаковать, чернеет и становится огненным, но при этом сохраняется нормальная скорость перемещения и свои пассивки + добавляется аура Смоляной Ямы в растечённом состоянии. Мутант, короче. В итоге вряд ли профитно (атаки ничто не заменит), но интересно :D
Чую, там еще немало открытий будет. Вообще там на многие морфы чужих абил изначально был фильтр поставлен, что нельзя, но не на все.
Ну это вообще морфы по принципу друида-медведя и друида-ворона так косят чужие. По-моему, морф типа метаморфозы иллидана должен норм работать, во всяком случае, в них у меня для аватаров - т. е. не совсем "своих" героев - исходная форма не переделывалась в большинстве случаев, а морф и анморф все равно проходил исправно.
Сделай лучше нулевой кулдаун, а стартом кулдауна делай нужный тебе кд. А так есть функции редактирования кулдауна, уже не помню фиксились ли их проблемы или нет.
я просто все думаю, есть ли возможность на юнита легко повесить счетчик без использования custom value, глобальных переменных и редактирования параметров объекта
просто мог бы быть у него некий спелл с перезарядкой вообще в спрятанном спеллбуке, перезарядка меняться и от нее считаться что-то другое
Есть по чтению и записи в строчки, редактирующие тип оружия у первой и второй атаки?