Перейти в начало страницы

Здравствуйте, гость ( Авторизация | Регистрация )

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!
5 страниц V  < 1 2 3 4 5 >  
Ответить в данную темуНачать новую тему
> Сегодня исполняется 10 лет с момента выхода S.T.A.L.K.E.R.: Тень Чернобыля
Cossack-HD
сообщение 21.03.2017, 21:23
Сообщение #41


TECHNOSLAV 80 уровня
**********************

Репутация:   379  
Группа: Участник
Сообщений: 5758
Награды: 6
Регистрация: 26.01.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


Я только в январе 2008 начал играть - как раз родители купили "новый" комп - Athlon 64X2 3600+, Radeon HD2400 1GB DDR. За ~12К деревянных. Но ничего - кукурузис прошёл на этой жестянке и CoD 4 отлично работал))
Сталкер только на статике и вроде как 1024х768 на 1440х900 мониторе - с билдовской растяжкой.
Ещё жёсткий диск на 160 гигов был форматирован в FAT32 и столкир безудержно зависал после продолжительной игры, аж каждые 10 минут. Причём, стоило поиграть в крузис как зависания в сталкере исчезали часов на 5 - наверняка дело в файле подкачки.
Вылеты с зелёным жуком проскакивали один раз на 100 зависаний из-за файловой системы (и это на первом патче). Но это не останавливало меня и папаню - продолжали рубиться. Папан вообще в сингловые игры со времён HL2 не играл, а в сталкера сильно завис. Не знаю, как он осилил ЧН на третьем патче, а ЗП вообще не понравился - вышел через 10 минут.
Надо видос запилить по поводу десятилетия.

Сообщение отредактировал Cossack-HD - 21.03.2017, 21:25


--------------------
Ryzen 3700X
Arctic Freezer 33 eSports Duo
16GB DDR4 3600MHz
Strix GTX 1080 TI
Перейти в начало страницы
 
Билдоман
сообщение 21.03.2017, 21:42
Сообщение #42


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Cossack-HD @ 21.03.2017, 21:27) *
Athlon 64X2 3600+, Radeon HD2400 1GB DDR. За ~12К деревянных.


Ну комп новый, а вот ценник... как-то дороговато за сие железо)

Яндекс показал с одного сайта (трилогии тоже 10 лет, так что актуально): "Получить стабильные 60 FPS на максимальных настройках я смог лишь пройдя целый цикл видеокарт: GeForce 8800 GT, GeForce GT 240, Radeon HD 7750, GeForce GTX 670 и GeForce GTX 1060. Только последняя смогла обеспечить стабильный уровень производительности, да и то в 1366х768. " Что же за игра такая, кто угадает? laugh.gif laugh.gif laugh.gif

PS: Эхх, а X-18 при первом прохождении... такие эмоции были в этой же лабе (именно локации, а не индекса в названии) только в OLR и LA. А этот страшный скрежет застрявших ящиков. biggrin.gif

Сообщение отредактировал Билдоман - 21.03.2017, 21:46


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
chriotmao
сообщение 21.03.2017, 22:13
Сообщение #43


Кандидат Игровых Наук
******************

Репутация:   546  
Группа: Участник
Сообщений: 3016
Награды: 8
Регистрация: 21.04.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Билдоман, ЧН до сих пор на DX10.1 не дает 60 фпс на ПЕЧ970 z_lol1.gif

Тень Чернобыля вроде как нормально идет.


--------------------
Перейти в начало страницы
 
zubr14
сообщение 22.03.2017, 00:49
Сообщение #44


Игровой Эксперт
***************

Репутация:   328  
Группа: Участник
Сообщений: 2399
Награды: 5
Регистрация: 09.11.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Блин, так интересно читать комментарии к новостям о Сталкере)))
ща читаю 4pda коменты к новости и угораю, что некоторые считают Сталка аналогом фоллаута))))


--------------------
Фотография - это единственный язык, который понятен в любой точке мира. (С)
http://zubr14.livejournal.com/
Перейти в начало страницы
 
NanoBot-AMK
сообщение 22.03.2017, 01:00
Сообщение #45


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(kasper @ 21.03.2017, 00:26) *
давай сорцы biggrin.gif biggrin.gif biggrin.gif

А сможешь восстановить? Тогда на тебе подарок в честь юбилея!
У меня так и не получилось, залезать в вертушку можно, но летит куда попало, кувыркается, короче отстой.
Flyer.cpp
Код
// CustomFlyer.cpp: implementation of the CCustomFlyer class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Flyer.h"
#include "../CameraLook.h"
#include "CameraFirstEye.h"
#include "../environment.h"
#include "../skeletoncustom.h"

#define    FLY_ACCEL        10.0f
#define    YAW_ACCEL        0.75f
#define RUN_COEF        4.0f
#define MAX_CAM_YAW        1.75f

#define FRICTION_AIR    1.75f
#define FRICTION_WALL    5.f
#define FRICTION_GROUND    10.f
//#define AIR_RESIST        (1.f-0.01f)

#define MIN_CRASH_SPEED    15.f
#define MAX_CRASH_SPEED    30.f

IC float sign(float t) { return (t>=0)?1.f:-1.f; }
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFlyer::CFlyer() : inherited()
{

    m_PhysicMovementControl->SetCrashSpeeds    (MIN_CRASH_SPEED,MAX_CRASH_SPEED);
    m_PhysicMovementControl->SetParent        (this);
    m_PhysicMovementControl->SetMass        (2000);
    m_PhysicMovementControl->SetApplyGravity(FALSE);
    m_PhysicMovementControl->SetFriction    (FRICTION_AIR,FRICTION_WALL,FRICTION_GROUND);

    cameras[efcFrontView]    = xr_new<CCameraFirstEye>    (this, pSettings, "heli_front_cam", true);
    cameras[efcLookAt]        = xr_new<CCameraLook>        (this, pSettings, "heli_look_cam", false);
    cameras[efcFreeLook]    = xr_new<CCameraLook>        (this, pSettings, "heli_free_cam", false);
    cam_active                = efcFrontView;

    eState        = fsWork;

    new_mstate    = 0;
    cur_mstate    = 0;

    mYaw        = 0;
    mYawVelocity= 0;

//    vOldVel.set(0,0,0);

//    Device.seqRender.Add    (this);
}

