Вторник, 15.10.2024, 02:23
Приветствую Вас 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

Наш опрос
Очистить ли форум от всех сообщений и начать всё с чистого листа?
Всего ответов: 563

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

Добаволяем новый тип патронов
Найди строку:
Code
LINK_ENTITY_TO_CLASS( item_rpg_round, CItem_RPG_Round );

И после неё вписывем:

Code
#define AMMO_<<NAMMO>>_GIVE <<SIZE>> // Колличество снарков которые будет давать данный item
#define AMMO_<<NAMMO>>_MODEL <<MODEL DIR>> // УКАЖИТЕ вашу модель для коробочки тут

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

  void Spawn( void )
  {  
  Precache();
  SetModel( AMMO_<<NAMMO>>_MODEL );
  BaseClass::Spawn();
  }
  void Precache( void )
  {
  engine->PrecacheModel( AMMO_<<NAMMO>>_MODEL );
  }
  bool MyTouch( CBasePlayer *pPlayer )
  {
  if ( ITEM_GiveAmmo( pPlayer, AMMO_SNARKS_GIVE, <<NAMMO>> ) )
  {
  if ( g_pGameRules->ItemShouldRespawn( this ) == GR_ITEM_RESPAWN_NO )
  {
  UTIL_Remove(this);  
  }  
  return true;
  }
  return false;
  }
};
LINK_ENTITY_TO_CLASS( item_ammo_<<nammo>>, CItem_<<Nammo>>Ammo ); // Название инить
LINK_ENTITY_TO_CLASS( item_<<nammo>>_ammo, CItem_<<Nammo>>Ammo ); // Название инить


Далее лезем в player.cpp и ищем команду Case 101 (что бы при impulse 101 давал и патрончики к снаркам), и добавляем туда строчки:

Code
GiveAmmo( 150, "<<NAMMO>>" );



Далее лезем в hl2_gamerules.cpp, на сервере и находим по поиску (CTRL+F):
Code
CAmmoDef *GetAmmoDef()

И под строкой:

Code
def.AddAmmoType("AirboatGun", DMG_AIRBOAT, TRACER_LINE, "sk_plr_dmg_airboat", "sk_npc_dmg_airboat", NULL, BULLET_IMPULSE(10, 600), 0 );

Пишем:

Code
def.AddAmmoType("<<NAMMO>>", DMG_BLAST, TRACER_LINE, "sk_plr_dmg_<<NAMMO>>", "sk_npc_dmg_<<NAMMO>>", "sk_max_<<NAMMO>>", BULLET_IMPULSE(200 , 1225), 0 );  

Теперь ищме строку в этом же файле:

Code
ConVar sk_max_smg1 ( "sk_max_smg1","0", FCVAR_REPLICATED);

И под ней пишем:

Code

// hitmen047
ConVar sk_plr_dmg_<<NAMMO>> ( "sk_plr_dmg_<<NAMMO>>","0", FCVAR_REPLICATED );
ConVar sk_npc_dmg_<<NAMMO>> ( "sk_npc_dmg_<<NAMMO>>","0", FCVAR_REPLICATED);
ConVar sk_max_<<NAMMO>> ( "sk_max_<<NAMMO>>","0", FCVAR_REPLICATED);



Теперь идём в действительную папку с модом, залазим там в scripts, и создаём текстовик weapon_gauss.txt вот с такими внутренностями:
Code
// Snark

WeaponData
{
  // Weapon data is loaded by both the Game and Client DLLs.
  "printname" "Weapon with new ammo"
  "viewmodel" "models/v_squeak.mdl" // Ставьте своё
  "playermodel" "models/w_sqknest.mdl" // Ставьте своё
  "anim_prefix" "squeak"
  "bucket" "4" // Позиция по горизонтале
  "bucket_position" "3" // Позиция по вертекале

  "clip_size" "-1"
  "default_clip" "5"
  " pri mary_ammo " "<<NAMMO>>"
  "secondary_ammo" "None"

  "weight" "5"
  "item_flags" "24" // ITEM_FLAG_LIMITINWORLD | ITEM_FLAG_EXHAUSTIBLE

  // Sounds for the weapon. There is a max of 16 sounds per category (i.e. max 16 "single_shot" sounds)
  SoundData
  {
  }

  // Weapon Sprite data is loaded by the Client DLL.
  TextureData
  {
  "weapon"
  {
  "file" "sprites/640hud3"
  "x" "0"
  "y" "135"
  "width" "170"
  "height" "45"
  }
  "weapon_s"
  {
  "file" "sprites/ 640hud6"
  "x" "0"
  "y" "135"
  "width" "170"
  "height" "45"
  }
  "ammo"
  {
  "file" "sprites/640hud7"
  "x" "96"
  "y" "96"
  "width" "24"
  "height" "24"
  }
  }
}



Теперь лезем в skill.cfg и выставляем значения для:
Code
sk_plr_dmg_<<NAMMO>>
sk_npc_dmg_<<NAMMO>>
sk_max_<<NAMMO>>

Например:

Code
sk_plr_dmg_<<NAMMO>> "3"
sk_npc_dmg_<<NAMMO>> "4"
sk_max_<<NAMMO>> "5"


ПОЯСНЕНИЯ:
<<NAMMO>> - Ваше название патронов, например: SMG1 или SMG2 (любое).
<<SIZE>> - Кол-во патронов, которые будем получать при поднятии коробки.
<<MODEL DIR>> - Дирректория модели, например: "models/SNARKS.mdl".

Источник: http://detroitmod.ucoz.ru/forum/43-207

Категория: Туториалы по программированию (HL2) | Добавил: Hitmen (18.06.2010)
Просмотров: 2108 | Рейтинг: 4.5 |

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

Кто в Онлайн

Друзья сайта

Баннеры

  Сайт 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