Portable Half-Life SDK. GoldSource and Xash3D. Crossplatform.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

38 lines
2.1 KiB

#include "extdll.h"
#include "util.h"
#include "cbase.h"
#include "monsters.h"
#include "weapons.h"
#include "nodes.h"
#include "player.h"
LINK_ENTITY_TO_CLASS( weapon_example, CExampleGun );
void CExampleGun::Spawn( )
{
pev->classname = MAKE_STRING("weapon_example"); // здесь имя энтити которое надо будет затем вписать в фгд
Precache( );
SET_MODEL(ENT(pev), "models/w_9mmAR.mdl"); // Тут должна быть модель вашего оружия
m_iId = WEAPON_EXAMPLE;
m_iDefaultAmmo = 50;
FallInit();
}
void CExampleGun::Precache( void ) { // Тут вы прекешите звуки и модели для вашего оружия PRECACHE_MODEL("models/v_9mmAR.mdl"); PRECACHE_MODEL("models/w_9mmAR.mdl"); PRECACHE_MODEL("models/p_9mmAR.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");
PRECACHE_SOUND("items/clipinsert1.wav"); PRECACHE_SOUND("items/cliprelease1.wav");
PRECACHE_SOUND ("weapons/hks1.wav"); PRECACHE_SOUND ("weapons/hks2.wav"); PRECACHE_SOUND ("weapons/hks3.wav");
// this is to hook your client-side event m_usExampleFire = PRECACHE_EVENT( 1, "events/example.sc" ); }
int CExampleGun::GetItemInfo(ItemInfo *p) { p->pszName = STRING(pev->classname); p->pszAmmo1 = "9mm"; p->iMaxAmmo1 = 200; p->iMaxClip = -1; p->iSlot = 0; // слот в худе ( помните также, что елси здесь вы написали например 2 то в игре будет занят 3 слот, т.к в коде исчесление начинаеться от нуля) p->iPosition = 1; // позиция в слоте ( то же самое что и в слоте - елси вам надо занять 4 позицию , то пишите 3 в коде) p->iFlags = 0; p->iId = m_iId = WEAPON_EXAMPLE; p->iWeight = MP5_WEIGHT; //p->pszAmmo2 = NULL; //p->iMaxAmmo2 = -1;
return 1; }
int CExampleGun::AddToPlayer( CBasePlayer *pPlayer ) { if ( CBasePlayerWeapon::AddToPlayer( pPlayer ) ) { MESSAGE_BEGIN( MSG_ONE, gmsgWeapPickup, NULL, pPlayer->pev ); WRITE_BYTE( m_iId ); MESSAGE_END(); return TRUE; } return FALSE; }
С