CFlyer::~CFlyer()
{
//    Device.seqRender.Remove    (this);

    for (int i=0; i<efcMaxCam; ++i) xr_delete(cameras[i]);
}

void CFlyer::Load(LPCSTR section)
{
    Msg("Loading flyer: %s",section);
    inherited::Load(ini,section);

    Fbox aabb;
    aabb.set                (CFORM()->GetBBox());
//    m_PhysicMovementControl->SetBox            (aabb);
    Fvector vfC,vfE;
    vfE.set                    (1.f,.25f,1.f);
    vfC.set                    (0.f,.2f,0.f);
    m_PhysicMovementControl->SetFoots        (vfC,vfE);
    m_PhysicMovementControl->CalcMaximumVelocity(mMaxAirVelocity,FLY_ACCEL*RUN_COEF,FRICTION_AIR);
    m_PhysicMovementControl->CalcMaximumVelocity(mMaxYawVelocity,YAW_ACCEL*RUN_COEF,FRICTION_AIR);
//    R_ASSERT    (Visual()->Type==MT_SKELETON);
//    smart_cast<CKinematics*>    (Visual())->PlayCycle("work");
}

void CFlyer::UpdateState(){
    // проверить живой или нет
    eState                    = (1)?fsWork:fsDead;
}

void CFlyer::CheckControls(Fvector &vControlAccel, float& fYawAccel)
{
    // control accel
    vControlAccel.set(0,0,0);
    fYawAccel = 0;
    
    // update player accel
    if (cur_mstate&mcUp)        vControlAccel.y =  1;
    if (cur_mstate&mcDown)        vControlAccel.y = -1;

    if (cur_mstate&mcFwd)        vControlAccel.z =  1;
    if (cur_mstate&mcBack)        vControlAccel.z = -1;
    if (cur_mstate&mcLStrafe)    vControlAccel.x = -1;
    if (cur_mstate&mcRStrafe)    vControlAccel.x =  1;
    if (cur_mstate&mcLeft)        fYawAccel        = -1;
    if (cur_mstate&mcRight)        fYawAccel        = 1;

    if ((cam_active==efcFrontView)&&(fYawAccel==0)){
        CCameraBase* cam = cameras[efcFrontView];
        float val = cam->CheckLimYaw();
        float sgn = sign(val);
        if ((val>-.05f)&&(val<0.05f)) val = 0;
        fYawAccel = val;//sgn*val*val;
    }
//    fMouseYawMoving *= 0.8f;
    
    vControlAccel.normalize_safe();
    vControlAccel.mul            (FLY_ACCEL);
    fYawAccel                    *= YAW_ACCEL;
    if (isAccelerated())    {
        vControlAccel.mul        (RUN_COEF);
        fYawAccel                *= RUN_COEF;
    }
    if (m_PhysicMovementControl->Environment()==CMovementControl::peOnGround){
        vControlAccel.x*=0.1f;
        vControlAccel.z*=0.1f;
        fYawAccel*=0.1f;
    }

    vControlAccel.y *= 0.75f;
    //if (_abs(vControlAccel.y)>EPS_L) vControlAccel.y -= psGravity*.25f;
}

void CFlyer::SetAnimation( )
{
}

#define BANK_FACTOR 1.25f
void CFlyer::Update(u32 DT)
{
    if (!bEnabled) return;

    float dt        = float(DT)/1000.f;

    // enabled & disabled motion state on current frame
    cur_mstate        = new_mstate;

    // update controls
    Fvector vControlAccel;
    float    fYawAccel;
    CheckControls    (vControlAccel,fYawAccel);

    // prepare safe translate object
    Fvector            accel;
    /*
    switch(m_PhysicMovementControl->Environment())
    {
        case CMovementControl::peInAir:        pApp->pFont->Out(-1.f,0.5f,"Env: air");        break;
        case CMovementControl::peAtWall:    pApp->pFont->Out(-1.f,0.5f,"Env: wall");    break;
        case CMovementControl::peOnGround:    pApp->pFont->Out(-1.f,0.5f,"Env: ground");    break;
        default: NODEFAULT;
    }
    */

    // rotation
    mYaw            = mYaw + mYawVelocity*dt + fYawAccel*dt*dt*0.5f;
    mYawVelocity    = mYawVelocity + fYawAccel*dt;
    mYawVelocity    -= dt*mYawVelocity*m_PhysicMovementControl->GetCurrentFriction();

    Fvector D,N;
    D.set(_sin(mYaw),0.f,_cos(mYaw));
    N.set(0,1,0);
    mRotate.rotation(D,N);

    // movement
    mRotate.transform_dir(accel, vControlAccel);

    m_PhysicMovementControl->SetPosition(Position());
    m_PhysicMovementControl->Calculate    (accel,mYawVelocity,0,dt,false);
    m_PhysicMovementControl->GetPosition(Position());

//---------------------------------------------------------
// рассчитаем крен
//---------------------------------------------------------
    const Fvector& VM = m_PhysicMovementControl->GetVelocity();
    Fvector        V;
//    V.set        (vOldVel);
//    V.inertion    (VM,0.999f);
//    vOldVel.set    (VM);
    Fmatrix        M;
    M.transpose    (mRotate);
    M.transform_dir(V,VM);

//    pApp->pFont->Out(-1,0.8f,"Vel: %.2f, %.2f, %.2f",V.x,V.y,V.z);

    // рассчитаем возможный крен по скорости
    V.div        (mMaxAirVelocity*2.f*BANK_FACTOR);
    Fmatrix        Rbank;
    Fquaternion Q;

    // рассчитаем крен по повороту
    float bank = mYawVelocity/(mMaxYawVelocity*BANK_FACTOR);
    bank*=_abs        (V.z*4.f);
    bank+=V.x;

    // повернем модель
    Q.rotationYawPitchRoll(bank,0,-(V.z));
    Rbank.rotation    (Q);
    mRotate.mulB_43    (Rbank);

    // crop yaw angle
    if (mYaw>PI_MUL_2){
        mYaw-=PI_MUL_2;
        cameras[efcLookAt]->yaw-=PI_MUL_2;
    }
    if (mYaw<-PI_MUL_2){
        mYaw+=PI_MUL_2;
        cameras[efcLookAt]->yaw+=PI_MUL_2;
    }

    // look camera delay computing
    float vm = V.magnitude()*BANK_FACTOR*2; clamp(vm,0.f,1.f);
    {
        float Yo, k, Ay, z, f;
        Yo    = cameras[efcLookAt]->yaw;
        z    = 1.6f;
        f    = 1.2f+vm;
        k    = PI_MUL_2*f;
        Ay    = (mYaw-Yo)*k*k - Vy*k*z;
        cameras[efcLookAt]->yaw = Yo + Vy*dt + Ay*dt*dt*0.5f;
        Vy    = 0.99f*Vy + Ay*dt;
    }

//---------------------------------------------------------
    // test nearest object
//    Fvector C; float R;
//    m_PhysicMovementControl->GetBoundingSphere(C,R);
//    g_pGameLevel->ObjectSpace.TestNearestObject(CFORM(), C, R);

    // check state
    UpdateState            ();

    // Check ground-contact
    if (m_PhysicMovementControl->gcontact_Was) {
    }

    // update motions
    SetAnimation        ();


    UpdateTransform        ();
//    smart_cast<CKinematics*>(Visual())->Update();

    inherited::Update    (DT);

    if (IsMyCamera()) UpdateCamera();

    // HUD update

//    pApp->pFont->Out(-1,0.88f,"Fly P: %.3f, %.3f, %.3f",Position().x,Position().y,Position().z);
//    pApp->pFont->Out(-1,0.93f,"Fly D: %.3f, %.3f, %.3f",mRotate.k.x,mRotate.k.y,mRotate.k.z);
}

