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

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

Gameru.net останавливает работу в связи с вторжением армии РФ в Украину. Следите за дальнейшими анонсами.
Support Gameru!

> Помощь по разделу

Сайт S.T.A.L.K.E.R. Inside / [ЗП] Параметры командной строки / Распаковщик ресурсов

 
Ответить в данную темуНачать новую тему
> Тестер S.T.A.L.K.E.R.'а, Канал на ютубе.
NanoBot-AMK
сообщение 22.06.2021, 20:27
Сообщение #1


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

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




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


Вот канал интересного ютубера.
https://www.youtube.com/channel/UCEfAA4DKipSAvCpz6kqea0g
Спидран, поиск багов в сталкере. Очень интересно, особенно программистам XRay, вроде меня.
Вот некоторые баги я устранил, но их там ещё много. Некоторые устранены в ЧН и ЗП.
А какие баги вы нашли и устранили в своих модифицированных движках XRay?
Так же, тут можно приводить код этих багов и код устраняющий их.

Сообщение отредактировал NanoBot-AMK - 22.06.2021, 20:28


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 
buildshunter
сообщение 22.06.2021, 20:35
Сообщение #2


Игрок
***

Репутация:   3  
Группа: Участник
Сообщений: 36
Регистрация: 11.08.2020




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


Это именно ОН пробежал сталкер тч за менее 10 минут
Перейти в начало страницы
 
macron
сообщение 22.06.2021, 20:55
Сообщение #3


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

Репутация:   1690  
Группа: Участник
Сообщений: 7021
Награды: 11
Регистрация: 22.02.2006




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


Хексом для 1.0006 фиксил дальность/плавность проявления/исчезновения теней от динамических моделей на r1 и исчезновение тени гг вприсяди на r1.


@rem исправляем исчезновение тени в присяде (значение 194 -> 193) (при 192 двоится)
patch2.exe xrRender_R1.dll $00058743 $C1

@rem увеличиваем дальность проявления теней от динамических объектов (значение 0.02 -> 0)
patch2.exe xrRender_R1.dll $00058744 $00 $00 $00 $00


Перейти в начало страницы
 
NanoBot-AMK
сообщение 22.06.2021, 21:24
Сообщение #4


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

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




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



Баги с гранатомётами.
Основная ошибка, это - то, что это делал идиот. Шутка. Нет.
Класс гранатомётов отличается от родительских, тем, что при выстреле выстреливает гранату. Кэп.
Нам надо найти метод, где безусловно происходить выстрел. Это метод FireTrace, он должен быть виртуальным, в оригинале это не так, переделываем.
Файл Weapon.h
Код
void    virtual FireTrace(const Fvector& P, const Fvector& D);

Теперь мы должны переопределить этот метод в наших гранатомётах.
Например для РГ-6. Файл WeaponRG6.cpp
Код
void CWeaponRG6::FireTrace(const Fvector& P, const Fvector& D)
{
    LPCSTR    curr_ammo = m_magazine.back().m_ammoSect.c_str();
    if(pSettings->line_exist(curr_ammo, "fake_grenade_name"))
    {
        StartRocket(P, D, IsZoomed());
    }
    inheritedSG::FireTrace(P, D);
}

Да тут надо создать новый метод StartRocket в классе CRocketLauncher в этом файле.
RocketLauncher.cpp
Код
void            CRocketLauncher::StartRocket(const Fvector& P, const Fvector& D, bool is_aim)
{
    CExplosiveRocket*    pGrenade = smart_cast<CExplosiveRocket*>(getCurrentRocket());
    if (!pGrenade)
        return;
    Fvector p1, d;
    p1.set    (P);
    d.set    (D);
  
    Fmatrix launch_matrix;
    launch_matrix.identity();
    launch_matrix.k.set(d);
    Fvector::generate_orthonormal_basis(launch_matrix.k, launch_matrix.j, launch_matrix.i);
    launch_matrix.c.set(p1);
    CGameObject*    obj = smart_cast<CGameObject*>(this);

    CObject*    parent = obj->H_Parent();
    if (is_aim)    //
    {
        parent->setEnabled(FALSE);
        obj->setEnabled(FALSE);
    
        collide::rq_result RQ;
        BOOL HasPick = Level().ObjectSpace.RayPick(p1, d, 500.0f, collide::rqtBoth, RQ, obj);

        obj->setEnabled(TRUE);
        parent->setEnabled(TRUE);
        //метод RealGravity возвращает реальную гравитацию с учЄтом работы двигател¤ при определЄном условии.
        float    gravity = pGrenade->RealGravity();
        if (HasPick && gravity>0.f)
        {
            Fvector        Transference;
            Transference.mul(d, RQ.range);
            Fvector        res[2];                    
#ifdef DEBUG
            DBG_OpenCashedDraw();
            DBG_DrawLine(p1,Fvector().add(p1,d),D3DCOLOR_XRGB(255,0,0));
#endif
            u8 canfire0 = TransferenceAndThrowVelToThrowDir(Transference, m_fLaunchSpeed, gravity, res);
#ifdef DEBUG
            if(canfire0>0)DBG_DrawLine(p1,Fvector().add(p1,res[0]),D3DCOLOR_XRGB(0,255,0));
            if(canfire0>1)DBG_DrawLine(p1,Fvector().add(p1,res[1]),D3DCOLOR_XRGB(0,0,255));
            DBG_ClosedCashedDraw(30000);
#endif
            if (canfire0 != 0)
            {
//                    Msg ("d[%f,%f,%f] - res [%f,%f,%f]", d.x, d.y, d.z, res[0].x, res[0].y, res[0].z);
                d = res[0];
            };
        }
    };

    d.mul(m_fLaunchSpeed);
    LaunchRocket(launch_matrix, d, zero_vel);
    pGrenade->SetInitiator(parent->ID());

    if (OnServer())
    {
        NET_Packet P;
        obj->u_EventGen(P, GE_LAUNCH_ROCKET, obj->ID());
        P.w_u16(u16(pGrenade->ID()));
        obj->u_EventSend(P);
    }
    dropCurrentRocket();
}

А метод FireStart во обще удаляем из CWeaponRG6.
Так же переделаем метод AddCartridge
Код
u8 CWeaponRG6::AddCartridge        (u8 cnt)
{
    u8 t = inheritedSG::AddCartridge(cnt);
    u8 k = cnt-t;
    LPCSTR    ammo = m_ammoTypes[m_ammoType].c_str();
    if(pSettings->line_exist(ammo, "fake_grenade_name"))
    {
        LPCSTR    fake_grenade_name = pSettings->r_string(ammo, "fake_grenade_name");
        while(k){
            --k;
            inheritedRL::SpawnRocket(fake_grenade_name, this);
        }
    }
    else
        k = 0;
    return k;
}


Это надо чтобы РГ-6 мог стрелять картечью, при этом никакая ракета не вылетает.
Вот как то так. Так же надо переделать и доработать класс CWeaponMagazinedWGrenade и CWeaponRPG7, там тоже полно ошибок.


--------------------
СТАЛКЕР только для ПК!
Перейти в начало страницы
 

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

 



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