Gameru Android app
23011    92

Сегодня исполняется 10 лет с момента выхода S.T.A.L.K.E.R.: Тень Чернобыля


20 марта 2007 года вышел S.T.A.L.K.E.R.: Тень Чернобыля (в США и Канаде, и 23 марта в Европе и СНГ), ранее известный как S.T.A.L.K.E.R.: Oblivion Lost. Игра разошлась тиражом более 950 тысяч копий на территории СНГ и 700 тысяч на Западе и выиграла множество наград. Разработка игры началась в 2001 году и продолжалась на протяжении почти семи лет. За это время игра трижды меняла название и концепцию. Во время разработки и после выхода игры в сеть утекло множество предварительных сборок, что дало начало моддингу который продолжается до сих пор.

Поздравляем всех сталкеров и обычных прохожих с этим событием!

К десятилетию выхода игры на форум добавлен скин в стиле игры. Выбрать его можно в нижнем-левом углу форума:



20 марта 2017 на форуме
p.s. благодарим STALKER2011x за работу над скином

p.p.s. для раздела "Бар Тайны Зоны" на пробу включил новый скин для всех.
20 марта 2017 на форуме
Присоединяюсь к благодарности!
Отличный скин!
20 марта 2017 на форуме
...и тут Лохотрон такой выходит и сливает юбилейный билд. Или ещё какую плюшку smile.gif которую хранил для такого случая shuffle.gif MULITRI_02.gif

БИЛД! БИЛД! БИЛД!
20 марта 2017 на форуме
Не хватает только зеленого прямоугольника в правом верхнем углу экрана с рекламой. Прям 2009 себе вернул.
Zet
20 марта 2017 на форуме
Поздравляю всех с круглой датой, будто не было этих 10 лет. totstalkir.gif
Единственное что, вроде 23го же числа игра вышла. smile.gif
З.Ы. Скин возвращает 2007, спасибо.
20 марта 2017 на форуме
Блин, помню день покупки как будто вчера, сама игра на мой взгляд ни чуть не устарела, все проходится так же бодро как и в день релиза.

Жду анонса второй части, пора бы cool.gif
20 марта 2017 на форуме
Цитата(Zet @ 20.03.2017, 09:15)
Единственное что, вроде 23го же числа игра вышла.

20 числа в США и Канаде (эта дата считается официальной датой выхода игры), 23 - в Европе и СНГ.
Ruw
20 марта 2017 на форуме
S.T.A.L.K.E.R.: Shadow of Chernobyl | ретро обзор


В какой-то степени S.T.A.L.K.E.R.: Shadow of Chernobyl способна расширить кругозор людям не знакомым с игрой
т.е какой-то абстрактный чел игравший только в какие-то фентези и т.д однажды пройда ТЧ на минуточку прифигеет...
для нас проженных фанатов это все уже должное, но думающий игрок со стороны будет в некой приятной оздаченности...

Всё слышали о Чернобыле, но не все представляют себе, что там вообще в Зоне этой есть...

Это игра, где ты пробираешся сквозь обломки взорвавшегося реактора, чтобы исполнить желание у монолита
Это игра, где огромнаяя военная антенна используется, чтобы замбировать окружающийх..
Это игра, где люди говорящие на одном языке деляться на военезированные группировки, чтобы получить больше влияния для распростронения своей идеалогии
Это игра, которая заставляет параноить в процессе прохождения и вырасти над своими предрассудками в истинном финале игры

Это игра в чёрном облочение, которая стоит рядом на равне стакими мистически играми говорящими игроку какуе-то странную истину, о которой он не подозревал....игры, где игрок то и дело вживается в роль запрограммированного сталкера с татуировкой, воставшего из символического-загробного грузовика смерти, то в другой игре такого толка захватывает самолёт находясь под гипнозом,находясь под влиянием фразой активирующий спящего агента, которая приврдит его в подводный город, в другой очень известной игре становится какой-то куклой в руках загадочного оператора G-man т.д и т.п
Настольгия ТВ
S.T.A.L.K.E.R.
музыка к игре и катсцены









Интервью с MoozE (композитор OST S.T.A.L.K.E.R.)
http://stalker-gsc.ru/publ/intervju_s_mooz..._e_r/3-1-0-7472



