Добавлен , опубликован
Алгоритмы, Наработки и Способности
Способ реализации:
vJass
Тип:
Наработка
Версия Warcraft:
1.26 и ниже
Собственно тот знаменитый хак на память который нам радостно предоставил DracoL1ch, который позволяет нам больше не морочится с системами отлова урона, или вовсе узнать координаты курсора без стороннего по.
Для сохранения требуется: экспериментальная версия pjass.exe
Причём не все подходят, меньше всего проблем было с этой версией
В хаке присутствует только 1 пример на изменение белой атаки у героя, остальные готовые функции можно найти на:
Хайве
Гитхабе
Просто копируем саму функцию, все остальное для её работы есть в наработке и сохраняем.
Так же на хайве есть инструкция по созданию собственных функций для чтения\изменения данных в памяти игры.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
21
7 лет назад
0
Можно попробовать этим поупарываться
Обычно идей появляется больше, чем надо, некоторые трудности как раз в реализации
0
20
7 лет назад
0
Все годное уже давно придумали близы. Ну и модмейкеры. Правда близы никогда не делали сложных механик...бтв, тут вроде писалось что можно отдельный скилл в сало закинуть. Чисто способность инвентаря 2 лвла в него закинуть удастся?
Нвм, сразу на ум пришел нужный. Костыль)
0
32
7 лет назад
0
ClotPh:
Можно попробовать этим поупарываться
Обычно идей появляется больше, чем надо, некоторые трудности как раз в реализации
Вот у меня пока нету что то...
Diaboliko:
Все годное уже давно придумали близы. Ну и модмейкеры. Правда близы никогда не делали сложных механик...бтв, тут вроде писалось что можно отдельный скилл в сало закинуть. Чисто способность инвентаря 2 лвла в него закинуть удастся?
Нвм, сразу на ум пришел нужный. Костыль)
Можно даже атаку или перемещение.
2 или 3 вида сала есть.
Сало сферы к примеру не отключает автоатаку а тупо нёдает нажать кнопку.
0
21
7 лет назад
0
Так. Ну и втф? Ничерта не понятно.
Файл pjass.exe скопирован с заменой, куда надо (именно куда надо, т. к. там был другой pjass.exe и он заменён).
Что-то еще надо распаковать? После запуска он выдает DOS-окно и молча "висит".
Ладно, закрываю, идем дальше.
*******
Карта скачана.
В игре запускается следующим образом: появляется Чародей Крови, инфа про то, что хак классный и бла-бла-бла. Потом появляется блейдмастер, дальше ничего не происходит.
Если открыть карту в редакторе и просто пересохранить - она перестаёт запускаться (со включенным cJass выдаёт 11 ошибок, без него не выдаёт ошибок, но всё равно перестаёт запускаться).
Если удалить все триггеры вообще и кастом код и пересохранить - карта запускается, естественно, пустой.
Ради эксперимента оставляю только этот кастом код:
Эти 3 нативные функКции необходимы дя работы хака, остальное можно не копировать!
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
Нажимаю Syntax Check, выдаёт Parse successful.
После пересохранения карта все равно не запускается.
Если удалить и этот кастом код - запускается.
Если заново скачать карту и заменить - запускается, что происходит с ней в игре - см. выше.
Если снова открыть и просто пересохранить - опять не запускается.
В чем и на каком этапе проблема?
0
32
7 лет назад
0
JNGP последней версии, полностью отрубленный сжасс и все заработает.
Pjass нужно было заменить, как ты и сделал - запускать ненужно, редакторе перезапустить.
0
20
7 лет назад
0
ClotPh, проблема на начальном этапе определения своего уровня знаний :>
Сколько у появляющегося блейдмастера единиц атаки?
0
24
7 лет назад
0
quq_CCCP, можно заключить в теги ноусиджазз поидее
0
32
7 лет назад
0
darkowlom:
quq_CCCP, можно заключить в теги ноусиджазз поидее
Прошу доказать это на примере, у меня были проблемы пока полностью не отключил адик хелпера.
0
24
7 лет назад
Отредактирован darkowlom
0
quq_CCCP, конкретно этого хака я не касался, но предыдущая версия содержащая только чтение прекрасно работала заключенная в теги
Я испытывал проблемы от адик оптимизера - отключив его все работало в тегах. Проверю с твоей картой
Работает, только AdicOptimizer надо отключить
Загруженные файлы
0
21
7 лет назад
0
У блейда атаки 102-124. И было, кстати, столько до нижеописанных действий.
Ага, а в РО он дефолтный. Т. е. шаманство всё-таки работало и работает. Но всё-таки ещё не прогрызлось до конца.
Так, JNGP закачан отсюда xgm.guru/p/wc3/jassnewgenpack-exp
Версия, похоже, была чуть раньше той, что по ссылке.
Прогресс уже есть. Теперь, если оставить в кастом коде только это и пересохранить:
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
Карта успешно запускается, но, конечно, пустая (если там своих юнитов не поставить, но это для сути дела сейчас не важно).
Если просто пересохранить - все равно фейл. Во вкладке cJass все галочки сняты. Выдает не раз упомянутые 11 ошибок.
Подозреваю, что проблема в первую очередь в следующих ошибках из тех одиннадцати:
  • Index missing for array variable l__Array
  • Index missing for array variable l__bytecode
  • Function ReadMemory must not take any arguments when used as code
При попытке копипаста всего сразу в кастом код отсюда - github.com/DracoL1ch/WC3Memory/blob/master/war3map.j , кстати, по-моему, выдает именно эти три ошибки и только три.
************
Итак. По идее - уже есть рабочая и пересохраняемая карта с кастом кодом:
native MergeUnits takes integer qty, integer a, integer b, integer make returns boolean
native ConvertUnits takes integer qty, integer id returns boolean
native IgnoredUnits takes integer unitid returns integer
************
Это уже прогресс. Но этого мало. Я не могу, например, просто вставить функцию отсюда github.com/DracoL1ch/WC3Memory/blob/master/war3map.j
Если я забираю
function AddAbilityCooldown takes ability a, real seconds returns nothing
local integer pData = Memory[ConvertHandle(a)/4+55]/4
if pData != 0 then
set Memory[pData+1] = cleanInt(realToIndex(seconds+cleanReal(indexToReal(Memory[pData+1]))))
set Memory[ConvertHandle(a)/4+45] = cleanInt(realToIndex(seconds+cleanReal(indexToReal(Memory[ConvertHandle(a)/4+45])))) This should not be modified together
endif
endfunction
и просто вставляю в кастом код, то оно начинает ругаться и, ятп, искать ссылки на либы и функции в них. А с либами карта не пересохраняется, выдает не раз упомянутые 11 ошибок. Т. е. если снять галочку с Enable JassHelper - она, разумеется, пересохраняется, но в игре опять же не запускается.
Есть мысль просто удалить все проблемные строчки, но, ятп, оно работать нормально-то просто перестанет и все.
0
32
7 лет назад
0
Pjass новый поставил?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.