Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
11.05.2002, 13:07
BoehserOnkel



Naja ich hab jetz zum 3 mal probiert ne neue WAffe in HL einzufügen. Beim erstmal kam der fehler Cache_Alloc: size - 16736496. Da dachte ich das es einfach daran liegt das ich soviel aufeinmal geändert hab das man den Fehler nich mir finden kann. Daraufhin hab ich das dann nochmal neu angefangen. Dabei hab ich mich so genau wie möglich an das Tut ausm DHCC gehalten. Da dieses aber irgentwie überholt und unvollständig is, hab ich da halt noch nen bisschen eigeniniziative ergriffen. Der Quellcode lies sich ohne probs compilern. Wenn ich dann HL gestartet hab und ne Map laden lies kam als erstes: can't create enity weapon_ak47. Da hab ich dann nochma den Quelltext abgegrast und nen paar Fehler beseitigt. Als ichs dann getestet hab kam: UTIL_PrecacheOtherWeapon(weapon_ak47) response NULL. Schließlich hab ich den Quelltext nochmal überarbeitet. Nun kommt kein Fehler den man in irgenteiner weise prüfen kann, denn HL stürzt ab mit soner tollen Windoof fehlermeldung: HL.exe verursachte einen Fehler in blablabla. Ich weiß jetz irgentwie nich weiter. Kennt wer ne seite wo man nen funzendes Waffentut herkriegt?

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
001
11.05.2002, 13:43
MrDoS



mmmmh hab ich auch mal gehabt, da wahr einfach was am Code der neuen Waffe schuld. Wenn du aus den Debug Meldungen von VC++ Schlau wirst kannste ja mal auf Debug klicken....
Ansonsten haben die ThW Tutorials bis jetzt alle funktioniert (mann muss nur um die Ecke denken....) wenn du noch nen Waffentutorial suchst guck doch einfach in der Linksektion nach HL-Programming Webseiten

--


Dieser Beitrag wurde am 11.05.2002 um 13:45 von MrDoS bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
002
11.05.2002, 14:37
BoehserOnkel



Also aus den Debugmeldungen kann keiner Schlau werden:

Quellcode:
    this    CXX0017: Error: symbol "this" not found

was zum hänker soll das sein??

Nen brauchbares Waffentut hab ich auch nich gefunden... :(

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)


Dieser Beitrag wurde am 11.05.2002 um 14:37 von BoehserOnkel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
003
11.05.2002, 17:10
Hanky



zeig den quellcode

UTIL_PrecacheOtherWeapon(weapon_ak47) muss nebenbei
UTIL_PrecacheOtherWeapon("weapon_ak47") heißen..:)

--

hankYs Page

zum Seitenanfang zum Seitenende Profil || Suche
004
11.05.2002, 18:35
BoehserOnkel



Also so sieht bei mir die AK47.cpp aus:
Quellcode:

#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 AK47_e
{
//    AK47_LONGIDLE = 0,
    AK47_IDLE1,
//    AK47_LAUNCH,
    AK47_RELOAD,
    AK47_DRAW,
    AK47_SHOOT1,
    AK47_SHOOT2,
    AK47_SHOOT3,
};



LINK_ENTITY_TO_CLASS( weapon_AK47, CAK47 );
LINK_ENTITY_TO_CLASS( weapon_AKammo, CAK47 );


//=========================================================
//=========================================================

