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
    M4A1 s odnímate¾ným tlmièom
    Wizz
    [20.05.2004 : 12:34:15] 114 Tutoril
    tan : 3088
    Priemern znmka : 1.38
    Teraz si priprogramujeme M4A1 carbine do Half-Life. Aby to ale nebolo také jednoduché, budeme môc nasadzova tlmiè, ktorý bude ovplivnova zvuk. Použijeme vydarený model z Counter-Strike.

    Takže zaèneme kopírovaním. Z adresára "cstrike/models/" skopírujte súbory p_m4a1.mdl, v_m4a1.mdl a w_m4a1.mdl do adresára "valve/models". Teraz chodte do adresára "cstrike/sound/weapons/", zoberte a skopírujte všetky zvuky ktoré sa zaèínajú na m4a1 do adresára "valve/sound/weapons". To by bolo.

    Otvorte VC++ a HL SDK. Vytvorte nový súbor m4.cpp a vložte do neho nasledujúci kod.Mimochodom, daèo som pokomentoval a princíp je rozpísaný na konci èlánku. Èervený text je dôležitý.


    #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 m4_e
    {
    // vypis vsetkych animaci M4
    // podla poradia ako su v
    // subore v_m4a1.mdl

    M4_IDLE = 0,
    M4_SHOOT1,
    M4_SHOOT2,
    M4_SHOOT3,
    M4_RELOAD,
    M4_DRAW,
    M4_ADD_SILENCER,
    M4_IDLE_UNSIL,
    M4_SHOOT1_UNSIL,
    M4_SHOOT2_UNSIL,
    M4_SHOOT3_UNSIL,
    M4_RELOAD_UNSIL,
    M4_DRAW_UNSIL,
    M4_DETACH_SILENCER,
    };


    class CM4 : 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 );
    void SecondaryAttack( void );
    BOOL Deploy( void );
    void Reload( void );
    void WeaponIdle( void );
    float m_flNextAnimTime;
    int m_iShell;

    int tlmic;
    // tato premenna bude uchovavat stav tlmica
    // 0 - bez tlmica
    // 1 - s tlmicom


    private:
    unsigned short m_usM4;
    };
    LINK_ENTITY_TO_CLASS( weapon_m4, CM4 );

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

    void CM4::Spawn( )
    {
    pev->classname = MAKE_STRING("weapon_m4"); // hack to allow for old names
    Precache( );
    SET_MODEL(ENT(pev), "models/w_m4a1.mdl");
    m_iId = WEAPON_M4;

    m_iDefaultAmmo = M4_DEFAULT_GIVE;

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

    void CM4::Precache( void )
    {
    PRECACHE_MODEL("models/v_m4a1.mdl");
    PRECACHE_MODEL("models/w_m4a1.mdl");
    PRECACHE_MODEL("models/p_m4a1.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("items/guncock1.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");

    PRECACHE_SOUND ("weapons/m4a1_unsil-1.wav");// strelba bez tlmica
    PRECACHE_SOUND ("weapons/m4a1-1.wav"); // strelba s tlmicom
    }

    int CM4::GetItemInfo(ItemInfo *p)
    {
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "9mm";
    p->iMaxAmmo1 = _9MM_MAX_CARRY;
    p->iMaxClip = M4_MAX_CLIP;
    p->iSlot = 2;
    p->iPosition = 3;
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_M4;
    p->iWeight = 20;

    return 1;
    }

    int CM4::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 CM4::Deploy( )
    {
    if (tlmic)
    {
    return DefaultDeploy( "models/v_m4a1.mdl", "models/p_m4a1.mdl", M4_DRAW, "m4" );
    }
    else
    {
    return DefaultDeploy( "models/v_m4a1.mdl", "models/p_m4a1.mdl", M4_DRAW_UNSIL, "m4" );
    }

    }

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

    if (tlmic)
    {
    EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/m4a1-1.wav", RANDOM_FLOAT(0.9, 1.0), ATTN_NORM);
    SendWeaponAnim( M4_SHOOT1 );
    }
    else
    {
    EMIT_SOUND(ENT(m_pPlayer->pev), CHAN_WEAPON, "weapons/m4a1_unsil-1.wav", RANDOM_FLOAT(0.9, 1.0), ATTN_NORM);
    SendWeaponAnim( M4_SHOOT1_UNSIL );
    }


    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;

    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 );
    m_pPlayer->FireBullets (1, vecSrc, vecAiming, VECTOR_CONE_1DEGREES, 16000, BULLET_PLAYER_9MM, 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.1;
    if (m_flNextPrimaryAttack < gpGlobals->time)
    m_flNextPrimaryAttack = gpGlobals->time + 0.1;

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

    void CM4::SecondaryAttack( void )
    {

    if (tlmic)
    {
    SendWeaponAnim( M4_DETACH_SILENCER );
    m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 2;
    tlmic = 0;
    }
    else
    {
    SendWeaponAnim( M4_ADD_SILENCER );
    m_pPlayer->m_flNextAttack = UTIL_WeaponTimeBase() + 2;
    tlmic = 1;
    }

    pev->nextthink = gpGlobals->time + 0.1;
    m_flNextSecondaryAttack = gpGlobals->time + 1.0;
    }

    void CM4::Reload( void )
    {
    if (tlmic)
    {
    DefaultReload( M4_MAX_CLIP, M4_RELOAD, 1.5 );
    }
    else
    {
    DefaultReload( M4_MAX_CLIP, M4_RELOAD_UNSIL, 1.5 );
    }

    }

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

    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );

    if (m_flTimeWeaponIdle > gpGlobals->time)
    return;

    if (tlmic)
    {
    SendWeaponAnim( M4_IDLE );
    }
    else
    {
    SendWeaponAnim( M4_IDLE_UNSIL);
    }

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

    class CM4AmmoClip : 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_M4CLIP_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_m4clip, CM4AmmoClip );
    LINK_ENTITY_TO_CLASS( ammo_m4, CM4AmmoClip );


    Ok, teraz chodte do súboru weapons.cpp, nájdite nasledujúci text a podneho vložte rovno ten èervený :

    // mp5
    UTIL_PrecacheOtherWeapon( "weapon_9mmAR" );
    UTIL_PrecacheOther( "ammo_9mmAR" );
    UTIL_PrecacheOther( "ammo_ARgrenades" );
    // m4
    UTIL_PrecacheOtherWeapon( "weapon_m4" );
    UTIL_PrecacheOther( "ammo_m4" );


    teraz

    #define WEAPON_SATCHEL 14
    #define WEAPON_SNARK 15
    #define WEAPON_M4 16


    a ešte

    #define MP5_MAX_CLIP 50
    #define MP5_DEFAULT_AMMO 25
    #define M4_MAX_CLIP 30
    #define M4_DEFAULT_AMMO 30


    a ešte ...

    #define MP5_DEFAULT_GIVE 25
    #define MP5_DEFAULT_AMMO 25
    #define M4_DEFAULT_GIVE 30
    #define M4_DEFAULT_AMMO 30


    a ešte ......

    #define AMMO_357BOX_GIVE PYTHON_MAX_CLIP
    #define AMMO_MP5CLIP_GIVE MP5_MAX_CLIP
    #define AMMO_M4CLIP_GIVE 30


    To by bolo z weapons.h všetko, skoème ešte do súboru player.cpp a doplnte :

    GiveNamedItem( "weapon_handgrenade" );
    GiveNamedItem( "weapon_tripmine" );
    GiveNamedItem( "weapon_m4" );
    GiveNamedItem( "ammo_m4" );


    Hurá hurá,A je to hotové :D Skompilujte dll, spustite HL a do konzoly napíšte príkaz "impulse 101" a dajte si do rúk M4A1. Pravým tlaèítkom nasadzujete a zosadzujete tlmiè.

    Ako to vlastne funguje ?? Ve¾mi jednoducho, dá sa poveda. Súbor "v_m4a1.mdl" obsahuje všetky animácie s aj bez tlmièa. Tak sme si vytvorili premennú "tlmic" v ktoréj budeme uchováva stav : 0 - tlmiè neni nasadený, 1 - tlmiè je nasadený. Podla toho èi obsahuje premenná "tlmic" 0 alebo 1 budeme spúšta animácie a zvuky buï s tlmièom alebo bez. Funkciu "SecondaryAttack" použijeme pritom na "prepínanie" hodnôt tlmièa a ešte ku tomu spustíme príslušnú animáciu. Ako som vravel, ¾ahké ako facka. Vela zdaru.

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

    Priemern znmka : 1.38
    Hlasovalo : 8

    KOMENTRE KU LNKU
    Poet komentrov ku lnku : 12

    1. Wizz Admin
    [20.05.2004-13:05] 225
    teraz ma este napadlo, ze mozno to bude fungovat len v multiplayeri, ze Majacik ...

    2. Wizz Admin
    [20.05.2004-13:06] 226
    teda len v singleplayeri :DD

    3. DragoraN
    [20.05.2004-13:41] 227
    hmm... z kodu mi vyplyva, ze ked strielas z/bez tlmicom, tak to je to iste... co tak zvysit presnost alebo nieco take..

    -- may the wind be on your back --

    4. Majacik Redaktor
    [20.05.2004-13:59] 229
    upolne presne wizz, take napady som mal aj ja no je to vhodne do singleplayer, al eked skodujem poriadne tak vas naucim ako no zatial som nemal moc casu

    5. Jackar Admin
    [22.05.2004-11:44] 236
    Hmmm, co tak kukam, tak si na tu premennu Tlmic mohol pouzit BOOLEAN, takto len plytvas Ramkou ;)

    6. Jackar Admin
    [22.05.2004-11:44] 237
    Hmmm, co tak kukam, tak si na tu premennu Tlmic mohol pouzit BOOLEAN, takto len plytvas Ramkou ;)

    7. Wizz Admin
    [24.05.2004-09:22] 248
    DragoraN : no nebol by to sice problem, ale ak chces aby to bolo realnejsie tak to musi zostat jednake

    8. Jackar Admin
    [25.05.2004-19:39] 251
    Wizz, ja by som povedal ze by sa mala praveze presnost a ucinnost zmensit, pretoze prechod z hlavne zbrane do hlavne dlmica nie je bezstratovy. Majacik mi zrejme da za pravdu.

    Proste strela znizi svoju energiu, zhorsi sa rotacia a zacne rezonovat, cize mensi dostrel/vacsi rozptyl/slabsia strela. Samozrejme sa ale berie vecsia vzdialenost, na nejakych 20 m to moc nepostrehnes

    9. Majacik Redaktor
    [26.05.2004-10:35] 253
    hej jackar ma pravdu ukazem burst tam zbadate a wizz myslim ze ten tlmic pojde f poho

    10. Antr@x
    [07.06.2004-15:10] 257
    Mam otazku: kde zozeniem ten Visual C++? Samozrejme zadarmo.

    11. Antr@x
    [07.06.2004-15:11] 258
    a este ze kolko to ma mega.

    12. qery Admin
    [07.06.2004-19:07] 259
    zadarmo to nezozenes.
    cele visual studio 6 ma asi 600 mb

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

    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 (30862x)
    2.HL2: První kroky (30255x)
    3.Counter-Strike entity (22442x)
    4.Half-Life: Padlé Mìsto demo - Recenze (20427x)
    5.Pozadie pomocou textúry sky (18537x)
    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.35 seknd.