Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
13.12.2001, 19:16
Empty



HILFE !!!!!
Ich hab einen Code kopiert und brauche nun eure HILFE !!!
Also ich habe folgendes Problem:

if(silencer==1){
silencer=0;
SendWeaponAnim(USP_ADDS);
}
else
{
silencer=1;
SendWeaponAnim(USP_REMS);
}
m_flNextSecondaryAttack = m_flNextSecondaryAttack + 2.75;
if (m_flNextSecondaryAttack < gpGlobals->time)
m_flNextSecondaryAttack = gpGlobals->time + 2.75;

m_flNextPrimaryAttack = m_flNextPrimaryAttack + 2.75;
if (m_flNextPrimaryAttack < gpGlobals->time)
m_flNextPrimaryAttack = gpGlobals->time + 2.75;

}

FEHLER:
D:\Cs+hl\HL_Full_SDK_2_2_Source\Source Code\dlls\wpn_shared\hl_wpn_glock.cpp(165) : error C2065: 'silencer' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

hl.dll - 1 Fehler, 0 Warnung(en)

--

FCB WIRD MEISTER !!!

zum Seitenanfang zum Seitenende Profil || Suche
001
13.12.2001, 19:49
Empty



BITTE HELFT MIR !!!!!!!!!!!!!

--

FCB WIRD MEISTER !!!

zum Seitenanfang zum Seitenende Profil || Suche
002
13.12.2001, 19:55
Rockefeller



ja irgendwo in der klasse für die glock musst du natürlich "silencer" als variable deklariern...

--

zum Seitenanfang zum Seitenende Profil || Suche
003
13.12.2001, 20:03
Empty



Hab ich glaube ich.
In welche KLASSE genau ?
hier ist der ganze code mal

/***
*
* Copyright (c) 1996-2001, Valve LLC. All rights reserved.
*
* This product contains software technology licensed from Id
* Software, Inc. ("Id Technology"). Id Technology (c) 1996 Id Software, Inc.
* All Rights Reserved.
*
* Use, distribution, and modification of this source code and/or resulting
* object code is restricted to non-commercial enhancements to products from
* Valve LLC. All other use, distribution, or modification is prohibited
* without written permission from Valve LLC.
*
****/

#include "extdll.h"
#include "util.h"
#include "cbase.h"
#include "monsters.h"
#include "weapons.h"
#include "nodes.h"
#include "player.h"
#include "soundent.h"
#include "gamerules.h"

enum usp_e
{
USP_IDLE = 0,
USP_FIRE,
USP_FIRE2,
USP_FIRE3,
USP_FIRE4,
USP_FIRE6,
USP_DRAW,
USP_FIRE7,
USP_FIRE8,
USP_RELOAD2,
USP_DRAW2,
USP_REMS,
USP_RELOAD,
USP_ADDS,
USP_IDLE2,
USP_FIRE5,
};

class CUsp : public CBasePlayerWeapon
{
public:
void Spawn( void );
void Precache( void );
int iItemSlot( void ) { return 1; }
int GetItemInfo(ItemInfo *p);
int AddToPlayer( CBasePlayer *pPlayer );

void PrimaryAttack( void );
void SecondaryAttack(void);
BOOL Deploy( void );
void Reload( void );
void WeaponIdle( void );
float m_flNextAnimTime;
int silent;
int m_iShell;

};
LINK_ENTITY_TO_CLASS( weapon_GLOCK, CUsp );

void CUsp::Spawn( )
{
pev->classname = MAKE_STRING("weapon_usp");
Precache( );
SET_MODEL(ENT(pev), "models/w_9mmhandgun.mdl");
m_iId = WEAPON_GLOCK;

silent=0;
m_iDefaultAmmo = GLOCK_DEFAULT_GIVE;

FallInit();
}

void CUsp::Precache( void )
{
PRECACHE_MODEL("models/v_9mmhandgun.mdl");
PRECACHE_MODEL("models/w_9mmhandgun.mdl");
PRECACHE_MODEL("models/p_9mmhandgun.mdl");
PRECACHE_MODEL("models/9mmhandgun_clip.mdl");

m_iShell = PRECACHE_MODEL ("models/mshell.mdl");

PRECACHE_SOUND("items/pickup.wav");
PRECACHE_SOUND("weapons/9mmhandgun_fire.wav");
PRECACHE_SOUND("weapons/9mmhandgun_fire2.wav");
PRECACHE_SOUND( "weapons/9mmhandgun_reload.wav" );
PRECACHE_SOUND( "weapons/9mmhandgun_empty.wav" );
}