void CAK47::Spawn( )
{
    pev->classname = MAKE_STRING("weapon_AKammo"); // hack to allow for old names
    Precache( );
    SET_MODEL(ENT(pev), "models/ak/w_ak47.mdl");
    m_iId = WEAPON_AK47;

    m_iDefaultAmmo = AK47_DEFAULT_GIVE;

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


void CAK47::Precache( void )
{
    PRECACHE_MODEL("models/ak/v_ak47.mdl");
    PRECACHE_MODEL("models/ak/w_ak47.mdl");
    PRECACHE_MODEL("models/ak/p_ak47.mdl");

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

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

    PRECACHE_MODEL("models/ammo/akammo.mdl");
    PRECACHE_SOUND("weapons/ak/ak47_boltpull.wav");              

    PRECACHE_SOUND("weapons/ak/ak47_clipin.wav");
    PRECACHE_SOUND("weapons/ak/ak47_clipout.wav");

    PRECACHE_SOUND ("weapons/ak/AK47-1.wav");// H to the K
    PRECACHE_SOUND ("weapons/ak/AK47-2.wav");// H to the K
//    PRECACHE_SOUND ("weapons/ak/ak-1.wav");// H to the K

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

    PRECACHE_SOUND ("weapons/empty/m_empty.wav");

//    m_usAK47 = PRECACHE_EVENT( 1, "events/mp5.sc" );
//    m_usAK472 = PRECACHE_EVENT( 1, "events/AK472.sc" );
}

int CAK47::GetItemInfo(ItemInfo *p)
{
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "AK47";
    p->iMaxAmmo1 = 500;
    p->pszAmmo2 = "NULL";
    p->iMaxAmmo2 = -1;
    p->iMaxClip = 30;
    p->iSlot = 3;
    p->iPosition = 4;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_AK47;
    p->iWeight = AK47_WEIGHT;

    return 1;
}

int CAK47::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 CAK47::Deploy( )
{
    return DefaultDeploy( "models/ak/v_ak47.mdl", "models/ak/p_ak47.mdl", AK47_DRAW, "AK47" );
}


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

    if (m_iClip <= 0)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

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

    m_iClip--;


    m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;

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

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

#ifdef CLIENT_DLL
    if ( !bIsMultiplayer() )
#else
    if ( !g_pGameRules->IsMultiplayer() )
#endif
    {
        // optimized multiplayer. Widened to make it easier to hit a moving player
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_6DEGREES, 8192, BULLET_PLAYER_MP5, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }
    else
    {
        // single player spread
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MP5, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }

  int flags;
#if defined( CLIENT_WEAPONS )
    flags = FEV_NOTHOST;
#else
    flags = 0;
#endif

    PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usAK47, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );

    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 = UTIL_WeaponTimeBase() + 0.1;

    if ( m_flNextPrimaryAttack < UTIL_WeaponTimeBase() )
        m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;

    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
}





void CAK47::Reload( void )
{
    if ( m_pPlayer->ammo_ak47 <= 0 )
        return;

    DefaultReload( AK47_MAX_CLIP, AK47_RELOAD, 1.5 );
}


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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
        return;

    int iAnim;
    switch ( RANDOM_LONG( 0, 1 ) )
    {
    case 0:    
        iAnim = AK47_IDLE1;    
        break;
    
    default:
    case 1:
        iAnim = AK47_IDLE1;
        break;
    }

    SendWeaponAnim( iAnim );

    m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 ); // how long till we do this again.
}



