Суббота, 22.07.2017, 23:39
Приветствую Вас Guest | RSS
Главная страница | Статьи | Регистрация | Вход
Меню сайта

Случайный рисунок

Категории каталога
Туториалы по маппингу (HL2) [68]
Туториалы по маппингу для Half-Life
Туториалы по текстурированию (HL2) [10]
Туторы по текстурированию для Half-Life
Туториалы по моделированию (HL2) [9]
Туторы по моделированию для Half-Life
Туториалы по программированию (HL2) [53]
Туторы по прагроммированию для Half-life
Другие туториалы (HL1 и HL2) [4]
Туторы которые не вошли в другие категории
Half-Life 2 Beta [1]
Статьи о npc и weapon в бете Half-Life 2, а так же мануалы и FAQ.
Туториалы по маппингу (HL1) [14]
Туторы по маппингу для Half-Life 1
Туториалы по текстурированию (HL1) [1]
Туторы по текстурированию для Half-Life 1
Туториалы по моделированию (HL1) [1]
Туторы по моделированию для Half-Life 1
Туториалы по программированию (HL1) [30]
Туторы по программированию для Half-Life 1

Наш опрос
Оцените мой сайт
Всего ответов: 618

Начало » Статьи » Туториалы по программированию (HL2)

Клонирование оружия в HL2
Начнём.Клонировать будем пистолет.Это самое простое.=)
Открываем Visual Studio и запускаем любой из solution'ов(Game-2003.sln или Game-2005.sln).
___________________
| |
| Cерверная часть |
|__________________|

Теперь, когда перед нами тонны файлов, мы идём в серверную часть проэкта(server_hl2).Тут мы находим папку HL2 DLL.

_______________________________________________________________________________________________________
Влезаем в неё и ищем файл weapon_pistol.cpp.Когда находим открываем.

_______________________________________________________________________________________________________
Копируем весь код.
Теперь ищем папку HL2 DLL, правой кнопкой мыши жмём на ней и выбираем Add New Item.

_______________________________________________________________________________________________________
Вылезет окошко, где вам надо будет выбрать тип файла, название и куда запихивать.В строке Name должно быть название, в строке Location - место, где будет лежать файл.Ну и тип файла - C++ File(.cpp)Называйте ваше чудо как хотите, но выглядеть оно должно так - weapon_<название пушки>.Я создам desert eagle, надеюсь никто не возражает?=))

_______________________________________________________________________________________________________
Копируем в новый файлик код пистолета.Время редактирования.Теперь в новом файлике нужно сменить все названия pistol на название вашего оружия.В моём случае это будет - deagle.Менять нужно с учётом регистра написанных слов, тоесть если написано PISTOL то и менять нада на DEAGLE, pistol на deagle, Pistol на Deagle.Менять нужно всё, КРОМЕ(!!!) названий анимации(начинаются на act).Примеры строк - ACT_IDLE_PISTOL.Для того чтобы не рыскать по всему коду слова pistol, делаем так - жмём комбинацию CTRL+F вбиваем слово для поиска(pistol), ставим внизу поиск в Current Document и жмём Find Next.
_______________________________________________________________________________________________________
___________________
| |
| Клиентовская часть |
|__________________|

Теперь, когда все названия изменены, примимся за клиентовскую часть(client_hl2).

Опять же ищем папку HL2 DLL.Находим, открываем.

_______________________________________________________________________________________________________
В HL2 DLL ище файл c_weapon__stubs_hl2.cpp.Открываем.Находим строку
STUB_WEAPON_CLASS( weapon_pistol, WeaponPistol, C_BaseHLCombatWeapon );
Копируем её и вставляем и меняем на:
STUB_WEAPON_CLASS( weapon_<название вашего оружия>, Weapon<название вашего оружия>, C_BaseHLCombatWeapon );

_______________________________________________________________________________________________________
Всё с кодингом мы закончили.Компилируйте проэкт.
____________________
| |
| Написание скрипта |
|___________________|