int CUsp::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;
}

int CUsp::GetItemInfo(ItemInfo *p)
{
p->pszName = STRING(pev->classname);
p->pszAmmo1 = "9mm";
p->iMaxAmmo1 = 90;
p->pszAmmo2 = NULL;
p->iMaxAmmo2 = -1;
p->iMaxClip = 12;
p->iSlot = 0;
p->iPosition = 1;
p->iFlags = 0;
p->iId = m_iId = WEAPON_GLOCK;
p->iWeight = GLOCK_WEIGHT;

return 1;
}

BOOL CUsp::Deploy( )
{
return DefaultDeploy( "models/v_9mmhandgun.mdl", "models/p_9mmhandgun.mdl", USP_DRAW, "usp" );
}

void CUsp::PrimaryAttack(void)
{
if (m_pPlayer->pev->waterlevel == 3)
{
EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "9mmhandgun_empty.wav", 0.8, ATTN_NORM);
m_flNextPrimaryAttack = gpGlobals->time + 0.35;
return;
}
if (m_iClip <= 0)
{
EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "9mmhandgun_empty.wav", 0.8, ATTN_NORM);
m_flNextPrimaryAttack = gpGlobals->time +1.75;
return;
}
m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;

m_iClip--;

if(silencer==0)
SendWeaponAnim(USP_FIRE);
else
SendWeaponAnim(USP_FIRE5);

if(silencer==0)//son fort ou faible.
EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/9mmhandgun_fire.wav", 1.0, ATTN_NORM);
else
EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/9mmhandgun_fire2.wav", 1.0, ATTN_NORM);

m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

Vector vecSrc = m_pPlayer->GetGunPosition( );

Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

if ( g_pGameRules->IsDeathmatch() )
{
if(silencer==1)
m_pPlayer->FireBullets ( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 2000, BULLET_PLAYER_USP, 0.5, 0 );
}
else
{
if(silencer==1)
m_pPlayer->FireBullets ( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 2000, BULLET_PLAYER_USP, 0.5, 0 );
}

Vector vecShellVelocity = m_pPlayer->pev->velocity

+ gpGlobals->v_right * RANDOM_FLOAT(50,70)

+ gpGlobals->v_up * RANDOM_FLOAT(100,150)

+ gpGlobals->v_forward * 25;

EjectBrass ( pev->origin + m_pPlayer->pev->view_ofs + gpGlobals->v_up * -12 + gpGlobals->v_forward * 15 + gpGlobals->v_right * 6 , vecShellVelocity, pev->angles.y, m_iShell, TE_BOUNCE_SHELL );

if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)

m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);

m_pPlayer->pev->punchangle.x -= 1;
if(silencer==1){
m_pPlayer->pev->punchangle.x -= 1;
}
float TimeIsBurst=0.0;

if(silencer==1)
TimeIsBurst=0.40;
else
TimeIsBurst=0.6;

m_flNextPrimaryAttack = m_flNextPrimaryAttack + TimeIsBurst;
if (m_flNextPrimaryAttack < gpGlobals->time)
m_flNextPrimaryAttack = gpGlobals->time + TimeIsBurst;

m_flTimeWeaponIdle = gpGlobals->time + RANDOM_FLOAT ( 10, 25 );
}

void CUsp::SecondaryAttack(void)
{
if(silencer==1)
{
silencer=0;
SendWeaponAnim(USP_ADDS);
}
else
{
silencer=1;
SendWeaponAnim(USP_REMS);
}
m_flNextSecondaryAttack = m_flNextSecondaryAttack + 2.75;
if (m_flNextSecondaryAttack < gpGlobals->time)
m_flNextSecondaryAttack = gpGlobals->time + 2.75;

m_flNextPrimaryAttack = m_flNextPrimaryAttack + 2.75;
if (m_flNextPrimaryAttack < gpGlobals->time)
m_flNextPrimaryAttack = gpGlobals->time + 2.75;

}

void CUsp::Reload( void )
{
if(m_iClip<12)
EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "9mmhandgun_reload.wav", 0.8, ATTN_NORM);
if(silencer==0)
DefaultReload( 12, USP_RELOAD, 1.5 );
else
DefaultReload( 12, USP_RELOAD2, 1.75 );
}

