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
    MP5A1
    Frco
    [09.08.2004 : 19:18:49] 134 Tutoril
    tan : 3437
    Priemern znmka : 1.3
    Takže si spravíme mp5ku z CS, urèite ju všetci poznáte... Tak zaèneme, treba skopírovat w_mp5.mdl, p_mp5.mdl, v_mp5.mdl a so zvukov mp5_clipin.wav, mp5_clipout.wav, mp5_slideback.wav, mp5-1.wav a mp5-2.wav

    to by bolo pre kopírovanie

    Ako prve v hl.dsw vytvorme nový súbor ktorý sa bude vola mp5a1.cpp a dáme tam tento TEXT:

    // MP5A1 START
    // mp5a1.cpp

    #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 mp5a1_e

    {
    MP5A1_IDLE1 = 0,,
    MP5A1_RELOAD,
    MP5A1_DRAW,
    MP5A1_SHOOT1,
    MP5A1_SHOOT2,
    MP5A1_SHOOT3,
    };

    LINK_ENTITY_TO_CLASS( weapon_mp5a1, CMP5A1 );

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


    void CMP5::Spawn( )
    {
    pev->classname = MAKE_STRING("weapon_mp5a1"); // hack to allow for old names
    Precache( );
    SET_MODEL(ENT(pev), "models/w_mp5.mdl");
    m_iId = WEAPON_MP5A1;
    m_iDefaultAmmo = MP5A1_DEFAULT_GIVE;
    FallInit();// get ready to fall down.
    }

    void CMP5A1::Precache( void )
    {
    PRECACHE_MODEL("models/v_mp5.mdl");
    PRECACHE_MODEL("models/w_mp5.mdl");
    PRECACHE_MODEL("models/p_mp5.mdl");
    m_iShell = PRECACHE_MODEL ("models/shell.mdl");// brass shellTE_MODEL
    PRECACHE_MODEL("models/w_9mmARclip.mdl");
    PRECACHE_SOUND("items/9mmclip1.wav");
    PRECACHE_SOUND("weapons/mp5_clipin.wav");
    PRECACHE_SOUND("weapons/mp5_clipout.wav");
    PRECACHE_SOUND("weapons/mp5_slideback.wav");
    PRECACHE_SOUND ("weapons/mp5-1.wav");
    PRECACHE_SOUND ("weapons/mp5-2.wav");
    PRECACHE_SOUND ("weapons/357_cock1.wav");
    m_usMP5A1 = PRECACHE_EVENT( 1, "events/mp5a1.sc" );
    }

    int CMP5A1::GetItemInfo(ItemInfo *p)
    {
    p->pszName = STRING(pev->classname);
    p->pszAmmo1 = "9mm";
    p->iMaxAmmo1 = _9MM_MAX_CARRY;
    p->pszAmmo2 = NULL;
    p->iMaxAmmo2 = -1;
    p->iMaxClip = MP5A1_MAX_CLIP;
    p->iSlot = 2;
    p->iPosition = 3; // cize bude za kusou
    p->iFlags = 0;
    p->iId = m_iId = WEAPON_MP5A1;
    p->iWeight = MP5A1_WEIGHT;

    return 1;
    }


    int CMP5A1::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 CMP5A1::Deploy( )
    {
    return DefaultDeploy( "models/v_mp5.mdl", "models/p_mp5.mdl", MP5A1_DRAW, "mp5a1" );
    }


    void CMP5A1::PrimaryAttack()
    {
    // don't fire underwater
    if (m_pPlayer->pev->waterlevel == 3 && m_pPlayer->pev->watertype > CONTENT_FLYFIELD)
    {
    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_3DEGREES, 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_usMP5A1, 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 CMP5A1::Reload( void )
    {
    if ( m_pPlayer->ammo_9mm <= 0 )
    return;

    DefaultReload( MP5A1_MAX_CLIP, MP5A1_RELOAD, 1.5 ); // 1.5 = dlzka animacie reloadu v sekundach
    }


    void CMP5A1::WeaponIdle( void )
    {
    ResetEmptySound( );
    m_pPlayer->GetAutoaimVector( AUTOAIM_5DEGREES );
    if ( m_flTimeWeaponIdle > UTIL_WeaponTimeBase() )
    return;
    int iAnim;
    switch ( RANDOM_LONG( 0, 1 ) )
    {
    case 0:
    iAnim = MP5A1_IDLE1;
    break;


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

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

    class CMP5A1AmmoClip : 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_MP5A1CLIP_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_mp5a1, CMP5A1AmmoClip );
    class CMP5A1Chainammo : 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_mp5a1box, CMP5A1Chainammo );
    // MP5A1 END


    No teraz do func_break.cpp pridáme :


    "weapon_mp5a1"
    "ammo_mp5a1"


    teraz weapons.cpp a asi v riadku 340 pridame toto

    // MP5A1
    UTIL_PrecacheOtherWeapon( "weapon_mp5a1" );
    UTIL_PrecacheOther( "ammo_mp5a1" );
    UTIL_PrecacheOther( "ammo_mp5a1box" );



    Otvorime weapons.h a v riadku 81 pridáme :


    #define WEAPON_MP5A1 16



    dalej pridame


    #define MP5A1_WEIGHT 15



    potom


    #define MP5A1_MAX_CLIP 30
    #define MP5A1_DEFAULT_AMMO 30



    ahh...


    #define MP5A1_DEFAULT_GIVE 30
    #define MP5A1_DEFAULT_AMMO 30



    ako posledny define


    #define AMMO_MP5A1CLIP_GIVE MP5A1_MAX_CLIP



    To by bolo pre definície, teraz pridáme asi v riadku 590 za mp5 toto:


    class CMP5A1 : 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;
    virtual BOOL UseDecrement( void )
    {

    #if defined( CLIENT_WEAPONS )
    return TRUE;
    #else
    return FALSE;
    #endif
    }

    private:
    unsigned short m_usMP5A1;
    };



    Ak si chcete zbraò prida do cheatu "impulse 101" tak pridajte toto do súboru player.cpp v riadku 3720


    GiveNamedItem( "weapon_mp5a1" );
    GiveNamedItem( "ammo_mp5a1" );



    Tak to by bolo pre server, teraz otvorime cl_dll.dsw a ako prvé pridáme náš súbor mp5a1.cpp do prieèinku HL. No teraz si otvorime ev_hldm.cpp a hneï do riadku 70 pridáme :


    void EV_FireMP5A1( struct event_args_s *args );



    a dole, asi v riadku 770 pridáme toto, je to dôležité aby zbraò strielala. Túto "vec" si niekedy môžete všimnú v *.sc súbore, ale my to dáme sem, tak preto je vždicky súbor prázdny.


    //======================
    // MP5A1 START
    //======================

    void EV_FireMP5A1( event_args_t *args )
    {
    int idx;
    vec3_t origin;
    vec3_t angles;
    vec3_t velocity;
    vec3_t ShellVelocity;
    vec3_t ShellOrigin;
    int shell;
    vec3_t vecSrc, vecAiming;
    vec3_t up, right, forward;
    float flSpread = 0.01;
    idx = args->entindex;
    VectorCopy( args->origin, origin );
    VectorCopy( args->angles, angles );
    VectorCopy( args->velocity, velocity );
    AngleVectors( angles, forward, right, up );
    shell = gEngfuncs.pEventAPI->EV_FindModelIndex ("models/shell.mdl");// brass shell

    if ( EV_IsLocal( idx ) )
    {
    // Add muzzle flash to current weapon model
    EV_MuzzleFlash();
    gEngfuncs.pEventAPI->EV_WeaponAnimation( MP5_FIRE1 + gEngfuncs.pfnRandomLong(0,0), 1 );
    V_PunchAxis( 0, gEngfuncs.pfnRandomFloat( -2, 2 ) ); // hadzanie obrazovkou pri strelbe
    }

    EV_GetDefaultShellInfo( args, origin, velocity, ShellVelocity, ShellOrigin, forward, right, up, 20, -12, 4 );
    EV_EjectBrass ( ShellOrigin, ShellVelocity, angles[ YAW ], shell, TE_BOUNCE_SHELL );
    switch( gEngfuncs.pfnRandomLong( 0, 1 ) )
    {
    case 0:
    gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/mp5-1.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong( 0, 0xf ) );
    break;
    case 1:
    gEngfuncs.pEventAPI->EV_PlaySound( idx, origin, CHAN_WEAPON, "weapons/mp5-2.wav", 1, ATTN_NORM, 0, 94 + gEngfuncs.pfnRandomLong( 0, 0xf ) );
    break;
    }

    EV_GetGunPosition( args, vecSrc, origin );
    VectorCopy( forward, vecAiming );

    if ( gEngfuncs.GetMaxClients() > 1 )
    {
    EV_HLDM_FireBullets( idx, forward, right, up, 1, vecSrc, vecAiming, 8192, BULLET_PLAYER_MP5, 2, &tracerCount[idx-1], args->fparam1, args->fparam2 );
    }

    else
    {
    EV_HLDM_FireBullets( idx, forward, right, up, 1, vecSrc, vecAiming, 8192, BULLET_PLAYER_MP5, 2, &tracerCount[idx-1], args->fparam1, args->fparam2 );
    }
    }

    //======================
    // MP5A1 END
    //======================



    A teraz do ev_hldm.h pridáme v riadku 78 animácie, tak ako v mp5a1.cpp

    enum mp5a1_e
    {
    MP5A1_IDLE1 = 0,,
    MP5A1_RELOAD,
    MP5A1_DRAW,
    MP5A1_SHOOT1,
    MP5A1_SHOOT2,
    MP5A1_SHOOT3,
    };



    Tieto animácie sa musia zhodova vo mp5a1.cpp a to aj s modelom. No a teraz si ešte dokonèíme tie eventy takže do hl_events.cpp pridáme toto :


    void EV_FireMP5A1( struct event_args_s *args );



    a ešte toto :


    gEngfuncs.pfnHookEvent( "events/mp5a1.sc",EV_FireMP5A1 );



    No a ako posledný subor v kódovani je ešte hl_weapons.cpp v riadku 69 pridáme :


    CMP5A1 g_Mp5a1;



    Teraz v riadku 644 toto :


    HUD_PrepEntity( &g_Mp5a1 , &player );




    A ako posledne toto pridáme v riadku 764 :


    case WEAPON_MP5A1:
    pWeapon = &g_Mp5a1;
    break;




    Teraz skompilujte atï... .V prieèinku SPRITES vytvorte nový súbor weapon_mp5a1.txt a vložte doò tento text :


    // mp5a1
    10
    weapon 320 320hud1 0 120 80 20
    weapon_s 320 320hud1 0 140 80 20
    ammo 320 320hud2 0 16 18 18
    crosshair 320 crosshairs 0 48 24 24
    autoaim 320 crosshairs 48 72 24 24
    weapon 640 640hud1 0 135 170 45
    weapon_s 640 640hud4 0 135 170 45
    ammo 640 640hud7 0 72 24 24
    crosshair 640 crosshairs 0 48 24 24
    autoaim 640 crosshairs 48 72 24 24



    Použil som sprity m4ky z hl. Teraz otvorte hud.txt a úplne navrch kde je "123" zmeòte na "125", to znamená že sú dva nové sprity. Neviem èi je to potrebné, ale pre istotu som to spravil.

    A dolu k ostatnim pridajte toto :

    d_MP5A1 320 320hud1 48 208 48 16


    a

    d_MP5A1 640 640hud1 192 48 48 16


    PS : Nezabudnite si spravi prázdny súbor mp5a1.sc v prieèinku events.

    A TO JE VSJO! Nemaly by nasta chyby, ale ak hej, tak si ich opravte ale ak by ste potrebovali help tak ma môžte kontaktova.

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

    Priemern znmka : 1.3
    Hlasovalo : 10

    KOMENTRE KU LNKU
    Poet komentrov ku lnku : 12

    1. qery Admin
    [09.08.2004-19:53] 355
    good job avsak ma to jednu chybu a to su cisla riadkov lebo nie kazdy ma tie iste cisla ked tam uz ma vlastne zbrane a tak... inac dobre

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

    2. Jackar Admin
    [09.08.2004-22:23] 356
    JJ, hlavne MAJACIK by sa mal poucit ako pisat kod prehladne ;).
    Frco jednicku hlavne za tu prehladnost dostavas. Cakame na dalsie tuts

    3. Majacik Redaktor
    [13.08.2004-22:50] 357
    ja tomu nechapem tam je toho az moc vela no sak je pravda ze kazdy programator ma jedinecny postup no neviem ak to ide tak je dobre no este taka otazka kolko pamate navise moze zozrat tych par riadkov "podobnych *.sc" ked ja to nepouzivam pretoze mi pripada trapne definovat a zvuky, modely a ostatne p*coviny znovu tak isto aj volania funkcii pre mic

    4. Majacik Redaktor
    [13.08.2004-22:52] 358
    pre ake SDK to bolo pisane?

    5. Frco Redaktor
    [15.08.2004-11:41] 359
    hmm pre ja som to robil v spirite ale malo by to asi fungovat aj na ostatnich SDKackach. robil som to podla originalnej zbrani MP5

    I Take The Plane!

    6. Majacik Redaktor
    [15.08.2004-16:33] 360
    je treba aj napisat ze je to pre spirit teraz uz mi to je jasne a na ostatnych to nepojde

    7. qery Admin
    [15.08.2004-18:54] 361
    preco?

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

    8. Jackar Admin
    [15.08.2004-23:41] 362
    Ale vacsina ludi sa zaujima pre spirit ne ?

    9. ^NK&MH^Jurom@ster ABCD
    [16.08.2004-03:26] 363
    preboha co vam faka ? sak to je spravena podla ORGINALNEJ MP5 od VALVE cize to nijako nesuvisi so
    spiritom, nie su tam ziadne funkcie podmienene spiritom ani
    subory... normalna zbran pre HL - zbraniam co robil majacik
    chybaju niektore veci, ktore Spirit potrebuje... a FRCO spravil kompletnu zbran z HL so vsetkym co jej patri

    tak vyskusajte pod HL SDK

    10. qery Admin
    [16.08.2004-09:53] 364
    2jackar: ja to robym vsetko s klasickimi sdkackami...:P

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

    11. Wizz Admin
    [16.08.2004-10:59] 365
    btw ten prehladny cod som upravoval este do tych okienok a tak ja :D

    12. Frco Redaktor
    [17.08.2004-19:57] 370
    jj, diky

    I Take The Plane!

    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 (30209x)
    2.HL2: První kroky (29432x)
    3.Counter-Strike entity (21604x)
    4.Half-Life: Padlé Mìsto demo - Recenze (19677x)
    5.Pozadie pomocou textúry sky (17916x)
    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.4 seknd.