#ifdef DEBUG
void CFlyer::OnRender    ()
{
    if (!bDebug)        return;
    m_PhysicMovementControl->dbg_Draw    ();
}
#endif
Flyer.h
Код
// CustomFlyer.h: interface for the CCustomFlyer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_)
#define AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_
#pragma once

#include "entity.h"
#include "actor_flags.h"

// refs
class CCameraBase;

class CFlyer : public CEntity
{
    enum EMoveCommand{
        mcFwd        = 0x0001,
        mcBack        = 0x0002,
        mcLStrafe    = 0x0004,
        mcRStrafe    = 0x0008,
        mcUp        = 0x0010,
        mcDown        = 0x0020,
        mcAccel        = 0x0100,
        mcLeft        = 0x0200,
        mcRight        = 0x0400
    };
    enum EFlyerCameras {
        efcFrontView    = 0,
        efcLookAt,
        efcFreeLook,
        efcMaxCam
    };
    enum EFlyerState{
        fsWork,
        fsDead
    };

private:
    typedef CEntity        inherited;
private:
    
    // State machine
    EFlyerState            eState;                                // +644
    u32                    new_mstate, cur_mstate;                // +648, +652

    float                mYaw;                                // +656
    float                mYawVelocity;                        // +660
    float                mMaxYawVelocity;                    // +664

    float                mMaxAirVelocity;                    // +668
    IC BOOL                isAccelerated    ()    {
        if (cur_mstate&mcAccel) return psActorFlags.test(AF_ALWAYSRUN)?FALSE:TRUE;
        else                    return psActorFlags.test(AF_ALWAYSRUN)?TRUE :FALSE;
    }

    // Cameras
    CCameraBase*        cameras[efcMaxCam];                    // +672
    EFlyerCameras        cam_active;                            // +684
    void                ChangeCamStyle        (EFlyerCameras style);

    void                UpdateState            ();
    void                UpdateCamera        ();
    void                SetAnimation        ();
    void                CheckControls        (Fvector &vControlAccel, float& fYawAccel);
public:
                        CFlyer                ();
    virtual                ~CFlyer                ();

    virtual void        Load                (LPCSTR section);

    // Fire control
    virtual void        g_fireParams        (const CHudItem* /**pHudItem/**/, Fvector& /**P/**/, Fvector& /**D/**/) {};

    virtual void        HitSignal            ( int /**iHitAmount/**/, Fvector& /**vLocalDir/**/, CEntity* /**E/**/, s16 /**element/**/){;}

    virtual void        Update                ( u32 DT );

    virtual void        IR_onMouseMove            (int x, int y);
    virtual void        IR_OnKeyboardPress        (int dik);
    virtual void        IR_OnKeyboardRelease    (int dik);
    virtual void        IR_OnKeyboardHold        (int dik);

#ifdef DEBUG
    virtual void        OnRender            ();
#endif
};

#endif // !defined(AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_)
FlyerCameras.cpp
Код
#include "stdafx.h"
#include "Flyer.h"
#include "../CameraBase.h"

void CFlyer::UpdateCamera()
{
    Fvector point, dangle;
    
    // get calc eye point 90% from player height
    Fvector                        R;
    m_PhysicMovementControl->Box().getsize        (R);
    point.set                    (0.f,R.y*0.55f,0.9f);
    XFORM().transform_tiny    (point);

    dangle.set(0,0,0);
    switch (cam_active){
    case efcFrontView:    break;
    case efcLookAt:        break;
    case efcFreeLook:    break;
    default: NODEFAULT;
    }
    CCameraBase* C                = cameras[cam_active];
    C->Update                    (point,dangle);
    g_pGameLevel->Cameras().Update    (C);
}

void CFlyer::ChangeCamStyle    (EFlyerCameras style){
    CCameraBase* old_cam = cameras[cam_active];
    cam_active = style;
    CCameraBase* new_cam = cameras[cam_active];
    old_cam->onDeactivate();
    new_cam->onActivate(old_cam);
    switch(cam_active){
    case efcFrontView:    bVisible = true;     new_cam->yaw=0;    break;
    case efcLookAt:        bVisible = true;    break;
    case efcFreeLook:    bVisible = true;    break;
    }
}
FlyerInput.cpp
Код
#include "stdafx.h"
#include "flyer.h"
#include "../xr_input.h"
#include "../CameraBase.h"


