Вместе с новым патчем 1 ноября был выложен код DLL.
У меня легло сюда: ...\Steam\SteamApps\common\sid meier's civilization v sdk\CvGameCoreSource\
Пока я только открыл проект (тот что для VS2010) и у меня сразу посыпалось множество ошибок.
Кто-нибудь уже начал работать? Делимся опытом
Есть небольшая инструкция на CFC. Без проблем компилируется на VC++ 2008 Express, игра с кастомной DLL грузится нормально.
Затык происходил в том, что не находил файл unordered_set. В VS2010 он есть, но не подходит для VS2008. Попробовал собрать там. Пошло, но взорвалось вот так:
1> CvLuaPlayer.cpp
1>Lua\CvLuaPlayer.cpp(4288): error C2665: CvLuaMethodWrapper<Derived,InstanceType>::BasicLuaMethod: ни одна из 4 перегрузок не может преобразовать все типы аргументов
1> with
1> [
1> Derived=CvLuaPlayer,
1> InstanceType=CvPlayerAI
1> ]
1> C:\Users\Игорь\Documents\Visual Studio 2008\Projects\CvGameCoreSource\CvGameCoreDLLUtil\include\CvLuaMethodWrapper.h(68): может быть "int CvLuaMethodWrapper<Derived,InstanceType>::BasicLuaMethod<TeamTypes>(lua_State *,ret (__thiscall CvPlayerAI::* )(void) const)"
1> with
1> [
1> Derived=CvLuaPlayer,
1> InstanceType=CvPlayerAI,
1> ret=TeamTypes
1> ]
1> C:\Users\Игорь\Documents\Visual Studio 2008\Projects\CvGameCoreSource\CvGameCoreDLLUtil\include\CvLuaMethodWrapper.h(120): или "int CvLuaMethodWrapper<Derived,InstanceType>::BasicLuaMethod<TeamTypes>(lua_State *,ret (__thiscall CvPlayerAI::* )(void))"
1> with
1> [
1> Derived=CvLuaPlayer,
1> InstanceType=CvPlayerAI,
1> ret=TeamTypes
1> ]
1> C:\Users\Игорь\Documents\Visual Studio 2008\Projects\CvGameCoreSource\CvGameCoreDLLUtil\include\CvLuaMethodWrapper.h(39): или "int CvLuaMethodWrapper<Derived,InstanceType>::BasicLuaMethod(lua_State *,void (__thiscall CvPlayerAI::* )(void) const)"
1> with
1> [
1> Derived=CvLuaPlayer,
1> InstanceType=CvPlayerAI
1> ]
1> C:\Users\Игорь\Documents\Visual Studio 2008\Projects\CvGameCoreSource\CvGameCoreDLLUtil\include\CvLuaMethodWrapper.h(50): или "int CvLuaMethodWrapper<Derived,InstanceType>::BasicLuaMethod(lua_State *,void (__thiscall CvPlayerAI::* )(void))"
1> with
1> [
1> Derived=CvLuaPlayer,
1> InstanceType=CvPlayerAI
1> ]
1> при попытке сопоставить список аргументов "(lua_State *, overloaded-function)"
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Опасно... Смотри, как бы молния не ударила
Итак, информация: мне удалось собрать DLL и даже кое что намодить.
Использовал VC++ 2008 Express Edition SP1. Думаю, проблема была именно в отсутствии SP1 - там реально библиотек добавилось.
Осталось разобраться, как добавить DLL в мод![]()
Сам вот боюсь. Ну цивку я не забрасывал, а отложил. =) Так что может и не жахнет.
Кстати, в игрушке "Warlock: Master of the Arcane" такие смачные модели, но при этом нет возможности модостроения. Двигло там цивовское, кто знает, мож и модельки в цивку не прийдеца переделывать? И как их от туда вытащить?
Через ModBuddy в свойствах файла DLL надо выставить параметр «Import into VFS» на «true».
PS. перевел на русский Инструкция по компиляции DLL для Civilization 5
Сейчас, наконец, появилось время и вроде бы работа пошла, но возник странный вылет, чуть которого не понимаю.
Мб кто помнит, была какая-то программа, которая отлавливала сообщения/ошибки/исключения через запуск EXE и DLL - я точно помню, что использовал ее для моддинга в Civ4....
И еще второй вопрос: при компиляции DLL 29 предупреждений. Это нормально, у всех так?