Перейти к содержанию
Кефир

Правочная по NLC Improved

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

 

banner-pravki-nlc-improved.png

Просим, спрашиваем, модифицируем самостоятельно — всё это здесь и по NLC Improved.

↓↓↓

Тема оригинального мода здесь
https://ap-pro.ru/forums/topic/12275-nlc-improved

↑↑↑

Основа, актуальный патч, некоторые разрешённые дополнения именно там.

Все патчи мода (Google Drive)


Таблица по планам в реализации:  image.png

Если вы устанавливаете правки, то лишаетесь технической поддержки на официальном сервере в Discord.


Спойлер

Сохранения где угодно (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


Я не знаю насколько это работоспособная штуковина на перспективу дальнейшего прохождения игры, но вот. ¯\_(ツ)_/¯

——————————————————————————————————————————————————————————————————————————

                 РЕКОМЕНДОВАНО НЕ СОХРАНЯТЬСЯ РЯДОМ С СИДОРОВИЧЕМ! ВЫСОК ШАНС ЕГО ИСЧЕЗНОВЕНИЯ!

——————————————————————————————————————————————————————————————————————————

1. А как установить?

      Закинуть папку mods в папку с игрой. Проверить работоспособность поможет красная надпись в главном меню.

————————————————

А как сделать самому, если я не хлеб с лицом Сенко-сан?

   0) Ссылка на распаковщик:

https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

      Это другая версия 7-Zip, которая может распаковать игровые архивы в этом моде.

————————————————

   1) gamedata/scripts/binders/bind_monster.script

      Найдите конец файла и добавьте на пустых строчках: 

bind_monster.misc = {force_offline = function() end} 

      Это исправит исчезновение Сидоровича при загрузке сохранения, сделанного рядом с ним.
      Подсказал: ap-pro.ru/profile/2634-av661194
     (Напомнил, что подсказывал ещё в 2023, но у автора правок деменция: ap-pro.ru/profile/16073-gomes)

————————————————

   2) gamedata/scripts/ogse/ogse_campfire.script

      Найдите:

function check_near_en_flame()
    if not (_G.flag_can_save and is_actor_alive()) then return end
    local kamp = get_nearest_active_campfire(db.actor:position(), 10)
    local obj = kamp and kamp.object
    if obj and obj:position():distance_to_sqr(db.actor:position()) < DIST_TO_ACTOR then
        return true
    end
end

      и замените весь этот текст на: 

function check_near_en_flame()
    return (_G.flag_can_save and is_actor_alive())
end

————————————————

   3) Запакуйте файлы любой удобной версией программы в формат xdb.

      Например, этой: https://disk.yandex.ru/d/qOTsRufrY8ShJw
      В архиве инструкция по использованию находится в файле read_soc_mp.txt.

   Затем переименуйте готовый файл и переместите его в папку mods в папке с игрой (если таковой не имеется, то создайте её вручную).

————————————————

Таким образом активируется возможность сохранения через пронумерованные быстрые сохранения (user_quicksave_*, где * — цифра/число), сохранения через отдельные варианты с указанием дня, времени и локации (День *. **-**. названиелокации, где * — номер дня, **-** — игровое время) и через специальное меню в главном меню при загруженной игре.

Быстрое открытие рюкзака (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


1. А как установить?

      Закинуть папку mods в папку с игрой. Проверить работоспособность поможет красная надпись в главном меню.

————————————————

2. В архиве лежит адаптация и для HD-интерфейса. Как ей воспользоваться?

      Состав бутерброда должен получиться таким:
      1) Основной мод;
      2) Адд-он на HD-интерфейс;
      3) Данная правка для чистой версии;
      4) Адаптация для HD-интерфейса.

———————————————————————————————————————————

А как сделать самому, если я не хлеб с лицом Сенко-сан?

   0) Ссылка на распаковщик:

https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

      Это другая версия 7-Zip, которая может распаковать игровые архивы в этом моде.

