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

[CS] Ковыряемся в файлах


Halford

Рекомендуемые сообщения

@Nekit90, взять за образец all.spawn отсюда, распаковать, например, этим. Посмотреть как реализованы в alife_marsh.ltx объекты с логикой cfg = scripts\rucksack_inventory_box.ltx

all.spawn:

Скрытый текст

; cse_abstract properties
section_name = inventory_box
name = mar_physic_object_0026
position = -178.863952636719, 3.00002789497375, -284.614440917969
direction = 0, 0.0953989997506142, 0
id = 65535
version = 124
script_version = 8
spawn_id = 260

; cse_alife_object properties
game_vertex_id = 0
level_vertex_id = 171487
object_flags = 0xffffff3b
custom_data = <<END
[logic]
cfg = scripts\rucksack_inventory_box.ltx
END

; cse_visual properties
visual_name = dynamics\devices\dev_rukzak\dev_rukzak

логика в gamedata\configs\scripts:

Скрытый текст

rucksack_inventory_box.ltx ->

[logic]
active = ph_idle@enable


[ph_idle@enable]
nonscript_usable = true
tips = inventory_rucksack_use

 

inventory_rucksack_use - подсказка для ГГ, выводимая при наведении на объект.

 

Поделиться этим сообщением


Ссылка на сообщение

@Yok_Makaryok, в папке prefetch старое "/" вместо "\". Я бы prefetch вообще убрал бы ибо нефиг :biggrin:

1. В конфиге ствола w_ak10.ltx -> class = WP_AK74

2. В weapons.ltx -> #include "w_ak10.ltx"

3. По модели: а откуда дровишки?:az1000106: У меня лично "Милка" на мировую модель ругается.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение
3 часа назад, monk сказал:

как поправить сползание аддонов в сравнении в рюкзаке и инвентаре ГГ?

@monk, вот тут (gameru==proxy/VPN) на глаза попадалось (разговор, правда, про ЗП). Ни проверить, ни подтвердить/опровергнуть не могу. Скорее - для информации.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

@KERIXFIX337X , самое правильное - унифицировать нужный цвет в \gamedata\configs\ui\color_defs.xml 

для многократного применения. 

<color name="название" r="X" g="Y" b="Z"/>

А дальше применять по собственному уразумению и необходимости.

 

  • Спасибо 1
  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Lieutenant Novikov , задания из симуляции или сюжетно-квестовые?

См. для начала: gamedatа\configs\misc\ -> tm_sim.ltx, tm_уровень.ltx

Вообще, неплохо было бы всё-таки продемонстрировать "что, куда, зачем" добавлено. Так просто проще отследить пропущенное :biggrin:

Поделиться этим сообщением


Ссылка на сообщение

@лщыыня , доброго...

6 часов назад, лщыыня сказал:

! [LUA][ERROR] ERROR: [utils.cfg_get_string]: Object 'mar_smart_terrain_6_7': Attempted to read a non-existent string value of field 'targets' in section 'smart_terrain'.

Попытка чтения в all.spawn несуществующего параметра targets для данного смарт-террайна:

[smart_terrain]
targets = mar_smart_terrain_8_4, mar_smart_terrain_10_7, mar_smart_terrain_11_3
sim_type = default
...
END
story_id = 310

  • Нравится 1

Поделиться этим сообщением


Ссылка на сообщение

@Lieutenant Novikov , 

4 часа назад, Lieutenant Novikov сказал:

bad argument #1 to 'gsub' (string expected, got nil)

При выполнении:

local snd_st, num_copy = string.gsub(snd, "\\", "_") 

Не удаётся получить значение переменной snd. Ожидается значение 'string' , а передаётся nil.

4 часа назад, Lieutenant Novikov сказал:

Что менял уже не смогу описать, ибо многое менял,

Вот это не есть хорошо :biggrin:. Предположительно -  в направлении несоответствия имени/отсутствия звукового файла и его описания в звуковых табл. для озвучки scritpt_sound_X.ltx.

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Доброго...

@-Xan39- , как бы оно не движковое было. Боюсь ошибиться.

Из ТЧ, но в ЧН оно вряд ли менялось:

UICharacterInfo:

Скрытый текст

        if(m_icons[eUIIcon]){
            CSE_ALifeCreatureAbstract*        pCreature = smart_cast<CSE_ALifeCreatureAbstract*>(T);
            if(pCreature && !pCreature->g_Alive())
                m_icons[eUIIcon]->SetColor    (color_argb(255,255,160,160));
        }

 

  • Спасибо 1

Поделиться этим сообщением


Ссылка на сообщение

Товарищи спецы, подскажите, не соображу, что забываю сделать.

Платформа эта: OGSM CS 1.8 CE Fixes. Маловероятно, что как-то влияет в данном случае.


Имеется такой простенький бред, вызывается из bind_stalker.actor_binder:update(delta)

Скрытый текст
local food_rad =
    { ["bread"] = true, ["kolbasa"] = true, ["cheese"] = true, }

local idle_time, sect = 0, nil

function rad_food()
  