void CFlyer::IR_OnKeyboardPress(int cmd){
    if (eState==fsDead) return;
    switch(cmd){
    case kACCEL:    new_mstate |= mcAccel;        break;
    case kR_STRAFE:    new_mstate |= mcRStrafe;    break;
    case kL_STRAFE:    new_mstate |= mcLStrafe;    break;
    case kFWD:        new_mstate |= mcFwd;        break;
    case kBACK:        new_mstate |= mcBack;        break;
    case kJUMP:        new_mstate |= mcUp;            break;
    case kCROUCH:    new_mstate |= mcDown;        break;
    case kLEFT:        new_mstate |= mcLeft;        break;
    case kRIGHT:    new_mstate |= mcRight;        break;
//    case kFIRE:        FireStart();                break;
    case kCAM_1:    ChangeCamStyle(efcFrontView);break;
    case kCAM_2:    ChangeCamStyle(efcLookAt);    break;
    case kCAM_3:    ChangeCamStyle(efcFreeLook);break;
    }
}

void CFlyer::IR_OnKeyboardRelease(int cmd){
    switch(cmd){
    case kACCEL:    new_mstate &=~mcAccel;        break;
    case kR_STRAFE:    new_mstate &=~mcRStrafe;    break;
    case kL_STRAFE:    new_mstate &=~mcLStrafe;    break;
    case kFWD:        new_mstate &=~mcFwd;        break;
    case kBACK:        new_mstate &=~mcBack;        break;
    case kJUMP:        new_mstate &=~mcUp;            break;
    case kCROUCH:    new_mstate &=~mcDown;        break;
    case kLEFT:        new_mstate &=~mcLeft;        break;
    case kRIGHT:    new_mstate &=~mcRight;        break;
//    case kFIRE:        FireEnd();                    break;
    }
}

void CFlyer::IR_OnKeyboardHold(int cmd){
    if (eState==fsDead) return;
    switch(cmd){
    case kCAM_ZOOM_IN:
    case kCAM_ZOOM_OUT:
    case kUP:
    case kDOWN:
        cameras[cam_active]->Move(cmd);
        break;
    case kLEFT:
    case kRIGHT:
//        if (cam_active==efcFreeLook)
//            cameras[cam_active]->Move(cmd);
        break;

    }
}

void CFlyer::IR_onMouseMove(int dx, int dy)
{
    float scale        = psMouseSens * psMouseSensScale/50.f;
    if (efcLookAt!=cam_active)
        if (dx){
            float d = float(dx)*scale;
            cameras[cam_active]->Move((d<0)?kLEFT:kRIGHT, _abs(d));
//            fMouseYawMoving = 1.f;
        }
    if (dy){
        float d = ((psMouseInvert.test(1))?-1:1)*float(dy)*scale*MouseHWScale;
        cameras[cam_active]->Move((d>0)?kUP:kDOWN, _abs(d));
    }
}


В этот вертолёт не залезают, а переключают управление на него, короче, этот код относится приблизительно к билду 1098, и в современном(1.0007) XRay не работает, так же закомментированный код относится приблизительно билду 756. Сам я пытался восстановить класс CVehicleHelicopter это вертолёт актора, был в движке с 13.02.2004 по ноябрь 2005 года, или с 1844 по 2307 билд, так же недоделанный, вот я и пытался его реанимировать, но ничего не вышло.
ЗЫ
В билде 1098 этот вертолёт не работает, отключён. Я так же пытался его реанимировать, но получилось не очень.

Сообщение отредактировал NanoBot-AMK - 22.03.2017, 01:21


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
TIGER_VLAD
сообщение 22.03.2017, 03:53
Сообщение #46


Опытный Игрок
****

Репутация:   4  
Группа: Участник
Сообщений: 54
Награды: 2
Регистрация: 26.07.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Ruw @ 20.03.2017, 10:27) *
S.T.A.L.K.E.R.: Shadow of Chernobyl | ретро обзор


Спасибо за обзор. Вообще прослезился. Посмотрел еще пару трейлеров (2002-2005) и понимаю, это шедевр!!! Хочу назад в 2007г.)))

Сообщение отредактировал TIGER_VLAD - 22.03.2017, 03:55
Перейти в начало страницы
 
Ouch!!!
сообщение 22.03.2017, 06:41
Сообщение #47


Опытный Игрок
****

Репутация:   77  
Группа: Участник
Сообщений: 55
Награды: 4
Регистрация: 20.02.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Как время то летит,во всех деталях помню день,когда полетел покупать заветный дискsmile.gif Сколько дней и ночей было проведено в мире Зоны...smile.gif Эх,были временаsmile.gif
Перейти в начало страницы
 
xroft
сообщение 22.03.2017, 07:16
Сообщение #48


Почти Мастер
***********

Репутация:   174  
Группа: Участник
Сообщений: 1052
Награды: 5
Регистрация: 11.10.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


А я купил диск через пару дней после выхода игры. Тогда еще в нашем зажопинске сталкера не завезли :-) А теперь это игра - живая классика. Вот недавно хотел снова пройти с каким-нибудь хорошим модом ТЧ. Что посоветуете поставить? Билды не предлагать, они и так у меня есть :-)

А игра версии 1.0 у меня так вообще тогда чуть не спалила мою 7600GS

Сообщение отредактировал xroft - 22.03.2017, 07:19


--------------------
Перейти в начало страницы
 
Скиф
сообщение 22.03.2017, 07:36
Сообщение #49


какой жим, вы о чем?)
**********************

Репутация:   1523  
Группа: Участник
Сообщений: 7234
Награды: 10
Регистрация: 30.05.2009




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(xroft @ 22.03.2017, 08:20) *
Вот недавно хотел снова пройти с каким-нибудь хорошим модом ТЧ. Что посоветуете поставить?

