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

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


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

Заспавненные на Кордоне долговцы ведут себя примерно, из "Контактов" на рабочий стол не выкидывают. А которые со Свалки приходят - из-за них вылет. Я убрал со всех смарт-террейнов community = dolg, стало норм. Да и нечего им на  Кордоне делать. А со Свалки и bar_dolg... приходили, и ещё какие-то, но все стандартные, ТЧ-шные.

@Norman Eisenherz, вот эти ссылочки, у тебя в подписи, чё они не на ЯД? (-:

Ссылка на комментарий

Подскажите, как сделать взаимоисключающие предметы? Т.е. если в трупе нашёл один предмет, то другой не будет спавнится в инвентаре у погибшего.

Ссылка на комментарий

@Hind 

1. Простой список из секций с порядковыми номерами, спавн одного предмета по ссылке math.random(размер списка).

2. Таблица с делением секций на пары, тройки и т. д., спавн по правилу "каждый ключ основной таблицы + один случайный ключ каждой вложенной таблицы".

 

Полное описание задачи быстрее приведет к правильной подсказке.

  • Согласен 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий


@Norman Eisenherzбольшое спасибо тебе и человеку выше. Уже не требуется :)

Тащи, сделал систему "Тухлой" жратвы. Хочу чтобы при сьедании приходило сообщение на ПДА. Сделал.
Но когда жру - в сообщении одни символы, вместо кириллицы. Как исправить, подскажите?

И ещё, как увеличить точность и дальность стрельбы неписям?

Ссылка на комментарий

Есть ли какой-то универсальный метод, чтобы НПС можно было бы убить выстрелив в него менее чем 30 патронов?

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
11 минут назад, Houdini_one сказал:

Есть ли какой-то универсальный метод

Есть. Называется игровой баланс.

Почитай - https://www.amk-team.ru/forum/topic/4188-soc-raschet-povrezhdeniy-pri-strelbe-po-nepisyam/#comments

  • Спасибо 1
Ссылка на комментарий
2 часа назад, Hind сказал:

Но когда жру - в сообщении одни символы, вместо кириллицы.

Скорее всего формат скрипта неправильный.
Возьми с оригинала какой-то скрипт, скопируй, переименуй как надо, удали содержимое и вставь своё - должно работать.

 

2 часа назад, Hind сказал:

И ещё, как увеличить точность и дальность стрельбы неписям?

Точность вроде в actor.ltx

hit_probability_gd_novice        = 0.70
hit_probability_gd_stalker        = 0.80
hit_probability_gd_veteran        = 0.90
hit_probability_gd_master        = 1.00

Всё остальное в m_stalker.ltx наверное.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Houdini_one понимаешь, прикол такой, что пишет...

Expression    : fatal error
Function      : CScriptEngine::lua_error
File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
Line          : 73
Description   : <no expression>
Arguments     : LUA error: ....l.k.e.r. Òåíü ×åðíîáûëÿ\gamedata\scripts\dmb.script:41: attempt to index global 'dmbpolygon' (a nil value)
 

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

function otrava()
    news_manager.send_tip(db.actor, "%c[255,255,128,128]ПРИМЕР:\n%c[default]ВАШ ТЕКСТ", nil, nil, 30000)
end

Скрипт сделал как ты сказал. Единственная функция в скрипте.

Ссылка на комментарий
15 минут назад, Houdini_one сказал:

Всё остальное в m_stalker.ltx наверное.

Да.

Параметры разброса при стрельбе НПС

;---FIRE DISPERSIONS----------------------
disp_walk_stand                    = 8 
disp_walk_crouch                  = 4  
disp_run_stand                      = 14 
disp_run_crouch                    = 6  
disp_stand_stand                  = 4
disp_stand_crouch                = 2
disp_stand_stand_zoom       = 1.5 
disp_stand_crouch_zoom     = 1.25

Дальность стрельбы зависит от параметров прописанных в конфигах оружия.

Изменено пользователем shahvkit
Ссылка на комментарий

@Hind строка 41 в dmb.script. Не может найти dmbpolygon.

  • Спасибо 1

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

@Houdini_oneвот это я дал, забыл что в другой геймдате копаюсь)

А по поводу.. Даже не знаю как выразиться, в нижнем левом углу есть текст, где указывается версия.. Как её отредактировать, и написать там то - что захочется?

 

