NoX World - форум об игре NoX

Привет фанатам NoX !!! => Картостроение, скриптинг и моддинг => Моддинг => Тема начата: Dio от 08/11/2012 14:33:51

Название: UniMod: Исходники
Отправлено: Dio от 08/11/2012 14:33:51
Теперь исходники UniMod-а доступны любому пользователю на GitHub (https://github.com/Evengard/UniMod/)!
Вы можете сами разрабатывать UniMod как у себя дома так и присылать обновления нам)


Код более менее подготовил к публикации, но проверить его весь сразу возможности не имел, так что могут быть баги.


Насчет публикации базы пока думаем, там все несколько сложнее.

Кстати на gihub-e действует система бранчей (branches), так что повнимательней)
Название: UniMod: Исходники
Отправлено: Lаrboss от 08/11/2012 21:48:00
Good. На чем можно спокойно компилировать?
Название: UniMod: Исходники
Отправлено: Evengard от 09/11/2012 00:13:47
C++ Visual Studio 2010 Express
Название: UniMod: Исходники
Отправлено: 2530 от 09/11/2012 13:52:07
А Visual Studio 2008 PRO подойдёт?
Название: UniMod: Исходники
Отправлено: Perfect от 09/11/2012 14:24:40
Думаю, да, если есть необходимые библиотеки.
Название: UniMod: Исходники
Отправлено: TheSim от 09/11/2012 14:31:14
Возможно придется поправить версию в файле проекта
Название: UniMod: Исходники
Отправлено: Evengard от 09/11/2012 14:50:51
У меня на 2008 в своё время собиралось, но не запускалось. Лучше конечно бы 2010, именно под неё делались файлы проектов последние. Или 2003 - под неё там остались старые версии файла проекта, правда он полурабочий :D 2010 файл проекта "чистый"
Название: UniMod: Исходники
Отправлено: Dio от 09/11/2012 21:14:38
угу, был, но при рефакторинге до него добрались мои руки, так что ничего не обещаю.
Название: UniMod: Исходники
Отправлено: Evengard от 09/11/2012 21:36:43
А ты уже смерджил в master чтоль?
Название: UniMod: Исходники
Отправлено: 2530 от 13/06/2013 16:45:02
Пробовал скомпилировать проект. Получил 37 ошибок из разных уголков проекта с одинаковым текстом:
"error C1083: Не удается открыть файл включение: lauxlib.h: No such file or directory   e:\games\westwood\unimod-master\stdafx.h"

и 37 предупреждений формата "небезопасный код".
Что я делаю не так?

Проект собирался под Microsoft Visual Studio 2010 Ultimate
Название: UniMod: Исходники
Отправлено: Evengard от 13/06/2013 17:08:00
Попробуй поставить "Generate Precompiled Header" в настройках проекта.

Предупреждения игнорь, никто не заботился сильно о безопасных функциях))
Название: UniMod: Исходники
Отправлено: 2530 от 13/06/2013 19:39:59
Я не совсем понял, что искать, однако проблему исправил добавлением нужных путей в проект. Но появилась другая проблема:
"error LNK1104: не удается открыть файл "Libs\lpng151\projects\visualc71\Win32_LIB_Release\libpng.lib" "

Я посмотрел путь - там нет этого файла в принципе. Что делать?
Название: UniMod: Исходники
Отправлено: Evengard от 13/06/2013 20:29:18
Скомпилировать проект libpng - файл появится
Название: UniMod: Исходники
Отправлено: 2530 от 16/06/2013 14:17:18
Пробовал компилировать lib файл - он не создаётся!
Название: UniMod: Исходники
Отправлено: Evengard от 16/06/2013 20:36:10
Вообще странно что у тебя проблемы, там солюшн создан так чтоб всё сразу подхватилось

После компиляции сделай поиск по файлу и перемести его в ту папку
Название: UniMod: Исходники
Отправлено: 2530 от 16/06/2013 21:16:08
Попробую сделать.
Название: UniMod: Исходники
Отправлено: Dio от 17/06/2013 10:08:41
Ничего странного, я же делал рефакторинг. А вообще, все нормально собиралось только на Visual Studio Express 2010.
Название: Составление говорилок из многих частей.
Отправлено: 2530 от 09/09/2013 15:16:42
Исходники кстати открыты, можешь добавлять что хочешь. Думаю все (кому интересно) будут только за.
Я его уже 2 месяца не могу скомпилировать (притом, что ничего не добавлял). Ошибка на ошибке в проекте.
Часть ошибок была убрана путём чистки References путей от строк типа: "C:\Users\Evengard\lua-5.1.4\..." и изменении относительных путей на абсолютные.
Название: UniMod: Исходники
Отправлено: Dio от 09/09/2013 16:49:43
Отфоркал себе проект, дабы поменять файл (svn нет, но на гитхабе можно и с коленки менять) "UniMod2.vcxproj". Попробуй скачать с моего форка (https://github.com/Darkclainer/UniMod/tree/Refactoring) и с ним собрать.
Название: UniMod: Исходники
Отправлено: 2530 от 24/01/2014 13:03:45
Ураа! Я смог скомпилировать библиотеку! Твоя правка сработала, Dio. Вот только ты пропустил один инклуд в libVer.cpp.
Файл выкладываю в приложении.
Название: UniMod: Исходники
Отправлено: Dio от 24/01/2014 21:58:06
По прежнему проверить ещё не скоро смогу... Добавил инклуд. Спасибо.
Название: UniMod: Исходники
Отправлено: Dio от 05/05/2014 13:08:09
Вообщем на меня морально давили около месяца, косвенно заставляя вернуть утраченный секрет (собрать UniMod)...
Оказывается в проекте лежащем на гитхабе есть косяки, и в коде, и не в коде, да и ещё время набежало.

Результаты исследования:
1. Если у вас стоит .Net Fraemwork > 4.0 (то есть 4.5), то удаляйте его, ставьте версию ниже. Почему то с ним не работает инкрементная компиляция.
2. Странным образом, к проекту прилеплена lua51static_mt.lib, собственно она не нужна, потому что луа собирается отдельно в lua.lib. (см. пункт 4)
3. в libVer.cpp была ошибка (какие-то магические, непонятные вычисления адреса функции инициализации).
4. Все проекты (zlib, libpng, lua) должны собираться с одной рантайм библиотекой (внезапно).

Высылаю фикс, насколько рабочий протестировать не могу, но у меня собирается с ним.
Скорее всего всем проектам придется вручную проставить райнтайм библиотеку (Настройки->c++->кодогенерация), так как хз в каких файлах какая инфа.
Название: UniMod: Исходники
Отправлено: TheSim от 04/06/2014 19:04:35
Накатил бы фикс уж сразу в транк.
Название: UniMod: Исходники
Отправлено: Dio от 05/06/2014 21:56:57
Самое главное упущение - все Nox-вые объекты в луа представляются как обычные значения. По хорошему, да, надо делать объектную модель, причем она должна сама реагировать на события в Nox-e, хотя бы на уничтожения юнита.
Хорошо бы организовать и события реакции и объекты так, что бы можно было использовать фишку луа с глобальными средами. То есть в идеале, код карты должен выполнятся в своей среде (не потоке), что бы ничего ему не мешало, и он никому не мешал.
Ну опять-таки, продумать реакции.
Первое что бросается в голову, и что, по-моему, мешает стать UniMod-y общеиспользуемым.