Крайнюю версию ОГСЕ. На сегодня лучшее, что есть для ТЧ.
Перейти в начало страницы
 
Kontro-zzz
сообщение 22.03.2017, 12:12
Сообщение #50


Почти Игроман
*********

Репутация:   96  
Группа: Участник
Сообщений: 594
Награды: 3
Регистрация: 26.10.2012




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(kasper)
можно было распаковать и юзать бинарники от английской версии

да ладно, в то время был ужасный dual-up по карточкам(и то в конце 2007-го), дальше уж не буду писать - что это значило, по кр.мере для отдельных ю-зверей. biggrin.gif
Вообще имхо: грех гонять тч с модами, и зачем из ТЧ пытаюца сделать ЗП, грешно это. laugh.gif


--------------------
Будиш маму-папу слушать
Будиш ты канфеты кушать!
© Операция «Ы»
Перейти в начало страницы
 
kasper
сообщение 22.03.2017, 12:18
Сообщение #51


Продвинутый геймер
********

Репутация:   24  
Группа: Участник
Сообщений: 223
Награды: 5
Регистрация: 01.02.2006




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(NanoBot-AMK @ 22.03.2017, 01:03) *
Цитата(kasper @ 21.03.2017, 00:26) *
давай сорцы biggrin.gif biggrin.gif biggrin.gif

А сможешь восстановить? Тогда на тебе подарок в честь юбилея!
У меня так и не получилось, залезать в вертушку можно, но летит куда попало, кувыркается, короче отстой.
Flyer.cpp
Код
// CustomFlyer.cpp: implementation of the CCustomFlyer class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
#include "Flyer.h"
#include "../CameraLook.h"
#include "CameraFirstEye.h"
#include "../environment.h"
#include "../skeletoncustom.h"

#define    FLY_ACCEL        10.0f
#define    YAW_ACCEL        0.75f
#define RUN_COEF        4.0f
#define MAX_CAM_YAW        1.75f

#define FRICTION_AIR    1.75f
#define FRICTION_WALL    5.f
#define FRICTION_GROUND    10.f
//#define AIR_RESIST        (1.f-0.01f)

#define MIN_CRASH_SPEED    15.f
#define MAX_CRASH_SPEED    30.f

IC float sign(float t) { return (t>=0)?1.f:-1.f; }
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////

CFlyer::CFlyer() : inherited()
{

    m_PhysicMovementControl->SetCrashSpeeds    (MIN_CRASH_SPEED,MAX_CRASH_SPEED);
    m_PhysicMovementControl->SetParent        (this);
    m_PhysicMovementControl->SetMass        (2000);
    m_PhysicMovementControl->SetApplyGravity(FALSE);
    m_PhysicMovementControl->SetFriction    (FRICTION_AIR,FRICTION_WALL,FRICTION_GROUND);

    cameras[efcFrontView]    = xr_new<CCameraFirstEye>    (this, pSettings, "heli_front_cam", true);
    cameras[efcLookAt]        = xr_new<CCameraLook>        (this, pSettings, "heli_look_cam", false);
    cameras[efcFreeLook]    = xr_new<CCameraLook>        (this, pSettings, "heli_free_cam", false);
    cam_active                = efcFrontView;

    eState        = fsWork;

    new_mstate    = 0;
    cur_mstate    = 0;

    mYaw        = 0;
    mYawVelocity= 0;

//    vOldVel.set(0,0,0);

//    Device.seqRender.Add    (this);
}

CFlyer::~CFlyer()
{
//    Device.seqRender.Remove    (this);

    for (int i=0; i<efcMaxCam; ++i) xr_delete(cameras[i]);
}

void CFlyer::Load(LPCSTR section)
{
    Msg("Loading flyer: %s",section);
    inherited::Load(ini,section);

    Fbox aabb;
    aabb.set                (CFORM()->GetBBox());
//    m_PhysicMovementControl->SetBox            (aabb);
    Fvector vfC,vfE;
    vfE.set                    (1.f,.25f,1.f);
    vfC.set                    (0.f,.2f,0.f);
    m_PhysicMovementControl->SetFoots        (vfC,vfE);
    m_PhysicMovementControl->CalcMaximumVelocity(mMaxAirVelocity,FLY_ACCEL*RUN_COEF,FRICTION_AIR);
    m_PhysicMovementControl->CalcMaximumVelocity(mMaxYawVelocity,YAW_ACCEL*RUN_COEF,FRICTION_AIR);
//    R_ASSERT    (Visual()->Type==MT_SKELETON);
//    smart_cast<CKinematics*>    (Visual())->PlayCycle("work");
}

void CFlyer::UpdateState(){
    // проверить живой или нет
    eState                    = (1)?fsWork:fsDead;
}

void CFlyer::CheckControls(Fvector &vControlAccel, float& fYawAccel)
{
    // control accel
    vControlAccel.set(0,0,0);
    fYawAccel = 0;
    
    // update player accel
    if (cur_mstate&mcUp)        vControlAccel.y =  1;
    if (cur_mstate&mcDown)        vControlAccel.y = -1;

    if (cur_mstate&mcFwd)        vControlAccel.z =  1;
    if (cur_mstate&mcBack)        vControlAccel.z = -1;
    if (cur_mstate&mcLStrafe)    vControlAccel.x = -1;
    if (cur_mstate&mcRStrafe)    vControlAccel.x =  1;
    if (cur_mstate&mcLeft)        fYawAccel        = -1;
    if (cur_mstate&mcRight)        fYawAccel        = 1;

    if ((cam_active==efcFrontView)&&(fYawAccel==0)){
        CCameraBase* cam = cameras[efcFrontView];
        float val = cam->CheckLimYaw();
        float sgn = sign(val);
        if ((val>-.05f)&&(val<0.05f)) val = 0;
        fYawAccel = val;//sgn*val*val;
    }
//    fMouseYawMoving *= 0.8f;
    
    vControlAccel.normalize_safe();
    vControlAccel.mul            (FLY_ACCEL);
    fYawAccel                    *= YAW_ACCEL;
    if (isAccelerated())    {
        vControlAccel.mul        (RUN_COEF);
        fYawAccel                *= RUN_COEF;
    }
    if (m_PhysicMovementControl->Environment()==CMovementControl::peOnGround){
        vControlAccel.x*=0.1f;
        vControlAccel.z*=0.1f;
        fYawAccel*=0.1f;
    }

    vControlAccel.y *= 0.75f;
    //if (_abs(vControlAccel.y)>EPS_L) vControlAccel.y -= psGravity*.25f;
}