Ссылка на комментарий

А вот как при записи сейва на Ф6, сделать так чтобы воспроизводился звук?

И в прицнипе, как сделать так, чтобы при определённом действии производился звук? 

 

А как сделать чтобы при убийстве сталкера / мутанта воспроизводился рандомный саунд из списка?

И при быстром сохранении тоже игрался рандомный саунд

Ссылка на комментарий

Подскажите, почему может вылетать:
 

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

[03.10.22 01:21:28.159] [print_output([CScriptEngine::lua_pcall_failed])] SCRIPT RUNTIME ERROR:
... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:51: attempt to concatenate a nil value
stack traceback:
    [C]: in function '__concat'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:51: in function 'init'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:67: in function 'apply_arm_set'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:109: in function 'on_item_to_slot'
    ...e.r. Тень Чернобыля\gamedata\scripts\bind_stalker.script:161: in function <...e.r. Тень Чернобыля\gamedata\scripts\bind_stalker.script:160>
[03.10.22 01:21:28.159] *********************************************************************************
[03.10.22 01:21:28.159] 
FATAL ERROR

[error]Expression    : FATAL ERROR
[error]Function      : CScriptEngine::lua_pcall_failed
[error]File          : d:\ogsr-engine-main1\ogsr_engine\common_ai\script_engine.cpp
[error]Line          : 52
[error]Description   : [CScriptEngine::lua_pcall_failed]: ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:51: attempt to concatenate a nil value

[03.10.22 01:21:28.159] ***************************[ScriptCrashHandler]**********************************
[03.10.22 01:21:28.159] stack traceback:
    [C]: in function '__concat'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:51: in function 'init'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:67: in function 'apply_arm_set'
    ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:109: in function 'on_item_to_slot'
    ...e.r. Тень Чернобыля\gamedata\scripts\bind_stalker.script:161: in function <...e.r. Тень Чернобыля\gamedata\scripts\bind_stalker.script:160>
[03.10.22 01:21:28.159]     Locals: 
[03.10.22 01:21:28.159]      string (*temporary) : ... Тень Чернобыля\gamedata\scripts\ogsr_outfit_arms.script:51: attempt to concatenate a nil value
[03.10.22 01:21:28.159]     End
[03.10.22 01:21:28.159]     Locals: 
[03.10.22 01:21:28.159]      Table: def_set
[03.10.22 01:21:28.159]              string def_set.1 : act\act_arm_perchatka_cs
[03.10.22 01:21:28.160] Can't dump script call stack - Engine corrupted
[03.10.22 01:21:28.160] ********************************************************************************
[03.10.22 01:21:28.160] !![LogStackTrace] Thread: [UNKNOWN]
[03.10.22 01:21:28.467] !!stack trace:

Сам скрипт:
 

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

-- Based on jr_outfit_arms.script by Lordmuzer

local arm_config = {
    ["textures_to_replace"] = {
        "act\\act_arm_perchatka_cs",
        "act\\act_arm_perchatka_cs_bump",
    },

    -- special arm set when no outfit in slot
    ["no_outfit"] = {
        "hands\\act_arm_bandit",
        "hands\\act_arm_bandit_bump",
    },
    
    ["stalker_outfit"] = {
        "hands\\act_arm_stalker",
        "hands\\act_arm_stalker_bump",
    },
    
    ["bandit_balon"] = {
        "hands\\act_arm_bandit_balon",
        "hands\\act_arm_bandit_balon_bump",
    },

    ["seva"] = {
        "hands\\act_arm_seva",
        "hands\\act_arm_seva_bump",
    },
}

local texture_normal, texture_bump, texture_bump_fix = false, false, false
local texture_normal_css, texture_bump_css, texture_bump_fix_css = false, false, false
local render = get_console():get_string("renderer")

local function init()
    local def_set = arm_config[ "textures_to_replace" ]

    local textures = texture_find(def_set[1] .. "*")

    for name, tex in pairs(textures) do
        if string.find(name, "_bump#") then
            texture_bump_fix = tex
        elseif string.find(name, "_bump") then
            texture_bump = tex
        else
            texture_normal = tex
        end
    end

