Бесспорно, SDK очень необходимая вещь при создании мода. Но тут есть один подводный камень, скорее даже целая скала. Это умение программировать. Поэтому я считаю создание данной темы крайне необходимым. Дабы поделиться с вами своим скромным опытом в данной сфере, я написал маленький тутор. Надеюсь он поможет многим сделать СВОЙ ВЕЛИКИЙ ( и могущественный :smile2: ) МОД.
Скачать SDK можно здесь
http://www.playground.ru/files/743/ весит бадяга 6,6 mb.
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Итак, начнем! Предпологается, что wolf_source уже скачан и установлен. Также, как воздух, крайне необходимо наличие Microsoft Visual C++. У меня, к примеру, вообще стоит 5-ая версия (ужасно древняя), но и этого достаточно.
В wolf_source находятся две папки: SP и MP. Это соответственно исходники для Singleplayer и Multiplayer. Рассматривать будем мод под Singleplayer. Далее заходим в папку src, а оттуда в game. Там лежит жуткое количество файлов с расширениями .c и .h. Но нам нужен game.dsw. Это файл-проект для qagamex86.dll.
В Microsoft Visual C++ выбираем пункт меню Build->Set Active Configuration, там указываем game - Win32 Release. Теперь всё готово для создания мода.
Слева в браузере жмем FileView и в папке game files -> Source Files находим и открываем файл g_weapon.c. Теперь перейдем к сточке 543, нажав сочерание Ctrl+G и введя номер строки. Тут у нас находится конструкция switch:
------------------------------------------------------------------
Код:
int G_GetWeaponDamage( int weapon ) {
if( g_gametype.integer == GT_SINGLE_PLAYER ) {
switch (weapon) {
case WP_LUGER:
case WP_SILENCER: return 0;
case WP_COLT: return 200;
case WP_AKIMBO: return 8; //----(SA) added
case WP_VENOM: return 12; // 15 ----(SA) slight modify for DM
case WP_MP40: return 6;
case WP_THOMPSON: return 8;
case WP_STEN: return 10;
case WP_FG42SCOPE:
case WP_FG42: return 15;
case WP_MAUSER: return 20;
case WP_GARAND: return 25;
case WP_SNIPERRIFLE: return 55;
case WP_SNOOPERSCOPE: return 25;
case WP_NONE: return 0;
case WP_KNIFE: return 300;
case WP_GRENADE_LAUNCHER: return 100;
case WP_GRENADE_PINEAPPLE: return 80;
case WP_DYNAMITE: return 400;
case WP_PANZERFAUST: return 200; // (SA) was 100
case WP_MORTAR: return 100;
case WP_FLAMETHROWER: // FIXME -- not used in single player yet
case WP_TESLA:
case WP_GAUNTLET:
case WP_SNIPER:
default: return 1;
}
}
и т.д.
-----------------------------------------------------------------------------------------------------------
Давайте разберем этот код. Здесь каждому выбраному оружию WP_оружие присваивается ( более грамотно - возвращается) значение наносимого им урона с помощью оператора return. К примеру, у кольта я поставил значение 200 ( как у панзерфауста), результат - убивает с одного выстрела, а у люгера поставил 0 и тот теперь не наносит вреда. Аналогично в блоке (методе класса weapon)
float G_GetWeaponSpread( int weapon ) (строка 613) можно изменить скорострельность.
Теперь жмем Build->Build qagamex86.dll или просто F7. После успешной (я надеюсь) компиляции в Wolf_Source\SP\SP_source\src\Release дожна появиться qagamex86.dll, которой заменяем оригинальную. И кстати, не забывайте делать резервные копии.
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Ну, вот и всё! Кстати советую почитат статью из журнала Xakep, номер #057, стр. 057-088-2. Найти оную можно на
http://megalib.com/books/82/088/1.htm