22 марта 2017 на форуме
Спасибо за обзор. Вообще прослезился. Посмотрел еще пару трейлеров (2002-2005) и понимаю, это шедевр!!! Хочу назад в 2007г.)))
20 марта 2017 на форуме
Отмечали бы тогда уж 23 марта. Просто, вроде как, привыкли на территории СНГ этот день считать за годовщину. Ну да ладно, не суть.
У меня такой вопрос. Известно ли что-то о тираже игры? Данные в сети есть только за 2008 год, к сожалению...
20 марта 2017 на форуме
В одном только Стиме больше ляма купивших:
https://steamspy.com/app/4500
А ещё есть физические копии без Стима и всякие там GOG.
20 марта 2017 на форуме
День выхода S.T.A.L.K.E.R.: Shadow of Chernoby знаменателен для меня ещё и тем что до этого я вообще не играл в игры. Такого азарта даже при игре в карты не ощущал, и думать не мог что буду зависать сутками в виртуальном мире ТЧ, проходя сюжет игры снова и снова от начала до конца.
Мои поздравления всем кто хоть раз повстречался с Сидором.Удачи вам по жизни!!!
20 марта 2017 на форуме
Присоединяюсь к поздравлениям, с 10-й годовщиной со дня выхода S.T.A.L.K.E.R.'а всех от души! smile.gif
За скин отдельное спасибо, отличный! good.gif Конечно 23-е число нам более роднее, но это даже хорошо что имеем возможность отмечать и поздравляться не один раз. biggrin.gif

Игра всё также интересна и таинственна, при нечастом прохождении, и всё также остаётся ощущение, что вот-вот выплывет очередная знаковая сборка, по коей обнаружится что-то новое запрятанное разрабами, доселе не попадавшееся. biggrin.gif

Ray
20 марта 2017 на форуме
Теперь пора ремейк делать............... totstalkir.gif
20 марта 2017 на форуме
Дайте билд стк2 в честь праздника biggrin.gif
20 марта 2017 на форуме
За игрой тогда не следил, но помню, что все точки с дисками были увешаны плакатами с надписью: "S.T.A.L.K.E.R вышел!"
20 марта 2017 на форуме
Я тоже как-то не очень следил, хотя, до релиза билды 1114 и 1154 видел... Потом как-то забыл про игру. И быстро вспомнил 23.03.2007 - вот тогда и прикупил wink.gif
В начале, первые полгода - год, игралось тяжко: тогда видюха была древняя совсем (GF 4200), калашей в руках не было видно, двери открывались вверх, во время дождя всё небо светилось разными цветами... Пришлось тотальный апгрейд компа проводить (докинул памяти, потом поменял видюху, а потом вообще собрал новый системник)... wacko.gif
20 марта 2017 на форуме
Вот пипец, я постарел на 10 лет!

Самое удивительное - игра ничуть не постарела. Временами надоедала, но модификации её каждый раз возвращают к жизни!
Мн кажется, если бы сейчас выпустили вторую часть, с нормальным двиглом - разработчики срубили бы круглую сумму!
20 марта 2017 на форуме
10 лет ппц, я этот день помню shocking.gif
20 марта 2017 на форуме
Админы, раздайте прикольную медальку "10 лет Сталкеру" всем!)))
Все таки, наверное 70% обсуждений на форуме о сталкере и около него темах)))
20 марта 2017 на форуме
10 лет уже, офигеть.
Об игре узнал впервые из номера Игромании, потом в году эдак 2004-м брат достал диск со старым билдом 1114. Я, говорит, сталкер принёс. Вставляем диск, а там readme и гласит нечто в духе "...уважаемый юзер, это альфа-версия игры...". Облом. biggrin.gif
Отдельного абзаца достойны все скандалы-интриги-расследования по части игры здесь на форуме, воистину уникальный во всех отношениях проект.
20 марта 2017 на форуме
biggrin.gif а где же билд того самого в честь десятилетия?
20 марта 2017 на форуме
Присоединяюсь, даешь билд и сорцы какие-нибудь к билду 1xxx biggrin.gif rolleyes.gif
20 марта 2017 на форуме
Есть вертолёт, будешь восстанавливать?
20 марта 2017 на форуме
Всех любителей поздравляю
20 марта 2017 на форуме
Да... 10 лет срок не малый

