А там случайно нету галочки, то то типа "поддержка многопоточности". Чтоб цыва многоядерники эффективно использовала?
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
<div class='quotetop'>Цитата(Хальк Юсдаль * 4.9.2009, 21:13) [snapback]305508[/snapback]</div>В принципе можно и CvGameCoreDLL.rc скомпилить...9. Далее удаляем в основном окне программы, Workspace/CvGameCoreDLL/Resources/CvGameCoreDLL.rc - Выбираем "Remove from project".
[/b]
Для этого нужно в папку Bin тулкита закинуть две программки:
[attachmentid=6391] собственно для компиляции ресурсных файлов (из Microsoft Platform SDK for Windows Server 2003 R2) и
[attachmentid=6392] для конвертирования скомпилированного ресурса в COFF формат (из Microsoft Visual Studio 2008 подошёл).
<div class='quotetop'>Цитата(Morrolan * 20.3.2010, 17:27) [snapback]329378[/snapback]</div>А для чего он нужен?В принципе можно и CvGameCoreDLL.rc скомпилить...[/b]
И для чего, помимо стандартного ДЛЛ, нужны еще 3 файла, которые находятся с ним в одной папке?
Если новые технологии позволяют обходится без услуг простых людей - это прогресс, а если новые технологии позволяют обходится без услуг миллионеров и крупных компаний - это нарушение авторских прав.
Мой мод
Доброе.
при попытке скомпилить стандартный длл выдаёт ошибку:
"fatal error C1083: Cannot open inсludе file: 'CvEventReporter.h': No such file or directory"
вопрос снят, у меня его почему-то не было в исходнике.
<div class='quotetop'>Цитата(Graf_Sot * 4.5.2010, 11:19) [snapback]335042[/snapback]</div>Не понял. Graf_Sot, ты что ли тоже бот?Доброе.
при попытке скомпилить стандартный длл выдаёт ошибку:
"fatal error C1083: Cannot open inсludе file: 'CvEventReporter.h': No such file or directory"
вопрос снят, у меня его почему-то не было в исходнике. [/b]
Разумеется, это непохоже на беспорядочные, неорганизованные выборы у древних, когда – смешно сказать – даже неизвестен был заранее самый результат выборов.
Строить государство на совершенно неучитываемых случайностях, вслепую – что может быть бессмысленней?
И вот всё же, оказывается, нужны были века, чтобы понять это.
© Александр Григорьевич Лукашенко (первый Благодетель Единого Государства выбранный единогласно на безальтернативной основе)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Вы знаете, мне честно говоря, уже задолбало читать все это - тут нет ничего умного.
Найдитесь, хоть кто нибудь разумный и о разумном начните разговор. © Vigo
<div class='quotetop'>Цитата(vfilatov * 19.7.2010, 20:51) [snapback]342537[/snapback]</div>SDK находится в папке CvGameCoreDLL в игреКакая версия SDK является последней и совместимой с последней версией BTS? В сети находится только старый SDK для версии 1.61, выложенный в 2006-м году.
[/b]
Как компилировать SDK версия два.
Пересказ статьи от Asaf'а, По всем возникающим вопросам просьба вначале перейти по этой ссылке, а уже потом спрашивать здесь.
Эта статья чисто о том как установить необходимое для работы с SDK 4 Цивилизации. Как редактировать сам код смотрите в учебниках по C++ и в статье Xienwolf'а - An Idiots Guide to Editing the DLL. Добавлю от себя, как пересказчика, вот это руководство читать надо обязательно. Во первых вам потребуется архиватор, что это такое сами знаете. Во вторых то что будет дальше, то и во вторых. Ах да, интернет ещё потребуется, но если вы читаете этот текст, у вас он скорее всего и так имеется.
Шаг I. Как мне прострелили голову во Вьетнаме.
Скачиваем и устанавливаем программу Microsoft Visual C++ 2008 Express. Спасибо доброму человеку с ником embryodead, что залил её. Можно пользоваться и версией 2010, то тогда читайте дополнение к инструкции.
Можно ставить и оффлайн, без закачки программы с интернета, но как это сделать читайте оригинальную статью. По ссылке выше, если что идет онлайн-установщик, хотя сама программа много не весит, так что не обращайте внимания.
P.S. Ах да, совсем забыл. Эта штука имеет триальную версию в 30-ть дней, и чтобы использовать её дальше надо зарегистрироваться, это бесплатно и вроде как неограниченно.
Шаг II. Ехала рефлексия через рекурсию в реинкарнацию.
Скачиваем Microsoft Visual C++ Toolkit 2003 и распаковываем куда вам удобно, главное чтобы не забыли куда и место было надежное, из тех где можно долго держать программы. Файл где-то 5 МБ, распаковывается на ~32 МБ.
Шаг III. Курочка уже скоро.
Скачиваем Windows Platform SDK и распаковываем её куда удобнее, главное не забыть куда. Файл 10 МБ, распаковывается примерно на 110 МБ.
Шаг IV. Поцык сын Марисы.
Скачать архив с проектом и makefile, и распаковать его в ту папку которую собираетесь сделать рабочей. Желательно сделать это там куда легко добраться. Распаковка создаст папку CvGameCoreDLL. Например у меня D:\CvGameCoreDLL.
Шаг V. Милый Максим и Британская Империя.
Отредактировать makefile. Открываете его блокнотом и правите. Указываете где у вас что лежит из скачанного ранее, ну и где там сама игра.
А ещё там есть одна строчка, исправив и раскомментив которую, можно включить автокопирование нового dll в папку с вашим модом.Код:#### Paths #### TOOLKIT=C:\Dev\Microsoft Visual C++ Toolkit 2003 PSDK=C:\Dev\WindowsSDK CIVINSTALL=D:\games\Civilization IV\Beyond the Sword
Шаг VI. Мы не рабы, рабы не мы.Код:## Uncomment to have newly compiled dlls copied to your mod's Assets directory #YOURMOD=$(CIVINSTALL)\Mods\MyMod
Добавить исходные коды.
Берете архив BTS 3.19 source files и распаковываете содержимое в вашу рабочую папку CvGameCoreDLL. Туда где у вас лежит makefile, чтобы все эти файлики .cpp и .h лежали рядом.
Можете также взять их из папки с BTS. Но проще скачать архив выше. Если хотите использовать в качестве основы другой мод, например RevDCM, скопируйте его .cpp и .h файлы в рабочую папку с заменой.
Но помните, если потом вы решите добавить ещё один мод, вам придется вручную совмещать файлы при помощи WinMerge. И да, напоминаю что makefile для RevDCM потребуется немного другой. Вот например мой. Если решите делать мод на основе RevDCM проще воспользоваться этим.
Шаг VII. Бессмертный наркоман.
Можете начинать компилировать. Запускаете Microsoft Visual C++ 2008 Express, открываете файл CvGameCoreDLL.sln и выбираете в панельке вверху Release, там ещё Win32 рядом стоит. Если выбрать вместо Release - Debag, будет создана специальная версия dll, которая больше и медлительнее, но которую можно следить прямо во время игры. Как это сделать напишу в следующем посте.
Понятно
У меня есть ещё вопрос. Куда компилируется новый файл dll. Я его так и не нашёл, после того, как скомпилировал.
Внутри папки CvGameCoreDLL есть папка Release, именно там он и лежит.
Так с обещанием пересказа статьи о дебаггинга я немного погорячился, там моего уровня маловато будет, поэтому перескажу что сам понял и чем уже пользовался. Вчера например несколько багов исправил с функцией, что модифицировал перед этим. Оригинал можно найти в моем пересказе выше, о компиляции. Там следующее сообщение дебаггингу посвящено.
Во первых в VS2008, в свойствах проекта выбираем не Release, а Debug. Ну как на картинке, что я сейчас добавлю.
Вот добавил пример.
И начинаем компилировать. Полученный dll будет больше и медленнее, у меня он занял 16 МБ и лежать в подпапке Debug. Его я поместил в папку Assets моего мода, с заменой, как и обычный dll. Заодно включил в настройках самой цивы одну штуку, это в её файле CivilizationIV.ini что лежит в Документах - My Games\Beyond The Sword.
Это чтобы дампы делались в случае вылета.
Что с ними делать, есть в этой теме.Код:; Create a dump file if the application crashes GenerateCrashDumps = 1
Ещё рекомендуется запускать игру в окне, чтобы проще переключаться было.
Далее запускаем свой мод. В VS2008 в меню Debug находим Attach to Process, и в списке запущенных процессов находим Civ4BeyondSword.exe или как уж он там будет. Выбираем его, жмем Attach и переключаемся обратно на игру. Играем до бага, а лучше включаем автоплей ходов этак на 150, сворачиваем циву и занимаемся своими делами. Когда игра вылетит VS2008 сама остановится на функции что привела к вылету и можно будет просмотреть что за переменные виноваты.Код:; Specify whether to play in fullscreen mode 0/1/ask FullScreen = 0
После правим свой код, что вызывает ошибки и перекомпилируем. Если вылеты продолжаются, думаем и повторяем.
Ещё в Debug-режиме игра может выдавать всякие FAssertMsg, это специальные проверки в коде, на случай если какие переменные принимают недопустимые значения. Это полезно, но зачастую то, что он выдает можно не трогать, если и так работает, вроде RevDCM и лезть смотреть только если мешает игре.
Вообще вообще этот самый Debug позволяет кучу возможностей, вроде запуска игры прямо в VS2008 для её отладки, или установки в коде специальных breakpoint, которые точки остановки. На которых игра будет сама останавливаться и можно будет просмотреть значение переменных. Но это я опишу после, когда я свой уровень подниму до правильного их использования.
Всё понятно. Хорошо, что кто-то занялся изучением SDK. Спасибо за помощь.