<div align="right">Мы, программисты, народ рассеянный
- мы всегда забываем про то, что что то,
для нас может быть легко,
- для других может являться целой проблемой</div>
<div align="center">Установка и работа с Visual Studio Net 2003.</div>
Первая проблема у меня возникла при установке VS 2003. Я ее попытался поставить в другую директорию, не ту что указана в установке. В результате – загнал систему Windows и мне ее просто пришлось переустанавливать. (Все такие вещи происходят от большого ума.). Так что если не хотите повторить моих ошибок – устанавливайте VS 2003 туда – куда она просит.
Вторая проблема возникла уже при установке. На каком то определенном этапе (Место выяснить не удалось, потому что каждый раз – это происходило в разных местах) – отключался CD (и DVD) – То есть возникала ошибка типа – не могу прочитать файл… (Все устройства просто отрубались – на определенном этапе установки системы). Возможно – это глюк взламывания кода (не до конца поломали). Но лечится это просто. Запускаешь Alcohol 120% - Переписываешь диск с системой VS 2003 и спокойно ее устанавливаешь…(Через виртуальный CD_ROM). После установки VS 2003 (не забудьте установить также и библиотеку MSN 2004), можно спокойно приступать к компиляции СДК Цивилизации 4 и Варлордов.
СДК Цивилизации 4 (ванилы) лежит сдесь. СДК Варлордов – поставляется вместе с Варлордами. Так что если после установки Варлордов вы не обнаружили папки CvGameCoreDll – в директории игры (CivilizationIV\Warlords) – то знайте – вас дико обманули…(В крайнем случае СДК можно будет спросить на форуме…).
Лучше всего эту папку (CvGameCoreDll) поместить в корень и вложить ее еще в одну папку (например MyGames\CvGameCoreDll). Это делается для того , чтобы папка Assets создавалась в директории MyGames, а не в корне. Тогда вы точно будете знать – какую библиотеку вы создали. Потому, что она будет находиться (после компиляции) в папке MyGames\Assets.
Может вы захотите иметь несколько разных библиотек (или вам придется иметь несколько разных библиотек CvGameCoreDll.dll) (Две то точно – одна искомая, другая отладочная – в которую вы будете вносить все изменения).
После установки VS 2003 и СДК вам надо будет в папке с СДК (CvGameCoreDll) снять со всех файлов признак – «Только для чтения». Делается это просто – наводите курсор мыши на папку CvGameCoreDll , затем нажимаете правую кнопку мыши (обратную клавишу) и заходите в меню «Свойства». В самом низу снимаете галочку «Только для чтения» и нажимаете кнопочку «Применить» (на вопрос – «Сделать это для всех вложенных папок» - надо ответить «Да – для всех». После этого вы можете смело приступать к редактированию СДК.
После Установки VS 2003 все файлы срр у вас будут отмечены синим значком С: Файлы описания – h, а файл проекта будет отмечен двумя желтыми плюсами. Вот на этот файл вы и кликните мышкой. После этого у вас запустится VS 2003 c СДК.
Справа (или слева) У вас откроется окно (3 в одном) – Solution explorer, class view, resource view. В первом окне вы сможете выбирать файлы для редактирования, во втором вы сможете просматривать все имеющиеся классы СДК, третье окно для СДК – не используется, потому что все ресурсы зашиты в движке игры, а не в библиотеке.
Для того, чтобы получить полноценную библиотеку, вам надо зайти в меню Project -> CvGameCoreDll Properties… и, с помощью кнопки configuration manager… изменить свойство Debug на final release (Будьте внимательны, там это надо сделать 2 раза). Тогда, при компиляции, в папке MyGames\Assets у вас появится файл CvGameCoreDll.dll. Этот файл можно скинуть в директорию CivilizationIV\Mods\MyMod\Asssets или CivilizationIV\Warlords\Mods\MyMod\Asssets – в зависимости от того, с каким СДК вы работали. (Варлордов или ванилы)
<div align="center">ПРИМЕР РАБОТЫ С СДК.</div>
Newer Mind – попросил меня описать, как сделать любое количество наций в игре. Честно скажу – это не для новичков, которые пытаются что то сделать в СДК, потому что Фираксисы конечно сняли это ограничение в Варлордах, но сделали это очень своеобразно. Для того чтобы добраться и посмотреть, как сделано это ограничение – вам нужно открыть файл CvDefines.h (через окно Solution explorer). Там вы сразу увидите предупрежление:
<div class='quotetop'>Цитата</div>То бишь – не стоит изменять эти определения. Честно скажу – некоторые определения изменить можно, но если вы будете изменять MAX_CIV_PLAYERS, то скомпилировать СДК – вам не удастся, т.к. будет все время выскакивать ошибка, что эта константа уже определена… (она определена в движке). Я человек простой, и не люблю ошибаться, поэтому не стал долбиться в эту стену лбом, я просто ее обошел.// The following #defines should not be moddable...
[/b]
Раз нельзя изменить MAX_CIV_PLAYERS – я его менять и не стал. Я просто ввел новую переменную…. :
#define MAX_WAR_PLAYERS (50)
И поменял MAX_CIV_PLAYERS на MAX_WAR_PLAYERS во всех файлах СДК (это можно сделать с помощью меню: Edit->Find and Replase -> Find in files. Только будьте осторожны. Определение define заменяет MAX_WAR_PLAYERS на 50 – везде, где эта константа встречается, а есть места – где нельзя заменить MAX_CIV_PLAYERS на MAX_WAR_PLAYERS. Это нельзя сделать там , где MAX_CIV_PLAYERS является частью имени функции:
Потому что после подстановки MAX_CIV_PLAYERS эта строка будет читаться так:Код:DllExport int getMAX_CIV_PLAYERS();
А, если вы сюда подставите MAX_WAR_PLAYERS, то ваша строка превратится в:Код:DllExport int get18();
Но если функция get18() – описана в движке, то описания функции get50 (); там нет точно.Код:DllExport int get50();
После этого вы смело можете компилировать – уже свое СДК. Заходите в меню Build->Build Solution (первый раз лучше Rebuild Solution) и создаете свою библиотеку. При компиляции у вас будет одно предупреждение. Не пугайтесь, это не ошибка – это просто не состыковка Windows и VS 2003 (вернее там все уже давно состыковано, но компилятор об этом еще не знает (он старый). Далее можно поместить свою библиотеку в директорию модов и начинать спокойно играть… (в данном случае с 50 нациями…)





Ответить с цитированием