Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
02.05.2002, 22:40
Bufferoverflow



Serwas,
also hab da n kleines problem mit ner Waffe ( jaja mal wieder ) und zwar
is die Waffe ne kleine Uzi ( model is das mac10.mdl von counter-strike ) und basiert auf dem Code von der MP5 nach dem Tutorial auf DHCC von Icarus und Retro gecoded.

Jetzt hab ich volgendes Problem:

1.Ich seh das v_model und p_model nicht
2.Bei der Waffenauswahl oben im HUD steht nur die MAC drinn wenn ich sie in der Hand hab
3.Ich hab keine Traclines einschusslöcher...nur das licht vom muzzlflash

da is mal die mac10.cpp:

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 mac10_e
{
    MAC10_IDLE1 = 0,
    MAC10_RELOAD,
    MAC10_DRAW,
    MAC10_SHOOT1,
    MAC10_SHOOT2,
    MAC10_SHOOT3,
};

LINK_ENTITY_TO_CLASS( weapon_mac10, CMAC10 );

void CMAC10 :: Spawn( )
{
    pev->classname = MAKE_STRING("weapon_mac10");
    Precache( );
    SET_MODEL(ENT(pev), "models/w_mac10.mdl");
    m_iId = WEAPON_MAC10;

    m_iDefaultAmmo = MAC10_DEFAULT_GIVE;

    FallInit();
}

void CMAC10 :: Precache( void )
{
    PRECACHE_MODEL("models/v_mac10.mdl");
    PRECACHE_MODEL("models/w_mac10.mdl");
    PRECACHE_MODEL("models/p_mac10.mdl");

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

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

    PRECACHE_SOUND("weapons/mac10_clipin.wav");
    PRECACHE_SOUND("weapons/mac10_clipout.wav");

    PRECACHE_SOUND ("weapons/mac10-1.wav");
    PRECACHE_SOUND ("weapons/mac10-2.wav");
    PRECACHE_SOUND ("weapons/mac10-3.wav");

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

    m_usMAC10 = PRECACHE_EVENT( 1, "events/mac10.sc" );
}

int CMAC10 :: GetItemInfo(ItemInfo *p)
{
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "45ACP";
    p->iMaxAmmo1 = MAC10_MAX_CARRY;
    p->pszAmmo2 = NULL;
    p->iMaxAmmo2 = -1;
    p->iMaxClip = MAC10_MAX_CLIP;
    p->iSlot = 0;
    p->iPosition = 1;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_MAC10;
    p->iWeight = MAC10_WEIGHT;

    return 1;
}

int CMAC10 :: 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 CMAC10 :: Draw( )
{
    return DefaultDeploy( "models/v_mac10.mdl", "models/p_mac10.mdl", MAC10_DRAW, "mac10" );
}

void CMAC10 :: PrimaryAttack()
{
    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;

    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
    {
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MAC10, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }
    else
    {
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MAC10, 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_usMAC10, 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.09;

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

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

void CMAC10 :: Reload( void )
{
    if ( m_pPlayer->ammo_9mm <= 0 )
        return;

    DefaultReload( MAC10_MAX_CLIP, MAC10_RELOAD, 3.1 );
}

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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
        return;

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

    SendWeaponAnim( iAnim );

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

class CMAC10AmmoClip : 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_MAC10CLIP_GIVE, "45ACP", MAC10_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};

LINK_ENTITY_TO_CLASS( ammo_mac10, CMAC10AmmoClip );

Wenn ihr noch mehr infos braucht schreit einfach :)

--

zum Seitenanfang zum Seitenende Profil || Suche
001
03.05.2002, 14:21
Bufferoverflow