void CFlyer::SetAnimation( )
{
}

#define BANK_FACTOR 1.25f
void CFlyer::Update(u32 DT)
{
    if (!bEnabled) return;

    float dt        = float(DT)/1000.f;

    // enabled & disabled motion state on current frame
    cur_mstate        = new_mstate;

    // update controls
    Fvector vControlAccel;
    float    fYawAccel;
    CheckControls    (vControlAccel,fYawAccel);

    // prepare safe translate object
    Fvector            accel;
    /*
    switch(m_PhysicMovementControl->Environment())
    {
        case CMovementControl::peInAir:        pApp->pFont->Out(-1.f,0.5f,"Env: air");        break;
        case CMovementControl::peAtWall:    pApp->pFont->Out(-1.f,0.5f,"Env: wall");    break;
        case CMovementControl::peOnGround:    pApp->pFont->Out(-1.f,0.5f,"Env: ground");    break;
        default: NODEFAULT;
    }
    */

    // rotation
    mYaw            = mYaw + mYawVelocity*dt + fYawAccel*dt*dt*0.5f;
    mYawVelocity    = mYawVelocity + fYawAccel*dt;
    mYawVelocity    -= dt*mYawVelocity*m_PhysicMovementControl->GetCurrentFriction();

    Fvector D,N;
    D.set(_sin(mYaw),0.f,_cos(mYaw));
    N.set(0,1,0);
    mRotate.rotation(D,N);

    // movement
    mRotate.transform_dir(accel, vControlAccel);

    m_PhysicMovementControl->SetPosition(Position());
    m_PhysicMovementControl->Calculate    (accel,mYawVelocity,0,dt,false);
    m_PhysicMovementControl->GetPosition(Position());

//---------------------------------------------------------
// рассчитаем крен
//---------------------------------------------------------
    const Fvector& VM = m_PhysicMovementControl->GetVelocity();
    Fvector        V;
//    V.set        (vOldVel);
//    V.inertion    (VM,0.999f);
//    vOldVel.set    (VM);
    Fmatrix        M;
    M.transpose    (mRotate);
    M.transform_dir(V,VM);

//    pApp->pFont->Out(-1,0.8f,"Vel: %.2f, %.2f, %.2f",V.x,V.y,V.z);

    // рассчитаем возможный крен по скорости
    V.div        (mMaxAirVelocity*2.f*BANK_FACTOR);
    Fmatrix        Rbank;
    Fquaternion Q;

    // рассчитаем крен по повороту
    float bank = mYawVelocity/(mMaxYawVelocity*BANK_FACTOR);
    bank*=_abs        (V.z*4.f);
    bank+=V.x;

    // повернем модель
    Q.rotationYawPitchRoll(bank,0,-(V.z));
    Rbank.rotation    (Q);
    mRotate.mulB_43    (Rbank);

    // crop yaw angle
    if (mYaw>PI_MUL_2){
        mYaw-=PI_MUL_2;
        cameras[efcLookAt]->yaw-=PI_MUL_2;
    }
    if (mYaw<-PI_MUL_2){
        mYaw+=PI_MUL_2;
        cameras[efcLookAt]->yaw+=PI_MUL_2;
    }

    // look camera delay computing
    float vm = V.magnitude()*BANK_FACTOR*2; clamp(vm,0.f,1.f);
    {
        float Yo, k, Ay, z, f;
        Yo    = cameras[efcLookAt]->yaw;
        z    = 1.6f;
        f    = 1.2f+vm;
        k    = PI_MUL_2*f;
        Ay    = (mYaw-Yo)*k*k - Vy*k*z;
        cameras[efcLookAt]->yaw = Yo + Vy*dt + Ay*dt*dt*0.5f;
        Vy    = 0.99f*Vy + Ay*dt;
    }

//---------------------------------------------------------
    // test nearest object
//    Fvector C; float R;
//    m_PhysicMovementControl->GetBoundingSphere(C,R);
//    g_pGameLevel->ObjectSpace.TestNearestObject(CFORM(), C, R);

    // check state
    UpdateState            ();

    // Check ground-contact
    if (m_PhysicMovementControl->gcontact_Was) {
    }

    // update motions
    SetAnimation        ();


    UpdateTransform        ();
//    smart_cast<CKinematics*>(Visual())->Update();

    inherited::Update    (DT);

    if (IsMyCamera()) UpdateCamera();

    // HUD update

//    pApp->pFont->Out(-1,0.88f,"Fly P: %.3f, %.3f, %.3f",Position().x,Position().y,Position().z);
//    pApp->pFont->Out(-1,0.93f,"Fly D: %.3f, %.3f, %.3f",mRotate.k.x,mRotate.k.y,mRotate.k.z);
}

#ifdef DEBUG
void CFlyer::OnRender    ()
{
    if (!bDebug)        return;
    m_PhysicMovementControl->dbg_Draw    ();
}
#endif
Flyer.h
Код
// CustomFlyer.h: interface for the CCustomFlyer class.
//
//////////////////////////////////////////////////////////////////////

#if !defined(AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_)
#define AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_
#pragma once

#include "entity.h"
#include "actor_flags.h"

// refs
class CCameraBase;

class CFlyer : public CEntity
{
    enum EMoveCommand{
        mcFwd        = 0x0001,
        mcBack        = 0x0002,
        mcLStrafe    = 0x0004,
        mcRStrafe    = 0x0008,
        mcUp        = 0x0010,
        mcDown        = 0x0020,
        mcAccel        = 0x0100,
        mcLeft        = 0x0200,
        mcRight        = 0x0400
    };
    enum EFlyerCameras {
        efcFrontView    = 0,
        efcLookAt,
        efcFreeLook,
        efcMaxCam
    };
    enum EFlyerState{
        fsWork,
        fsDead
    };

private:
    typedef CEntity        inherited;
private:
    
