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

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

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

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

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

> Редактирование движка
RayTwitty
сообщение 22.01.2016, 17:18
Сообщение #2221


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

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




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



Редактирование собранного движка
Проект X-Ray extensions и его вики
Lua-перехватчик от alpet
xrLuaFix от RvP
xrLuaFix в редакции от Artos
xrLuaFix в редакции от svarog2741
LuaXML библиотека парсинга xml-файлов из скриптов (подключается при помощи функции require, которая есть в xrLuaFix)
NoProtect 1.0006 исполнительные файлы из Steam-версии без защиты
Документация к X-Ray (11.10.2004)
Файл заголовков от отладочного 6 патча
Cut X-Ray
Цель проекта - создание отдельных изменений движка игры с их последующей комбинацией с другими правками.
Авторы: SkyLoader, _призрак_
Для платформ: ТЧ 1.0004 и 1.0006, ЧН 1.5.10, ЗП 1.6.02
Адрес проекта на Google Code: https://code.google.com/p/cut-x-ray-project/
Страница на Moddb: http://www.moddb.com/mods/cut-x-ray-project-soc-cs-cop
Пак 1
1. Исправление вылета "can't find rank" для оружий.

2. Смерть от первого лица.
Видео: https://www.youtube.com/watch?v=c-4dNyvizxY

3. Collide
Возвращена коллизия мертвых тел с неписями и актором, как она сделана в старой физике билдов.
Видео: https://www.youtube.com/watch?v=1xNn04f3djc

4. Круглый прицел.
Возвращен круглый прицел вместо перекрестья, как билдах.

5. Исправление вида от 3-го лица.
Изменено положение камеры от 3-го лица (1). Стрельба идет по перекрестью, а не по направлению актора. Если включить вид от 3-го лица (1) и удерживать Shift, то ГГ будет автоматически целиться в ближайшего непися или монстра.
Проблемы: Стрельба по перекрестью идет также при виде от 3-го лица (2). Если при автоматическом нацеливании непись/монстр удалится или перейдет в оффлайн, будет движковый безлоговый вылет. Я думал вырезать это нацеливание, но решил оставить.
Пак 2
1. Luminosity progress (только ТЧ)
Возвращение шкалы освещения вместо шкалы "заметности" ГГ, как в билдах.

2. Запрет на доставание оружия в машине (только ТЧ и ЧН) и на лестнице (ТЧ, ЧН, ЗП).

3. Руки на руле в машине. (только ТЧ и ЧН)
Видео: https://www.youtube.com/watch?v=nYrnrfGkO7Y

4. Отсутствие распознавания неписей перекрестием:
При наведении на непися перекрестье имеет дефолтный цвет. Также не показывает информацию о неписе, если смотреть на него.

5. Bind_object:
Возможность использовать скрипты в мультиплеере.

6. Из оружия на классе бинокля можно стрелять (только ТЧ)
Пак 3
1. Включение некоторых команд без использования ярлыка. Можно патчить по отдельности. Команды: -smap_4096 (максимально улучшенные карты теней), -mblur (включение блюра).

2. Измененная анимация безоружного гг.

3. Увеличение дистанции диалога с неписями (для создания сценок на расстоянии)

4. Исправление вылета при использовании предметов из трупов неписей.
В отличии от версии Kolmogor'а, здесь отключено само меню использования.

5. Возможность поднимать болты как обычные инвентарные предметы (комбинировать с модом Charsi "Заканчивающиеся болты")
Скачать все паки
Правки от RayTwitty aka Shadows
Geometry LOD fix (CS 1.5.10) – расширение диапазона консольной команды r__geometry_lod
Camblu crosshair for build 1865 – замена перекрестия прицела на кружок в билде 1865
Vertex buffer fix for NC Project – исправление вылета по переполнению буфера в NC Project
NO 100 sovetov fix (COP 1.6.02) – убирает надписи "100 советов" с экрана загрузки
Demo Record fix (SOC 1.0006) – убирает красные надписи в режиме demo_record
Weapon Bobbing Beta (SOC 1.0006) – раскачка оружия при ходьбе (бета-версия)
Build Loadscreen (SOC 1.0006) – билдовский экран загрузки со статичным изображением
Detail Density fix (SOC 1.0006) – расширение диапазона консольной команды r__detail_density
Mipbias fix (SOC 1.0006) – расширение диапазона консольных команд r1_tf_mipbias и r2_tf_mipbias
No Quick Use fix (SOC 1.0006) – запрет на использование аптечек и бинтов по быстрым клавишам
Sun Near fix (SOC 1.0006) – расширение диапазона консольной команды r2_sun_near
Target Font (SOC 1.0006) – замена шрифта под перекрестием прицела на шрифт DI
Unload Magazine fix (SOC 1.0006) – фикс скриптовой функции unload_magazine - теперь патроны разряжаются в инвентарь
PNG Screenshots (SOC 1.0006) – игра теперь делает качественные скриншоты в формате png