void CUsp::WeaponIdle( void )
{
ResetEmptySound( );

m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

if (m_flTimeWeaponIdle > gpGlobals->time)
return;

int iAnim;
switch ( RANDOM_LONG( 0, 1 ) )
{
case 0:
if(silencer==1)
iAnim = USP_IDLE2;
else
iAnim = USP_IDLE;
break;

default:
case 1:
if(silencer==1)
iAnim = USP_IDLE2;
else
iAnim = USP_IDLE;
break;
}

SendWeaponAnim( iAnim );

m_flTimeWeaponIdle = gpGlobals->time + RANDOM_FLOAT ( 10, 15 );
}

class CUspAmmoClip : public CBasePlayerAmmo
{
void Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/9mmhandgun_clip.mdl");
CBasePlayerAmmo::Spawn( );
}
void Precache( void )
{
PRECACHE_MODEL ("models/9mmhandgun_clip.mdl");
PRECACHE_SOUND("items/pickup.wav");
}
BOOL AddAmmo( CBaseEntity *pOther )
{
int bResult = (pOther->GiveAmmo( 12, "usp", 90) != -1);
if (bResult)
{
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/pickup.wav", 1, ATTN_NORM);
}
return bResult;
}
};
LINK_ENTITY_TO_CLASS( ammo_usp, CUspAmmoClip );

und hier noch mal von der weapon.h

class CGlock : public CBasePlayerWeapon
{
public:
void Spawn( void );
void Precache( void );
int iItemSlot( void ) { return 2; }
int GetItemInfo(ItemInfo *p);

void PrimaryAttack( void );
void SecondaryAttack( void );
void GlockFire( float flSpread, float flCycleTime, BOOL fUseAutoAim );
BOOL Deploy( void );
void Reload( void );
void WeaponIdle( void );

virtual BOOL UseDecrement( void )
{
#if defined( CLIENT_WEAPONS )
return TRUE;
#else
return FALSE;
#endif
}

private:
int m_iShell;

unsigned short m_usFireGlock1;
unsigned short m_usFireGlock2;
};

was ist bloss falsch ????

--

FCB WIRD MEISTER !!!

zum Seitenanfang zum Seitenende Profil || Suche
004
13.12.2001, 20:17
RirA



z.B.: int silencer = 0;

Du kannst schließlich nicht einfach irgendwas benutzen, das das Programm gar nicht kennt!

--

zum Seitenanfang zum Seitenende Profil || Suche
005
13.12.2001, 20:23
Empty



THX !!!!!!!!!!!!!!!!!!!!
Aber schon das nächste Problem
nun kann ich die WAFFE im spiel werder auswählen noch
Sammeln sie exestiert net, obwohl der keine Fehler beim
coden macht.
Ich habe dir waffen in mp und sp ausprobiert.
Im sp haben die Barneys gar keine knarre mehr !!!!!!!!!!

HILFE !!!!!!!!!!!!!!!!!!

--

FCB WIRD MEISTER !!!

zum Seitenanfang zum Seitenende Profil || Suche
006
13.12.2001, 20:43
Archangel



a.)
Spar dir die ausrufezeichen!
b.)
lern coden!

thx

--

Mar 01 01:10:13 <voice> jo
Mar 01 01:10:40 <voice> bis dann ^^
Mar 01 01:11:20 <Archangel> jo
**** ENDING LOGGING AT Tue Mar 1 01:58:13 2005

zum Seitenanfang zum Seitenende Profil || Suche
007
13.12.2001, 20:47
apfelkorn



das liegt wohl daran, das du einfach den code von der glock überschrieben hast, mit dem deiner usp... das heist soviel wie: du hast hl die glock durch die usp ersetzt... um die waffe zu bekommen, musst du in der konsole eingeben: "give weapon_usp" willst du die waffe auch einsammeln können vom boden, musst du dir eine fgd erstellen mit deinem entity (weapon_usp).
Wahrscheinlich möchtest du aber auch einfach nur die glock ersetzen: Du ersetzt einfach das:
LINK_ENTITY_TO_CLASS( weapon_GLOCK, CUsp );
durch das hier: (die namen sind alle case-sensitive bzw. Groß-/Kleinschreibeempfindlich)
LINK_ENTITY_TO_CLASS( weapon_glock, CUsp );

und du musst auch die klassendeklariung, die in deiner klasse zu oberst steht (class CUsp) rausnehmen. Das darf nur in der weapons.h stehen, sonst spuckt der dir linkererrors ins gesicht, und die sind nicht appetitlich :)

--

zum Seitenanfang zum Seitenende Profil || Suche