Немного о программировании и правилах русского языка
Вся загвоздка с переводом возникает тогда, когда мы пытаемся совместить то, что написано на языке Срр с русским языком. Если в учебниках переводить фразу setFeatureType - как "определить свойство тайла", то мало кто поймет, о чем идет речь. Потом у тайла (Plot - в СДК) - уже есть свойства. Причем эти свойства немножечко хитренькие. и описываются они в перечислении TERRAIN. B SDK у них (у этих свойств) есть отдельные функции для работы с ними. (getTerrainType(), setTerrainType()). В Срр - что, TERRAIN, что FEATURE, что Plot - это отдельные классы - описывающие свои типы объектов. А слово set - тоже имеет для программирования свой смысл. Его обычно переводят как "Установить"(т.е. изменить значение). get - для программирования - это получить(посмотреть значение). Тогда что же получается ?
setFeatureType - мы должны перевести как "установить свойство тайла" ??????? А свойства тайла (Plot) - устанавливается другими функциями...
Если рассматривать ТАЙЛ - с точки зрения игры (и с точки зрения программирования, а не перевода), то получается, что тайл - это нечто большее, чем Plot - а именно - тайл включает в себя свойства классов Plot, Terrain, Feature, Improvement, Message (Может что то и упустил)...
Вот и получается, что Plot, Terrain, Feature ... - это независимые объекты (для программирования)...
И, наверное, когда ты точно хочешь сказать о чем идет речь, приходится обзывать эти объекты теми именами, которые они имеют. А чтобы не переключаться каждый раз с русского на английский - ты пишешь эти имена в русской транскрипции...
З.Ы. Plot - смысл этого слова в Циве - это скорее "фундамент" участка местности. CvPlot - работает с такими понятиями, как:
0. Океан (самая низкая точка местности)
1. Побережье ? (1 уровень)
2. Холм (2 уровень)
3. Пик (3 уровень).
А уже на все это накладываются терайны, феатуры, импровементы, города, бонусы, урожаи (и т.д.) (Что уже и будет, в совокупности, обзываться тайлом)
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
<div class='quotetop'>Цитата("Blacksun")</div>Иначе говоря, вся загвоздка с переводом возникает тогда, когда мы пытаемся переводить.Вся загвоздка с переводом возникает тогда, когда мы пытаемся совместить то, что написано на языке Срр с русским языком.[/b]
Я сам долго не мог понять примерно того же: как не старайся переводить, все равно смысл текста с одного языка на другой перенести не удается. Это просто бесит, чувствуешь себя законченным кретином и мучаешься: почему?! Причем, как мне кажется, этому процессу подвержены в основном мужчины – левополушарные особи
Такая загвоздка, как выясняется, может возникнуть только в одном случае: когда на языке на самом-то деле и не написано ничего. Ни на каком. Переводить просто нечего! И вы сами это только что показали: в переводимом тексте нет ничего, кроме его структуры. А структуру перевести нельзя – это будет уже другая структура. По этой причине люди даже думают на разных языках по разному.
P.S. Я тут где-то видел ваш пост, где повторяется рефрен: "Но это тоже все знают... и молчат". Сознательно или не сознательно, но суть того, что вы хотели сказать, вы там во многом доносите именно этим повторением - т.е. этой очевидной особенностью структуры.
Переводить - все равно приходится. Сначала с английского на русский,с попыткой понять, о чем идет речь. Затем на язык машины... Как я говорил раньше - в названиях функций используется венгерская нотация, то есть программист, который пишет прогу, пытается в названии функции дать ответ о том, что делает эта функция. (Ну плюс еще ее тип и еще что то, что не помню). А когда этих функций очень много - то приходится "понимать" о чем речь не по кодам, которые написаны в этих функциях, а по их названию. Так что от преревода никуда не денешься. И еще - желательно, что бы перевод был правильным...
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Сегодня (днем) я выложу мод для Варлордов (сначала протестирую - ночью). Он включает в себя:
1. Посадка леса
2. Преобразование местности
3. пп. 1 и 2 для AI рабочего
4. Введен новый юнит - полицейский с дубинкой. (Очень класно разгоняет пацифистов, которые устали от войны...)
К сожалению все пока на Англицком.
МОД ДЛЯ ВАРЛОРДОВ
Качайте...
З.Ы. Теперь можно запускать и 50 наций...
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Итак. Пока все время ушло на строительство мостов (там еще надо заставить АИ по ним передвигаться). Поэтому новых статей по СДК не было. Если у кого есть какие то вопросы по СДК или предложения - Пишите - не стесняйтесь. Следующая статья будет (если не поступят другие предложения) про полицейского и про то, как он машет дубинкой и вообще, что он еще может сделать - если это захочет сделать программер...
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Есть пару вопросов:
1. Можно ли сделать, такую вещь, как "волчья яма" (яма, в нутрь которой вбиты колья и сма яма спрятана листьями)? Т.е. враг пападает на клетку с ямой и умирает (яма убивает любого юнита и пропадает на следующем ходу)
2. Можно ли сделать так, чтобы стены можно было бы строить, не вокруг города, а на любой территории своей империи? Т.е. делать не просто замки, а огромные цитадели...
Через гитару можно много фишек в музыке узнать... Ну если попсу конешно не играть... (Гы рифма)
Раз-два с рифмой я дружу
Глобальный мод Civilization IV: Warlords: Средневековье
Глобальный мод Civilization IV: Современный мир (Все части)
Мод Civilization V: Цивилизация Украина
Сделать это можно. Но только все будет делаться через IMPROVEMENT - а это значит, что больше никаких улучшений ты на тайле не построишь. Ну а рисовать всевозможные направления стен ты, наверное, умеешь (в т.ч. и волчьи ямы).
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Ясны... Ну, графическую сторону, сделать смогу...
Через гитару можно много фишек в музыке узнать... Ну если попсу конешно не играть... (Гы рифма)
Раз-два с рифмой я дружу
Глобальный мод Civilization IV: Warlords: Средневековье
Глобальный мод Civilization IV: Современный мир (Все части)
Мод Civilization V: Цивилизация Украина
Blacksun, у меня как раз есть предложение. Если будет возможность, опиши подробно сам процесс компиляции. Что для этого нужно, какие программы. И желательно какой нибудь простой пример (увеличение числа игроков). Ведь для того чтобы просто изменить какой то параметр в SDK, необязательно быть специалистом по C++. А если желающие поймут, как это сделать технически, может у них потом и к собственно программированию SDK интерес появится.
<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 нациями…)
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Blacksun, большое спасибо!В ближайшее время попробую что нибудь простое скомпилировать самостоятельно. Осталось только выяснить, где взять эту VS2003. Это большая махина? надо диск покупать или скачать можно?
А с "простотой" изменения числа игроков я видать промахнулся. Думал, просто поменять число (18-24) в одном месте и все.
PS. У меня есть подозрение, что SDK-моддеры решают проблему увеличения числа игроков по разному. Скачал два варианта dll, в которых заявлено только увеличение числа игроков, а размер у них весьма разнится. Надо будет поинтересоваться.
Эта "махина" весит 3,5 гБ. Купил я ее на царицынском рынке. (DVD диск) (один). Но в основном сейчас продается 2005 студия - так что еще поискать придется 2003. А скачать можно. (Ты сам где то ссылку кидал на форум ихфанатиков). По мому бесплатно. (если не считать, что придется качать где то метров 400).
З.Ы. Размеры у них могут разниться. (если компилируешь через VS2003, то размер библиотеки будет как и в Циве, а если компилируешь через CodeBlocks, (по рецепту ихфанатиков), то размер увеличивается (с 3,53 в ваниле до 3,67 мб)
А вот и ссылочка - где НМ описывал, как можно получить VS 2003
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
Ну вот ссылка с описанием процесса с их-фанатиков: http://forums.civfanatics.com/showthread.php?t=166933
Там предлагается скачать за основу VC++ Toolkit 2003 - всего 30m. Это все таки поменьше 3,5Г.Или это чего то не то?
PS. А царицынский рынок разве еще не перебросили на мкад?
<div class='quotetop'>Цитата(NeverMind * 22.8.2006, 13:27) [snapback]116989[/snapback]</div>Ага 30м - это только установочный файл, а потом он через майкрософт начинает кидать все остальное...Ну вот ссылка с описанием процесса с их-фанатиков: http://forums.civfanatics.com/showthread.php?t=166933
Там предлагается скачать за основу VC++ Toolkit 2003 - всего 30m. Это все таки поменьше 3,5Г.Или это чего то не то?
PS. А царицынский рынок разве еще не перебросили на мкад?
[/b]
(а на Царицынском рынке я был где то в июне.)
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008
<div class='quotetop'>Цитата(bay * 7.11.2006, 16:48) [snapback]135713[/snapback]</div>Это логично. Исправляют ошибки. А что в этом плохого?мдя все хорошо но SDK меняется от патча к патчу
[/b]
С пола не упасть!
http://img444.imageshack.us/img444/7241/samogonxg0.png
<div class='quotetop'>Цитата</div>Blacksun, в 208 по прежнему нельзя напрямую менять MAX_CIV_PLAYERS?Раз нельзя изменить MAX_CIV_PLAYERS – я его менять и не стал. Я просто ввел новую переменную…. :
#define MAX_WAR_PLAYERS (50)[/b]
И еще вопрос, для общего развития. На их-фанатиках попадалась .dll тоже увеличивающая только число игроков, но размером 5м. Откуда может взяться такой размер? Это нормально?
<div class='quotetop'>Цитата(NeverMind * 15.11.2006, 13:01) [snapback]138204[/snapback]</div><div class='quotetop'>ЦитатаBlacksun, в 208 по прежнему нельзя напрямую менять MAX_CIV_PLAYERS?Раз нельзя изменить MAX_CIV_PLAYERS – я его менять и не стал. Я просто ввел новую переменную…. :
#define MAX_WAR_PLAYERS (50)[/b]
И еще вопрос, для общего развития. На их-фанатиках попадалась .dll тоже увеличивающая только число игроков, но размером 5м. Откуда может взяться такой размер? Это нормально?
[/b][/quote]
В 2.08 - MAX_CIV_PLAYERS - меняется напрямую (я уже об этом где то говорил). От 3,67 до 5 Мб это что то из области фантастики... Хотя если компилировать с различными ключами (ну, там оптимизацию выключить...) Размер увеличится, но не настолько... Значит там еще чего то дописано...![]()
Программирование - это не то, что ты думаешь.... - Это то, что думает о тебе компьютер.
http://blacksun.civfanatics.ru
-------------------------------------------------
MTDG2 - [civ]christianity[/civ]Монархия
---------------------------------
Председатель CFR Awards 2007
---------------------------------
Председатель CFR Awards 2008