PDA

Просмотр полной версии : Моддинг DLL



pingvin156
03.11.2012, 15:00
Вместе с новым патчем 1 ноября был выложен код DLL. ^_^
У меня легло сюда: ...\Steam\SteamApps\common\sid meier's civilization v sdk\CvGameCoreSource\

Пока я только открыл проект (тот что для VS2010) и у меня сразу посыпалось множество ошибок.:eek:

Кто-нибудь уже начал работать? Делимся опытом

NeverMind
04.11.2012, 01:21
Есть небольшая инструкция на CFC (http://forums.civfanatics.com/showthread.php?t=479374). Без проблем компилируется на VC++ 2008 Express, игра с кастомной DLL грузится нормально.

pingvin156
04.11.2012, 16:42
О! Спасибо! Буду пробовать!
P.S. С возвращением!!!

pingvin156
05.11.2012, 14:47
Затык происходил в том, что не находил файл 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 ==========

zombie_113
09.11.2012, 11:21
Ухты... оказывацо уже есть код? Крута.
А то я вот не в теме. Вышла просто "Elemental: Fallen Enchantress" и щас не до цивки. =)

Чутка позже посмотрю че там и как.

pingvin156
09.11.2012, 15:51
щас не до цивки. =)
Опасно... Смотри, как бы молния не ударила :D

Итак, информация: мне удалось собрать DLL и даже кое что намодить.
Использовал VC++ 2008 Express Edition SP1. Думаю, проблема была именно в отсутствии SP1 - там реально библиотек добавилось.
Осталось разобраться, как добавить DLL в мод:rolleyes:

zombie_113
12.11.2012, 11:40
Опасно... Смотри, как бы молния не ударила :D

Сам вот боюсь. Ну цивку я не забрасывал, а отложил. =) Так что может и не жахнет.

Кстати, в игрушке "Warlock: Master of the Arcane" такие смачные модели, но при этом нет возможности модостроения. Двигло там цивовское, кто знает, мож и модельки в цивку не прийдеца переделывать? И как их от туда вытащить?

pingvin156
19.11.2012, 19:45
Ребята, помогите, пожалуйста. Мод с ДЛЛ, даже с оригинальным вылетает при попытке стартануть игру. Это бага, или я такой несчастный?..

NeverMind
19.11.2012, 23:04
Ребята, помогите, пожалуйста. Мод с ДЛЛ, даже с оригинальным вылетает при попытке стартануть игру. Это бага, или я такой несчастный?..
Через ModBuddy в свойствах файла DLL надо выставить параметр «Import into VFS» на «true».

PS. перевел на русский Инструкция по компиляции DLL для Civilization 5 (http://civgames.com/4373)

pingvin156
21.11.2012, 21:00
Через ModBuddy в свойствах файла DLL надо выставить параметр «Import into VFS» на «true».

PS. перевел на русский Инструкция по компиляции DLL для Civilization 5 (http://civgames.com/4373)

Да, я так и делаю... Надо будет попробовать пустой мод с оригинальной DLL. Мб дело вовсе не в нем....

pingvin156
09.02.2013, 17:06
Сейчас, наконец, появилось время и вроде бы работа пошла, но возник странный вылет, чуть которого не понимаю.
Мб кто помнит, была какая-то программа, которая отлавливала сообщения/ошибки/исключения через запуск EXE и DLL - я точно помню, что использовал ее для моддинга в Civ4....

И еще второй вопрос: при компиляции DLL 29 предупреждений. Это нормально, у всех так?

pingvin156
09.02.2013, 17:14
Не поверите! Написал и сразу нашел: WinDbg - мб кому понадобится..