    // State machine
    EFlyerState            eState;                                // +644
    u32                    new_mstate, cur_mstate;                // +648, +652

    float                mYaw;                                // +656
    float                mYawVelocity;                        // +660
    float                mMaxYawVelocity;                    // +664

    float                mMaxAirVelocity;                    // +668
    IC BOOL                isAccelerated    ()    {
        if (cur_mstate&mcAccel) return psActorFlags.test(AF_ALWAYSRUN)?FALSE:TRUE;
        else                    return psActorFlags.test(AF_ALWAYSRUN)?TRUE :FALSE;
    }

    // Cameras
    CCameraBase*        cameras[efcMaxCam];                    // +672
    EFlyerCameras        cam_active;                            // +684
    void                ChangeCamStyle        (EFlyerCameras style);

    void                UpdateState            ();
    void                UpdateCamera        ();
    void                SetAnimation        ();
    void                CheckControls        (Fvector &vControlAccel, float& fYawAccel);
public:
                        CFlyer                ();
    virtual                ~CFlyer                ();

    virtual void        Load                (LPCSTR section);

    // Fire control
    virtual void        g_fireParams        (const CHudItem* /**pHudItem/**/, Fvector& /**P/**/, Fvector& /**D/**/) {};

    virtual void        HitSignal            ( int /**iHitAmount/**/, Fvector& /**vLocalDir/**/, CEntity* /**E/**/, s16 /**element/**/){;}

    virtual void        Update                ( u32 DT );

    virtual void        IR_onMouseMove            (int x, int y);
    virtual void        IR_OnKeyboardPress        (int dik);
    virtual void        IR_OnKeyboardRelease    (int dik);
    virtual void        IR_OnKeyboardHold        (int dik);

#ifdef DEBUG
    virtual void        OnRender            ();
#endif
};

#endif // !defined(AFX_FLYER_H__06360CF2_1B3F_4F82_814D_F7BF5E4F601C__INCLUDED_)
FlyerCameras.cpp
Код
#include "stdafx.h"
#include "Flyer.h"
#include "../CameraBase.h"

void CFlyer::UpdateCamera()
{
    Fvector point, dangle;
    
    // get calc eye point 90% from player height
    Fvector                        R;
    m_PhysicMovementControl->Box().getsize        (R);
    point.set                    (0.f,R.y*0.55f,0.9f);
    XFORM().transform_tiny    (point);

    dangle.set(0,0,0);
    switch (cam_active){
    case efcFrontView:    break;
    case efcLookAt:        break;
    case efcFreeLook:    break;
    default: NODEFAULT;
    }
    CCameraBase* C                = cameras[cam_active];
    C->Update                    (point,dangle);
    g_pGameLevel->Cameras().Update    (C);
}

void CFlyer::ChangeCamStyle    (EFlyerCameras style){
    CCameraBase* old_cam = cameras[cam_active];
    cam_active = style;
    CCameraBase* new_cam = cameras[cam_active];
    old_cam->onDeactivate();
    new_cam->onActivate(old_cam);
    switch(cam_active){
    case efcFrontView:    bVisible = true;     new_cam->yaw=0;    break;
    case efcLookAt:        bVisible = true;    break;
    case efcFreeLook:    bVisible = true;    break;
    }
}
FlyerInput.cpp
Код
#include "stdafx.h"
#include "flyer.h"
#include "../xr_input.h"
#include "../CameraBase.h"


void CFlyer::IR_OnKeyboardPress(int cmd){
    if (eState==fsDead) return;
    switch(cmd){
    case kACCEL:    new_mstate |= mcAccel;        break;
    case kR_STRAFE:    new_mstate |= mcRStrafe;    break;
    case kL_STRAFE:    new_mstate |= mcLStrafe;    break;
    case kFWD:        new_mstate |= mcFwd;        break;
    case kBACK:        new_mstate |= mcBack;        break;
    case kJUMP:        new_mstate |= mcUp;            break;
    case kCROUCH:    new_mstate |= mcDown;        break;
    case kLEFT:        new_mstate |= mcLeft;        break;
    case kRIGHT:    new_mstate |= mcRight;        break;
//    case kFIRE:        FireStart();                break;
    case kCAM_1:    ChangeCamStyle(efcFrontView);break;
    case kCAM_2:    ChangeCamStyle(efcLookAt);    break;
    case kCAM_3:    ChangeCamStyle(efcFreeLook);break;
    }
}

void CFlyer::IR_OnKeyboardRelease(int cmd){
    switch(cmd){
    case kACCEL:    new_mstate &=~mcAccel;        break;
    case kR_STRAFE:    new_mstate &=~mcRStrafe;    break;
    case kL_STRAFE:    new_mstate &=~mcLStrafe;    break;
    case kFWD:        new_mstate &=~mcFwd;        break;
    case kBACK:        new_mstate &=~mcBack;        break;
    case kJUMP:        new_mstate &=~mcUp;            break;
    case kCROUCH:    new_mstate &=~mcDown;        break;
    case kLEFT:        new_mstate &=~mcLeft;        break;
    case kRIGHT:    new_mstate &=~mcRight;        break;
//    case kFIRE:        FireEnd();                    break;
    }
}

void CFlyer::IR_OnKeyboardHold(int cmd){
    if (eState==fsDead) return;
    switch(cmd){
    case kCAM_ZOOM_IN:
    case kCAM_ZOOM_OUT:
    case kUP:
    case kDOWN:
        cameras[cam_active]->Move(cmd);
        break;
    case kLEFT:
    case kRIGHT:
//        if (cam_active==efcFreeLook)
//            cameras[cam_active]->Move(cmd);
        break;

    }
}

