Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
21.11.2001, 10:45
Dreamscape



Hi Leute ich hab da n dickes prob mit meiner neuen Waffe , die ich eigentlich proggen wollte . Beim kompilieren kommt da n fetter fehler und lacht mich aus :

--------------------Konfiguration: hl - Win32 Release--------------------
Kompilierung läuft...
guardian.CPP
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(82) : error C2653: 'CGUARDIAN' : Keine Klasse oder Namespace
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(88) : error C2065: 'm_iShell' : nichtdeklarierter Bezeichner
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(108) : error C2065: 'm_usMP5' : nichtdeklarierter Bezeichner
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(111) : error C2653: 'CGUARDIAN' : Keine Klasse oder Namespace
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(113) : error C2065: 'pev' : nichtdeklarierter Bezeichner
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(113) : error C2227: Der linke Teil von '->classname' muss auf Klasse/Struktur/Union zeigen
D:\Half-Life\Worldcraft\edittools\Z Programmiern\Dlls\guardian.CPP(122) : error C2065: 'm_iId' : nichtdeklarierter Bezeichner
Fehler beim Ausführen von cl.exe.

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

Ich hab kein plan was da geht . Ich geb euch ma den Code von meiner guardian.cpp :

/***
*
* Copyright (c) 1999, 2000 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 mp5_e
{
MP5_LONGIDLE = 0,
MP5_IDLE1,
MP5_LAUNCH,
MP5_RELOAD,
MP5_DEPLOY,
MP5_FIRE1,
MP5_FIRE2,
MP5_FIRE3,
};

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

void PrimaryAttack( void );
int SecondaryAmmoIndex( void );
BOOL Deploy( void );
void Reload( void );
void WeaponIdle( void );
float m_flNextAnimTime;
int m_iShell;
private:
unsigned short m_usMP5;
};
LINK_ENTITY_TO_CLASS( weapon_mp5, CMP5 );
LINK_ENTITY_TO_CLASS( weapon_9mmAR, CMP5 );

//=========================================================
//=========================================================
int CMP5::SecondaryAmmoIndex( void )
{
return m_iSecondaryAmmoType;
}

void CMP5::Spawn( )
{
pev->classname = MAKE_STRING("weapon_9mmAR"); // hack to allow for old names
Precache( );
SET_MODEL(ENT(pev), "models/w_guardian.mdl");
m_iId = WEAPON_MP5;

m_iDefaultAmmo = MP5_DEFAULT_GIVE;

FallInit();// get ready to fall down.
}

void CGUARDIAN::Precache( void )
{
PRECACHE_MODEL("models/v_guardian.mdl");
PRECACHE_MODEL("models/w_guardian.mdl");
PRECACHE_MODEL("models/p_guardian.mdl");

m_iShell = PRECACHE_MODEL ("models/shell.mdl");// brass shellTE_MODEL

PRECACHE_MODEL("models/grenade.mdl"); // grenade

PRECACHE_MODEL("models/w_9mmARclip.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");

PRECACHE_SOUND("items/clipinsert1.wav");
PRECACHE_SOUND("items/cliprelease1.wav");
// PRECACHE_SOUND("items/guncock1.wav");

PRECACHE_SOUND ("weapons/guard1.wav");// H to the K
PRECACHE_SOUND ("weapons/guard2.wav");// H to the K
PRECACHE_SOUND ("weapons/guard3.wav");// H to the K

PRECACHE_SOUND( "weapons/glauncher.wav" );
PRECACHE_SOUND( "weapons/glauncher2.wav" );

PRECACHE_SOUND ("weapons/357_cock1.wav");

m_usMP5 = PRECACHE_EVENT( 1, "events/mp5.sc" );
}

int CGUARDIAN::GetItemInfo(ItemInfo *p)
{
p->pszName = STRING(pev->classname);
p->pszAmmo1 = "guardian";
p->iMaxAmmo1 = NULL;
p->pszAmmo2 = NULL;
p->iMaxAmmo2 = -1;
p->iMaxClip = guardian_MAX_CLIP;
p->iSlot = 4;
p->iPosition = 3;
p->iFlags = 0;
p->iId = m_iId = WEAPON_guardian;
p->iWeight = GUARDIAN_WEIGHT;

return 1;
}

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

BOOL CMP5::Deploy( )
{
return DefaultDeploy( "models/v_guardian.mdl", "models/p_guardian.mdl", MP5_DEPLOY, "mp5" );
}

void CMP5::PrimaryAttack()
{
// don't fire underwater
if (m_pPlayer->pev->waterlevel == 3)
{
PlayEmptySound( );
m_flNextPrimaryAttack = gpGlobals->time + 0.15;
return;
}

if (m_iClip <= 0)
{
PlayEmptySound();
m_flNextPrimaryAttack = gpGlobals->time + 0.15;
return;
}

PLAYBACK_EVENT( 0, m_pPlayer->edict(), m_usMP5 );

m_pPlayer->m_iWeaponVolume = NORMAL_GUN_VOLUME;
m_pPlayer->m_iWeaponFlash = NORMAL_GUN_FLASH;

m_iClip--;

// player "shoot" animation
m_pPlayer->SetAnimation( PLAYER_ATTACK1 );

Vector vecSrc = m_pPlayer->GetGunPosition( );
Vector vecAiming = m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

if ( g_pGameRules->IsDeathmatch() )
{
// optimized multiplayer. Widened to make it easier to hit a moving player
m_pPlayer->FireBullets( 1, vecSrc, vecAiming, VECTOR_CONE_6DEGREES, 8192, BULLET_PLAYER_MP5, 2 );
}
else
{
// single player spread
m_pPlayer->FireBullets( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MP5, 2 );
}

if (!m_iClip && m_pPlayer->m_rgAmmo[m_iPrimaryAmmoType] <= 0)
// HEV suit - indicate out of ammo condition
m_pPlayer->SetSuitUpdate("!HEV_AMO0", FALSE, 0);

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

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

void CMP5::Reload( void )
{
DefaultReload( MP5_MAX_CLIP, MP5_RELOAD, 1.5 );
}

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

m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

if (m_flTimeWeaponIdle > gpGlobals->time)
return;

int iAnim;
switch ( RANDOM_LONG( 0, 1 ) )
{
case 0:
iAnim = MP5_LONGIDLE;
break;

default:
case 1:
iAnim = MP5_IDLE1;
break;
}

SendWeaponAnim( iAnim );

m_flTimeWeaponIdle = gpGlobals->time + RANDOM_FLOAT ( 10, 15 );// how long till we do this again.
}

class CMP5AmmoClip : public CBasePlayerAmmo
{
void Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/w_9mmARclip.mdl");
CBasePlayerAmmo::Spawn( );
}
void Precache( void )
{
PRECACHE_MODEL ("models/w_9mmARclip.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");
}
BOOL AddAmmo( CBaseEntity *pOther )
{
int bResult = (pOther->GiveAmmo( AMMO_MP5CLIP_GIVE, "9mm", _9MM_MAX_CARRY) != -1);
if (bResult)
{
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
}
return bResult;
}
};
LINK_ENTITY_TO_CLASS( ammo_mp5clip, CMP5AmmoClip );
LINK_ENTITY_TO_CLASS( ammo_9mmAR, CMP5AmmoClip );

class CMP5Chainammo : public CBasePlayerAmmo
{
void Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/w_chainammo.mdl");
CBasePlayerAmmo::Spawn( );
}
void Precache( void )
{
PRECACHE_MODEL ("models/w_chainammo.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");
}
BOOL AddAmmo( CBaseEntity *pOther )
{
int bResult = (pOther->GiveAmmo( AMMO_CHAINBOX_GIVE, "9mm", _9MM_MAX_CARRY) != -1);
if (bResult)
{
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
}
return bResult;
}
};
LINK_ENTITY_TO_CLASS( ammo_9mmbox, CMP5Chainammo );

class CMP5AmmoGrenade : public CBasePlayerAmmo
{
void Spawn( void )
{
Precache( );
SET_MODEL(ENT(pev), "models/w_ARgrenade.mdl");
CBasePlayerAmmo::Spawn( );
}
void Precache( void )
{
PRECACHE_MODEL ("models/w_ARgrenade.mdl");
PRECACHE_SOUND("items/9mmclip1.wav");
}
BOOL AddAmmo( CBaseEntity *pOther )
{
int bResult = (pOther->GiveAmmo( AMMO_M203BOX_GIVE, "ARgrenades", M203_GRENADE_MAX_CARRY ) != -1);

if (bResult)
{
EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
}
return bResult;
}
};
LINK_ENTITY_TO_CLASS( ammo_mp5grenades, CMP5AmmoGrenade );
LINK_ENTITY_TO_CLASS( ammo_ARgrenades, CMP5AmmoGrenade );

Ich hoffe hir könnt mir helfen da ich kaum erfahrung im coden habe . Bitte auch nich über mich lustig machen , das könnt ihr euch sparen .
Irgendwann werd ich nehmlich ma anderen helfen . Nur is die Scheiße im moment das ich nur mit tut's coden kann :( .
Naja ich danke schon ma vorweg . Cya .

--

Japan Braucht Dich! - http://www.japan-braucht-dich.de - Jetzt Spenden!

zum Seitenanfang zum Seitenende Profil || Suche
001
21.11.2001, 10:50
Hanfling



öhm du solltest mal ein paar klassen nen anderen namen geben....

zb:
nicht
void CMP5::Reload( void )
sondern
void CGUARDIAN::Reload( void )

usw.
außerdem zb. auch ganz oben "enum mp5_e"

aber hätte man da nicht selbst drauf kommen können?

--

Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o

zum Seitenanfang zum Seitenende Profil || Suche
002
21.11.2001, 12:01
shenZi



wieso steht überall noch mp5???
ich dachte das wäre ne neue waffe

--

..::Follow the rabbit ::..

zum Seitenanfang zum Seitenende Profil || Suche
003
21.11.2001, 12:34
Dreamscape



Ich habs so mitgekrigt , das mann nich alle mp5s löschen soll , zudem hab ich auch die sec funktion gelöscht wenn euch das hilft

--

Japan Braucht Dich! - http://www.japan-braucht-dich.de - Jetzt Spenden!

zum Seitenanfang zum Seitenende Profil || Suche
004
21.11.2001, 13:57
ThiefMaster



Die class muss in die weapons.h (oder in die weapons.cpp ?)

Außerdem muss die class den neuen Namen haben

--


Dieser Beitrag wurde am 21.11.2001 um 13:58 von ThiefMaster bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
005
21.11.2001, 14:03
Hanfling



die class muss nicht umbedingt in die weapons.h aber ist für ne bessere übersicht (denk jedenfalls valve) ganz nützlich...

gehts den jetzt?

--

Nun ist deine Zeit gekommen sprach der Tod, stolperte und brach sich das Genick. :o

zum Seitenanfang zum Seitenende Profil || Suche
006
21.11.2001, 17:09
R2-D2



ganz oben definierst du die klasse "CMP5". in der ganzen datei definierst du keine andere.
allerdings rufst du weiter unten eine funktion der klasse "CGUARDIAN" auf. weder diese funktion existiert, noch diese klasse...dann ist es kein wunder, dass es nicht geht

--

®2-D2
Believe in Retrieve :)

Projects:
Monkey-Strike (Leader/Coder)
Water Wars (Head Coder)
Mixed Mod (Coder)

zum Seitenanfang zum Seitenende Profil || Suche