А что у нас сегодня какие ни будь праздничные мероприятия будут? Ну там типа салют, шампанское))
20 марта 2017 на форуме
Первый билд в который мне удалось поиграть был кажется с двумя локациями - Агропром и Кордон. Причем я реально сильно расстроился из-за этой альфы, ведь там все было совсем не так как в трейлерах(ну я просто не умел графон крутить) и вообще поначалу реально думал, что это мод для HL1, там ведь еще звуки из контр-страйка были! А уж потом когда слили 1935, я прям проникся темой и до сих пор с переменным успехом переигрываю. Всех нас с праздником, сталкеры.
20 марта 2017 на форуме
помню бесячий старфорс, часто пользовался приводом, но игра стоила того.
21 марта 2017 на форуме
давай сорцы biggrin.gif biggrin.gif biggrin.gif
20 марта 2017 на форуме
Сейчас пытаюсь вспомнить когда начал играть в ТЧ в первый раз, блин реально не помню, 2008 год вроде, а может конец 2007 года.
Посмотрел самые первые файлы по этой игре на своём компе вроде февраль 2008 года.
Саму игру взял у дв. брата, копию оригинала 1.0000 с патчами до 1.0002 и НоДВД, первый раз тупил постоянно, во второй раз в схрон Стрелка на встречу с Доктором не пошёл, и стало быть играл ложную концовку, "дай мне денег" или "хочу что бы Зона исчезла", другие концовки не появлялись из-за бага в скриптах. Там не правильно рассчитывалась репа, а именно репутация используется для расчёта типа концовки, если денег меньше 50000 и не убиты оба лидера Свободы и Долга.
ЗЫ
Ещё скажу, сама игра не особо сложная, не так давно решил пройти Far Cry, дак меня тут же раз за разом убивали, если сделать такую уровень сложности как в этой игре играть будет сложно, а именно научить НПС стрелять на упреждение, и снизить уровень защиты ГГ и всё, будет вам аля FarCry, по кустам будешь шарится.
20 марта 2017 на форуме
Купил чуть ли не спустя неделю с релиза. А вот билдомания началась с трейлера обливион лост на одном из сборников триады, как же клёво в том трейлере выглядил сталкер, даже лучше чем в релизе. На том же диске был трейлер хл2 с е3 вроде, с вырезанным в итоге контентом.
https://www.youtube.com/watch?v=DbGlgbw9J18 - вот этот, правда на диске он был, вроде не такой шакалистый. Или там даже два трейлера было.
21 марта 2017 на форуме
Помню я тогда в 10 классе учился. Диск с образом игры дал одноклассник со словами "Офигенная игра зацени". Образ смонтировал на Даймонд Тулсе, вставил но-двд и играл ещё в англ версию)
Прошло 10 лет, а играмдо сих пор у меня в душе.
21 марта 2017 на форуме
Ну что сказать, прям не вериться, что столько времени прошло... казалось только недавно все было.

Вообще писал когда-то в каком-то опросе о том, как познакомился со сталком, а точнее, в каком году.
Так вот:
картинка

Цитата(aka_sektor)
Из этого журнала родненького, а точнее с прилагающегося диска видеомании со сборником всех вышедшых сюжетов по сталкер, т.е. финальных отчетов, путешествия в зону и др.

Ну а там... уже не скажу когда, но через некоторое время после релиза, купил диск, то был:
картинка 2

М-да... эт был тот ещё забег. Комп игру совсем не тянул, были минималки ток. И то, большие уровни (типа радара и припяти, не говоря уж о ЧАЭС) пробегалась смотря в землю.
Потом конечно достал лицуху...
21 марта 2017 на форуме
Ура, товарищи! Поздравляю всех с успешным окончанием двух первых пятилеток!
Прошло 10 лет? Вы... Серьёзно?.. z_cry.gif

