Как нам стадо недавно известно, return баг возможен на патчах 1.24+ а так же благодаря Dracol1ch к нам попал сам код хака, которым возможно записывать данные в память игры...
Собственно линк на хак с функциями GitHube(github.com/DracoL1ch/WC3Memory/blob/master/war3map.j)
А вот ссылка наHiveWorkshop
Все это копипаст кода из war3mao.j (кода карты) в уже интерпретированном виде, пришлось немного потрудится чтобы перевести все в импортнопригодный вид и разбить на отдельные библиотеки...
Но вот беда, карта сохраняется и запускается, но вылазит ошибка:
Как выяснилось фаталит именно функция:
	call ForForce(bj_FORCE_PLAYER[0], I2C(8+C2I(function UnlockMemory))) 
Библиотеки Utils (функция Init )
Я проверил ретурн баг на массивы и код - все работает, C2I возвращает целое число, которое и является адресом кода. Так же с массивом, но в чем ошибка?
Что я мог упустить?
Есть идеи, свои варианты оформления?

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

У меня всё работает, просто прописываю эти нативки в коде самой карты, вот карта, здесь и урон изменяется.
Чтобы typecast работал в JNGP нужно создать аж 3 переменных!
Какие три? Я только две использую:
integer array l__A
integer A
Загруженные файлы

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
13
7 лет назад
0
quq_CCCP, всё работает, я проверял. Просто вставь пример со сменой урона из карты BaHeK, в scope Test.
Steal nerves, нужно скачать последнюю версию pJass, а в редакторе отключить cJass.
2
6
7 лет назад
2
Я вроде итак сделал всё, чтобы работало сразу. Но вы всё равно ищете трудности.
0
13
7 лет назад
0
BaHeK, всё работает, но не сохраняется.
2
6
7 лет назад
2
ENAleksey, да тут всё дело в том что я делал для простого we, а вы все в jngp редактируете. Но думаю это все уже не важно с картой разобрались всё у всех заработало.
0
32
7 лет назад
Отредактирован quq_CCCP
0
BaHeK:
ENAleksey, да тут всё дело в том что я делал для простого we, а вы все в jngp редактируете. Но думаю это все уже не важно с картой разобрались всё у всех заработало.
Тока в библиотеке на vjass пишешь тоже самое беда...
Теперь новая беда, копирую код к себе в карту и карта вылетает в главное меню...
Походу дело в кривом pjass.
одно охрененное НО!
Чтобы typecast работал в JNGP нужно создать аж 3 переменных!
(народ кто пишет в обычном редакторе или в блокнотике обходятся двумя, хз как?)

library Некая библиотека 


globals
	некий тип array l__A
	некий тип A
endglobals


private function typecastarray takes nothing returns nothing
	local некий тип A
endfunction

//# +nosemanticerror
function GetArrayAddress takes nothing returns integer //not really needed
	loop
		return l__A
	endloop
	return 0
endfunction

endlibrary
Вот только так это работает! Тоже самое с байткодом, нужно три переменные 1 массив, вторую того же типа но не массив и третью локалку и посредством vjass все будут с 1 именем и все будет работать, инача вылет карты в главное меню ибо фатал...
Ещё 1 проблема...
native MergeUnits		   takes integer qty, integer a, integer b, integer make returns boolean
// reserved native for call 2 integer function and return BOOLEAN value (can be converted to int!)
native ConvertUnits         takes integer qty, integer id               returns boolean
// reserved native for call 1 integer function and return integer value
native IgnoredUnits takes integer unitid returns integer
Стоит добавить их в war3map.j и моя карта фаталит, прошу всех кому не лень протестировать это дело!
Загруженные файлы
0
13
7 лет назад
0
У меня всё работает, просто прописываю эти нативки в коде самой карты, вот карта, здесь и урон изменяется.
Чтобы typecast работал в JNGP нужно создать аж 3 переменных!
Какие три? Я только две использую:
integer array l__A
integer A
Загруженные файлы
Принятый ответ
2
32
7 лет назад
2
оде самой карты, вот
Ага, уже разобрался спс.
Вот готовая версия для копипаста.
Загруженные файлы
0
13
7 лет назад
0
quq_CCCP, может создашь ресурс с переводом темы с хайва, чтобы не нужно было искать всю информацию на других сайтах?
0
32
7 лет назад
0
ENAleksey:
quq_CCCP, может создашь ресурс с переводом темы с хайва, чтобы не нужно было искать всю информацию на других сайтах?
Пока нету желания, и так только скопируй что тебе интересно и все.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.