if device().precache_frame >1 then return end

    if (idle_time or 0) < time_global() then
        if db.actor and db.actor:alive() and db.actor.radiation > 0.1 then
        idle_time = time_global() + 60*1000
        local rad_food_news = false
            db.actor:iterate_inventory(function (temp,item)
            if item == nil or alife():object(item:id()) == nil then return end
            sect = item:section()
            if food_rad[sect] and math.random() > 0.5 then
            --*/ "местечковое" удаление и спаун предметов в инвентаре ГГ
                fsm.remove_item(item)
                fsm.spawn_item_in_inv(sect.."_rad")
            --*/
                if not rad_food_news then
                    local news_caption = game.translate_string("st_actor_name")
                    local news_text = "%c[ui_red]"..game.translate_string("food_got_worse")
                    db.actor:give_game_news(news_caption, news_text, "ui_npc_u_actor", 0, 10000)
                    xr_sound.set_sound_play(db.actor:id(), "pda_sos")
                    rad_food_news = true                        
                end        
            end
            end, db.actor)
        end
    end
end

 

Суть: проверяем по дельте времени уровень радиации ГГ и удаляем/добавляем ему в инвентарь соответствующие предметы.

 

При "горячей" загрузке (из гл. меню, не выходя из игры):

stack trace:
001B:00000000 xrEngine.exe
[error][      87]    : Параметр задан неверно.

 

При смерти ГГ:

stack trace:
[error][       8]    : Недостаточно памяти для обработки команды.

 

Поделиться этим сообщением


Ссылка на сообщение

Мимо, к сожалению. Где-то в другом месте туплю:

Скрытый текст
local food_rad =
    { ["bread"] = true, ["kolbasa"] = true, ["cheese"] = true, }
local idle_time, sect = 0, nil

function rad_food()
    if (idle_time or 0) < time_global() then
        if db.actor and db.actor:alive() and db.actor.radiation > 0.1 then
        idle_time = time_global() + 60*1000
        local spoiled_items = {}
            db.actor:iterate_inventory(function (temp,item)
            if item == nil or alife():object(item:id()) == nil then return end
            sect = item:section()
            if food_rad[sect] and math.random() > 0.5 then
                table.insert(spoiled_items, item)       
            end
            end, db.actor) 
            for _,item in pairs(spoiled_items) do
                local rad_sec = item:section().."_rad"
                fsm.remove_item(item)
                fsm.spawn_item_in_inv(rad_sec)            
            end
        end
    end
end

Симптоматика та же.

Поделиться этим сообщением


Ссылка на сообщение

@Norman Eisenherz , ага, тоже догадался проверить сейчас на оригинале - проблемы отсутствуют. Видимо, всё-таки да, что-то "местечковое", как ни странно. Хотя казалось бы - каким боком?

Поделиться этим сообщением


Ссылка на сообщение

Да тут уже "по месту", самостоятельно разбираться придётся. Вряд ли кто-то помочь сможет, не факт, что даже автор навскидку проблему определит. Там, в актуальном билде серьёзный рефакторинг кода имеет место быть, по сути - бета на нынешний момент. Вот и гадаешь: сам напортачил или помогли:biggrin:.

Поделиться этим сообщением


Ссылка на сообщение

Други, есть что-то более толковое в сравнении с булевым триггером для определения нахождения ГГ в кат-сценах (те, которые вызываются через функции xr_effects.script.disable_ui_elements, xr_effects.disable_ui и т.д.).

Цель, собственно: отследить поведение custom_static-ка, созданного через AddDialogToRender().

Поделиться этим сообщением


Ссылка на сообщение

@Norman Eisenherz ,

Скрытый текст

 

а какая в принципе нам разница в данном случае: нужно ведь отследить наступление самого события, а что мы будем делать "внутри" - не суть. Пробежался по диагонали по ПЫСокоду - штатно вроде бы? ничего такого не предусмотрено.

Нет, простейшее решение очевидно: банально в сами функции из xr_effect.script добавить чекер "true/false", а потом по необходимости "дёргать" проверку его значения. Простенько, со вкусом и даже работать будет:biggrin:. Но... костыльно как-то.

В принципе, выше @Kirgudu подсказал "в куда" стоит посмотреть.

 

 

Поделиться этим сообщением


Ссылка на сообщение

@BеST , простейший вариант: поиск по файлам игры.

Либо самостоятельно распаковать .db архивы (применительно к CS - это resources\configs.db (релизная версия) и patches\xpatch_10.db (10 патч, "пересекающиеся" файлы из него заменяют те, которые находятся в resources\configs.db), либо воспользоваться этой ссылкой из этой темы.

И поиском найти упоминания о нужных звуках в файлах из папок gamedata\configs (конфиги игры) и gamedata\scripts (скрипты игры).

---

p.s.: сами звуковые файлы находятся, естественно, в папке gamedata\sounds (и её подпапках). При редактировании звуковых файлов для игры есть такой нюанс. Т.е., в идеале, в случае добавления/замены звуков в игре желательно их нужным образом дополнительно откомментировать.

  • Согласен 1

Поделиться этим сообщением


Ссылка на сообщение

ЧН bins + скриптовые "универсалки".

Други, а каким образом можно отследить нахождение ГГ в зоне перехода между уровнями? Цель: скрывать для этого момента скриптовые custom_static, созданные через AddDialogToRender().

Поделиться этим сообщением


Ссылка на сообщение
  • Недавно просматривали   0 пользователей

    Ни один зарегистрированный пользователь не просматривает эту страницу.

AMK-Team.ru

×
×
  • Создать...