Я пытаюсь запустить мемхак, пробовал вот эти:
Пробовал каждый по очереди, брал просто JNPG последний самый для 1.26a я так понимаю, заменил pjass.exe в папке jasshelper на экспериментальный и оно ругается дурацкой ошибкой на какой-то массив, типа этого: Index missing for array variable
Всё что я сделал это скачал карту и пересохранил её в редакторе без изменений. По замыслу должно быть 0 ошибок и успешное сохранение, ну алло, там же говорилось что экспериментальный pjass.exe игнорирует подобные ошибки, а он еще как не игнорирует.
Единственное что у меня получилось - запустить мемхак из RenderEdge на нём, вот он сохраняется без ошибок и работает, только в отличие от первых трех возможностей и утилит в нем мало, а копипасто одного в другое не выйдет, т.к. мемхаки несовместимы друг с другом и вообще верхние не работают.
Почему?

Принятый ответ

ох =)
расскажу, что если прочитать все 500 комментариев про мемхак, то там есть 1 нормальный ответ про то как его включить
Мне потребовалось 3 раза прочитать чтобы врубиться в это, все 500 комментов
Так вот он правильный ответ:
Для запуска мемхака нужно отказать от Cjass сняв галочку EnableAdicParser а во вкладке vJass поставить DisableScriptOpt
Советую запустить сначала карту по отлову урона на мемхаке проверить на сохраняемость, если всё получается, тогда уже переносить мемхак в свою карту
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
32
5 лет назад
0
Hate, а где вы раньше были когда я эту тему поднимал, почему мне каждый второй на форуме говорил что не работает мемхак и cjass, работает же !
я правда так и не понял куда вы что поставили, но карта сохраняется =) спасибо большое =)
0
28
5 лет назад
0
я правда так и не понял куда вы что поставили
vJass -> Disable script optimization. Также можно дебаг включить, он тоже отключает.
0
32
5 лет назад
0
нее кароче, всё фигня, карта то работает с галочкой, но сиджасс не пашет, удалил 1 call и сразу ошибки пишет.... не.... это лажа какая-то
0
26
5 лет назад
Отредактирован Hate
0
Где удалили, внутри мемхаковских функций?
Ну или вы сам сижасс выключили
0
32
5 лет назад
0
нет, конвертанул триггер создания трёх пехотинцев, и убрал первый call перед createunit....
0
28
5 лет назад
0
нет, конвертанул триггер создания трёх пехотинцев, и убрал первый call перед createunit....
Отключи оптимизатор cJass, а его самого включи.
Hate:
Где удалили, внутри мемхаковских функций?
Было бы неплохо, если бы ты кинул свои настройки cJass.
0
32
5 лет назад
0
Вроде расставлял!no cjass но оно у меня так стабильно и не заработало, я забил и написал что несовместимо в текущем виде с Cjass
Кстати лич подкинул более надежный хук на выход для восстановления памяти,
Код от DracoL1ch
unction InitExtrasPageDisplayOnExit takes integer pTriggerHandle returns nothing
local integer oldprotection = ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,0x40)
local integer address=GameDLL+0x5C4120
set FinalTableHookRealValue1=RMem(GameDLL+0x5C4120)
set FinalTableHookRealValue2=RMem(GameDLL+0x5C4120+4)

call WMem(address, 0xE9E9E9E9)

call WMem(address + 1, pFinalTableHook - (address + 1) - 4)

call WMem(pFinalTableHook + 0, 0x68609090 )
call WMem(pFinalTableHook + 4, pTriggerHandle )
call WMem(pFinalTableHook + 8, 0xB890C08B )
call WMem(pFinalTableHook + 12, pTriggerExecute )
call WMem(pFinalTableHook + 16, 0xC483D0FF )
call WMem(pFinalTableHook + 20, 0xE9906104 )
call WMem(pFinalTableHook + 24, GameDLL+0x5C4120 - (pFinalTableHook + 24) - 4 )

call ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,oldprotection)
endfunction

function DisplayExtrasPageDisplayOnExit takes nothing returns nothing
local integer oldprotection = ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,0x40)
call WMem(GameDLL+0x5C4120,FinalTableHookRealValue1)
call WMem(GameDLL+0x5C4120+4,FinalTableHookRealValue2)
call ChangeOffsetProtectionNoRestore(GameDLL+0x5C4120,8,oldprotection)
//your code on exit here
endfunction


activation:
set pFinalTableHook = AllocateExecutableMemory(60*4)
set t=CreateTrigger()
call TriggerAddAction(t,function DisplayExtrasPageDisplayOnExit)
call InitExtrasPageDisplayOnExit(GetHandleId(t))
Не спешим бездумно копипастить, я сделаю карту с новым детектом урона, зарядами и функциями активации абилок без приказа, когда-нибудь...
0
28
5 лет назад
0
unction
f пропустил.
0
32
5 лет назад
0
PT153, эт из скайпа как есть, выдрано из карты лича, ептить - я для кого написал не копипастить, не тестировалось.
0
32
5 лет назад
0
call Просто как я понял, расставление !no cjass позволит работать в карте со включенной галочкой про cjass, но при это его самого нельзя будет использовать,
set Вывод: в это нет никого смысла
set Вывод =null
quq_CCCP, а старое восстановление памяти как-то не так так работает?
Загруженные файлы
0
28
5 лет назад
Отредактирован PT153
0
!no cjass
Нужно обернуть места с использованием мемхака //! nocjass и //! endnocjass, я так думаю. И саму либу тоже.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.