Hlavn strnka    Vyhadvanie       Homepage    Registrcia   Prihlsenie
Rubriky
Tutorily
Recenzie
Rzne
Vyhadvanie
Odkazy
lenovia
Download
FRUM
IRC kanl
IRC web klient
GALRIA
Tutorily na XSI
RSS
Registrcia
Diskusn boardy
  • The lambda
  • Mapping
  • Modeling
  • Coding
  • Half-Life

  • Najnovie lnky
    Automatická textová správa
    Vocko Tutoril
    07.06.2009 : 11:02:12
    V tomto tutoriále si spravíme automatickú textovú správu, ktorá sa prehraje vždy s nejakým zvukom.
    Kompilovanie SDK aj na VC++ .Net 2003
    Vocko Tutoril
    10.05.2009 : 10:46:16
    Kto by si chcel pod¾a tutoriálov tu na lambde nieèo prida do kódu, stretne sa s problémom, neskompiluje to.
    Env_mirror alebo zrkadlenie modelov
    Vocko Tutoril
    24.04.2009 : 18:49:30
    Tutoriál na zrkadlenie tu už je, ale èo ak chceme odráža i modely? Na tom nám poslúži entita env_mirror, ktorá sa nachádza iba v Spirite 1.4 alebo novšej verzii.
    HL2 : Obloukový prùchod
    R4z0r Tutoril
    01.05.2008 : 05:48:46
    Dnes si ukážeme zpùsob, jak vytvoøit elegantní obloukový prùchod, bez nutnosti používat øezání geometrie brushem...
    Pridanie zoomu do mp5
    NICKSss Tutoril
    03.03.2008 : 18:55:16

    No,dnes si povieme ako prida zoom na mp5-ku namiesto granátu.
    Pridanie mp3 do spiritu
    NICKSss Tutoril
    02.03.2008 : 20:55:09

    Návod na pridanie mp3 do Half-Life 1 alebo Spirt 1.2,otestované na verzii 1.2.

    Asi už mate zbrane add-ons vo Spirite 1.2 a nechcete prejst na ver.1.4 lebo všetko stratite

    pre Mp3... Na internete som našiel návody pre HL1 a po anglicky ktoré po skompilovani

    fungovali asi takto : Aplikácia HL.EXE Neodpovedá...
    *locus
    Deli Tutoril
    22.02.2008 : 20:13:47
    Pre niektorých mapperov neznámy pojem, ale pre niektorých ve¾mi úèinná pomôcka.
    Vïaka tomuto príspevku sa vám posnažím priblíži tajomstvá jednej z najväèších zbraní spiritu.
    Spirit of Half-Life - Predstavenie
    Wizz Tutoril
    27.10.2007 : 08:52:04
    Predtým než sa pustíte do èítania, chcel by som Vás upozorni že èlánok už nemusí by 100% aktualny. Èlánok som totiž napísal ešte za svojich mladých èias - 13. júna 2004, èo je viac ako tri roky. Zverejni som sa ho rozhodol po nátlaku a výhražkach ostatných redaktorov
    AK47
    Majacik
    [03.01.2004 : 10:31:41] 73 Tutoril
    tan : 3248
    Priemern znmka : 2.5
    AK47 do Half-Life

    Tak teraz si povieme ako pridať novú zbraň do half-life. Budeme na to potrebovať Counter-Strike s kadiaľ si vezmeme zbraň AK47 (nieže by som ho mal rád no je jednoduchý(M4 má tlmič...)). Takže skopírujeme p_ak47.mdl, v_ak47.mdl a w_ak47.mdl do adresára models vo Valve v Half-Life, ďalej skopírujeme weapon_ak47.txt a *.spr do adresára sprites vo Valve. S SDK v adresári DLLS si spustíme hl.dsp a vytvoríme nový súbor ktorý napríklad vložíme ako ak47.cpp a pridáme ho do Source files. Do súboru AK47.cpp vložíme nasledujúci text:

    // START AK47
    #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_IDLE1 = 0,
    AK47_RELOAD,
    AK47_DEPLOY,
    AK47_FIRE1,
    AK47_FIRE2,
    AK47_FIRE3
    };

    class CAK47 : 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 );
    BOOL Deploy( void );
    void Reload( void );
    void WeaponIdle( void );
    float m_flNextAnimTime;
    int m_iShell;
    private:
    };
    LINK_ENTITY_TO_CLASS( weapon_AK47, CAK47 );

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

    m_iDefaultAmmo = 32;

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


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

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

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

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

    PRECACHE_SOUND ("weapons/hks1.wav");// H to the K
    PRECACHE_SOUND ("weapons/hks2.wav");// H to the K
    PRECACHE_SOUND ("weapons/hks3.wav");// H to the K

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

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

    }

    int CAK47::GetItemInfo(ItemInfo *p)
    {
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "9mm";
    p->iMaxAmmo1 = _9MM_MAX_CARRY;
    p->pszAmmo2 = NULL;
    p->iMaxAmmo2 = -1;
    p->iMaxClip = 32;
    p->iSlot = 2;
    p->iPosition = 3;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_AK47;
    p->iWeight = 20;

    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/v_ak47.mdl", "models/p_ak47.mdl", AK47_DEPLOY, "AK47" );
    }


    void CAK47::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;
    }

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

    m_iClip--;

    // player "shoot" animation
    m_pPlayer->SetAnimation( PLAYER_ATTACK1 );
    EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/hks1.wav", 1.0, ATTN_NORM);
    SendWeaponAnim( AK47_FIRE1 );

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

    Vector vecShellVelocity = m_pPlayer->pev->velocity + gpGlobals->v_right * RANDOM_FLOAT(50,70) + gpGlobals->v_up * RANDOM_FLOAT(100,150) + gpGlobals->v_forward * 5 ;
    EjectBrass ( pev->origin + m_pPlayer->pev->view_ofs + gpGlobals->v_up * -8 + gpGlobals->v_forward * 15 + gpGlobals->v_right * 4 , vecShellVelocity, pev->angles.y, m_iShell, TE_BOUNCE_SHELL );
    m_pPlayer->pev->punchangle.x -= 0.7;
    if ( g_pGameRules->IsDeathmatch() )
    {
    m_pPlayer->FireBullets( 1, vecSrc, vecAiming, VECTOR_CONE_2DEGREES, 8192, BULLET_PLAYER_MP5, 0.5, 4 );
    }
    else
    {
    m_pPlayer->FireBullets( 1, vecSrc, vecAiming, VECTOR_CONE_2DEGREES, 8192, BULLET_PLAYER_MP5, 0.5, 4 );
    }

    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.08;
    if (m_flNextPrimaryAttack < gpGlobals->time)
    m_flNextPrimaryAttack = gpGlobals->time + 0.08;

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

    void CAK47::Reload( void )
    {
    DefaultReload( AK47_MAX_CLIP, AK47_RELOAD, 1.5 );
    }

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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if (m_flTimeWeaponIdle > gpGlobals->time)
    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 = gpGlobals->time + RANDOM_FLOAT ( 10, 15 );// how long till we do this again.
    }

    class CAK47AmmoClip : 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_AK47CLIP_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_AK47clip, CAK47AmmoClip );

    class CAK47Chainammo : 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_AK47box, CAK47Chainammo );
    //END AK47

    Potom si otvoríme weapons.cpp a nájdeme nasledujúci text:

    // mp5
    UTIL_PrecacheOtherWeapon( "weapon_9mmAR" );
    UTIL_PrecacheOther( "ammo_9mmAR" );
    UTIL_PrecacheOther( "ammo_ARgrenades" );

    A pod neho pridáme:

    // AK47
    UTIL_PrecacheOtherWeapon( "weapon_AK47" );
    UTIL_PrecacheOther( "ammo_AK47clip" );

    Ďalej otvoríme weapons.h a nájdeme:

    #define WEAPON_SNARK 15

    a pod neho doplníme:

    #define WEAPON_AK47 16

    ďalej nájdeme:

    #define MP5_MAX_CLIP 50

    a pod neho doplníme

    #define AK47_MAX_CLIP 32

    ďalej nájdeme:

    #define AMMO_MP5CLIP_GIVE MP5_MAX_CLIP

    a pod neho doplníme:

    #define AMMO_AK47CLIP_GIVE AK47_MAX_CLIP

    Teraz otvoríme player.cpp a nájdeme:

    case 107:
    {
    TraceResult tr;

    edict_t *pWorld = g_engfuncs.pfnPEntityOfEntIndex( 0 );

    Vector start = pev->origin + pev->view_ofs;
    Vector end = start + gpGlobals->v_forward * 1024;
    UTIL_TraceLine( start, end, ignore_monsters, edict(), &tr );
    if ( tr.pHit )
    pWorld = tr.pHit;
    const char *pTextureName = TRACE_TEXTURE( pWorld, start, end );
    if ( pTextureName )
    ALERT( at_console, "Texture: %sn", pTextureName );
    }
    break;

    a pod neho doplníme:

    case 108:// show shortest paths for entire level to nearest node
    {
    GiveNamedItem( "weapon_AK47" );
    }
    break;

    Týmto sme si zabezpečili, že keď do konzoly napíšeme „impulse 108“ samozrejme bez „úvodzoviek“ tak nám dá ak47, môžeme to dať aj do impulse 101. Teraz si konečne môžeme skompilovať zdrojáky a s adresára PROFILEHL s DLLS skopírovať hl.dll do adresára DLLs vo VALVE v Half-Life a pustiť hru.

    Teraz otvoríme hud.txt ktorý je v adresári SPRITES vo VALVE a nájdeme:

    d_9mmAR 320 320hud1 48 208 48 16

    a pod neho doplníme:

    d_AK47 320 320hud1 48 208 48 16

    a ešte nájdeme:

    d_9mmAR 640 640hud1 192 48 48 16

    a doplníme pod neho:

    d_AK47 640 640hud1 192 48 48 16

    No a malo by to byť hotové.

    BODOVANIE LNKU
    Boduje sa ako v kole (1- vborn, 5-zl)
           

    Priemern znmka : 2.5
    Hlasovalo : 8

    KOMENTRE KU LNKU
    Poet komentrov ku lnku : 9

    1. qery Admin
    [03.01.2004-22:53] 90
    otazka:
    co znamenaju tie veci v hud.txt

    [rmb]qery
    -=HL4ever=-
    qery.no-ip.com

    2. qery Admin
    [03.01.2004-22:53] 91
    poznamka:
    mohol by si pls komentovat source code

    [rmb]qery
    -=HL4ever=-
    qery.no-ip.com

    3. qery Admin
    [03.01.2004-22:54] 92
    poznamka:
    mohol by si pls komentovat source code

    [rmb]qery
    -=HL4ever=-
    qery.no-ip.com

    4. qery Admin
    [03.01.2004-22:57] 93
    oops to som nexcel
    inac je to taky lol kalax :DD

    [rmb]qery
    -=HL4ever=-
    qery.no-ip.com

    5. Nemesis
    [26.01.2004-17:26] 108
    otazka:
    a ake to bude mat crosshair? take jak na cs? a kde sa da zmenit crosshair aby som prerobil z cs crosshair do hl

    6. Majacik Redaktor
    [27.01.2004-09:19] 109
    na to dojde o chvylu

    7. Buksy
    [01.01.2005-22:22] 678
    tak som to spravil,ale z nejakych dovodov mi nezobrazuje mieritko a ked napisem to impulse tak mam kolo 2500 nabojov

    Netrapte sa,rusi to cracknu

    8. Buksy
    [01.09.2005-20:53] 1492
    v com to moze byt? inac,fakt,nemohol by si trochu viac komentarov pridat za tie prikazy? aspon ku neitkrym premennym,a triedam,nech viem co sa v dane triede nastavuje a tiez premennej ;)

    Netrapte sa,rusi to cracknu

    9. deleted
    [09.04.2006-10:17] 1909
    preco mi po loadingu zbran nestriela sory ze mam take blbe otazky ale programovat velmi neviem
    a inac buksy mne to iste robi s m4a1

    goblin

    Pre pridvanie komentrov muste by prihlsen
    Pokia ete nieste zaregistrovan, mete tak urobi TU

    Vyhadvanie

    Rozren vyhadvanie

    AREA 42
    Hlka
    Aj moj komp uz ma alergii na slovo Acer, vzdy kdyz to nekdo napise , tak mi pohasne obraz, DVD Rom se vysune tak rychlo ze tocici se DVD leta po pokoji jak urvana cirkularka a naskoci hlaska neco o prehrati systemu...

    J.D.Skalpel @ ICQ with Jackar

    Starie hlky >> Komentre >>

    Anketa
    Bavi vas aj moding inych hernych zanrov ako FPS ?

    1.Ano, strategie [29%]

    2.Ano, RPG [22%]

    3.Ano, sportove hry [27%]

    4.Nie, ine ako FPS neriesim [23%]

    Spolu hlasovalo : 4040
    Starie ankety >>

    Najtanejie
    1.Atomová bomba ako v crossfire (30110x)
    2.HL2: První kroky (29294x)
    3.Counter-Strike entity (21400x)
    4.Half-Life: Padlé Mìsto demo - Recenze (19535x)
    5.Pozadie pomocou textúry sky (17812x)
    On-Line
    Tieto strnky si prve ta 1 lovek.
    Sponzor webu
    Spriatelen weby
    Ikona na náš web
    Preklady hier, mapy do Half-life a CS, chat a mnoho ïalšieho
    Filmový svet pod lupou
    ceskemody.cz
    HL Zone
    Vše o HL2
    Scifi-guide.net
    Mappersky portal zaoberajuci sa hramy ako CoD1, MoH:AA ci SourceSDK HL2 ale aj mnohymi dalsimi ...
    Nosferatu - novy Slovensky mod o upiroch
    Terrorist attack mod do HL
    PSP novinky, forum, download
    AirSoft Team AlfaCommandos Bratislava
    ICQ - Lamerz bar
    V zujme ochrany duevnho zdravia redaktorov tu u viac ICQ panel nenjdete :P

    Vsledky vaeho snaenia sa mete njs na lamz.thelambda.sk ...

    Vetky texty publikovan na tchto strnkach s majetkom thelambda.sk alebo ich autorov.
    (C) 2003-2006 thelambda.sk VSETKY PRAVA VYHRADENE
    www.TheLambda.SK Enter RS
    Strnka bola natan za 1.73 seknd.