-
Число публикаций
869 -
Регистрация
-
Последнее посещение
-
Дней в топе
1 -
AMKoin
51 [Подарить AMKoin]
Kondr48 последний раз побеждал 15 Августа 2016
Kondr48 - автор самых популярных публикаций!
Баланс оценок
313О Kondr48
- День рождения 23.08.1996
Контакты
-
Сайт
http://
-
Любопытная вещь, а репозиторий имеется?
-
Редактирование движка X-Ray
Kondr48 ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Так по сути уже сделано. Там на репозитории KD есть правка которая включает объем рюкзака ограниченный ячейками инвентаря. Перевязать на некую величину, которая будет браться из броника или даже отдельного рюкзака большого труда не составит. Если будет время, выложу правочку. -
Это проблема вроде на репозитории была изначально.
-
[SOC] Мелкие правки движка
Kondr48 ответил на тему форума автора Kondr48 в Скрипты / конфиги / движок
В дополнение к посту @Shkiper2012 Скрытый текст Эту же фичу можно сделать опциональной. case kWPN_ZOOM: Скрытый текст case kWPN_ZOOM: if (IsZoomEnabled()) { if (psActorFlags.test(AF_ZOOM_CLICK_ENABLE)) { if (flags&CMD_START && !IsPending()) OnZoomIn(); else if (IsZoomed()) OnZoomOut(); } else { if( flags&CMD_START && !IsPending() && !IsZoomed() ) OnZoomIn(); else if( flags&CMD_START && IsZoomed() ) OnZoomOut(); } return true; } else return false; Затем, добавляем новый флаг в Actor_Flags.h AF_ZOOM_CLICK_ENABLE = (1<<11), И регистрируем консольную команду в файле console_commands.cpp void CCC_RegisterCommands() { ... CMD1(CCC_GameDifficulty, "g_game_difficulty" ); CMD3(CCC_Mask, "zoom_click_enable", &psActorFlags, AF_ZOOM_CLICK_ENABLE); ... } Осталось лишь зарегистрировать новый пункт меню в файлах игры. 1. ui_mm_opt_gameplay.script : _st = xml:InitStatic("tab_gameplay:templ_item", self.scroll_v) xml:InitCheck("tab_gameplay:check_zoom_click_enable", _st) 2. ui_mm_opt(_16).xml: <check_zoom_click_enable x="10" y="0" width="243" height="21"> <options_item entry="zoom_click_enable" group="mm_opt_gameplay"/> <text font="letterica18" r="215" g="195" b="170">ui_mm_zoom_click_enable</text> </check_zoom_click_enable> 3. Любой текстовый файл: <string id="ui_mm_zoom_click_enable"> <text>Удерживать ($$ACTION_WPN_ZOOM$$) для прицеливания</text> </string>- 61 ответ
-
- 7
-
-
-
-
- soc
- правки движка
-
(и еще 1 )
Отмечено тегом:
-
Ищу папку шейдеров от ОГСЕ последнего.
-
Редактирование движка X-Ray
Kondr48 ответил на тему форума автора Rolan в Скрипты / конфиги / движок
@Romann А что за процесс хоть? Я так и не нашел. -
Редактирование движка X-Ray
Kondr48 ответил на тему форума автора Rolan в Скрипты / конфиги / движок
При запуске собранного движка (ТЧ) выскакивает маленькое нечто вроде окошка, с надписью "MSCTFIME UI" причем передвинуть или как то убрать его не получается. При перезагрузке системы пропадает. Кто-нибудь сталкивался? Как его убрать вообще? А желательно бы еще понять что это такое и как сделать, чтобы вообще не возникало. -
Редактирование движка X-Ray
Kondr48 ответил на тему форума автора Rolan в Скрипты / конфиги / движок
Так фикс же предлагал SkyLoadet, разве нет? -
Есть, не знаю отчего зависит, но на некоторых ПК иногда подобные ошибки все-таки приводят к вылету. Да и вообще накапливание ошибок в ходе игры не самая хорошая идея =)
-
Secret of the Zone:Gunslinger's Story. Prologue [ТЧ]
Kondr48 ответил на тему форума автора BeeRseK в Моды в разработке (ТЧ)
Небольшой обзор инвентаря: Скрытый текст https://youtu.be/IAWb7OTL_Uo- 69 ответов
-
- 3
-
-
- история стрелка
- стрелок
-
(и еще 2 )
Отмечено тегом:
-
Нужны текстуры из обеих метро (Желательно Redux версии, но подойдет и от обычных). Конкретно интересует все что связано с худом противогаза: стекло, капли, мухи и т.п. Также интересует звук смены фильтра.
-
[SoC] Ковыряемся в файлах
Kondr48 ответил на тему форума автора Halford в Скрипты / конфиги / движок
CRAZY_STALKER666, возможно террейн не прописан в textures.ltx?) -
[SOC] Мелкие правки движка
Kondr48 ответил на тему форума автора Kondr48 в Скрипты / конфиги / движок
Исправление пулестойкости костюмов. Скрытый текст Кто-то слышал, кто-то нет, как разработчики некоторых глобальных модов упоминали (ну по крайней мере я что-то подобное помню), что в движок закралась какая-то чудовищная ошибка и на самом деле бронежилеты от пуль не защищают и чуть ли не чем больше показатель, тем хуже. Однако, в принципе, не так все страшно. На самом деле в этом плане никакой ошибки нет. Просто в Сталкере (речь идет о ТЧ, насчет других частей серии - не уверен, хотя суть та же скорее всего) расчет хита от пули происходит иначе, чем от любого другого воздействия. А конкретно, берутся настройки костей, что позволяет более гибко эту самую пулестойкость настроить. Подробнее можно почитать здесь. Пулестойкость ГГ рассчитывается также, как у НПС. На самом деле, это легко исправить. Возможно ,кому-то не понравится такой способ, ибо если выставить у костюма 100% защиты, то новый костюм будет полностью защищать от пуль (ну пока не износится само собой) не учитывая, что какие-то участки защищены сильнее/слабее. Как по мне, защита по костям, конечно, реалистичнее, но вариант просто в процентах - более играбельный, ведь игрок видит в инвентаре насколько его защищает данный костюм и эта цифра соответствует действительности. Итак. Как сделать работу пулестойкости такой же, как остальные воздействия? Для начала стоит вынести это дело под дефайн, дабы иметь возможность при необходимости включить/отключить данную правку. Для этого, в файл build_config_defines.h нужно добавить: #define FIRE_WOUND_HIT_FIXED // Kondr48: "Фикс" пулестойкости для шлемов и брони. По факту просто выключен механизм расчета хита по костям. Считается также, как остальные хиты. Затем, нам нужен файл EntityCondition.cpp Находим: float CEntityCondition::HitOutfitEffect(float hit_power, ALife::EHitType hit_type, s16 element, float AP) { CInventoryOwner* pInvOwner = smart_cast<CInventoryOwner*>(m_object); if(!pInvOwner) return hit_power; CCustomOutfit* pOutfit = (CCustomOutfit*)pInvOwner->inventory().m_slots[OUTFIT_SLOT].m_pIItem; if(!pOutfit) return hit_power; float new_hit_power = hit_power; if (hit_type == ALife::eHitTypeFireWound) new_hit_power = pOutfit->HitThruArmour(hit_power, element, AP); else new_hit_power *= pOutfit->GetHitTypeProtection(hit_type,element); //увеличить изношенность костюма pOutfit->Hit (hit_power, hit_type); return new_hit_power; } и переписываем вот так: float CEntityCondition::HitOutfitEffect(float hit_power, ALife::EHitType hit_type, s16 element, float AP) { CInventoryOwner* pInvOwner = smart_cast<CInventoryOwner*>(m_object); if(!pInvOwner) return hit_power; CCustomOutfit* pOutfit = (CCustomOutfit*)pInvOwner->inventory().m_slots[OUTFIT_SLOT].m_pIItem; if(!pOutfit) return hit_power; float new_hit_power = hit_power; #ifndef FIRE_WOUND_HIT_FIXED if (hit_type == ALife::eHitTypeFireWound) new_hit_power = pOutfit->HitThruArmour(hit_power, element, AP); else #endif new_hit_power *= pOutfit->GetHitTypeProtection(hit_type,element); //увеличить изношенность костюма pOutfit->Hit (hit_power, hit_type); return new_hit_power; } В принципе, на этом можно было бы и закончить, однако можно под дефайн вынести и неиспользуемые функции в CustomOutfit. Это будет более правильно, потому что исключит неиспользуемые участки кода. Итак, дальше я буду приводить только участки под дефайном. Соответственно, Вам нужно будет найти эту часть в файле и сделать также. 1. CustomOutfit.h Добавим инклуд вначале: #include "..\..\..\build_config_defines.h" #ifndef FIRE_WOUND_HIT_FIXED struct SBoneProtections; #endif #ifndef FIRE_WOUND_HIT_FIXED float HitThruArmour (float hit_power, s16 element, float AP); #endif #ifndef FIRE_WOUND_HIT_FIXED SBoneProtections* m_boneProtection; #endif #ifndef FIRE_WOUND_HIT_FIXED virtual BOOL BonePassBullet (int boneID); #endif 2. CustomOutfit.cpp #ifndef FIRE_WOUND_HIT_FIXED #include "BoneProtections.h" #endif #ifndef FIRE_WOUND_HIT_FIXED m_boneProtection = xr_new<SBoneProtections>(); #endif #ifndef FIRE_WOUND_HIT_FIXED xr_delete(m_boneProtection); #endif Функцию CCustomOutfit::GetHitTypeProtection приводим к такому виду: float CCustomOutfit::GetHitTypeProtection(ALife::EHitType hit_type, s16 element) { float fBase = m_HitTypeProtection[hit_type]*GetCondition(); #ifndef FIRE_WOUND_HIT_FIXED float bone = m_boneProtection->getBoneProtection(element); return 1.0f - fBase*bone; #else return 1.0f - fBase; #endif } #ifndef FIRE_WOUND_HIT_FIXED float CCustomOutfit::HitThruArmour(float hit_power, s16 element, float AP) { float BoneArmour = m_boneProtection->getBoneArmour(element)*GetCondition()*(1-AP); float NewHitPower = hit_power - BoneArmour; if (NewHitPower < hit_power*m_boneProtection->m_fHitFrac) return hit_power*m_boneProtection->m_fHitFrac; return NewHitPower; }; BOOL CCustomOutfit::BonePassBullet (int boneID) { return m_boneProtection->getBonePassBullet(s16(boneID)); }; #endif #ifndef FIRE_WOUND_HIT_FIXED if(pSettings->line_exist(cNameSect(),"bones_koeff_protection")) m_boneProtection->reload( pSettings->r_string(cNameSect(),"bones_koeff_protection"), smart_cast<CKinematics*>(pActor->Visual()) ); #endif Вот и всё, если есть какие-то вопросы - пишите, возможно, я забыл что-то указать.- 61 ответ
-
- 7
-
-
-
-
- soc
- правки движка
-
(и еще 1 )
Отмечено тегом:
-
Эти 8 КБ хранилища сто лет как канули в небытие, да и инфопопшни там никогда не хранились.
-
[CoP] Ковыряемся в файлах
Kondr48 ответил на тему форума автора Halford в Скрипты / конфиги / движок
Инфопопшень на апдейт как в оригинале ТЧ?)