————————————————

   1) gamedata/scripts/ui/ui_cheat_inv_buttons.script

      Найдите:

--полное открытие рюкзака (долго ковыряется)
level.disable_input()    --обездвиживаю ГГ
vergas_lib.s_play("rykzack\\rykzack_open_long",1)
schedule.add("show_full_rucksack", "inv_buttons_use.open_inventory(4)", 4000)
razgruzka.open_inventory() -- подготовить инвентарь с скрытием избыточных предметов

      и замените строчки

vergas_lib.s_play("rykzack\\rykzack_open_long",1)
schedule.add("show_full_rucksack", "inv_buttons_use.open_inventory(4)", 4000) 

      на:

vergas_lib.s_play("rykzack\\rykzack_open_short",1)
schedule.add("show_full_rucksack", "inv_buttons_use.open_inventory(4)", 4)

————————————————

   2) gamedata/sounds/rykzack/rykzack_open_short.ogg

      Данный файл из архива должен быть по пути выше, иначе при открытии рюкзака будет слышен звук по умолчанию.

————————————————

   3) Запакуйте файлы любой удобной версией программы в формат xdb.

      Например, этой: https://disk.yandex.ru/d/qOTsRufrY8ShJw
      В архиве инструкция по использованию находится в файле read_soc_mp.txt.

   Затем переименуйте готовый файл и переместите его в папку mods в папке с игрой (если таковой не имеется, то создайте её вручную).

————————————————

Таким образом активируется возможность быстрее открыть рюкзак.

Увеличенный объём ящика (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


ПРИ БОЛЬШОМ КОЛИЧЕСТВЕ ПРЕДМЕТОВ В ЯЩИКЕ ИГРА НАЧИНАЕТ СЪЕДАТЬ ОПЕРАТИВНУЮ ПАМЯТЬ!

———————————————————————————————————————————

1. А как установить?

      Закинуть папку mods в папку с игрой. Проверить работоспособность поможет красная надпись в главном меню.

————————————————

А как сделать самому, если я не хлеб с лицом Сенко-сан?

   0) Ссылка на распаковщик:

https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

      Это другая версия 7-Zip, которая может распаковать игровые архивы в этом моде.

————————————————

   1) gamedata/scripts/binders/bind_physic_object.script

      Найдите:

function generic_physics_binder:reinit()
    object_binder.reinit(self)
    db.storage[self.object:id()] = {}
    self.st = db.storage[self.object:id()]
    local sec, name = self.object:section(), self.object:name()
    if sec_confirm(sec, name) == true then
        self.object:set_callback(callback.on_inv_box_item_take, self.on_inv_box_item_take_callback, self)
        self.object:set_callback(callback.on_inv_box_item_drop, self.on_inv_box_item_drop_callback, self)
        self.pos = self.object:position()
        self.st["max_weight"] = 50
        if is_paid_box(self.object:name()) then
            local add_weight = 50 * math.floor(db.actor:character_rank() / 300)
            self.st["max_weight"] = 200 + add_weight
        end
    end

      и замените строчки

        self.st["max_weight"] = 50
        if is_paid_box(self.object:name()) then
            local add_weight = 50 * math.floor(db.actor:character_rank() / 300)
            self.st["max_weight"] = 200 + add_weight

      на:

        self.st["max_weight"] = 999999
        if is_paid_box(self.object:name()) then
            local add_weight = 999999
            self.st["max_weight"] = add_weight


————————————————

   2) gamedata/scripts/binders/bind_physic_object.script

      Найдите:

function set_counter(id, rem)
    local box = id and client_obj(id)
    if box and not rem then
        if is_paid_box(box:name()) then
            local add_weight = 50 * math.floor(db.actor:character_rank() / 300)
            db.storage[id]["max_weight"] = 200 + add_weight
        end
    end

      и замените строчки

            local add_weight = 50 * math.floor(db.actor:character_rank() / 300)
            db.storage[id]["max_weight"] = 200 + add_weight

      на:

            local add_weight = 999999
            db.storage[id]["max_weight"] = add_weight

