Автор: den1s Заменена музыка в приёмниках и мегафонах, кроме Агропрома (нет смысла менять) и Прапора (не поднялась рука на группу Любэ). Вначале, конечно, хотелось половину песен сразу заменить на безусловный хит "За тебя калым отдам", другую половину - на неизменный шлягер "Чёрные глаза", а всё оставшееся - на проверенное десятилетиями "На лабутенах". Но попытался более-менее уместных композициев подобрать, насколько возможно.
Сидорович - всякая советская попса 70-80-х, Бар - всё вперемешку, наше и забугорное, с уклоном в последнее, Склады - всё зарубежное, Бандиты - Бутырка и по мелочи, Лиманск - Высоцкий. Установка: сделать бэкап файла \gamedata\scripts\sound_theme.script, распаковать архив в папку с игрой с заменой файлов. Удаление: восстановить из бэкапа в положеное место сохранённый оригинальный sound_theme.script, удалить папку \gamedata\sounds\music_custom\ Скачать: https://yadi.sk/d/bt8UCpxwzB6w5
Автор: Mirage2000 Установка: Извлечь архив в директорию игры, согласившись на перезапись. Скачать: https://yadi.sk/d/5fH0YEa_mknr2
Автор: V.E.Q.O. "Текстурное" отключение отображений масок. Просто не будут отбражаться рамки масок/шлемов и соответственно эффект дыхания (мытьё отпадает), без влияния на хар-стики костюма. Установка: Извлечь архив в директорию игры, согласившись на замену. Скачать: https://cloud.mail.ru/public/Fded/g3huEN31E
Просто включил миникарту с компасом без рамки и отображение на ней "хуманоидов", живых и мёртвых. Установка: Извлечь архив в директорию игры, согласившись на замену. Скачать: https://cloud.mail.ru/public/C3g9/GVec33RJi
Автор: huser - дистанционные атаки тушканов, кровососов и радиоактивность кабанов уменьшена до лайтовых значений; - убрана астма на начальных локациях. - убрано сгорание пда; - здоровье не уменьшается при желтом значке голода, голод наступает медленнее (примерно как на релизной сборке или ЗБТ сборке); - увеличено время респавна мутантов с 3 часов до 12-24 часов - т.е. они будут рандомно респавниться в этот промежуток времени; - с 60 до 80% увеличена вероятность выпадения рабочего пда (а то непонятно, чего они ходят с разряженным или разбитым пда); - в 4 раз уменьшена инфляция - чтобы она так не бесила при прохождении, но игрок ее все же заметил; - в 2 раза уменьшена скорость загрязнения масок; - кровососам, кабанам, химерам, плотям и зомби на 10% увеличил вероятность выпадения частей (котам увеличил на 12% - сделал 20% как собакам); - бюрерам, гигантам, псевдопсам, сноркам увеличил на 30% (как то нелогично получалось, что у матерых псевдопсов такая же вероятность снять хвост, как у слепой собаки или то, что почти все бюреры безрукие ходили, а снорки безногие); - убрал воровство из платных нычек (кроме нычки у Патронного в Баре - у него воровство оставил); - у Борова из приемника играет Михаил Круг; - вернул выбор сложности игры "Сталкер", теперь есть 2 сложности игры: "Сталкер" и "Мастер"; - сон наступает от одной бутылки; - части мутантов теперь портятся не за 4 дня, а за 2 недели - типа Меченый научился временно консервировать столь ценный ресурс в зоне; - увеличил вес квестового контейнера, а то непонятно - он вроде как с маятником внутри, а весит как пустой; - консервы весят 0,5 кг.
Обновил свои правки под последние фиксы мода Hardcore Balance Mode на данный момент, т.е. 3 фикса. Изменения те же, только инфляция уменьшена не в 4, а в 2 раза (пусть все-таки небольшая будет) и добавлен фикс на взятие канистр от jack_pavlov. Ставится на Hardcore Balance Mode (HBM) v0.9.6 с 3-мя установленными фиксами (хотя можно и на чистый HBM 0.9.6, но тогда 2-й фикс сверху ставить нельзя). Установка: Извлечь архив в директорию игры, согласившись на перезапись. Скачать: https://yadi.sk/d/mrqRwX2T3BcB49
Графические дополнения
Автор: Мерзавка Текстурный пак. Мрачная Зона. Известных проблем пока нет, но возможно дополнение не зайдет на слабые машины. Скриншоты: http://imgur.com/a/Ar40c Установка: Извлечь архив в директорию игры, согласившись на перезапись. Скачать: для любой версии.
Автор: valddigger Яркое и контрастное освещение. Возможно, потребуется дальнейшая настройка. Установка: Извлечь архив в директорию игры. Скачать: https://yadi.sk/d/afElNFvj3EeDsr
Автор: valddigger Немного об особенностях картинки в игре.... Эффект размытия DOF(настраивал все тот же valddigger) работает всегда, что создает некоторый дискомфорт при чтении текстов и др. действиях во время игры. Я то попривык, но кому "не зайдет" можно отключить... открывайте любым текстовым редактором файл McFX.cfg в папке ReShade, ищите строку #define USE_DEPTHOFFIELD 1 //[DOF] и вместо 1 ставите 0. На этих шейдерах нет эффекта "мягкой воды". Ночи очень темные, надо "выкручивать" гамму и искать баланс между ползунками контраста, интенсивности HDR и фоновой освещенностью в опциях игры. Днем ползунок HDR лучше держать в крайнем левом положении или незначительно вправо. Установка: Переименовать папку shaders в "shaders.bak". Извлечь архив в директорию игры. Скачать: https://yadi.sk/d/WxExnnxk3EeGVi
Автор: atpcl.knock Незначительно повышена цветность картинки. Частично исправлены засветы на небе и некоторых поверхностях. Добавлено сглаживание SMAA. Скриншоты: https://yadi.sk/d/IpuGlkHV3HEkUN Установка: Извлечь архив в директорию игры. Скачать: https://yadi.sk/d/IpuGlkHV3HEkUN
Оптимизация
Автор: V.E.Q.O. Два варианта сжатия: не (выше) >1024 и не >512. Второй особенно хорош для ноутбуков. Файлы относящиеся к интерфейсу, прицелам, маскам и т.п. не сжимались (не хорошо для игры). В архиве textures_original копия того, что сжимал - пригодится, если решите вернуться на оригинальный вариант текстур, ну или заменить какую-то одну. Установка: Извлечь архив в директорию игры, согласившись на замену. Скачать: https://cloud.mail.ru/public/LUqb/WaUskSeGx
0. Сделать бэкап выбранной для пережимания/оптимизации папки 1. Скачать, распаковать https://yadi.sk/d/f5RQldUouS3ED , запустить файлом "Ordenator.exe" 2. Нажав на иконку папки в левом верхнем углу, указать программе путь к выбранной папке с текстурами 3. Проставить во вкладке "Textures" галки и прочее следующим макаром: http://imgur.com/a/J19MD 3.1. Среди умных, начитанных людей бытует мнение, что для текстур с однобитным альфа-каналом (без градиентов в прозрачностях) лучше ставить сжатие DXT3 а не DXT5 - якобы текстурки тогда чётче получаются. Я чего-то как ни щурил свои слепые зенки, разницы не заметил. Но если кто желает попробовать - можно справа от второй сверху строчки "If mask image is 1bit, compress to:" поставить DXT3 вместо DXT5 3.2. Справа от предпоследней строки "Resize down (reduces texture dividing by 2 width and height)" можно выбрать большее или меньшее значение. "If > 1024" примерно приведёт все текстуры в папке к максимальному разрешению 1К, уменьшив те, которые больше и не трогая те, что меньше. Если видеопамять позволяет, можно 2К поставить. Ну а уж если совсем всё плохо - то 512. 4. (по выбору) Во вкладке "More/Extras" можно заставить програмку саму делать бэкап, поставив галку и выбрав одну из папок, куда бэкапить. Программа сжимает бэкап в архив (rar или 7z по выбору) 5. Сказать "Поехали", махнуть рукой, нажать кнопку "Start" 5.1. Если выдаст окно "Resize images?" нажать "Yes" 5.2. Если делали бэкап вручную, а не в программе, в следующем всплывающем окне с предложением "Make Backup?" нажать "No" 6. Уйти пить чай с пирогами, пока программа делает своё колдунство
Первые кандидаты на пожим-пережим:
\gamedata\textures\swmt \gamedata\textures\wpn
Ясное дело, всё на свой страх и риск, невозможно точно сказать, не вылезут ли какие-нибудь бяки-буки после этой операции, в одного всё на свете проверить невозможно. У себя на ноутбуке (512Мб видеопамяти) пережал в 1К следующие папки:
Побегал-попрыгал по нескольким локациям, вроде нормально всё, ничего не пищит-трещит, сейвы грузятся чуть быстрее, тормоза при доставании особо модных всяких пух пропали, визуально качество вроде такое же и все текстуры на месте (в упор под микроскопом всё не рассматривал конечно, если искренне волнует, чтобы было отчётливо видно высококачественные царапинки на трахтамате и трещинки в асфальте, возможно лучше ничего вышеописанного не делать и оставить всё как есть)
Если кто видит ошибки, знает, как лучше - пишите. Уровень познаний во всём этом деле близкий к минимальному. den1s
Сообщение отредактировал atpcl_knock - Понедельник, 01.05.2017, 13:08
В результате вы получите достаточно солнечную, с небольшой облачностью, погоду.
Дождь идёт только сразу после Выброса, и прекращается при смене на следующий погодный цикл. shahvkit
Попробуйте посмотреть sak.script который находится в gamedata\scripts\sak
Ищите строку -
Код
function repair_box_repair(obj)
Ниже неё есть некоторые цифры (0.87 и 0.985) - возможно это то, что вам нужно. shahvkit
Для чистого релиза, и сборки от mikelik: Для чистого релиза, и сборки от mikelik:
Открываем sak.script Находим строку
Код
function black_tip_drop(sid)
Комментируем строки ниже найденной: Было
Код
function black_tip_drop(sid) local obj=sim:object(sid) if obj then timers.start_timer("black_tip",lua_random(10,60),"sak.black_tip_end("..sid..")") end end
Стало
Код
function black_tip_drop(sid) -- local obj=sim:object(sid) -- if obj then -- timers.start_timer("black_tip",lua_random(10,60),"sak.black_tip_end("..sid..")") -- end end
В сборках от SOB придётся искать самим...
Дополнено:
В сборках от SOB Alpet всё переписал. И всё, что связано с ЧМ, впихнуто в скрипт black_tip.script. Там и колдуйте (как - не скажу, не знаю, так как не пользовался версией СОБа) mikelik
1. Зайди редактором в скрипт \scripts\sak\sak.script 2. Найди поиском строку
Код
if db.actor:has_info("pda_will_be_broken") then
3. Закомментируй часть скрипта так
Код
--[[ if db.actor:has_info("pda_will_be_broken") then pda_will_brock() db.actor:disable_info_portion("pda_will_be_broken") return end ------ Смотрим, не сломать ли нам пда ---- local brock_flag=nlc_vars.brocked_flag or math.random(1,19) -- первая поломка случайна if db.actor:has_info("agroprom_military_case_have") then -- если закрыли Агро, не раньше if brock_flag > 1 then nlc_vars.brocked_flag = brock_flag-1 -- на выброс ближе к поломке else db.actor:give_info_portion("pda_will_be_broken") nlc_vars.brocked_flag = 4 + math.random(1,19) - tonumber(level.get_game_difficulty()) -- следующая как минимум через выброс или больше end end --]]
mikelik
1. Открыть блокнотом /scripts/treasure_manager.script 2. Найти поиском строку
Код
if tr_sum==0 or lua_random() < 0.65 then
3. Поменять значение. В данном случае вероятность тайника - 35% Вот так - 90%
Код
if tr_sum==0 or lua_random() < 0.1 then
------------ Вероятность выпадения рабочих или сломанных, незаряженных ПДА находится по пути \scripts\vergas\vergas_pda.script Найти поиском
Код
function set_status_pda()
В этой функции и заложены вероятности. Разобраться не сложно, Вергас всё доходчиво там подписал.
ВНИМАНИЕ !!!
В этом скрипте частота выпадения разных ПДА с трупов НЕ задаётся !
Данную частоту выпадения надо искать там, где выпадение любого другого лута в трупах прописано.
Точнее не скажу - ищите сами. mikelik
1. Создать в папке /mods какой-нибудь скрипт. Например, test.script 2. вписать туда одну строку
Код
nlc_vars.gg_need_sleep=500
ГГ захочет спать немедленно, даже если только что поспал. ИЛИ
Код
nlc_vars.gg_need_sleep=0
ГГ должен "взбодриться", даже если валится с ног от сонливости. Значениями можно поиграться.
Главное, надо сначала создать скрипт, а потом загрузить сейв, чтобы скрипт подхватился игрой.
Вызывается любой такой скрипт из консоли Для данного скрипта это так:
Код
flush #$mod_dir$\test.script
-------------
Если нужно спать "когда хочу" То каждый раз и подключать нужное значение переменной (250 - достаточно, чтобы не свалиться сразу с ног, но захотеть спать. Ну а сама сонливость наступает, по-моему, при значении 110 - могу ошибаться) mikelik
<-------- поставить "0" Чтобы второй раз сразу лечь, нужно забрать спальник в инвентарь и выложить. --------------------------------------------------------------------------------------------------------------- Спать в любое время в отведённом месте:
Код
function esc_sleep_matras() if (nlc_vars.gg_need_sleep or 0 )>6 then
<-------- поставить "0" Root170670
Найдите vergas_masks.script В нём найдите функцию
Код
function add_time_dirt_phase()
Ну и внимательно посмотрите на цифры недалеко от этой функции. mikelik
Смотрите sak.script. Достаточно поставить 1 для нужной локи в переменных level_difficulty={ в самом начале файла. mikelik
Это в sleep_manager.script надо закомментировать строки, начинающиеся с sak.sleep_ Там же будет и воровство, и разряд аккумулятора во сне. Надо смотреть по названиям. Можно все такие строки закомментировать, чтобы особо не думать. Но за воровство конечно отвечает sak.sleep_robbing mikelik
Вопрос: Подскажите, а где можно подправить время действия фонарика, а то уж больно он быстро выдыхается.
На будущее: прежде чем задавать вопрос "где поправить", потрудитесь сначала сами поискать. Просто включите голову. Даю алгоритм поиска вопрошающим на тему "где найти"...
1. Ясно как 2х2, что это переключение происходит не само по себе, а где-то в скриптах прописано. 2. Значит ищем слово torch по всем скриптам. Фонарик по-английски будет torch. Скрипты написаны по-английски. (для поиска подойдёт TotalComander, например, он хорошо ищет по всем файлам в указанном месте совпадения на слова.) 3. Находим все скрипты, содержащее слово torch 4. Если голова ещё работает, то понимаем, что фишка эта Сяка, значит обращаем внимание в первую очередь на скрипты sak*** 5. Примерно прикидываем по названиям (Сяк тоже не от балды названия скриптов писал) 6. Понимаем, что это основной игровой скрипт sak.script 7. В нём уже ищем соответствие и обращаем внимание на названия функций. Они тоже не с потолка взяты. Выходим на
Код
function torch_brock(switcher,sw)
Что по-русски значит "поломка фонарика" и в аргументах стоит "переключение". 8. Логически понимаем, что копать надо где-то тут. Далее изучаем скрипт и прикидываем, как происходит поломка. Меняем то, что надо нам. ---------- Самое интересное, что когда я правил для себя отключение фонарика, я сам этого не знал. Но сделал именно так и очень быстро нашёл то, что меня интересовало, никого не спрашивая при этом. И я убрал ненужное мне на тот момент переключение фонаря.
Код
function torch_brock(switcher,sw)
В ней
Код
if lua_random()<0.35 and not sw then
Это и есть вероятность переключения. Я поставил у себя
Код
if lua_random()<0.0005 and not sw then
Чтобы это if никогда не было вообще. Но можно поиграться вероятностью
И я так и делаю всегда - простой обыкновенный поиск по ключевым словам и логика. Я вовсе не знаток скриптов или lua. mikelik
Чтобы во время сна не усиливался голод, и не ухудшалось здоровье нужно: В sleep_manager.script в функции
Я думаю, за аптечки (и скорость их лечения) отвечает vergas_medical_elastic.script И судя по нему, надо менять в конфиге параметр mr_time (чтобы уж в скрипт не лезть). mikelik
Решение от игрока под ником svat. В папке gamedata\scripts находим файл bind_greedy.script
В нём ищем строку
Код
self.parametrs["activity"] = true
, и меняем true на false.
Эффект тот же, срабатывает только анимация аномалии, без хита по ГГ. igor.doc
Идём по адресу (второя сборка SOBa-финал) gamedata\config\gameplay и ищем: sak_dialogs_esc_gar.xml, тут Вергас на Кордоне; sak_dialogs_dead_gen_prip.xml, тут Вергас на Радаре (для особо рисковых, в плаще на Радар). В схеме диалога о ремонте есть строка
Работает только после загрузки, если сохранится и сразу подойти к Стасу - всё равно будет обвинять. Но можно просто сейв-лоад, и подходить. pradsky
Полностью отключить хит и обездвиживание в этом файле не получилось, я не большой знаток lua и на скорую руку изменить сценарии Vergas'а мне не под силу, но хотя бы отключить шатание, двоение, блики и т.п. после удара удалось.
Открываем: gamedata\scripts\vergas\vergas_art.script, находим строку № 169 и далее есть 4-ре схемы (может у кого отличается номер строки), короче отключаем (ставим -- в этих строках):
Код
... function scheme_1() --level.add_cam_effector("camera_effects\\surge_01.anm", 25, false, "") --резкий рывок вправо --level.add_pp_effector("1.ppe", 2001, false) --через промежуток двоение в глазах и белое блинкование ... ... function scheme_2() --level.add_cam_effector("camera_effects\\head_shot.anm", 26, false, "") --резко болтануло. --level.add_pp_effector("gar_ambush_hit.ppe", 2002, false) --сначала двоится, потом полностью темнеет ... ... function scheme_3() --level.add_cam_effector("camera_effects\\surge_02.anm", 27, false, "") --хорошо мотонуло --level.add_pp_effector("surge_shock_old.ppe", 2003, false) --экран двоится и темнеет несколько раз ... ... function scheme_4() --level.add_pp_effector("blink.ppe", 2004, false) --белая вспышка --level.add_cam_effector("camera_effects\\dream_1.anm", 28, false, "") --отбрасывает назад и укладывает --level.add_cam_effector("camera_effects\\prison_1.anm", 29, false, "") --пробуждение ото сна ...
Сам хит остаётся, но без постпроцесса, можно ещё попробовать время обездвиживания снизить: local unit_time_power = 15 ;время задержки восстановления выносливости для одного хита (в игровых секундах). поставить: local unit_time_power = 1 --- ноль "0" не ставить, будет еле двигаться до перезагрузки!
Если так не устраивает, вот ещё кое-что: Параметры силы/типа/эффекта удара и т.п. можно смело править в секциях артов в файле: gamedata\config\misc\ artefacts.ltx, artefacts_unique.ltx, artefacts_amk_mod.ltx и artefacts_unknown.ltx
Для каждого артефакта свои значения:
Код
art_mama = ? (определяет аномалию "родителя" арта - эффект (партиклы) при ударе, вроде соответствует секциям в vergas_art.script:
visual_effect={ ["elektra"]={"anomaly2\\electra2_blast_00", "anomaly\\electra_blast1"}, ["tramplin"]={"amk_anoms\\bold_blast", "anomaly\\anomaly_gravy_blast1"}, и т.д.)
hit_type = ? (тип - удар, разрыв, ожёг и т.п.) unit_hit = ? (порог урона - 0 - нет урона)-----------------Просто обнулить в vergas_art.script приводит к вылету... radiation_restore_speed = ? (0 - нет "инвентарной" радиации)
Править параметр восполнения голода в артах (satiety_restore_speed) бесполезно, в [af_base] есть два параметра: add_satiety и reduce_satiety, может они влияют, я не пробовал, меня и так устраивает.
Тогда не знал, что сборки отличаются и вышенаписанное относится к сборке SOB'а. Разница в пути, это для сборки от mikelik'а: gamedata\scripts\vergas_art.script. В остальном всё то же самое... V.E.Q.O.
Проверено на сборке от mikelik. Убираем разброс по умолчанию.
В файле wpn_params.script
Строка 246 Меняем
Код
wpn_params.disp_add = {17, -17, 5}
на
Код
wpn_params.disp_add = {0, 0, 0}
Строка 252 Меняем
Код
local disp_radius = {0.01, 0.001, 0.005}
на
Код
local disp_radius = {0, 0, 0}
Убираем разброс после первого прицеливания (зума). В файле params.script
Строки 444 и 445 Меняем
Код
local yaw_wpn = 0.03 * cond * rnd_y local pitch_wpn = 0.03 * cond * rnd_p
на
Код
local yaw_wpn = 0.0 * cond * rnd_y local pitch_wpn = 0.0 * cond * rnd_p
shahvkit
balance_default(или light).ltx Проверено на сборке от SOB.
[artefacts]
Код
time_damage_coef=0.18
; коэффициент разрушения артефактов (к хиту) Чем меньше значение, тем медленнее расходуются артефакты при нахождении на поясе и наличии аккумулятора.
[devices]
Код
accum_discharge=0.06
; разряд % в игровую минуту, на каждый артефакт + ПНВ Чем меньше значение, тем медленнее разряжается аккумулятор.
[matches]
Код
hit_power=0.01
Вероятность разжигания костра. При 0.99 будет разжигаться с первой спички.
[monsters]
Код
tushkano_dist_attack=1
Дистанция до ГГ при которой тушкан переходит в атаку.
Код
dog_dist_panic=9
Дистанция до ГГ при которой собаки начинают паниковать и убегать.
Код
dog_dist_attack=7
Дистанция до ГГ при которой собаки переходят в атаку.
Код
cat_attack_prob=0.1
Чем меньше значение, тем реже коты будут использовать усыпляющие атаки.
Код
starv_dist_attack=20
???
Код
boar_radiation_dist=3
Расстояние на котором начинает действовать радиация от кабанов.
Код
psevdodog_divert_prob=0.5
Чем меньше значение, тем реже псевдособаки будут использовать дистанционные атаки на психику ГГ. shahvkit
Сборка от mikelik.
Правим в ...\gamedata\scripts\amk_mod.script:
Без эффектов (блики в глазах у ГГ и т.п.)
Код
... function Run_Blowout_pp() local bl_sl,bl_on=sleep_manager.sleep_blowout, (amk_vars.blow_on or true) if bl_sl~=false and bl_on~=false then db.blowout_active=true amk_vars.blowout = 1 if bt<1 then
... function start_blow_timer() if lua_random()>0.15 then amk_vars.blow_on = true else amk_vars.blow_on = false end
local shift = 1440 -- +- пол дня, можно поставить 0 (фиксированный) local t_time =(lua_random()*shift)-(shift/2)+2160 -- например поставить 10800 , будет > 5 дней ...
Без землетрясения
Код
elseif phase==1 then local snd_obj = xr_sound.get_safe_sound_object([[ambient\earthquake]]) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) -- level.add_cam_effector("camera_effects\\earthquake.anm", 2002, true,"") -- ставим -- или стираем строку snd_obj = xr_sound.get_safe_sound_object([[anomaly\blowout]])
V.E.Q.O.
Сборка от mikelik.
Правим в ...\gamedata\scripts\amk_mod.script:
Код
... sak.sleep_robbing() elseif tmp>12 then --244 zevota() --level.add_pp_effector("black.ppe", 105, false) -- ставим -- или стираем строку if zevota_flag ~= 3 then zevota_flag=3 -- level.add_pp_effector("yantar_underground_psi.ppe", 999, true) -- ставим -- или стираем строку -- level.set_pp_effector_factor(999, 7.5) -- ставим -- или стираем строку end elseif tmp>9 then --190 if zevota_flag ~=2 then zevota() -- level.add_pp_effector("black.ppe", 105, false) -- ставим -- или стираем строку zevota_flag=2 -- level.add_pp_effector("yantar_underground_psi.ppe", 999, true) -- ставим -- или стираем строку -- level.set_pp_effector_factor(999, 5.0) -- ставим -- или стираем строку end elseif tmp>185 then if zevota_flag ~= 1 then zevota() zevota_flag=1 -- level.remove_pp_effector(999) -- ставим -- или стираем строку (можно оставить, но зачем?) end elseif tmp<=180 then if zevota_flag ~= 0 then zevota_flag=0 -- level.remove_pp_effector(999) -- ставим -- или стираем строку (можно оставить, но зачем?) end ...
V.E.Q.O.
Сборка от mikelik.
Правим ...\gamedata\scripts\sak.script:
Чтоб быстро не разряжалась
Код
function empted_akkum(flag) if db.actor:item_in_slot(11) then local obj_id=db.actor:item_in_slot(11):id() local obj=sim:object(obj_id) if obj then nv_on=params.get_nv_on_off(torch_id) or 0 local razrad=(af_kolvo+nv_on)*0.000005*loka_on -- добавляем нолики local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0000004 -- добавляем нолики if cond>=1 then cond=0.9999 end if cond > 0.06 then if flag then arts_operate=true return end
V.E.Q.O.
Сборка от mikelik.
Правим в ...\gamedata\scripts\amk_offline_alife.script
Код
local rel_enemy,rel_friend local look_radius=0 -- "Лёгкий" шмон того, что под ногами включая арты на поверхности local search_intensivity=30 local max_rounds = 10 local health_wound = 0.1 local health_wound_set = 0.02 local base_fp = 1400 local dist_coeff = 8 local sell_limit = 15000 local rate_kill_base = 50 local rate_art_found = 15 local to_actor = 100 local look_radius_box = 0 -- Полный игнор ящиков local look_radius_ruksak = 0 -- Полный игнор рюкзаков local look_radius_hide1 = 10 local look_radius_hide2 = 20 local body_blow_id = nil
НПС не будут бежать к убиенному за 100 метров для шмона и грабить нычки (ящики, рюкзаки и т.п.) V.E.Q.O.
(Для адекватной озвучки идём в: ...gamedata\sounds\rykzack\, копируем куда-нибудь файл drop_rykzak_1.ogg, переименовываем его на rykzack_open_long.ogg и заменяем им оригинал в той же папке V.E.Q.O.
Открываем: ...\gamedata\scripts\se_respawn.script и правим под себя начиная с 27-й строки.
idle_time:setHMSms( math.random(Первое число, Второе число), 0, 0, math.random(self.idle_spawn_min, self.idle_spawn_max)*1000)
где первое и второе числа задают диапазон случайной переменной в часах отвечающей за респаун.
Увеличить-уменьшить время респавна животных и мутантов. В папке \gamedata\scripts\ в файле se_respawn.script: -- Обновление респавнера. В зависимости от настроек обновляется либо только в офлайне, либо и там и там. function se_respawn:execute()
Код
if fast_respawn then idle_time:setHMSms( math.random( 10, 12 ), 0, 0, 0 )
-- стандартный респаун Значения ( 10, 12 ) и ( 20, 24 ) - это часы. Но срабатывает изменение ПОСЛЕ того, как отработало прошлое значение. То есть, если изменили настройки, и кого-то убили - появится этот кто-то через 10 часов от его первого появления (то есть, если начали игру с настройками частыми, и играли всего 9 часов - то вот почти сразу же, как убили), а только потом уже заработает так, как поставлено.
Одной правкой времени, не изменить частоту респавна. Независимо от времени идёт экстренный подспавн и чем больше убиваем, тем чаще идёт спавн. Так что, помимо увеличения времени в часах, нужно найти и закомментировать значком -- эти строки в se_respawn.script:
Код
-- экстренный спаун минимального количества объектов if #self.spawned_obj < self.min_count then -- while #self.spawned_obj < self.min_count do -- --sak.dbglog("RESPAWN: [%s] very small object", tostring(self:name())) -- if self:create(100) == false then -- return -- end -- end return end
V.E.Q.O.
Вторая сборка СОБа, balance_light. Ищем gamedata\config\misc\artefacts_cooking.ltx. Время варки смотрим: time_light=...правим тут. Для измения времени на balance_default смотрим: time=...правим тут.
На релизе смотрим файл
Код
amk_mod.script: function check_af_transform(af,anom_id,anom_sect)
...pos ,0,4,0,...дни,часы,минуты - меняем на своё усмотрение. igor.doc
Чтобы не трогать функции (где они там ещё вызываются), комментируем precondition в диалогах. В правках к Релизу от Mikelik, есть отмена ожидания обмена артефактов у Менялы:
это обращение к функции содержащей такую строку ("start_antichit_time",25). На этом примере, можно и другим НПС отключить томительное время ожидания. Арни в dialogs_bar.xml, Кулинар в dialogs_amk.xml, кучка шулеров в sak_dialogs_bar_yan.xml. В самом dialogs_trаding.xml есть другие персонажи, где можно поиграться с таймерами. Ну и строки диалога заодно закомментировать, с ответами "подойди через XX...минут мне надо... зубы почистить". igor.doc
gamedata\scripts\sak\ находишь файл sak_repair_dialog.script и смотришь структуру
Код
this.repair_config
Тут тебе и ценовые коэффициенты и время восстановления в минутах по каждому из ремонтников. CiBrAiKeR
Добавлено (25.04.2017, 14:57) --------------------------------------------- GhosT_RecoN, не думаю, хотя в NLC 6 можно было. Там целая гора скриптов, и, судя по всему, никто не знает, где искать.
Эх, блин, интерфейс от Дениса не пашет на версии нлс Переосмысление 2.5
Ну, мне полная версия, всё равно, не понравилась. Поэтому я закинул себе текстуры разгрузки и инвентаря, немного затемнив последний. И ничего, работает. Правда, немного солянка на фоне общего оформления, но мне нравится Лучше, чем вездесущая текстура ткани в меню торговли.
Добавлено (25.04.2017, 17:51) --------------------------------------------- Нужен ещё один коммент для последней части инструкций.
Сообщение отредактировал atpcl_knock - Вторник, 25.04.2017, 17:51
Ну, мне полная версия, всё равно, не понравилась. Поэтому я закинул себе текстуры разгрузки и инвентаря, немного затемнив последний. И ничего, работает. Правда, немного солянка на фоне общего оформления, но мне нравится Лучше, чем вездесущая текстура ткани в меню торговли.
В третьей версии переосмысления Денис будет пробовать новый инвентарь в стиле ЗП, но это не точно.
Сяк ещё при NLC6 отвечал, что если увеличить camera_height_factor с дефолтных ТЧ'шных 86 до абсолютно правильных 92, то положение камеры станет выше не только при положении стоя, но и в двух положениях сидя, где при дефолтном значении camera_height_factor всё было в норме, что даст чит не высовывая модель головы атаковать противника. Верно, но ведь можно откорректировать отдельно и расположение камеры сидя, сделать её на одном уровне с фактическим положением глаз и головы модели Меченого, реализма и комфорта ради. В итоге расположение камеры во всех позах будет правильным.
Ничего сложного нету, нужно только откорректировать эти строки в actor.ltx:
self:ppe_menu_show() elseif dik == DIK_keys.DIK_D then -- Запуск камеры демо-рекорд if level.present() and db.actor and db.actor:alive() then console:execute("demo_record 1") end console:execute("main_menu off") end end return true end
В главном меню по нажатию клавиши "D". И, кто забыл, движение вперёд-назад - ЛКМ-ПКМ, влево-вправо - стрелки, ускорение - левый CTRL замедление - левый SHIFT. stalk9r
"По 1-2 патрона в разгрузке я б Сидору морду лица бил." Сталкер Добрый. Для сборки от SOB. Нам нужен файл gamedata\config\misc\vergas_items.ltx (открывать лучше специализированными текстовыми редакторами Notepad, PSPad и т.д., т.к. Блокнот, говорят, видит не все символы) 1. Вместимость Находим секцию разгрузки - [razgruzka]. За вместимость отвечает параметр -
Код
max_capacity
. max_capacity = 10|30|2|1|1|4|6|2|2|2|1|2|1 Всего указано 13 цифр. Ниже порядковые номера цифр и за что они отвечают: №1 - пистолетные/автоматные/снайперские патроны левая часть, №2 - пистолетные/автоматные/снайперские патроны правая часть, №3 - аптечки, №5 - научная аптечка, №6 - бинты, №7 - дробь правая часть, №8 - гранаты, №10 - дробь левая часть, №12 - антирады. Например, чтобы увеличить в левой части разгрузки пистолетные/автоматные/снайперские патроны с 10 на 30, нам нужно изменить первую цифру 10 на 30.
P.S. Cекция подсумка - [podsumok] *Shadow*
Можно добавить себе в статистику убийство собачек и тушканчиков. В файл \scripts\xr_statistic.script после
function set_torch_param(id,r,g,b,sw) lightman.set_lamp_rgb(id,r,g, B) if not sw then return end [code]local range = 18*r*sw
- увеличиваем значение дальность local spot = 1.4/(sw) - меняем значение радиус lightman.set_light_range(id, range) lightman.set_spot_angle(id, spot); end[/code] Проверено на сборке от mikelik. Root170670
В файле sak.script: находим текст
Код
function cant_trade(obj,sect,id,flag) if flag==1 or flag==2 then params.cant_trade_add(id) else if strpos(sect,"wpn_",1,true) or strpos(sect,"_outfit",1,true) then local cond=obj:condition() if (cond<0.65 and trade_flag==false) then -- поставить нули params.cant_trade_add(id) else params.can_trade_add(id) end
Проверено на сборке от mikelik. Root170670
Вечные фонарик, артефакты, батарея.
В начале игры фонарик один раз зарядить и всё. ----------------------------------------------------------------- в файле sak.script:
Код
function empted_akkum(flag) if db.actor:item_in_slot(11) then local obj_id=db.actor:item_in_slot(11):id() local obj=sim:object(obj_id) if obj then nv_on=params.get_nv_on_off(torch_id) or 0 local antitush if sak_inventory.sash["af_full_antitush"] then antitush=20 else antitush=0 end local razrad=(af_kolvo+nv_on+antitush)*0.005*loka_on <-------------------- изменить на нули local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0004 <-------------------- изменить на нули if cond>=1 then cond=0.9999 end if cond > 0.06 then if flag then arts_operate=true return end local new_cond=cond-razrad params.obj_condition(obj_id, new_cond) data.condition = new_cond pk:set(data) arts_operate=true else if arts_operate==true then send_tip("Аккумулятная батарея разряжена.","Аккумулятор",2,10,"pribor","pda_news", "red") lightman.toggle_NVD(torch_id) arts_operate=false razgruzka.open_inv_raz_pod=false --------------------------------------------- в файле sak.script: function torch_brock(switcher,sw) if torch_id and (params.get_torch_on_off(torch_id)==1 or switcher) then if lua_random()<0.15 and not sw then local r_t=(r_old*(lua_random(3,10))/10) params.set_torch_param(torch_id,r_t,r_t,r_t,mode_switch) local time_flash=lua_random(1,3) timers.start_timer("t_torch_flash",time_flash,"sak.torch_brock()") return end r_old=r_old+(mode_switch-1)*0.1 local r_new,g_new=r_old,(r_old-0.07) <-------------------- изменить на нули if r_new>0.11 and not sw then r_new = r_new-(0.007*(mode_switch*2)) <-------------------- изменить на нули (0.0*(mode_switch*2)) g_new = g_new-(0.007*(mode_switch*2)) <-------------------- изменить на нули (0.0*(mode_switch*2)) end
Проверено на сборке от mikelik
Артефакты забыл дописать
Код
в файле sak.script: if arts_operate and not level.main_input_receiver() then local section=obj:section_name() local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0004 <-------------------- изменить на нули if cond>=1 then cond=0.9999 end local cond1=math.floor(cond*100) if cond>0.25 then local new_cond=(cond-0.002) <-------------------- изменить на нули if strpos(section,"_buliz",1,true) then new_cond=cond-0.0025 <-------------------- изменить на нули elseif strpos(section,"dummy_",1,true) then new_cond=cond-0.01 <-------------------- изменить на нули elseif strpos(section,"af_full_antitush",1,true) then new_cond=cond-0.1 <-------------------- изменить на нули elseif strpos(section,"_1",1,true) then new_cond=cond-0.005 <-------------------- изменить на нули elseif strpos(section,"_2",1,true) then new_cond=cond-0.0025 <-------------------- изменить на нули elseif strpos(section,"_3",1,true) then new_cond=cond-0.001 <-------------------- изменить на нули elseif strpos(section,"_4",1,true) then new_cond=cond-0.00075 <-------------------- изменить на нули end params.obj_condition(obj_id, new_cond) data.condition = new_cond pk:set(data) else local new_art if strpos(section,"_dyn",-6,true) then new_art=string.sub(section,1,-7).."_dyn6d" elseif strpos(section,"dummy_",1,true) then new_art=section.."_fake" elseif strpos(section,"af_full_antitush",1,true) then new_art=section.."_fake" elseif strpos(section,"_1",-2,true) then new_art=string.gsub(section, "_1", "_5") elseif strpos(section,"_2",-2,true) then new_art=string.gsub(section, "_2", "_6") elseif strpos(section,"_3",-2,true) then new_art=string.gsub(section, "_3", "_7") elseif strpos(section,"_4",-2,true) then new_art=string.gsub(section, "_4", "_8") end coord_params.set_obj_section(obj_id, new_art) consumable_artefacts[i]=nil end razgruzka.open_inv_raz_pod=false end else consumable_artefacts[i]=nil end end end else arts_operate=false end if flag then return end if level.name()=="aver" then return end local npc=db.actor local act_pos=npc:position() if not amk_anoms.check_coordinates(act_pos) then return end if sak_inventory.rucksack["af_dummy_black_tip"] then local obj_id=sak_inventory.rucksack["af_dummy_black_tip"][1] local obj=sim:object(obj_id) if obj then local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0004 <-------------------- изменить на нули if cond>=1 then cond=0.9999 end if cond>0.25 then local new_cond=cond-0.0025 <-------------------- изменить на нули params.obj_condition(obj_id, new_cond) data.condition = new_cond pk:set(data) else misc.release_obj(obj_id, 'sak.script:1346') db.actor:disable_info_portion("info_black_tip") nlc_vars.black_off = 0.8 end end end end function new_art_cond(obj_id,cnd,sect) local objg=client_obj(obj_id) local cond = cnd or 0.25 if objg then objg:set_condition(cond) end arc_arts.register_artefact(sect.."_99",-1) end function sleep_razrjad_akkum(hour) sleep_razrjad_torch(hour) if arts_operate then local obj_id=db.actor:item_in_slot(11):id() local obj=sim:object(obj_id) local tm_sl=hour*10 if obj then local razrad=(af_kolvo)*0.005*loka_on*tm_sl <-------------------- изменить на нули local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0004 <-------------------- изменить на нули if cond>=1 then cond=0.9999 end if cond > 0.06 then if flag then arts_operate=true return end local new_cond=cond-razrad params.obj_condition(obj_id, new_cond) data.condition = new_cond pk:set(data) arts_operate=true else if torch_id and arts_operate==true then lightman.toggle_NVD(torch_id) arts_operate=false razgruzka.open_inv_raz_pod=false end end end for i,k in pairs(sak_inventory.sash) do local ini=system_ini() if ini:section_exist(i) then local class=ini:r_clsid(i, "class") if class==CLID_ART then local kolvo=table.getn(k) if (string.find(i,"dummy_",1,true) or string.find(i,"_1",1,true) or string.find(i,"_2",1,true) or string.find(i,"_3",1,true) or string.find(i,"_4",1,true) or strpos(i,"_dyn",-6,true)) and (not strpos(i,"_dyn6d",1,true) and not strpos(i,"_fake",1,true) and not strpos(i,"_capsule",1,true)) then for s=1,kolvo do table.insert(consumable_artefacts, k[s]) end end end end end local af_del_kolvo=table.getn(consumable_artefacts) if af_del_kolvo>=1 then for i,k in pairs(consumable_artefacts) do obj_id=consumable_artefacts[i] obj=sim:object(obj_id) if obj then local section=obj:section_name() local pk = get_netpk(obj,1) local data = pk:get() local cond=data.condition+0.0004 <-------------------- изменить на нули if cond>=1 then cond=0.9999 end local cond1=math.floor(cond*100) if cond>0.25 then local new_cond=(cond-0.002*tm_sl) <-------------------- изменить на нули if strpos(section,"_buliz",1,true) then new_cond=cond-0.0005*tm_sl <-------------------- изменить на нули elseif strpos(section,"dummy_",1,true) then new_cond=cond-0.01*tm_sl <-------------------- изменить на нули elseif strpos(section,"af_full_antitush",1,true) then new_cond=cond-0.1*tm_sl <-------------------- изменить на нули elseif strpos(section,"_1",1,true) then new_cond=cond-0.005*tm_sl <-------------------- изменить на нули elseif strpos(section,"_2",1,true) then new_cond=cond-0.0025*tm_sl <-------------------- изменить на нули elseif strpos(section,"_3",1,true) then new_cond=cond-0.001*tm_sl <-------------------- изменить на нули elseif strpos(section,"_4",1,true) then new_cond=cond-0.0005*tm_sl <-------------------- изменить на нули end
Root170670
В файле sak.script:
Код
function repair_box_repair(obj) if obj then local self=level.main_input_receiver() if self then self:GetHolder():start_stop_menu(self,true) end local actor=db.actor local slot_1=actor:item_in_slot(1) local slot_2=actor:item_in_slot(2) local armor=actor:item_in_slot(6) local sounds=lua_random(1,3) if obj and obj:section()=="repair_item_weapon" then if (slot_1 and slot_1:condition() >=0.8 and slot_1:condition() <0.985) or (slot_2 and slot_2:condition() >=0.8 and slot_2:condition() <0.985) then <------------ вместо "0.8" поставить "0.0" actor_hide_weapon() if (slot_1 and slot_1:condition() >=0.8 and slot_1:condition() <0.985) then <------------ вместо "0.8" поставить "0.0" rep_percent=wpn_proc[slot_1:section()] or 0.02 local rep_point=slot_1:condition() + rep_percent if (rep_point>1) then rep_point=1 end slot_1:set_condition(rep_point) sound=repair_sound[1]..sounds snd_obj=xr_sound.get_safe_sound_object(sound) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) send_tip("Оружие немного приведено в порядок",nil,12,5,"g_g","no", "green") elseif (slot_2 and slot_2:condition() >=0.8 and slot_2:condition() <0.985) then <------------ вместо "0.8" поставить "0.0" rep_percent=wpn_proc[slot_2:section()] or 0.02 local rep_point=slot_2:condition() + rep_percent if (rep_point>1) then rep_point=1 end slot_2:set_condition(rep_point) sound=repair_sound[2]..sounds snd_obj=xr_sound.get_safe_sound_object(sound) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) send_tip("Оружие немного подремонтировано",nil,12,5,"g_g","no", "green") end timers.start_timer("time_rep",13,"sak.restore_weap()") elseif (slot_1 and slot_1:condition() <0.8) or (slot_2 and slot_2:condition() <0.8) then <------------ вместо "0.8" поставить "0.0" send_tip("Слишком сильное повреждение оружия!",nil,2,5,"g_g","no", "red") misc.spawn_into(obj:section().."_feik", actor) else send_tip("Оружие не нуждается в починке!",nil,2,5,"g_g","no", "blue") misc.spawn_into(obj:section().."_feik", actor) end elseif obj and obj:section()=="repair_itemoutfit" then if armor then if strpos(armor:section(), "bandit_veteran_",1,true) or strpos(armor:section(), "bandit_master_",1,true) then send_tip("Для кожаного плаща не подходит!",nil,2,5,"g_g","no", "yellow") misc.spawn_into(obj:section().."_feik", actor) else rep_percent=outfit_proc[armor:section()] or 0.02 if armor:condition() >=0.8 and armor:condition() <0.985 then <------------ вместо "0.8" поставить "0.0" actor_hide_weapon() vergas_masks.set_flag_minimap(false) local rep_point=armor:condition() + rep_percent if (rep_point>1) then rep_point=1 end amk_mod.repair_armor(rep_point) sound=repair_sound[3]..sounds snd_obj=xr_sound.get_safe_sound_object(sound) snd_obj:play_no_feedback(db.actor, sound_object.s2d, 0, vector(), 1.0) send_tip("Броня отремонтирована.",nil,12,5,"g_g","no", "green") schedule.add("tm_rep", "sak.return_mask()", 12500) elseif armor:condition() <0.8 then <------------ вместо "0.8" поставить "0.0" send_tip("Слишком сильное повреждение брони!",nil,2,5,"g_g","no", "red") misc.spawn_into(obj:section().."_feik", actor) else send_tip("Броня не нуждается в починке!",nil,2,5,"g_g","no", "blue") misc.spawn_into(obj:section().."_feik", actor)
------------------------------------------------------------------------------------------ Если хотите чтобы ремонтировалось за один раз, а не юзать мышкой по несколько раз на одно изделие, то нужно изменить процентность ремонта в секции:
Код
local outfit_proc={ - броня, например: ["novice_outfit"]=0.2, - поставить 0.9 ["novice_q_outfit"]=0.12, - поставить 0.9 ["outfit_novice_m1"]=0.2, - поставить 0.9 и т.д.
-------------------------------------------------- Весь список выкладывать не буду правте в ручную, может у кого-то оружие, броня добавлены, изменены и т. д. Проверено на сборке от mikelik. Root170670
AskoldVerne, актуальна. Просто рядом с ссылкой стояла запятая. Теперь можно кликать без проблем
Добавлено (26.04.2017, 12:22) --------------------------------------------- К слову, проще скачать уже пожатые текстуры, дабы не проводить компрессию самому. Ссылка также в шапке.
Сообщение отредактировал atpcl_knock - Среда, 26.04.2017, 12:35