Теперь идём по адресу, где расположен ваш мод в папке Steam.Например:
C:\Program Files\Valve\Steam\SteamApps\SourceMods\Ваш мод
Заходим в папку scripts.Создаём .txt файл и называем его как вы назвали ваше оружие.Например:
weapon_deagle.txt
Cоздали?Хорошо.Теперь открываем weapon_pistol.txt в папке scripts, копируем весь текст и вставляем в weapon_deagle.txt, с некоторыми изменениями.
Ставим в строке bucket значение 2 - Номер столбца в строке
Ставим в строке bucket_position значение 2 - Номер позиции в столбце
Ну и в строке printname пишем название, которое хоти видеть в игре.

_______________________________________________________________________________________________________

____________________
| |
| Запуск |
|___________________|

Теперь осталось правильно запустить.
Ошибкой будет, если вы сразу полезете в Steam и будете запускать мод от туда.И через ярлычок не нужно.Если вы так запустите, то оружия в игре не обнаружите.В консоли вам выдадут сообщение, что нету такого оружия.Так что делаем по-другому.
Идём в папку с исходниками вашего мода, там где есчо папки:
src
materialsrc
modelsrc
mapsrc

Пример папки:
F:\Scratch Mod

В этой папке вы найдёте 4 batch файла.Нам нужен run_mod.bat .Запускаем его.После того как загрузится ваш мод, загружаем карту и пишем в консоли: give weapon_<название вашего оружия>
Например:
give weapon_deagle
Всё!Оружие у вас.

____________________
| |
| Моделька |
|___________________|

Чтобы желаемая моделька работала с вашим оружием, открываем скрипт вашего оружия(в папке scripts).
Находим строки:
"viewmodel" "models/weapons/v_pistol.mdl"
"playermodel" "models/weapons/w_pistol.mdl"
И меняем их на соответственные названия.

Спасибо за внимание.=)))

Категория: Туториалы по программированию (HL2) | Добавил: Duffman™ (27.06.2007) | Автор: Duffman™
Просмотров: 3212 | Комментарии: 11 | Рейтинг: 5.0 |

Всего комментариев: 111 2 »
11  
Парни, может кто залить скрипт 357 револьвера в студию?

10  
Слушай, спасибо большое за туториал, но когда можно будет запускать мод через Steam????

9  
дайте мне свой solution у меня че то не пашет!!!!!!!!!!!

8  
а у меня че то не то с visual studio 2005 не че не ту ваще не понятно !!!! (((

7  
Можно таким образом клонировать патроны... Я, например, так делал для AlyxGun'а

#define AMMO_NAME_GIVE 20
#define AMMO_NAME_MODEL "models/W_missile.mdl" // УКАЖИТЕ вашу модель для коробочки тут

class CItem_NameAmmo : public CItem
{
public:
DECLARE_CLASS( CItem_NameAmmo, CItem );

void Spawn( void )
{
Precache();
SetModel( AMMO_NAME_MODEL );
BaseClass::Spawn();
}
void Precache( void )
{
engine->PrecacheModel( AMMO_NAME_MODEL );
}
bool MyTouch( CBasePlayer *pPlayer )
{
if ( ITEM_GiveAmmo( pPlayer, AMMO_NAME_GIVE, "Sdes'_nazvanie_patronov_kotoroe_budet_v_scripts" ) )
{
if ( g_pGameRules->ItemShouldRespawn( this ) == GR_ITEM_RESPAWN_NO )
{
UTIL_Remove(this);
}
return true;
}
return false;
}
};
LINK_ENTITY_TO_CLASS( item_ammo_name, CItem_NameAmmo ); // Название инить
LINK_ENTITY_TO_CLASS( item_name_ammo, CItem_NameAmmo ); // Название инить

Вместо name вставляем что нам нужно


6  
А как же строчки со звуком ))) их тожа менять низя. biggrin wacko

5  
если это делать с простым огнестрельным оружием то проблем возникнуть недожно, с более сложным оружием дело обстоит хуже

4  
а можешь выложить как нибудь с кровбаром

3  
Даф, зачот!

2  
Молодец что чайникам показал.
Это истинное значени создания оружия =))

1-10 11-11
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт CrazyArts   Black   Сообщество сайтов о Half-Life   Самый   Только   Все   hl2 top 100     Rambler's Top100  

игры
игры

  Каталог сайтов Планета Топ 100 - Planet Top 100       ТОП ЛУЧШИХ ИГРОВЫХ САЙТОВ           Detroit Team Site :: Моды от Detroit Team, видео, новости.   Naruto-kun[Звезда Наруто]  


The idea of dising: Homie7