————————————————

   3) Запакуйте файлы любой удобной версией программы в формат xdb.

      Например, этой: https://disk.yandex.ru/d/qOTsRufrY8ShJw
      В архиве инструкция по использованию находится в файле read_soc_mp.txt.

   Затем переименуйте готовый файл и переместите его в папку mods в папке с игрой (если таковой не имеется, то создайте её вручную).

————————————————

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

Увеличенный шанс выпадения частей мутантов (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


Если что-то не устраивает, то снизу будет, насколько это возможно, всё подробно расписано.

————————————————

Изменения относительно оригинальных файлов:

• Кровосос (все вариации):
   — 0.25 → 0.7;

• Кабан (все вариации):
   — 0.2 → 0.7;

• Бюрер (все вариации):
   — 0.2 → 0.8;

• Кот (все вариации):
   — 0.2 → 0.7;

• Химера (все вариации):
   — 0.2 → 1;

• Контролёр (все вариации):
   — 0.7 → 1;

• Слепой пёс (все вариации):
   — 0.2 → 0.7;

• Плоть (все вариации):
   — 0.2 → 0.8;

• Псевдогигант (все вариации, кроме квестовых):
   — 0.75 → 1;

• Полтергейст (все вариации):
   — 0.2 → 1;

• Псевдособака (все вариации):
   — 0.2 → 0.8;

• Псевдособака_френд (?):
   — 0.2 → 0.8;

• Снорк:
   — 0.2 → 0.8;

• Тушкан (все вариации, кроме квестовых):
   — 0.2 → 0.7;

• Зомби (все вариации):
   — 0.25 → 0.75;

————————————————

1. А как установить?

      Закинуть папку mods в папку с игрой. Проверить работоспособность поможет красная надпись в главном меню.

———————————————————————————————————————————

А как сделать самому, если я не хлеб с лицом Сенко-сан?

   0) Ссылка на распаковщик:

https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

      Это другая версия 7-Zip, которая может распаковать игровые архивы в этом моде.

————————————————

Список мутантов:
   1) m_bloodsucker.ltx — кровососы;
   2) m_boar.ltx — кабаны;
   3) m_burer.ltx — бюреры;
   3) m_cat.ltx — коты;
   4) m_chimera.ltx — химеры;
   5) m_controller.ltx — контролёры;
   6) m_dog.ltx — слепые псы;
   7) m_flesh.ltx — плоти;
   8) m_giant.ltx — псевдогиганты;
   9) m_poltergeist.ltx — полтергейсты;
   10) m_pseudodog.ltx — псевдособаки;
   11) m_pseudodogfrend.ltx — какие-то другие псевдособаки (?);
   12) m_snork.ltx — снорки;
   13) m_tushkano.ltx — тушканы;
   14) m_zombie.ltx — зомби;
   
————————————————   

   1) gamedata/config/creatures/m_***.ltx (любой файл из названных в списке выше)

      Через поиск по файлу найдите параметр:

Spawn_Inventory_Item_Probability

      и замените число после знака «=» на любое от 0 до 1 (после точки рекомендую писать только три числа, т.е. десятые, сотые и тысячные).

————————————————

   2) Уточнения:
      
      • Если вы делаете редактуру сами, а не используете готовые файлы, то помните, что в одном файле может быть несколько секций мутантов, и у каждой есть своё значение вышеизложенного параметра, поэтому редактируйте файлы с должным вниманием.

      • Если вы делаете редактуру сами, а не используете готовые файлы, то помните, что в некоторых файлах присутствуют секции с вышеизложенным параметром где значение равно нулю. Рекомендую оставить их как есть и лишний раз не редактировать.