Насколько я помню, купил пиратку в день релиза, хотя позже загляну в коробку, может быть, чек остался. laugh.gif Но ещё задолго до релиза один мой друг по мере поступления новостей тут же рассказывал их мне. Да, он очень её ждал. smile.gif У меня тоже интерес был, но не такой бешеный. Мне игра понравилась, бесспорно, но сколько раз прошёл её не помню. Модами, кстати, не баловался, ставил какие-то, но что-то по мелочи. А вот сейчас, в эти минуты, прям ностальгия пробила... Поиграть бы, да уже особо не до этого...
21 марта 2017 на форуме
ТЧ купил в день релиза. Уже не помню, в каком магазине, но особого хайпа не было, нас таких покупашек было человека четыре или пять. Дааа, славное было времечко.. Релиз ТЧ выпал на второй курс.. Общага, дрянная еда, много выпивки, доступные молодые девчонки.. И S.T.A.L.K.E.R. ночами напролет.. rolleyes.gif
21 марта 2017 на форуме
Парни! Всех поздравляю!!! )
P.S. Может мафию замутим в честь праздника?
21 марта 2017 на форуме
10 лет прошло... охренеть)
21 марта 2017 на форуме
Где то на третий день на Дальнем Востоке появилась лицензия.Как и положено,кто купил у того и тусим (купил я).
Вот играем восторгаемся графикой,атмосферой и где то через 2 часа понимаю,что мы на Дх 8 сидим biggrin.gif На девятый переключились и комп попал в аномальную дыру слабой производительности.
Всех поздравляю с десятилеткой.
Зона притихла, небось бил... выброс скоро! rolleyes.gif Всех с десятилетием нашего, родного!!! smile.gif
21 марта 2017 на форуме
Я только в январе 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: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 марта 2017 на форуме
Билдоман, ЧН до сих пор на DX10.1 не дает 60 фпс на ПЕЧ970 z_lol1.gif

Тень Чернобыля вроде как нормально идет.
22 марта 2017 на форуме
Блин, так интересно читать комментарии к новостям о Сталкере)))
ща читаю 4pda коменты к новости и угораю, что некоторые считают Сталка аналогом фоллаута))))
22 марта 2017 на форуме
Цитата(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 марта 2017 на форуме

все понял откуда файлы, там и вертолет нормальный есть но нифига не реализовано
22 марта 2017 на форуме
Как время то летит,во всех деталях помню день,когда полетел покупать заветный дискsmile.gif Сколько дней и ночей было проведено в мире Зоны...smile.gif Эх,были временаsmile.gif
22 марта 2017 на форуме
А я купил диск через пару дней после выхода игры. Тогда еще в нашем зажопинске сталкера не завезли :-) А теперь это игра - живая классика. Вот недавно хотел снова пройти с каким-нибудь хорошим модом ТЧ. Что посоветуете поставить? Билды не предлагать, они и так у меня есть :-)

А игра версии 1.0 у меня так вообще тогда чуть не спалила мою 7600GS
22 марта 2017 на форуме
Крайнюю версию ОГСЕ. На сегодня лучшее, что есть для ТЧ.
22 марта 2017 на форуме
Цитата(kasper)
можно было распаковать и юзать бинарники от английской версии

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



Также читайте

Cartoteka's monologue №6: S.T.A.L.K.E.R. Classic Trilogy
8 января 2022
31209

Cartoteka's monologue №6: S.T.A.L.K.E.R. Classic Trilogy

В этом Монологе мы совсем немного поговорим про классическую трилогию S.T.A.L.K.E.R.. В отличие от предыдущих Монологов, здесь будет не полноценный обзор каждой игры из серии, а набор из нескольких те ...
Cartoteka's monologue №6: S.T.A.L.K.E.R. Classic Trilogy
8 января 2022
31209

Cartoteka's monologue №6: S.T.A.L.K.E.R. Classic Trilogy

В этом Монологе мы совсем немного поговорим про классическую трилогию S.T.A.L.K.E.R.. В отличие от предыдущих Монологов, здесь будет не полноценный обзор каждой игры из серии, а набор из нескольких те ...
Последняя надежда моддинга на S.T.A.L.K.E.R. мертва
15 октября 2020
14220

Последняя надежда моддинга на S.T.A.L.K.E.R. мертва

Сегодня сталкер под ником Лохотрон (также известный как Тырса) отказался от продажи материалов по отмененному проекту S.T.A.L.K.E.R. 2, разрабатывающегося на рубеже 2000-2010 годов, что стало, возможн ...