class CAK47AmmoClip : public CBasePlayerAmmo
{
    void Spawn( void )
    {
        Precache( );
        SET_MODEL(ENT(pev), "models/ammo/akammo.mdl");
        CBasePlayerAmmo::Spawn( );
    }
    void Precache( void )
    {
        PRECACHE_MODEL ("models/ammo/akammo.mdl");
        PRECACHE_SOUND("weapons/misc/pickup.wav");
    }
    BOOL AddAmmo( CBaseEntity *pOther )
    {
        int bResult = (pOther->GiveAmmo( 30, "AK47", _AK47_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/misc/pickup.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};
LINK_ENTITY_TO_CLASS( ammo_AK47clip, CAK47AmmoClip );
LINK_ENTITY_TO_CLASS( ammo_ak47, CAK47AmmoClip );



class CAK47Chainammo : public CBasePlayerAmmo
{
    void Spawn( void )
    {
        Precache( );
        SET_MODEL(ENT(pev), "models/ammo/akammo.mdl");
        CBasePlayerAmmo::Spawn( );
    }
    void Precache( void )
    {
        PRECACHE_MODEL ("models/ammo/akammo.mdl");
        PRECACHE_SOUND("weapons/misc/pickup.wav");
    }
    BOOL AddAmmo( CBaseEntity *pOther )
    {
        int bResult = (pOther->GiveAmmo( AMMO_CHAINBOX_GIVE, "AK47", _AK47_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/misc/pickup.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};
LINK_ENTITY_TO_CLASS( ammo_AK47Chain, CAK47AmmoClip );

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
005
11.05.2002, 22:18
TheTinySteini



Ich hab schon länger keine Waffe mehr gecodet, aber es kann sein, dass LINK_ENTITY_TO_CLASS( weapon_AK47, CAK47 ); case-sensitiv ist, das du also weapon_ak47 statt weapon_AK47 schreiben musst. Ist aber reine Vermutung.
Ansonsten: lies dir mal das Debugging-Tutorial auf DHCC durch, das kann ganz gut helfen.

--

TheTinySteini
Coder Poke646
"Don't Panic" - Hitchhiker's Guide to the Galaxy

zum Seitenanfang zum Seitenende Profil || Suche
006
11.05.2002, 23:49
BoehserOnkel



das mit dem groß und kleinschreiben hab ich schon probiert kommt aufs selbe raus

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
007
12.05.2002, 11:18
[RMen]OneStone



this CXX0017: Error: symbol "this" not found

Ich meine das wär' doofheit von MSVC++, der kann manchmal den this-Pointer bei mir nicht feinden, der Debugger ist wohl doch noch nicht 100% ausgereift sein. Bin mir aber nicht sicher ob das beidir auch der Fall ist, oder du vielleicht aus ner Static-Funktion einen this-Pointer haben wolltest. *schukterzuck*

--

georg-wicherski@pixel-house.net | http://www.pixel-house.net/ - Coding Resource| http://www.google.de/

zum Seitenanfang zum Seitenende Profil || Suche
008
12.05.2002, 12:55
BoehserOnkel



Das gibts doch nich hat denn noch nie einer ne Waffe gecodet??
Wenn ich nich ganz falsch liege muss man doch in den datein:
gamerules.cpp
weapons.cpp
weapons.h
multiplayergamerules.cpp
game.cpp
skill.h
player.cpp

die waffe eintragen oder?

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
009
12.05.2002, 18:17
Another1



erstmal:

Zitat:

LINK_ENTITY_TO_CLASS( weapon_AK47, CAK47 );
LINK_ENTITY_TO_CLASS( weapon_AKammo, CAK47 );

einige dich auf einen classname fürs entity (d.h, lösche den anderen, ich wär für weapon_ak47 (einfach et logisch =)).

Zur zeit wird weapon_AKammo benutzt, für den classname der waffe:

Zitat:

pev->classname = MAKE_STRING("weapon_AKammo"); // hack to allow for old names

2. groß und kleinschreibung ist sehrwohl entscheidend. Also, schreib am besten weapon_ak47 bei allem.

3. in w_prechache() in weapons.cpp muss dann das richtige UTIL_PrecacheOtherWeapon("blabla");
rein, ansonsten funzt garnix.

4. probier give weapon_ak47 inner console (falls du soweit kommen solltest)
5. hoffe das es funzt!

p.s. auch bei der ammo musst du auf die groß und kleinschreibung achten:

Zitat:

[...]p->pszAmmo1 = "AK47";[...]
[...]LINK_ENTITY_TO_CLASS( ammo_ak47, CAK47AmmoClip );[...]
[]

--

Another1

...relaxing..atm =)
... und Schweiz suckt!


Dieser Beitrag wurde am 12.05.2002 um 18:18 von Another1 bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
010
14.05.2002, 07:29
[GOD]ShadowLord



hmm... 500 schuss max ammo? dachte,das ging nur bis 255,oder?

--

they come in peace - and go in pieces

zum Seitenanfang zum Seitenende Profil || Suche
011
14.05.2002, 08:51
Rockefeller



Kann man doch ändern...

--

zum Seitenanfang zum Seitenende Profil || Suche
012
14.05.2002, 15:14
BoehserOnkel



So ich hab das jetz etwas abgeändert und festgestellt das mein AK Model ne macke hatte. Jetz hab ich mal nen anderes eingesetzt und HL startet jetz wenn ich per Impulse 101 alle waffen geben lassen, steht sie auch drin. Nur wenn ich sie auswähle nimmt er sie nich. Ich hab die Ammo von ammo_ak47 auf die MP5 ammo geändert. Nunja ich krieg jetz immer die HL-Fehlermeldung:

NULL Ent in GiveNamedItem!

in der Console....

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
013
14.05.2002, 15:17
Exec



dann haste dich verschrieben ... groß und klein-schreibung beachten ...

--

"selbermachen rockt am meisten :D" - -LeJean-

zum Seitenanfang zum Seitenende Profil || Suche
014
14.05.2002, 15:55
Bufferoverflow



Wo könnte man sich da verschrieben haben? Ich hab nähmlich das selbe Problem.

--

zum Seitenanfang zum Seitenende Profil || Suche
015
14.05.2002, 16:38
BoehserOnkel



Naja, jetz hab ich das nochma verändert und zwar hab ich jetz wieda meine eigene Muni eingebaut. Er lädt auch alle ohne Probleme nur:
1. is immer noch der alte Fehler NULL Ent in GiveNamedItem! da
2. Zeigt er mir jetzt nichtmal mehr den Munistatus an. (Ich mein jetz den grünen Balken im HUD, der anzeigt wieviel Muni man noch ~ hat).

Langsam hab ich keine Idee mehr was daran falsch sein soll. Ich hab jetz sämtliche Dateien auf groß- kleinschreibung überprüft und nix fehlerhaftes gefunden...

Ich kann bei bedarf nochma den neuen Code meiner ak47.cpp einfügen...

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)


Dieser Beitrag wurde am 14.05.2002 um 16:39 von BoehserOnkel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
016
14.05.2002, 17:12
Bufferoverflow



Also ich schätz mal das der oder die Fehler bei der Munition liegen. Kennt sich da jemand aus? Wo muss man die überall deklarieren?

--

zum Seitenanfang zum Seitenende Profil || Suche
017
14.05.2002, 18:38
BoehserOnkel



Von der Muni her gibt er keinen fehler an. Als ich die MP5 Muni genommen hab hat der auch schon keine Anzeige mehr gehabt, davor bevor ichs geändert hab, war sie noch vorhanden...

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
018
15.05.2002, 14:55
BoehserOnkel



Nunja also die waffe kommt ins spiel wenn ich oft genug give weapon_ak47 eingebe kommt die waffe man hörts und wenn man genug hat liegt nachher eine auf dem boden. Mitlerweile zeigt er auch den Munistatus an, nur benutzen kann ich sie immer noch nich.

Hier is nochma der ak47.cpp code (nachdem ich den überarbeitet hab):
Quellcode:

#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 ak47_e
{
//    ak47_LONGIDLE = 0,
    ak47_IDLE1,
//    ak47_LAUNCH,
    ak47_RELOAD,
    ak47_DRAW,
    ak47_SHOOT1,
    ak47_SHOOT2,
    ak47_SHOOT3,
};



LINK_ENTITY_TO_CLASS( weapon_ak47, Cak47 );
LINK_ENTITY_TO_CLASS( weapon_akammo, Cak47 );


//=========================================================
//=========================================================

void Cak47::Spawn( )
{
    pev->classname = MAKE_STRING("weapon_akammo"); // hack to allow for old names
    Precache( );
    SET_MODEL(ENT(pev), "models/ak/w_ak47.mdl");
    m_iId = WEAPON_AK47;

    m_iDefaultAmmo = AK47_DEFAULT_GIVE;

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


void Cak47::Precache( void )
{
    PRECACHE_MODEL("models/ak/v_ak47.mdl");
    PRECACHE_MODEL("models/ak/w_ak47.mdl");
    PRECACHE_MODEL("models/ak/p_ak47.mdl");

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

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

    PRECACHE_MODEL("models/ammo/akammo.mdl");
    PRECACHE_SOUND("weapons/ak/ak47_boltpull.wav");              

    PRECACHE_SOUND("weapons/ak/ak47_clipin.wav");
    PRECACHE_SOUND("weapons/ak/ak47_clipout.wav");

    PRECACHE_SOUND ("weapons/ak/ak47-1.wav");// H to the K
    PRECACHE_SOUND ("weapons/ak/ak47-2.wav");// H to the K
//    PRECACHE_SOUND ("weapons/ak/ak-1.wav");// H to the K
    
    PRECACHE_SOUND( "weapons/misc/pickup.wav" );
//    PRECACHE_SOUND( "weapons/glauncher2.wav" );

    PRECACHE_SOUND ("weapons/empty/m_empty.wav");

    m_usak47 = PRECACHE_EVENT( 1, "events/mp5.sc" );
    m_usak472 = PRECACHE_EVENT( 1, "events/mp52.sc" );
}

int Cak47::GetItemInfo(ItemInfo *p)
{
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "ak47";
    p->iMaxAmmo1 = 255;
    p->pszAmmo2 = NULL;
    p->iMaxAmmo2 = -1;
    p->iMaxClip = AK47_MAX_CLIP;
    p->iSlot = 2;
    p->iPosition = 3;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_AK47;
    p->iWeight = AK47_WEIGHT;

    return 1;
}

int Cak47::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 Cak47::Deploy( )
{
    return DefaultDeploy( "models/ak/v_ak47.mdl", "models/ak/p_ak47.mdl", ak47_DRAW, "ak47" );
}


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

    if (m_iClip <= 0)
    {
        PlayEmptySound();
        m_flNextPrimaryAttack = 0.15;
        return;
    }

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

    m_iClip--;


    m_pPlayer->pev->effects = (int)(m_pPlayer->pev->effects) | EF_MUZZLEFLASH;

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

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

#ifdef CLIENT_DLL
    if ( !bIsMultiplayer() )
#else
    if ( !g_pGameRules->IsMultiplayer() )
#endif
    {
        // optimized multiplayer. Widened to make it easier to hit a moving player
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_6DEGREES, 8192, BULLET_PLAYER_MP5, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }
    else
    {
        // single player spread
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MP5, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }

  int flags;
#if defined( CLIENT_WEAPONS )
    flags = FEV_NOTHOST;
#else
    flags = 0;
#endif

    PLAYBACK_EVENT_FULL( flags, m_pPlayer->edict(), m_usak47, 0.0, (float *)&g_vecZero, (float *)&g_vecZero, vecDir.x, vecDir.y, 0, 0, 0, 0 );

    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 = UTIL_WeaponTimeBase() + 0.1;

    if ( m_flNextPrimaryAttack < UTIL_WeaponTimeBase() )
        m_flNextPrimaryAttack = UTIL_WeaponTimeBase() + 0.1;

    m_flTimeWeaponIdle = UTIL_WeaponTimeBase() + UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 );
}





void Cak47::Reload( void )
{
    if ( m_pPlayer->ammo_ak47 <= 0 )
        return;

    DefaultReload( AK47_MAX_CLIP, ak47_RELOAD, 1.5 );
}


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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
        return;

    int iAnim;
    switch ( RANDOM_LONG( 0, 1 ) )
    {
    case 0:    
        iAnim = ak47_IDLE1;    
        break;
    
    default:
    case 1:
        iAnim = ak47_IDLE1;
        break;
    }

    SendWeaponAnim( iAnim );

    m_flTimeWeaponIdle = UTIL_SharedRandomFloat( m_pPlayer->random_seed, 10, 15 ); // how long till we do this again.
}



class Cak47AmmoClip : public CBasePlayerAmmo
{
    void Spawn( void )
    {
        Precache( );
        SET_MODEL(ENT(pev), "models/ammo/akammo.mdl");
        CBasePlayerAmmo::Spawn( );
    }
    void Precache( void )
    {
        PRECACHE_MODEL ("models/ammo/akammo.mdl");
        PRECACHE_SOUND("weapons/misc/pickup.wav");
    }
    BOOL AddAmmo( CBaseEntity *pOther )
    {
        int bResult = (pOther->GiveAmmo( 30, "ak47", _AK47_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/misc/pickup.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};
LINK_ENTITY_TO_CLASS( ammo_ak47clip, Cak47AmmoClip );
LINK_ENTITY_TO_CLASS( ammo_ak47, Cak47AmmoClip );



class Cak47Chainammo : public CBasePlayerAmmo
{
    void Spawn( void )
    {
        Precache( );
        SET_MODEL(ENT(pev), "models/ammo/akammo.mdl");
        CBasePlayerAmmo::Spawn( );
    }
    void Precache( void )
    {
        PRECACHE_MODEL ("models/ammo/akammo.mdl");
        PRECACHE_SOUND("weapons/misc/pickup.wav");
    }
    BOOL AddAmmo( CBaseEntity *pOther )
    {
        int bResult = (pOther->GiveAmmo( AMMO_CHAINBOX_GIVE, "ak47", _AK47_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "weapons/misc/pickup.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};
LINK_ENTITY_TO_CLASS( ammo_ak47Chain, Cak47AmmoClip );

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)


Dieser Beitrag wurde am 15.05.2002 um 15:05 von BoehserOnkel bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
019
16.05.2002, 14:33
BoehserOnkel



So nun hab ich rausgefunden das wenn ich mir mit give weapon_ak47 die waffe geben kann und das er sie dann auch in der hand hält und man damit auch schiessen kann, aber:
1. Kein Sound
2. Keine Animationen
3. Keine Munitionsanzeige (Magazin/Gesamt)
4. Sobald andere Waffen im besitz des Spielers sind kann er die AK47 nich mehr benutzen

Was kann da denn jetz noch falsch sein??

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
020
16.05.2002, 15:23
Bufferoverflow



Wo war der fehler mit give weapon_ak47 ?

--

zum Seitenanfang zum Seitenende Profil || Suche
021
16.05.2002, 15:35
BoehserOnkel



Wie wo war der fehler??
Ich hab die Datei nochma überarbeitet und da zB festgestellt das ich statt:
Quellcode:
p->pszAmmo2 = NULL;    
p->iMaxAmmo2 = -1;    
p->iMaxClip = AK47_MAX_CLIP;

Quellcode:
p->pszAmmo2 = "NULL";
p->iMaxAmmo2 = -1;
p->iMaxClip = 30;

geschrieben hab. Ich hab das geändert. Danach hatte ich dann schonma ne muni anzeige im Waffenmenü. Aber das man die wirklich usen kann klappt noch immer nich...

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
022
18.05.2002, 16:53
BoehserOnkel



So ich hab jetz rausgefunden, dass wenn ich die Wichtigkeit jeder Waffe auf -1 stelle, meine AK wieda auswählen kann. Als ich die dann getestet hab, wollte ich ma son Barney um schießen nur irgentwie machte das Teil nur 1 dmg. Dann hab ich festgestellt das ich die in die Skills.cfg in der pak1.pak eintragen muss. Jetz hat jeder schuss 25 dmg. Nur jetz kapier ich nich so ganz warum der Sound und die Animationen nich funzen.

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche
023
18.05.2002, 17:13
theDon



du hast _überhaupt_ keinen event geprecached...das kann nicht richtig sein

--

\o tanz den naziprau! o/

And more than ever, I hope to never fall,
Where enough is not the same it was before

zum Seitenanfang zum Seitenende Profil || Suche
024
18.05.2002, 18:09
BoehserOnkel



Nicht?? was is denn dann das:
Quellcode:
...  
m_usak47 = PRECACHE_EVENT( 1, "events/mp5.sc" );    
m_usak472 = PRECACHE_EVENT( 1, "events/mp52.sc" );
...

--

by BoehserOnkel
visit http://www.upg.de.tf
----------------------------------------
Du hast doofe Ohren !
(Der kleine junge Mann von neben an)

zum Seitenanfang zum Seitenende Profil || Suche