————————————————

   3) Запакуйте файлы любой удобной версией программы в формат xdb.

      Например, этой: https://disk.yandex.ru/d/qOTsRufrY8ShJw
      В архиве инструкция по использованию находится в файле read_soc_mp.txt.

      Затем переименуйте готовый файл и переместите его в папку mods в папке с игрой (если таковой не имеется, то создайте её вручную).

————————————————

Таким образом активируется увеличенный шанс выпадения частей мутантов.

Отключение порчи частей мутантов (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


1. А как установить?

      Закинуть папку mods в папку с игрой. Проверить работоспособность поможет красная надпись в главном меню.

————————————————

А как сделать самому, если я не хлеб с лицом Сенко-сан?

   0) Ссылка на распаковщик:

https://github.com/mcmilk/7-Zip-zstd/releases/download/v24.09-v1.5.7-R1/7z24.09-zstd-x64.exe

      Это другая версия 7-Zip, которая может распаковать игровые архивы в этом моде.

————————————————

   1) gamedata/scripts/sak/sak.script

      Через поиск по файлу найдите: 

            local new_cond=0.10
            local iitem = obj:get_inventory_item()
            local iicond = iitem and iitem.item_condition
            local cond = iicond or data.condition
            if strpos(nname,"green_kolbasa") then
                new_cond=0.02
            elseif strpos(nname,"kolbasa") then
                new_cond=0.08
            elseif strpos(nname,"mutant_chimera_kogot") then
                new_cond=0.01
            elseif strpos(nname,"mutant_krovosos_jaw") then
                new_cond=0.08
            elseif strpos(nname,"mutant_poltergeist_glas") then
                new_cond=0.05
            elseif strpos(nname,"mutant_hand_kontroler") then
                new_cond=0.05
            elseif strpos(nname,"mutant_psevdogigant_hand") then
                new_cond=0.05
            elseif strpos(nname,"mutant_e_chimera_kidney") then
                new_cond=0.035
            elseif strpos(nname,"mutant_boar_leg") then
                new_cond=0.025    
            elseif strpos(nname,"mutant_zombie_hand") then
                new_cond=0.07
            elseif strpos(nname,"mutant_fracture_spleen") then
                    new_cond=0.45
            end 
      
      и замените весь этот текст на:

            local new_cond=0.0
            local iitem = obj:get_inventory_item()
            local iicond = iitem and iitem.item_condition
            local cond = iicond or data.condition
            if strpos(nname,"green_kolbasa") then
                new_cond=0.0
            elseif strpos(nname,"kolbasa") then
                new_cond=0.0
            elseif strpos(nname,"mutant_chimera_kogot") then
                new_cond=0.0
            elseif strpos(nname,"mutant_krovosos_jaw") then
                new_cond=0.0
            elseif strpos(nname,"mutant_poltergeist_glas") then
                new_cond=0.0
            elseif strpos(nname,"mutant_hand_kontroler") then
                new_cond=0.0
            elseif strpos(nname,"mutant_psevdogigant_hand") then
                new_cond=0.0
            elseif strpos(nname,"mutant_e_chimera_kidney") then
                new_cond=0.0
            elseif strpos(nname,"mutant_boar_leg") then
                new_cond=0.0    
            elseif strpos(nname,"mutant_zombie_hand") then
                new_cond=0.0
            elseif strpos(nname,"mutant_fracture_spleen") then
                    new_cond=0.0
            end

————————————————

   2) Запакуйте файлы любой удобной версией программы в формат xdb.

      Например, этой: https://disk.yandex.ru/d/qOTsRufrY8ShJw
      В архиве инструкция по использованию находится в файле read_soc_mp.txt.

      Затем переименуйте готовый файл и переместите его в папку mods в папке с игрой (если таковой не имеется, то создайте её вручную).

————————————————

Таким образом отключается порча частей мутантов.

 


Спойлер

Пока что нечего тестировать...

Спойлер