----------------------------------------------------------------
    local textures_css = texture_find(def_set[3] .. "*")

    for name, tex in pairs(textures_css) do
        if string.find(name, "_bump#") then
            texture_bump_fix_css = tex
        elseif string.find(name, "_bump") then
            texture_bump_css = tex
        else
            texture_normal_css = tex
        end
    end

end

local last_config = false
local function apply_arm_set(new_config)
    if not texture_normal or not texture_normal_css then init() end
    if not texture_normal or not texture_normal_css then
            return 
    end

    if new_config ~= last_config then
        last_config = new_config

        local new_set = arm_config[ new_config ]
        ASSERT(new_set, "unknown arm_config: [%s]", new_config)

        texture_normal:load(new_set[1])
            if render ~= "renderer_r1" then
                texture_bump:load(new_set[2])
                texture_bump_fix:load(new_set[2] .. "#")
            end

        texture_normal_css:load(new_set[3])
            if render ~= "renderer_r1" then
                texture_bump_css:load(new_set[4])
                texture_bump_fix_css:load(new_set[4] .. "#")
            end
    end
end


function on_first_update()
    local outfit = db.actor:item_in_slot(6)
    if not outfit then
        apply_arm_set("no_outfit")
    elseif outfit and not (texture_normal or texture_normal_css) then
        local arm_set = get_string(outfit:section(), "arm_set")
        ASSERT(arm_set, "arm_set not found in section [%s]", outfit:section())
        apply_arm_set(arm_set)
    end
end

function on_item_to_slot(obj)
    local outfit = db.actor:item_in_slot(6)
    if outfit then
        local arm_set = get_string(outfit:section(), "arm_set")
        ASSERT(arm_set, "arm_set not found in section [%s]", outfit:section())
        apply_arm_set(arm_set)
    end
end

function check_drop(obj)
    if not obj:is_outfit() then return end

    local outfit = db.actor:item_in_slot(6)
    if not outfit then
        apply_arm_set("no_outfit")
    end
end
 

 

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий

Всем привет.

@Houdini_one, я в скриптах не шарю совсем, но я бы сделал без таблицы, или что там в начале.

If no_smoking then no_perchi

elseif exo then iron_perchi

elseif seva then varezhki

end

Как-то так.

З.Ы. Этот скрипт не использовать нигде, работать не будет!

Ссылка на комментарий

@Orсhello на соседнем форуме подсказали, было дело в значении там, [3], осталось от старого мода.

ищу человека, который смог бы заняться разработкой погоды на OGSR.
кто может помочь - пишите в ЛС.

Ссылка на комментарий
12 hours ago, Houdini_one said:

Возьми с оригинала какой-то скрипт, скопируй, переименуй как надо, удали содержимое и вставь своё - должно работать.

Кодировку можно сменить несколько проще: в любом своем файле вырезать весь текст, выбрать в настройках файла ANSI, вставить текст обратно.

 

@Orсhello Как раз по таблице "костюм = перчатки" проще сопоставлять, и код нагляднее, чем if … then … elseif … then под каждую пару.

  • Согласен 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий

А как исправить файлы ,в которых всё сплошником идёт? Смена кодировки не помогает, вырезание и вставка тоже.

Помню что, по моему скачивал какой-то плагин к нотепаду, какой не помню. И как там в нём работать, с тем плагином, тоже не помню... Да главное знать какой это плагин.

К примеру в SRP-master там абсолютно во всех файлах сплошником идёт. Нотепадом читается нормально, изменяется тоже, а вот нормальным не сделать его. 

Нормальным, это чтоб блокнотом нормально читался.

Три года назад исправлял так некоторые конфиги оружия оружейного пака LADC.

А вот сейчас столкнулся с модом, где абсолютно все файлы такие)))

С нотепадом не очень то удобно работать, долго. Это надо лишний раз нажимать, потом убирать всё от туда. С блокнотом намного удобней и быстрей. Он у меня по умолчанию открывает все файлы.

Ссылка на комментарий

Создайте аккаунт или авторизуйтесь, чтобы оставить комментарий

Комментарии могут оставлять только зарегистрированные пользователи

Создать аккаунт

Зарегистрировать новый аккаунт в нашем сообществе. Это несложно!

Зарегистрировать новый аккаунт

Войти

Есть аккаунт? Войти.

Войти
  • Недавно просматривали   0 пользователей

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