Скачать все правки
Правки от K.D.
xrPatch v0.8 – патчер для увеличения радиуса прорисовки травы
detail radius+density fix [SOC 1.0006] – добавляет регулировку радиуса отрисовки травы через консольную команду и расширяет диапазон регулировки плотности травы до 0.02
Правки от macron
Исправленный экзешник для SoC 1.0006
Доработанный и исправленный экзешник для ТЧ 1.0006 (на основе Steam-версии без защиты)
Включает в себя исправления вылетов, а также очистку лога игры от засоряющих сообщений. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/At9Tw0ueSaDyS
X-Ray extensions portable
Портативная версия расширений движка "X-Ray extensions"
Платформы: ТЧ 1.0006, ЧН 1.5.10, ЗП 1.6.02
Эта версия имеет все нужные библиотеки и патчеры, а также настроенные bat-файлы для успешной компиляции. Более подробное описание внутри архива.

Ссылка: https://yadi.sk/d/OLYPbDXWjyEkH
Правки от Kolmogor
Правленный xrGame для SoC 1.0004
Изменения:
1. Добавлена консольная команда fov [5.0, 180.0] - изменяет глобальный FOV камеры.
2. Добавлена консольная команда k_ammo_on_belt [on\off] - включает\выключает использование патронов с пояса.
3. Артефакты работают из рюкзака, а пояс служит контейнером.

Ссылка: http://rusfolder.com/42636653
Правки от Kontro-zzz
Изменение значения hud_fov
Правки фиксированных значений параметра hud_fov - 0.37 либо 0.53, для CS 1.5.10 и для билда 3120.
Должно работать на GOG версии и no DVD.
Редактирование исходников
Скачать все исходники отсюда или с оригинальных постов SoC 1.0007rc1 SoC и CS CoP X-Ray 2
Репозитории

[SoC]
() Alpet & KD / оригинальное репо [Архивная ценность]
() xrDev [Архивная ценность]
() CleanXR [Архивная ценность]
() KRoddin [Архивная ценность][/b]
() Lost Alpha old [Архивная ценность]
() Репозиторий OGSE | Самый актуальный форк (KRoddin) | Версия от Abramcumner с небольшими исправлениями
() 1exx [Архивная ценность]
() Shkiper2012 [Архивная ценность]
() Morrey (dx10) [Архивная ценность]
() OP Engine (Winsor)
() Kondr48 [Архивная ценность]

[CS]
() RedPython [Архивная ценность]
() xrDev [Архивная ценность]
() OpenXRay [Архивная ценность]
() Charsi82 [Архивная ценность]
() Abramcumner | drksnc (MP) [Архивная ценность]
() RainbowZerg [Архивная ценность]

[CoP]
() Forser
() OpenXRay
() CoC | Demosfen | Last Day
() Abramcumner
() Im-Dex [Архивная ценность]
() xrDev [Архивная ценность]
() Tron [Архивная ценность]
() mrmnwar [Архивная ценность]
() Avo [Архивная ценность]
() vincent-t [Архивная ценность] | Старый репозиторий
() Shoкer
() Morrey CS-COP [Архивная ценность]
() Morrey [Архивная ценность]

[2.0]
() Saas
() xrOxy
Компиляторы x64: SoC CS CoP
NDA GSC
Оригинальные версии движков
Могут понадобиться для восстановления оригинальных библиотек.
SoC SoC ENG CS CoP
GOG version [1.0006, 1.5.10, 1.6.02]
Multi-patch version [1.0006, 1.5.10, 1.6.02]
Официальный мультиплеерный (невышедший) патч для SoC 1.0007rc1.
Уроки
Изменение плотности травы и создание патча через IDA Pro
Автор: _призрак_
edited by: RayTwitty aka Shadows