ПДА Крота через клавишу в главном меню (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


Файл по ссылке необходимо переместить в папку mods (если таковой нет, то создать её).

  1. Зайдите в игру, загрузите нужное сохранение;
  2. После загрузки сохранения выйдите в главное меню и нажмите F1;
  3. Затем зайдите обратно в игру и проверьте инвентарь — в нём должно появиться два таких ПДА. Один оставьте, другой утилизируйте любым удобным вам способом.

Источником являются личные сообщения.

Возвращение возможности абузить снотворное перед сном (для обновления от 04.08.2025):

Спойлер

aYXLbZ2.png


Файл по ссылке необходимо переместить в папку mods (если таковой нет, то создать её).


Источник

 

 

Изменено пользователем Кефир
  • Лайк 5
  • Мастер! 2
  • Хабар 2

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 08.08.2025 в 00:57, Кефир сказал:

всё ещё колдую над артефактом «Чёрная метка»

Можешь больше не колдовать.

ЧМ умирает за пару минут, правка никак не конфликтует с тестовой на отключение порчи артов/частей.
Под версию от 04.08, но думаю обновлять ее не придется вообще никогда. 

 

Спойлер

Строки:
coef = tonumber(coef) * 1
и
local cv = params.add_condition(id, -1.5 * tonumber(coef))

Меняя значения будет вырождаться быстрее/медленнее, на другие арты ее конфиг не влияет по всей видимости (и конфиги других артов на нее тоже)

tip.xdb0

Изменено пользователем walet
  • Спасибо 2

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


Ссылка на сообщение
Поделиться на другие сайты
 

Приветствую, можно сделать чтобы ПДА в локации-''Туманная Чаща'' работало. Как в версии NLC 7 3.9

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


Ссылка на сообщение
Поделиться на другие сайты
 
1 минуту назад, Prut сказал:

Приветствую, можно сделать чтобы ПДА в локации-''Туманная Чаща'' работало. Как в версии NLC 7 3.9

Люди и с первого раза увидели ваше сообщение. Ожидайте, возможно, кто-то сможет вернуть рабочий ПДА в Чаще.

  • Лайк 1
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Благодарю за быстрый ответ.

 

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


Ссылка на сообщение
Поделиться на другие сайты
 

Prut Закинуть в /mods PDA. И кстати, при включенном 3d PDA - карта показывается.

  • Аплодисменты 1
  • Хабар 1
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Зарядка ПДА - 5 мин
Вскрытие капсул - 15 мин
Для всех НПС кто этим занимается одинаковые тайминги, цены без изменений, под 04.08, конфликтов с правками из шапки нет, но если есть свои где затронут sak_dialog - будет конфликт. 
Если эта правка закидывается вместе с той что в посте выше (на быстрое вырождение ЧМ) - одну из них нужно переименовать, например в tips 

tip.xdb0


Дополнено 23 минуты спустя

Подскажет кто в каком файле время варки артов? 

Изменено пользователем walet
  • Спасибо 2

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


Ссылка на сообщение
Поделиться на другие сайты
 

Спасибо за решённую проблему.

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


Ссылка на сообщение
Поделиться на другие сайты
 
11 часов назад, walet сказал:

Можешь больше не колдовать.

ЧМ умирает за пару минут, правка никак не конфликтует с тестовой на отключение порчи артов/частей.
Под версию от 04.08, но думаю обновлять ее не придется вообще никогда. 

 

  \scripts\sak\black_tip.script (Скрыть контент)

Строки:
coef = tonumber(coef) * 1
и
local cv = params.add_condition(id, -1.5 * tonumber(coef))

Меняя значения будет вырождаться быстрее/медленнее, на другие арты ее конфиг не влияет по всей видимости (и конфиги других артов на нее тоже)

tip.xdb0 3 \u043a\u0411 · 6 загрузок

этот файл tip закинуть в папку /mods?

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


Ссылка на сообщение
Поделиться на другие сайты
 

walet черная метка и пда с артами. все разом? или как

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


Ссылка на сообщение
Поделиться на другие сайты
 

В Туманной Чаще за один выброс только 1 арт улучшается? Можно убрать это ограничение?

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


Ссылка на сообщение
Поделиться на другие сайты
 
28 минут назад, sexys сказал:

черная метка и пда с артами. все разом? или как

Нет, это разные, просто когда упаковывал одинаково назвал
Одну нужно переименовать - можно в tips
 

29 минут назад, vofka сказал:

этот файл tip закинуть в папку /mods?

Да, это такая же правка как из шапки


Дополнено 35 минуты спустя
4 часа назад, vofka сказал:

Можно убрать это ограничение?

Вроде нет, по крайней мере, никогда подобных правок не было

Изменено пользователем walet

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 08.08.2025 в 22:21, mmindwork сказал:

vofka Воровство вырезать не проблема. Но, в NLC я бы поостерегся такую правку ставить,...

Значит одна надежда на увеличение грузоподьема....

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


Ссылка на сообщение
Поделиться на другие сайты
 

vofka Собсно проверка, aka change_flag делается в сяк.скрипт здесь и чуть дальше:

elseif strpos(nname,"^af_") and not strpos(nname,"^af_full") and const.ground_levels[lvl_name] then
				-- log2("[off_testobj]: checking art %s with par %s",obj:name(),tostring(p_obj))
				if ( p_obj==nil or p_obj==BAD_OBJ_ID ) then
					if ( str_in_tab(nname,sak_dialog.table_aart) or str_in_tab(nname,sak_dialog.table_bart) or str_in_tab(nname,sak_dialog.table_cart) ) then
						if obj.position:distance_to(v3f(350.91,-6.01,-21.23))<30 and not change_flag and has_alife_info("marsh_new_theme_done") then
							change_flag = true
							t_change_art_aver[a] = true

Можно убрать change_flag аккуратно (но при это не затронуть нычки, рюкзаки, конейнеры и прочее) - я не настолько lua преисполнился, чтобы сделать без косяков.

Изменено пользователем mmindwork

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


Ссылка на сообщение
Поделиться на другие сайты
 
3 часа назад, mmindwork сказал:

vofka Собсно проверка, aka change_flag делается в сяк.скрипт здесь и чуть дальше:


elseif strpos(nname,"^af_") and not strpos(nname,"^af_full") and const.ground_levels[lvl_name] then
				-- log2("[off_testobj]: checking art %s with par %s",obj:name(),tostring(p_obj))
				if ( p_obj==nil or p_obj==BAD_OBJ_ID ) then
					if ( str_in_tab(nname,sak_dialog.table_aart) or str_in_tab(nname,sak_dialog.table_bart) or str_in_tab(nname,sak_dialog.table_cart) ) then
						if obj.position:distance_to(v3f(350.91,-6.01,-21.23))<30 and not change_flag and has_alife_info("marsh_new_theme_done") then
							change_flag = true
							t_change_art_aver[a] = true

Можно убрать change_flag аккуратно (но при это не затронуть нычки, рюкзаки, конейнеры и прочее) - я не настолько lua преисполнился, чтобы сделать без косяков.

Есть ли возможность убрать ограничение по сну? Чтобы без всяких снотворных, хоть когда?

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


Ссылка на сообщение
Поделиться на другие сайты
 

vofka Хоть когда - нет, можно оторвать ограничения по сонливости актора, но... надо тестировать, желательно в дебаг-сборке. Я бы не рискнул такое ставить, проще добавить снотворное в продажу кому-нибудь. Хотя, проще водке add_sleepiness(30) прибавить, до 70-80 скажем, чтобы с гарантией отрубало с одной бутылки (сейчас порог ~50)

Изменено пользователем mmindwork

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


Ссылка на сообщение
Поделиться на другие сайты
 

Очень бы конечно хотелось увеличение переносимого веса, уменьшение износа масок(или вообще его отключить), ну или всем торговцам добавить комплект для ремонта масок и уже можно играть с меньшим душниловом и меньшим бэктрекингом.

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   2 пользователя онлайн