Перейти к контенту

h0N0r

Опытные
  • Число публикаций

    332
  • Регистрация

  • Последнее посещение

  • Дней в топе

    2
  • AMKoin

    5,678 [Подарить AMKoin]

Весь контент пользователя h0N0r

  1. h0N0r

    [SoC] Вопросы по SDK

    @Sleepᴿᵁ Похоже атлас level_lods.dds, что в папке с уровнем, не подходит - зачастую, он каждый раз меняется при билде уровне. Тоже происходит с build_details.dds, видел в модах, где вместо травы - листья. Поэтому, сделал билд / компил уровня - скопируй и данный файл с сдк в игру.
  2. h0N0r

    Скриптование

    Вариант субтитров на ТЧ: в xr_sound.script, function play_sound Добавить две строки: local sub_text = "%c[255, 238, 153, 23]"..game.translate_string(tostring(npc:character_name())).."\\n".."%c[255, 255, 255, 255]"..game.translate_string("st_"..snd.theme) db.actor:give_game_news(sub_text, "ui\\ui_iconsTotal", Frect():set(84,236,81,45), 0, 10000) В данный блок: -- играем входные if db.sound[npc_id].last_snd[snd.into_id] == nil then db.sound[npc_id].last_snd[snd.into_id] = -1 end --printf("* SND: play seq [%s] for [%s]", db.sound[npc_id].last_snd[snd.into_id]+1, npc:name()) process_tutor_on_sound(snd.theme) npc:play_sound(snd.into_id, 1, 0, 1, 0, db.sound[npc_id].last_snd[snd.into_id]+1) db.sound[npc_id].last_snd[snd.into_id] = db.sound[npc_id].last_snd[snd.into_id] + 1 --printf("* SND: play seq [%s] for [%s]", db.sound[npc_id].last_snd[snd.into_id], npc:name()) -- Вывести сабы -- ещё можно проверку на включение кон.команды. типа g_subtitles --local enable_subs = get_console():get_integer("g_subtitles") --if enable_subs == 1 then local sub_text = "%c[255, 238, 153, 23]"..game.translate_string(tostring(npc:character_name())).."\\n".."%c[255, 255, 255, 255]"..game.translate_string("st_"..snd.theme) db.actor:give_game_news(sub_text, "ui\\ui_iconsTotal", Frect():set(84,236,81,45), 0, 10000) --end return Ещё нужно сделать локаль, типа st_название_темы из script_sound.ltx: <string id="st_esc_wolf_radio"> <text>Мужики, я к вам посылаю человека. Действуйте по обстоятельствам. Если сочтёте нужным, атакуйте. Приём...</text> </string> Работает, как с флагом s=sound_theme в точки пути, так и snd = esc_wolf_radio в схеме ремарк:
  3. h0N0r

    Скриптование

    @Norman Eisenherz Я бы начал с этого: move_mgr.script, move_mgr:waypoint_callback - блок звук. Правильно понимаю, если в любом скрипте (в его начале, не в теле функции) объявить переменную, типа local my_var = 0 - то она локальна только для данного скрипта и функций в нём, и чтобы сделать её глобальной, нужно убрать local, или ещё перенести в _g.script?
  4. h0N0r

    [SoC] Вопросы по SDK

    @Sleepᴿᵁ Эти же скрины, но в нормальном разрешении. Или у тебя моник на 500х315? На скрине с игры, маска работает. Значит в игре используется свой shaders.xr, где изменены level-шейдеры для данного уровня, и в нём прописаны другие текстуры. Либо заменяешь shaders.xr (с игры) в сдк, либо наоборот. Данном видео в помощь: https://www.youtube.com/watch?v=rhzf0hfUsps И многое другое: https://www.amk-team.ru/forum/topic/11840-obuchayuschie-video-kursy-x-ray-sdk07/
  5. h0N0r

    [SoC] Вопросы по SDK

    @Sleepᴿᵁ Приложи скрин. Очень похоже, что у маски террейна не инвертирован альфа-канал. Белым цветом, что вырезано на террейне под объекты, чёрным - остальное.
  6. h0N0r

    [CoP] Вопросы по SDK

    @Sleepᴿᵁ Чтобы открыть уровень в зп-сдк, нужно предварительно: - Открыть уровень в тч-сдк, сразу отжать кнопку Object в Edit Mode (правая панель) - Последовательно выполнить: в меню Visibility -> Unhide all / меню Selection -> Select all / меню File -> Save selection as (всё сохраняется в один файл .level) - Скопировать (из meshes) папки equipments / food / physics в meshes зп-сдк, потом заменить аналогичными моделями из dynamics (с моделями тч-нпс не прокатит, в зп скелет другой) Получившийся файл .level открыть в зп-сдк, меню File -> Open selection - добавить недостающие текстуры (см. лог), большая часть из тч есть в зп, но называется по-другому: help - добавить шейдеры / звуки По объектам, почти все пропсы / деревья из тч*, есть в зп. * Можно использовать всё, но они имеют другой тип сглаживания, и компилировать их только с ключом -nosmg. Или же, объекты импортируются в 3д-редактор, поправляется сглаживание, и экспортируются с нужным типом для зп.
  7. h0N0r

    Скриптование

    @AkkurDev в помощь: xray_logic_npc_by_red75
  8. h0N0r

    Сообщество Мапперов

    @Romann Такое было с билдо-кордоном / свалкой (без квадратов по углам). Скриншот после ф11 открыть в фотошопе, в размере изображения выставить значения из level_stat.txt (Map size X x Z), после скопировать на открытый ui_global_map.dds, установить одинаковый масштаб (ctrl + t), пр.: для кордона 20%, переместить в нужное место, снова ctrl + t - на панели сверху появится кнопка с 9 квадратиками, нужно взять координаты верхнего левого и правого нижнего, они и есть global_rect. В игре будет одинаковое положение - миникарта / карта в пда. Для 1к map_ (если все такие) можно добавить зума на глобалке (но лучше делать из кусков, ctrl + ф11): [global_map] texture = ui\ui_global_map bound_rect = 0.0, 0.0, 1024.0, 2048.0 ; размеры текстуры x,y,w,h max_zoom = 16.0 ; 6.0 ;8.0
  9. h0N0r

    Blender

    @Hounfor Вероятно, что кость (fire_bone в секции худа пушки) развёрнута на 180гр, тут только рескин, и вроде анимки тоже нужно будет переделать. Можно попробовать указать другую кость и скорректировать позицию эффекта. Для примера, у ориг. кольта: fire_point = 0,0.043,0.187 fire_bone = wpn_body fire_point = 0,0.04,0.14 fire_bone = trigger У худовых моделей нет нужды в шейпах, и в данном случае он чисто для получения координат. В АЕ шейпы двигаются при зажатом ctrl.
  10. @liutyy В sr_territory.script находишь action_territory:death_callback -- if victim:relation(db.actor) == game_object.enemy then -- return -- end Меняешь на: if victim:relation(db.actor) == game_object.enemy then return end Позволяет убивать всех, кто враг.
  11. h0N0r

    [SoC] Вопросы по SDK

    @imcrazyhoudini В Library editor открываешь свойства нужного объекта, в том окне (внизу) есть переключение вкладок между Surfaces и Main options, и там выбирается тип. Для деревьев и прочих лод-объектов - Multiple usage, для объектов с костями - Dynamic / Progressive (аналогично галке в АЕ - Make Progressive) - создаётся доп. информация для плавного изменения кол-ва рисуемых треугольников в модели. В игре, на дальность появления лодов влияет: (r1_) r2_ssa_lod_a (r1_) r2_ssa_lod_b
  12. @Pavel_2000 Создаёшь файл .reg (что это, как и зачем - в гугл), с таким содержимым: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GSC Game World\STALKER-COP] "InstallPath"="D:\\apps\\stk_cop" "InstallLang"="ru" "InstallVers"="1.6.02" "InstallCDKEY"="XXXX-YYYY-ZZZZ-WWWW" "InstallUserName"="UserName" "InstallPatchID"=dword:00002eda "GPUserEmail"="" "GPUserPassword"="" "GPRememberMe"="0" Далее меняешь некоторые данные на свои, сохраняешь и запускаешь. InstallPath - путь к игре; InstallCDKEY - ключ; InstallUserName - имя для сетевой; Если винда 32-битный хлам, то в путях [] удаляешь Wow6432Node\
  13. h0N0r

    Модели объектов (файлы OGF)

    Скачать: https://drive.google.com/file/d/1L-WhDuoSMJ3O20rUVrql8ykEXpM7aRd2/view?usp=sharing
  14. Понадобилось сделать погоду (ЗП), и в процессе мои заметки. На примере sky_10_cube: слева направо - #small сделан в сдк / сплошной цвет rgb:50 / 100 / 200 / статика, где small-ы не работают разноцветный, для наглядности, как окрашиваются поверхности в зависимости от стороны small-а (восток, запад, верх, низ, север, юг): Теперь использую small-ы с rgb:255, яркость регулируется через hemisphere_color в погодном конфиге. Множители в шейдере - скайкуб на статике (что в игре, что в редакторе) / р2 ориг. / после правок (ниже): Для ТЧ: И напоследок: https://drive.google.com/file/d/1jUk22vkJta7jZyEe7dxjpaULdN9o4jBL/view?usp=sharing Оригинальные скайкубы из билдов (ещё не были убиты сжатием) + к каждому погодный конфиг (ЗП).
  15. h0N0r

    Модели объектов (файлы OGF)

    @monk Архив обновил. Добавил бутер / колбы с артами (выглядит не очень). Лучше делать новую секцию (наследовать от нужного арта) и выключать его подбор: can_take = false, затем помещать в банку. Пример на основе вспышки:
  16. h0N0r

    Модели объектов (файлы OGF)

    Сделал разбиваемые ящики (похожи на модели из С2): Некоторые модели: - для кубика есть простенькая анимка вращения частей; - для хис есть модели для дин.лампы (кости bone_lamp/_omni, шейдер selflight); Скачать: https://drive.google.com/file/d/1h72IgU1cBAtjqiBa1WPWxTRVR8cuCUDS/view?usp=sharing
  17. @DarkSnowder Используй другой класс, т.к. в движке, и только для CRadioactiveZone (Z_RADIO), нельзя поменять тип урона.
  18. h0N0r

    [SoC] Вопросы по SDK

    Очень быстро запускаешь LevelEditor, впопыхах открываешь уровень и в меню Scene резко нажимаешь Summary Info (смотришь в Textures\Base, а в Objects - меши).
  19. h0N0r

    [SoC] Вопросы по SDK

    Включить галку Cast Shadow в настройках лампы. При включении Allow Ambient, или Fuzzy для статики - свет будет проходить сквозь стены.
  20. h0N0r

    [SoC] Вопросы по SDK

    @imcrazyhoudini Либо в свойствах файла wallmark.part убрать галку "только чтение", либо сразу это же сделать на папке level_editor.
  21. После включения префетча звуков такой вылет был, пока не заменил скобки [[ на ", в sound_theme.script (во всех ph_snd_themes). Можно выносить кастомдату любых объектов. Работает во частях трилогии. smart_terrain.script, se_smart_terrain:update_obj_rank и game_relations.ltx, [smart_terrain_rank_change] В state_mgr.script, function state_manager:set_state Находишь ориг. блок кода: if state_lib.states[self.target_state].movement ~= move.stand and state_lib.states[state_name].movement == move.stand then self.npc:movement_enabled(false) end и меняешь его на: if state_lib.states[self.target_state].movement ~= move.stand and state_lib.states[self.target_state].animation ~= nil and --'исправление анимации нпс при наведении оружия на игрока state_lib.states[state_name].movement == move.stand then self.npc:movement_enabled(false) end
  22. Где-то встречал, что нужно заранее грузить все звуки для нпс (characters_voice). Для движка правок не встречал, но оригинале есть функции для итерации звуков и их префетча, реализация в sound_prefetch.script. Работает не пойми как, вроде чуть лучше стало. https://drive.google.com/file/d/1jC_4xSqnypxmG_qoEPPIhM6O0gD75MVf/view?usp=sharing Для чистой игры, чтобы сразу в баре + правленые скрипты, т.к. изначально sound_prefetch отключен.
  23. h0N0r

    Модели объектов (файлы OGF)

    @monk Архив обновил, добавил для ЧН / ЗП. Но, в ЗП выдвижные ящики / ворота не работают без правки движка, будет вылет: [error]Expression : assertion failed [error]Function : doors::door::door [error]File : \xrGame\doors_door.cpp [error]Line : 36 [error]Description : m_object.get_door_vectors( m_closed_vector, m_open_vector ) Правка для этого: https://github.com/OpenXRay/xray-16/commit/8b449c930482681c254fa6ecdf208df582b7af62 Исправил stol_8b_ph_door, и добавил .object-ы (в АЕ у кости door, параметр Slide->Limit Min / Max - дальность выдвижения).
  24. h0N0r

    Модели объектов (файлы OGF)

    Исправленные* модели выдвижных ящиков для ТЧ. * - в 3д редакторе разворот кости door на 180, в АЕ выставлен лимит на дальность выдвижения; https://drive.google.com/file/d/1LRtQxNch2ABlhVw2IP71e-wpxxQNl0Q2/view?usp=sharing Галка obstacle, чтобы предметы не подбирались через модель.
  25. Работает только для кровососа, оффлайн / онлайн работы в помощь.
×
×
  • Создать...