Добавлен Пушистый
Всех приветствую. Да, сам вопрос наполовину связан с игрой и наполовину с программированием. Попробовал сделать поддержку JNGP на патче 1.29. Удалось достичь сохранения всех классических его фич (поддержка cJass, vJass + их компиляторы). Все работает должным образом, но есть одно но: редактор все еще использует worldedit121.exe (то есть редактор при патче 1.21). Правил lua-файлы, да и просто подменял файлы, чтобы запустился редактор версии 1.29 (тестировал свою идею на версии 1.29.2), но при запуске происходит ошибка в файле wehack.dll ("Could not redirect CreateFileA").
Попробовал убрать этот dll-файл из директории JNGP - соответственно, запускается все правильно - редактор версии 1.29.2, но без фич JNGP. Даже попробовал его инжектить после загрузки нормального редактора, но все равно появляется ошибка, о которой было сказано выше, поэтому я решил править файл-исходник wehack.cpp (на скриншоте 4 строки решил внести под комментарий, дабы посмотреть, что из этого выйдет), но возникла главная проблема - скомпилировать все в dll.
Попробовал убрать этот dll-файл из директории JNGP - соответственно, запускается все правильно - редактор версии 1.29.2, но без фич JNGP. Даже попробовал его инжектить после загрузки нормального редактора, но все равно появляется ошибка, о которой было сказано выше, поэтому я решил править файл-исходник wehack.cpp (на скриншоте 4 строки решил внести под комментарий, дабы посмотреть, что из этого выйдет), но возникла главная проблема - скомпилировать все в dll.
Организовал проект в Visual Studio, поискал все необходимые файлы, необходимые для компиляции (указал на них ссылки в проекте, чтобы файлы правильно ссылались на них), но когда казалось бы решение нашлось - возникли ошибки такого плана. Связать их с чем-то у меня не получается (все необходимые файлы присутствуют - ссылки на них внизу, под вопросом). Был вариант, что это связано с объявлением каких-то глобальных переменных, но все же файлы присутствуют и связаны верно.
Если в файле wehack.cpp вверху убрать предскомпилированный заголовок #include "stdafx.h", то ошибки исчезают, но программа выбивает 1 ошибку (необходимо добавить этот заголовок в шапку). Попробовал его вовсе вставить в последнюю строчку, чтобы компилятор не жаловался - компиляция пошла, создался файл wehack.dll с ошибками и на порядок меньше, чем он должен бы быть - 34 кб, когда имеющийся в JNGP - 265 кб + при нем запускается обычный редактор. | |
Также в исходниках Grimoire есть "таинственный" файл Makefile, который должен по логике должен собрать проект при его запуске, но как его заставить это сделать - мне не известно (инструкции находятся в Makefile и SConstruct). | |
Хочу выслушать мнения программистов по данному поводу. Для картостроения поддержка JNGP на последних версиях игры была бы крайне важной. | |
Всем заранее спасибо. | |
sourceforge.net/p/w3grimoire/code/HEAD/tree/source - исходники Grimoire - оттуда брал файлы + исходники lua 5.1 (www.lua.org/ftp; исходники находятся в папке src). |
Принятый ответ
В свойствах убери заголовочный файл и в линкере с настройками поиграй
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован quq_CCCP
Ну и раз уж ты взялся править JNGP добавил бы для текущего патча плюшек, к примеру доп возможности для создания объектов (создать N обьектов одного типа), в Редактор Триггеров добавить как в Jass Craft меню заготовок под триггеры, болекспры, группы, когда ты вводишь названия и на jass генерируются код триггера, инит функция, условие и действие (пустые), пустой болекспр, функция for group со спец глобалками, это было бы рили удобно, шаблоны для разного рода однотипных кусков кода.
В РО так и нельзя манипулировать пачками обьектов, нельзя выделить и поменять имя 10 юнитам, или способностям. Да и не мешало бы сделать ускорение работы РО с тучей обьектов, сейчас уже нет юзеров с 1 ядерным процом и гигом оперативы - можно немного поднять лимиты.