void CFlyer::IR_onMouseMove(int dx, int dy)
{
    float scale        = psMouseSens * psMouseSensScale/50.f;
    if (efcLookAt!=cam_active)
        if (dx){
            float d = float(dx)*scale;
            cameras[cam_active]->Move((d<0)?kLEFT:kRIGHT, _abs(d));
//            fMouseYawMoving = 1.f;
        }
    if (dy){
        float d = ((psMouseInvert.test(1))?-1:1)*float(dy)*scale*MouseHWScale;
        cameras[cam_active]->Move((d>0)?kUP:kDOWN, _abs(d));
    }
}


В этот вертолёт не залезают, а переключают управление на него, короче, этот код относится приблизительно к билду 1098, и в современном(1.0007) XRay не работает, так же закомментированный код относится приблизительно билду 756. Сам я пытался восстановить класс CVehicleHelicopter это вертолёт актора, был в движке с 13.02.2004 по ноябрь 2005 года, или с 1844 по 2307 билд, так же недоделанный, вот я и пытался его реанимировать, но ничего не вышло.
ЗЫ
В билде 1098 этот вертолёт не работает, отключён. Я так же пытался его реанимировать, но получилось не очень.

все понял откуда файлы, там и вертолет нормальный есть но нифига не реализовано
Перейти в начало страницы
 
Билдоман
сообщение 22.03.2017, 14:42
Сообщение #52


Босс
********************

Репутация:   950  
Группа: Участник
Сообщений: 4230
Награды: 2
Регистрация: 27.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(chriotmao @ 21.03.2017, 22:16) *
ЧН до сих пор на DX10.1 не дает 60 фпс на ПЕЧ970


У меня идёт всё, кроме ЧН. Ну и игр с рендером ЧН (LA, привет biggrin.gif )


--------------------
I NEED A BRAAAAAAAAAAAAAAAAAAAAAAP!!!!11
Перейти в начало страницы
 
chriotmao
сообщение 22.03.2017, 15:48
Сообщение #53


Кандидат Игровых Наук
******************

Репутация:   546  
Группа: Участник
Сообщений: 3016
Награды: 8
Регистрация: 21.04.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Билдоман, это вообще не ясная фигня, билд который немецкий (пердрелиз чн) не лагает, а дефолт лагает biggrin1.gif


--------------------
Перейти в начало страницы
 
NanoBot-AMK
сообщение 23.03.2017, 01:34
Сообщение #54


Почти Мастер
***********

Репутация:   75  
Группа: Участник
Сообщений: 1168
Награды: 4
Регистрация: 10.11.2015




Вставить ник Цитировать выделенное в форуму быстрого ответа


Ура, вот этот день настал, 10 лет назад вышел С.Т.А.Л.К.Е.Р. Тень Чернобыля на прилавки СНГ!
А то по дате США как-то не патриотично.


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
Лохотрон
сообщение 23.03.2017, 02:11
Сообщение #55


разраб одиночка
******************

Репутация:   2132  
Группа: Модератор
Сообщений: 3413
Награды: 13
Регистрация: 06.05.2004




Вставить ник Цитировать выделенное в форуму быстрого ответа


С праздничком, ребят.)



--------------------
Делай что должен и будь что будет.

Snake 3D | youtube #1 | youtube #2 | Rusgame | Patreon
Перейти в начало страницы
 
RayTwitty
сообщение 23.03.2017, 02:22
Сообщение #56


Игровой Бог
**********************

Репутация:   648  
Группа: Участник
Сообщений: 5354
Награды: 9
Регистрация: 24.09.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Цитата(Директор РенТВ @ 23.03.2017, 02:14) *
С праздничком, ребят.)




--------------------
Перейти в начало страницы
 
Otto Eisenmann
сообщение 23.03.2017, 02:24
Сообщение #57


Мастер Игры
************

Репутация:   74  
Группа: Участник
Сообщений: 1454
Награды: 2
Регистрация: 28.05.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Да-а-а-а! smile.gif Вот именно сегодня, 23 марта 2017-го в 16:44 (чек сохранился laugh.gif ) будет ровно 10 лет, как я купил пиратку. Конечно, потом взял и лицуху. rolleyes.gif
Перейти в начало страницы
 
kir4aev
сообщение 23.03.2017, 02:30
Сообщение #58


Опытный Игрок
****

Репутация:   -3  
Группа: Участник
Сообщений: 63
Награды: 1
Регистрация: 19.02.2017




Вставить ник Цитировать выделенное в форуму быстрого ответа


Это же Росток, да? На фотке. Это Григорович stalker team держит?

Сообщение отредактировал kir4aev - 23.03.2017, 02:32


--------------------
"Перо свободы. Независимые расследования. Альтернативное мнение."
Очерки, статьи и рассказы о "Новой России Будущего":

Доктор Гонзо. Первый свободный журналист Новой России.
Перейти в начало страницы
 
Cossack-HD
сообщение 23.03.2017, 02:40
Сообщение #59


TECHNOSLAV 80 уровня
**********************

Репутация:   379  
Группа: Участник
Сообщений: 5758
Награды: 6
Регистрация: 26.01.2014




Вставить ник Цитировать выделенное в форуму быстрого ответа


ЧН не по видеокарте задыхается, а в первую очередь по процессору. Рендер однопоточный по большому счёту.
Что касается ТЧ - я там спалил GeForce 9800GT, играя с OGSE. Не мониторил температуры, не лочил FPS, вот и вскипятилась референсная зелёнка. С тех пор сижу только на красных картах smile.gif

Сообщение отредактировал Cossack-HD - 23.03.2017, 02:41


--------------------
Ryzen 3700X
Arctic Freezer 33 eSports Duo
16GB DDR4 3600MHz
Strix GTX 1080 TI
Перейти в начало страницы
 
chriotmao
сообщение 23.03.2017, 08:27
Сообщение #60


Кандидат Игровых Наук
******************

Репутация:   546  
Группа: Участник
Сообщений: 3016
Награды: 8
Регистрация: 21.04.2010




Вставить ник Цитировать выделенное в форуму быстрого ответа


Cossack-HD, странно что он задыхается от i5 laugh.gif


--------------------
Перейти в начало страницы
 

5 страниц V  < 1 2 3 4 5 >
Ответить в данную темуНачать новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 29.03.2024, 13:23