Для редактирования нам понадобится программа IDA Pro.

1. Запускаем IDA Pro.
2. Загружаем бинарник рендера xrRender_R1.dll или xrRender_R2.dll.
3. Теперь необходимо найти, где регистрируется консольная команда. Жмем Ctrl+T и вводим r__detail_density.
4. Находим функцию и тщательно ее разбираем (я ее полностью разбирать не буду, только укажу, где задаются параметры:
Код регистрации консольной команды
Код
fld ds:flt_10064400 -- нижнее ограничение равное 0.6
or dword_1007CACC, 8
sub esp, 8
fstp [esp+30h+var_2C]
mov ecx, offset unk_1007CA9C
fld ds:flt_10064380 -- верхнее ограничение равное 0.2
fstp [esp+30h+var_30]
push offset aSs; "ЪЩЩ>"
push offset aR__detail_dens; "r__detail_density"
call ds:??0CCC_Float@@QAE@PBDPAMMM@Z; CCC_Float::CCC_Float(char const *,float *,float,float)
push offset sub_1005E080; void (__cdecl *)()
call _atexit
add esp, 4
Если вы заметили, чтобы трава стала плотней нужно уменьшить параметр, а чтобы травы стало меньше, нужно параметр увеличить
5. Нам нужно увеличить плотность травы: следовательно нужно изменить верхнее ограничение. Как это сделать? Есть три варианта:

Первый и самый логичный вариант: изменить переменную. Но тут есть небольшой подвох на котором я попался - этой переменной может пользоваться не одна функция, а несколько. И не ясно, что вы можете сломать, поменяв одну циферку на другую.

Второй: взять другую, уже существующую переменную с подходящим значением. Хороший вариант которым я и воспользовался. Но и тут есть недостаток - переменных в бинарнике не так уж и много и можно просто не найти нужную.

Третий: создать переменную. Отличный вариант. Единственный минус - я не знаю как это сделать smile.gif

Я пошел по второму пути. Два раза щелкнув на ds:flt_10064380, IDA отправила меня в дебри под названием .rdata. Там я нашел переменную, которая называлась - flt_1006452C и которая имела значение 0.0720999.
Насколько я понял, flt_1006452C - не является названием переменной, это сборка из двух показателей - (тип числа)_(смещение). В нашем случае это число типа float, которое находится по адресу 1006452C. Ну что же, приступим к редактированию!
6. Отправляемся в самое начало файла. Как? Сверху есть что-то типа статус-бара - строка состоящая из синего, серого, черного цвета. Нажимаем там в любом месте мышкой и ведем влево до конца.
7. Опять ищем r__detail_density. Находим в этой функции строку fld ds:flt_10064338. Дальше самое интересное - жмем на вкладку Hex View и там у нас выделяются какие-то цифры. Это наша переменная 10064338, только написано наоборот. Сравните:
Код
38 43 06 10
10 06 43 38
Похоже, не правда ли? smile.gif
8. Начинаем редактировать. Нам нужно поменять 4338 на 452C (т.е. заменить ссылку с одной переменной на другую). Жмем правой кнопкой мыши на этих цифрах и выбираем пункт Edit. Меняем 38 43 на 2С 45. Дальше жмем где-нибудь в коде (это нужно сделать обязательно!).
9. После этого жмем правой кнопкой мыши и выбираем commit changes. Таким образом, мы поменяли ссылку на переменную и теперь верхнее ограничение будет равно значению из другой переменной.
Но IDA не меняет исходный файл. В нашем случае мы можем только создать файл изменений. Делается это так: File -> Produce file -> Create DIF file. Назовем его test. Этот файл можно открыть при помощи блокнота и посмотреть, что получилось.
10. Теперь необходимо внести изменения из этого файла в движок. Это можно сделать при помощи патчера bpatch. Качаем, смотрим и запускаем bpatch.cmd. Я думаю, что батник вы сможете изменить самостоятельно (настроить пути файлов и т.п.) - там все элементарно.
11. Все! Изменения внесены в движок, можно тестировать smile.gif

Огромное спасибо Kolmogor'у и malandrinus'у. Если бы не они, я бы ничего не сделал. Спасибо вам еще раз.
Спасибо и Rolan'у, с которым я очень много беседовал и тоже узнал много чего smile.gif




Сообщение отредактировал RayTwitty - 27.08.2021, 00:15
Перейти в начало страницы
 
242 страниц V  « < 110 111 112 113 114 > »   
Начать новую тему
Ответов
Vampir35
сообщение 06.01.2017, 01:13
Сообщение #2222


Ветеран
*****

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




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


Уже устал долбиться в стену, не понимая что происходит, прошу помощи smile.gif Занялся я детекторами ЧН/ЗП, примерно представляю как оно там работает, начал "перенос" функционала на ТЧ и завис еще в начале. Удалил все в классе детектора что было, начинаю постепенно делать свое. Пока - примитив. Показать худ и три анимации, собственно idle, draw, holster. Вылетов нет, детектор прекрасно спавнится, но нет худа вообще. Т.е. все сообщения в лог выводятся (накидал в те участки кода, где должны воспроизводится анимации) а самого худа нет. Будто он не рисуется. Думаю, где-то проглядел, что худ надо "нарисовать", но не могу найти где. В классе артефактов ничего подобного не нашел (смотрел его, так как худ самый простой). Очень надеюсь на подсказку чего искать.
CustomDetector.h

Код
#pragma once

#include "hud_item_object.h"

class CCustomDetector :        public CHudItemObject {
private:
    typedef            CHudItemObject    inherited;
public:
                    CCustomDetector        ();
    virtual            ~CCustomDetector    ();

    virtual void                    Load                            (LPCSTR section);
    
    virtual BOOL                    net_Spawn                        (CSE_Abstract* DC);
    virtual void                    net_Destroy                        ();

    virtual void                    OnH_A_Chield                    ();
    virtual void                    OnH_B_Independent                (bool just_before_destroy);
    
    virtual void                    UpdateCL                        ();
    virtual void                    shedule_Update                    (u32 dt);    

    virtual void                    Hide                ();
    virtual void                    Show                ();
    //инициализация если вещь в активном слоте или спрятана на OnH_B_Chield
    virtual void            OnActiveItem();
    virtual void            OnHiddenItem();
    virtual void                    renderable_Render();
    virtual void                    OnStateSwitch        (u32 S);
    virtual void                    OnAnimationEnd        (u32 state);

    virtual    void                    UpdateXForm            ();

        enum EDETHudStates {
        eIdle        = 0,
        eShowing,
        eHiding,
        eHidden,
    };

protected:
    
    MotionSVec                        m_anim_idle;
    MotionSVec                        m_anim_show;
    MotionSVec                        m_anim_hide;
};



CustomDetector.cpp

Код
#include "stdafx.h"
#include "customdetector.h"
#include "hudmanager.h"
#include "inventory.h"

CCustomDetector::CCustomDetector()
{
    SetSlot (DETECTOR_SLOT);
}

CCustomDetector::~CCustomDetector()
{

}

void CCustomDetector::Load(LPCSTR section)
{
    inherited::Load            (section);
    
    R_ASSERT            (m_pHUD);
    animGet                (m_anim_idle,                    pSettings->r_string(*hud_sect,"anim_idle"));
    animGet                (m_anim_hide,                    pSettings->r_string(*hud_sect,"anim_hide"));
    animGet                (m_anim_show,                    pSettings->r_string(*hud_sect,"anim_show"));
}

BOOL CCustomDetector::net_Spawn(CSE_Abstract* DC)
{
    BOOL result = inherited::net_Spawn(DC);
    SetState                    (eHidden);
    return result;    
}

void CCustomDetector::net_Destroy()
{
    inherited::net_Destroy        ();
}

void CCustomDetector::OnH_A_Chield()
{
    inherited::OnH_A_Chield        ();
}

void CCustomDetector::OnH_B_Independent(bool just_before_destroy)
{
    inherited::OnH_B_Independent(just_before_destroy);

    if (m_pHUD)
        m_pHUD->Hide();
}

void CCustomDetector::OnActiveItem()
{
    inherited::OnActiveItem();
    //если мы занружаемся и оружие было в руках
    SetState(eIdle);
    SetNextState(eIdle);
    if (m_pHUD) m_pHUD->Show();
}

void CCustomDetector::OnHiddenItem()
{
    inherited::OnHiddenItem();
    if (m_pHUD)    m_pHUD->Hide();
    SetState(eHidden);
    SetNextState(eHidden);
}

void CCustomDetector::UpdateCL()
{
    inherited::UpdateCL            ();
}

void CCustomDetector::shedule_Update        (u32 dt)
{
    inherited::shedule_Update        (dt);
}

#include "inventoryOwner.h"
#include "Entity_alive.h"

void CCustomDetector::UpdateXForm()
{
    if (Device.dwFrame!=dwXF_Frame)
    {
        dwXF_Frame            = Device.dwFrame;

        if (0==H_Parent())    return;

        // Get access to entity and its visual
        CEntityAlive*        E        = smart_cast<CEntityAlive*>(H_Parent());
        
        if(!E)                return;

        const CInventoryOwner    *parent = smart_cast<const CInventoryOwner*>(E);
        if (parent && parent->use_simplified_visual())
            return;

        VERIFY                (E);
        CKinematics*        V        = smart_cast<CKinematics*>    (E->Visual());
        VERIFY                (V);

        // Get matrices
        int                    boneL,boneR,boneR2;
        E->g_WeaponBones    (boneL,boneR,boneR2);

        boneL = boneR2;

        V->CalculateBones    ();
        Fmatrix& mL            = V->LL_GetTransform(u16(boneL));
        Fmatrix& mR            = V->LL_GetTransform(u16(boneR));

        // Calculate
        Fmatrix                mRes;
        Fvector                R,D,N;
        D.sub                (mL.c,mR.c);    D.normalize_safe();
        R.crossproduct        (mR.j,D);        R.normalize_safe();
        N.crossproduct        (D,R);            N.normalize_safe();
        mRes.set            (R,N,D,mR.c);
        mRes.mulA_43        (E->XFORM());
//        UpdatePosition        (mRes);
        XFORM().mul            (mRes,offset());
    }
}

void CCustomDetector::Hide()
{
    SwitchState(eHiding);
}

void CCustomDetector::Show()
{
    SwitchState(eShowing);
}

void CCustomDetector::OnStateSwitch(u32 S)
{
    inherited::OnStateSwitch    (S);
    switch(S){
    case eShowing:
        {
             m_pHUD->animPlay(random_anim(m_anim_show),        FALSE, this, S);
             Msg("Достаем детектор");
        }break;
    case eHiding:
        {
             m_pHUD->animPlay(random_anim(m_anim_hide),        FALSE, this, S);
             Msg("Прячем детектор");
        }break;
    case eIdle:
        {
        if (m_anim_idle.size())
             m_pHUD->animPlay(random_anim(m_anim_idle),        FALSE, NULL, eIdle);
             Msg("Держим в руке детектор");
        }break;
    };
}

void CCustomDetector::renderable_Render()
{
    inherited::renderable_Render();
}

void CCustomDetector::OnAnimationEnd(u32 state)
{
    inherited::OnAnimationEnd    (state);
    switch(state)
    {
    case eShowing:
        {
            SwitchState                    (eIdle);
        } break;
    }
}



--------------------
Перейти в начало страницы
 
RayTwitty
сообщение 06.01.2017, 02:55
Сообщение #2223


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

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




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


Цитата(Vampir35 @ 06.01.2017, 01:11) *
Удалил все в классе детектора что было, начинаю постепенно делать свое.

Я бы для начала сделал дубликат уже 100%-работающего класса, только с другим именем. Взять те же гранаты или худ от артефактов. И после успешного запуска, выпиливать из него лишнее и добавлять свое.


--------------------
Перейти в начало страницы
 
Antnigm
сообщение 06.01.2017, 12:45
Сообщение #2224


Опытный Геймер
*******

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




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


Никто по поводу дальности прорисовки травы подсказать не может? Спрашивал здесь. Если нет, то пойду тогда ковырять исходники LA.
Перейти в начало страницы
 
ForserX
сообщение 06.01.2017, 13:39
Сообщение #2225


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

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




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




Вроде аналогично std::memset, но я не уверен.


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
RayTwitty
сообщение 06.01.2017, 17:49
Сообщение #2226


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

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




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


Цитата(Antnigm @ 06.01.2017, 12:43) *
Никто по поводу дальности прорисовки травы подсказать не может?

https://xp-dev.com/sc/change/204486/14
Делай как тут.

Сообщение отредактировал RayTwitty - 06.01.2017, 17:51


--------------------
Перейти в начало страницы
 
mortan
сообщение 06.01.2017, 17:51
Сообщение #2227


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

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




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


Цитата(Antnigm @ 06.01.2017, 12:43) *
Никто по поводу дальности прорисовки травы подсказать не может? Спрашивал здесь. Если нет, то пойду тогда ковырять исходники LA.

ответ очень простой - скачай сорцы CoC ( они тут) и пройдись поиском по сорцам ( искать DETAIL_RADIUS )
Перейти в начало страницы
 
AndreySol
сообщение 06.01.2017, 21:06
Сообщение #2228


Опытный Геймер
*******

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




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


Подскажите, плз, как имея ID объекта получить его инвентарь, как СInventory(или как правильнее будет).
Перейти в начало страницы
 
AndreySol
сообщение 07.01.2017, 16:05
Сообщение #2229


Опытный Геймер
*******

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




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


Требуется сохранить\восстановить переменную класса инвентарного предмета. Если я правильно понимаю, это надо делать в net_Export\net_Import ?
Попробовал так:
в net_Export
Код
    BYTE tS = 0;
    if (переменная == true)
        tS = 1;
    P.w_u8(tS);
в net_Import
Код
    BYTE tS = P.r_u8();
    if ( tS == 1)
        переменная = true;
    else
        переменная = false;
Результат - игра виснет на синхронизации. Что не так, как исправить ?

Сообщение отредактировал AndreySol - 07.01.2017, 16:05
Перейти в начало страницы
 
autistic
сообщение 07.01.2017, 16:18
Сообщение #2230


Геймер
******

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




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


зачем столько лишнего написал?
Код
P.w_u8(переменная);

Код
переменная = P.r_u8();

не?


--------------------
nop
Перейти в начало страницы
 
AndreySol
сообщение 07.01.2017, 16:34
Сообщение #2231


Опытный Геймер
*******

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




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


Цитата(refuse @ 07.01.2017, 17:16) *
зачем столько лишнего написал?

Если сократить, до предложенного Вами варианта, игра виснуть перестанет ?
Перейти в начало страницы
 
autistic
сообщение 07.01.2017, 16:36
Сообщение #2232


Геймер
******

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




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


Цитата(AndreySol @ 07.01.2017, 18:32) *
Если сократить, до предложенного Вами варианта, игра виснуть перестанет ?

нет. читай лог, смотри под отладчиком что происходит в момент синхронизации.


--------------------
nop
Перейти в начало страницы
 
Antnigm
сообщение 07.01.2017, 19:48
Сообщение #2233


Опытный Геймер
*******

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




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


Цитата(RayTwitty @ 06.01.2017, 17:47) *

Цитата(mortan @ 06.01.2017, 17:49) *
ответ очень простой - скачай сорцы CoC ( они тут) и пройдись поиском по сорцам ( искать DETAIL_RADIUS )

Спасибо. С дальностью разобрался. z_1.gif (плюсанул за помощь)
Теперь думаю, как пофиксить растянутое в ЗП небо и заставить солнце по конфигам ходить по аналогии с X-ray Extensions...
Перейти в начало страницы
 
ForserX
сообщение 07.01.2017, 19:50
Сообщение #2234


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

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




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


Цитата(Antnigm @ 07.01.2017, 19:46) *
Цитата(RayTwitty @ 06.01.2017, 17:47) *

Цитата(mortan @ 06.01.2017, 17:49) *
ответ очень простой - скачай сорцы CoC ( они тут) и пройдись поиском по сорцам ( искать DETAIL_RADIUS )

Спасибо. С дальностью разобрался. z_1.gif (плюсанул за помощь)
Теперь думаю, как пофиксить растянутое в ЗП небо и заставить солнце по конфигам ходить по аналогии с X-ray Extensions...


По небу в закромах вроде был пост. Там одну структуру надо было заменить на аналогичную из ЧН/ТЧ. ЕМНИП

Сообщение отредактировал Forser - 07.01.2017, 19:51


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 
mortan
сообщение 07.01.2017, 20:17
Сообщение #2235


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

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




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


AndreySol, а в серверный класс ты дописал переменную? Её тоже нужно там пилить иначе ничего не получится. По солнцу видел только такой фикс (CoC) - Environment.cpp
float AZ = acosf(cosAZ); заменить на float AZ = acosf(cosAZ) + PI;
Емнип на этом форуме тоже всплывала эта информация

Сообщение отредактировал mortan - 07.01.2017, 20:20
Перейти в начало страницы
 
AndreySol
сообщение 07.01.2017, 21:38
Сообщение #2236


Опытный Геймер
*******

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




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


Цитата(mortan @ 07.01.2017, 21:15) *
а в серверный класс ты дописал переменную?

Да, уже дописал, все заработало laugh.gif . Пока привыкнешь ко всей цепочке классов...
Перейти в начало страницы
 
AndreySol
сообщение 08.01.2017, 21:56
Сообщение #2237


Опытный Геймер
*******

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




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


Бывает иногда такая ситуация, что при открытии инвентаря, оружие не прячется. И затем, при манипуляциях в открытом инвентаре, происходит "самовольная" перезарядка оружия, если оно было разряжено. Если я правильно понимаю, перезарядка происходит по нажатию левой кнопы мыша, что при активном оружии означает выстрел и вызывает перезарядку. Но тогда почему, при последующих, после перезарядки, нажатиях ЛКМ оружие не стреляет ? Или перезарядка происходит по иной причине ? Кто нить пытался разобраться с этим багом на уровне движка(исходников) ?
Перейти в начало страницы
 
mortan
сообщение 08.01.2017, 23:07
Сообщение #2238


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

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




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


Цитата(AndreySol @ 08.01.2017, 21:54) *
Бывает иногда такая ситуация, что при открытии инвентаря, оружие не прячется. И затем, при манипуляциях в открытом инвентаре, происходит "самовольная" перезарядка оружия, если оно было разряжено. Если я правильно понимаю, перезарядка происходит по нажатию левой кнопы мыша, что при активном оружии означает выстрел и вызывает перезарядку. Но тогда почему, при последующих, после перезарядки, нажатиях ЛКМ оружие не стреляет ? Или перезарядка происходит по иной причине ? Кто нить пытался разобраться с этим багом на уровне движка(исходников) ?

это не баг а фича. Зачем оно надо я хз.
Перейти в начало страницы
 
AndreySol
сообщение 09.01.2017, 00:02
Сообщение #2239


Опытный Геймер
*******

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




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


Цитата(mortan @ 09.01.2017, 00:05) *
это не баг а фича.

Код
void CUIInventoryWnd::Show()
{
......
......
    pActor->SetWeaponHideState(INV_STATE_INV_WND, true);
......
......
    SendInfoToActor("ui_inventory");
......
}
судя по коду, при открытом окне инвентаря - оружие должно быть спрятано. Значит все таки баг...
Перейти в начало страницы
 
Antnigm
сообщение 09.01.2017, 10:44
Сообщение #2240


Опытный Геймер
*******

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




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


Цитата(Forser @ 07.01.2017, 19:48) *
По небу в закромах вроде был пост. Там одну структуру надо было заменить на аналогичную из ЧН/ТЧ. ЕМНИП
Ага. В dxEnvironmentRender.cpp нужно в одном массиве 2-ки заменить на 1-ки. Уже сделал. Вообще не понимаю, зачем так небо "сжали". Чтобы на игрока "давило"? Тогда бы и скайбоксы новые сделали. Но, видимо, было лень...
Цитата(mortan @ 07.01.2017, 20:15) *
По солнцу видел только такой фикс (CoC) - Environment.cpp
float AZ = acosf(cosAZ); заменить на float AZ = acosf(cosAZ) + PI;
Емнип на этом форуме тоже всплывала эта информация
Посмотрю. Спасибо за наводку.

Сообщение отредактировал Antnigm - 09.01.2017, 10:49
Перейти в начало страницы
 
ForserX
сообщение 09.01.2017, 17:33
Сообщение #2241


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

Репутация:   91  
Группа: Модератор
Сообщений: 516
Награды: 4
Регистрация: 19.07.2015




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




Опечатка или можно спокойно привести к такому виду?


Сообщение отредактировал Forser - 09.01.2017, 17:35


--------------------

В армии по 01.07.2020.
Перейти в начало страницы
 

242 страниц V  « < 110 111 112 113 114 > » 
Ответить в данную темуНачать новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 07.05.2024, 09:54