Тут будет код скажем так... ну к примеру у меня это кусок железки(зависит от моедли.) Всё в принципе просто.. создаёте как и в первом сдк(хл1) файл к примеру у меня это weapon_jelezaka.cpp вот а вот что туда вставляйте:
code:
#include "cbase.h"
#include "basehlcombatweapon.h"
#include "player.h"
#include "gamerules.h"
#include "ammodef.h"
#include "mathlib.h"
#include "in_buttons.h"
#include "soundent.h"
#include "BaseBludgeonWeapon.h"
#include "vstdlib/random.h"
ConVar sk_plr_dmg_jelezaka ( "sk_plr_dmg_crowbar","0");
ConVar sk_npc_dmg_jelezaka ( "sk_npc_dmg_crowbar","0");
#define JELEZAKA_RANGE 55.0f
#define JELEZAKA_REFIRE 0.4f
// Прописываем класс пушки
class CWeaponJelezaka : public CBaseHLBludgeonWeapon
{
public:
DECLARE_CLASS( CWeaponJelezaka, CBaseHLBludgeonWeapon );
DECLARE_SERVERCLASS();
CWeaponJelezaka();
float GetRange( void ) { return JELEZAKA_RANGE; }
float GetFireRate( void ) { return JELEZAKA_REFIRE; }
void AddViewKick( void );
float GetDamageForActivity( Activity hitActivity );
void SecondaryAttack( void ) { return; }
};
IMPLEMENT_SERVERCLASS_ST(CWeaponJelezaka, DT_WeaponJelezaka)
END_SEND_TABLE()
LINK_ENTITY_TO_CLASS( weapon_jelezaka, CWeaponJelezaka ); // Линкуем пушку
PRECACHE_WEAPON_REGISTER( weapon_jelezaka ); // Регестрируем класс
// Смысла не понял для чего нужен этот раздел, но во всех ганах он есть )
CWeaponJelezaka::CWeaponJelezaka( void )
{
// а нах вообще этот раздел?!
}
// Этот класс для того, напрмер если стреляешь отнимает здоровье... в данном случае не отнимаем.
float CWeaponJelezaka::GetDamageForActivity( Activity hitActivity )
{
if ( ( GetOwner() != NULL ) && ( GetOwner()->IsPlayer() ) )
return sk_plr_dmg_jelezaka.GetFloat();
return sk_npc_dmg_jelezaka.GetFloat();
}
// Если жмём выстрел то экран надо сдвинуть.
void CWeaponJelezaka::AddViewKick( void )
{
CBasePlayer *pPlayer = ToBasePlayer( GetOwner() );
if ( pPlayer == NULL )
return;
QAngle punchAng;
punchAng.x = random->RandomFloat( 1.0f, 2.0f );
punchAng.y = random->RandomFloat( -2.0f, -1.0f );
punchAng.z = 0.0f;
pPlayer->ViewPunch( punchAng );
}
Ну а далее сами подрегите во всех файлах классы и т.п