Is wahrscheinlich n ganz blöder Fehler, aber ich komm ned drauf :(

--

zum Seitenanfang zum Seitenende Profil || Suche
002
03.05.2002, 14:35
hausi



Slot überprüfen
Forensuche benützen

--

zum Seitenanfang zum Seitenende Profil || Suche
003
03.05.2002, 14:39
Bufferoverflow



Den Slot hab ich mindestens 100mal geändert und forensuche hab ich nichts gefunden!

--

zum Seitenanfang zum Seitenende Profil || Suche
004
03.05.2002, 15:30
Rockefeller



Aber du glaubst nicht ernsthaft, dass sich jemand deinen Source durchliest?

--

zum Seitenanfang zum Seitenende Profil || Suche
005
03.05.2002, 16:05
Thrillhouse



wahrscheinlich hast du vergessen die .sc datei zu erstellen
oder vergessen das event einzubinden
daher nur das licht vom muzzelflash...

Cu Thrill

--

zum Seitenanfang zum Seitenende Profil || Suche
006
03.05.2002, 18:06
Bufferoverflow



sorry bin n00b hier:

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 mac10_e
{
    MAC10_IDLE1 = 0,
    MAC10_RELOAD,
    MAC10_DRAW,
    MAC10_SHOOT1,
    MAC10_SHOOT2,
    MAC10_SHOOT3,
};

LINK_ENTITY_TO_CLASS( weapon_mac10, CMAC10 );

void CMAC10 :: Spawn( )
{
    pev->classname = MAKE_STRING("weapon_mac10");
    Precache( );
    SET_MODEL(ENT(pev), "models/w_mac10.mdl");
    m_iId = WEAPON_MAC10;

    m_iDefaultAmmo = MAC10_DEFAULT_GIVE;

    FallInit();
}

void CMAC10 :: Precache( void )
{
    PRECACHE_MODEL("models/v_mac10.mdl");
    PRECACHE_MODEL("models/w_mac10.mdl");
    PRECACHE_MODEL("models/p_mac10.mdl");

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

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

    PRECACHE_SOUND("weapons/mac10_clipin.wav");
    PRECACHE_SOUND("weapons/mac10_clipout.wav");

    PRECACHE_SOUND ("weapons/mac10-1.wav");
    PRECACHE_SOUND ("weapons/mac10-2.wav");
    PRECACHE_SOUND ("weapons/mac10-3.wav");

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

    m_usMAC10 = PRECACHE_EVENT( 1, "events/mac10.sc" );
}

int CMAC10 :: GetItemInfo(ItemInfo *p)
{
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "45ACP";
    p->iMaxAmmo1 = MAC10_MAX_CARRY;
    p->pszAmmo2 = NULL;
    p->iMaxAmmo2 = -1;
    p->iMaxClip = MAC10_MAX_CLIP;
    p->iSlot = 0;
    p->iPosition = 1;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_MAC10;
    p->iWeight = MAC10_WEIGHT;

    return 1;
}

int CMAC10 :: 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 CMAC10 :: Draw( )
{
    return DefaultDeploy( "models/v_mac10.mdl", "models/p_mac10.mdl", MAC10_DRAW, "mac10" );
}

void CMAC10 :: PrimaryAttack()
{
    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;

    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
    {
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MAC10, 2, 0, m_pPlayer->pev, m_pPlayer->random_seed );
    }
    else
    {
        vecDir = m_pPlayer->FireBulletsPlayer( 1, vecSrc, vecAiming, VECTOR_CONE_3DEGREES, 8192, BULLET_PLAYER_MAC10, 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_usMAC10, 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.09;

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

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

void CMAC10 :: Reload( void )
{
    if ( m_pPlayer->ammo_9mm <= 0 )
        return;

    DefaultReload( MAC10_MAX_CLIP, MAC10_RELOAD, 3.1 );
}

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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
        return;

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

    SendWeaponAnim( iAnim );

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

class CMAC10AmmoClip : 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_MAC10CLIP_GIVE, "45ACP", MAC10_MAX_CARRY) != -1);
        if (bResult)
        {
            EMIT_SOUND(ENT(pev), CHAN_ITEM, "items/9mmclip1.wav", 1, ATTN_NORM);
        }
        return bResult;
    }
};

LINK_ENTITY_TO_CLASS( ammo_mac10, CMAC10AmmoClip );

Was muss in die .sc datein rein? Und wo muss ich das event einbinden?

--


Dieser Beitrag wurde am 03.05.2002 um 18:11 von Bufferoverflow bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
007
03.05.2002, 18:55
Thrillhouse



die .sc dateien bleiben leer und sind sozusagen nurn fake.
du musst im arbeitsbereich der client.dll mal nach .sc suche dann findest
du eine deklaration EV_irgendwas. nach der musst du suchen und den code
aller deklarationen von EV_... und die Funktion selber copieren und auf deine bedürfnisse anpassen

wenn du noch fragen hast kannst dich ja per msn oder icq bei mir melden

Cu Thrill

PS: wenn du deine waffe nicht sehn kannst kann das an den einstellungen in der qc liegen. sprich deine waffe is ausserhalb des sichtbaren bereichs...

--


Dieser Beitrag wurde am 03.05.2002 um 18:58 von Thrillhouse{AKB} bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche