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

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


Halford

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

19 часов назад, lexa.3012 сказал:

даёшь - магазинное питание(из "NS") во все модификации

 ну прям во все, как по мне излишне будет, в мод где идёт закос под "реализм" - да, но зачем это в каком-нибудь моде, где даже с оружейкой не поработали, а просто оставили оригинальную ПЫСовскую?)

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


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

@boneset-hq в скрипте bind_stalker есть переменная food_stack ,которая игрой не определена как глобальная т.е. её описания нет в g.script и при этом она не помечена как локальная.

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


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

Подскажите гайд по распаковке/запаковке файлов .sav

ты имеешь ввиду сейвы? они не запаковываются/распаковываются, происходит некий парсинг самой игрой, когда данные переводятся  по замыслу разрабов в удобный игре формат чтения, бинарный формат или около того, потому открыто то ты можешь декомпилятором эти данные, да хоть текстовым редактором чтобы ознакомиться, только вот как ты в нём разберёшься и как ты это будешь редактировать большой вопрос, для этого надо чтоб кто-то написал программу с удобным редактированием конкретных  сейвов для данной игры)

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


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

А кто-нибудь знает как на ОГСР сделать так чтоб НПС не торговали своим оружием, то есть вообще всем, а то получается можно выкупить всё оружие, и непись остаётся голый, это странно , в ТЧ не помню чтоб было так, там НПС не продавали оружие, которое в слоте у них, а тут продают.

 

 

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


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

first_speaker, second_speaker

это в диалоге первый и второй говорящий очевидно, но так в обычном диалоге первым говорит непись у него нулевая фраза, дальше сам разберёшься опытным путём)

  • Согласен 1

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


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

даже после редактирования ui файлов как итог ничего не появлялось и ни одна кнопка не появилась

движок многое из конфигов xml не читает, а использует жёстко прописанные значения в движке, даже в ОГСР например ширину скрола текста с описанием задания в ПДА и подробным описанием, которое переключается вместо карты, я как-то взялся заменить основный ПДА статик с нестандартным размером картинки, думая если что поправлю текст и картинки в конфигах, ага:) игра вообще не реагировала на их изменения, и пару дней пришлось убить на то, чтоб весь текст в заданиях править под новое окно ПДА ,если бы знал что там такой гемор оставил бы дефолтный ПДА)

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


Ссылка на сообщение
2 часа назад, boneset-hq сказал:

Или придётся мучиться с all.spawn'ом?

а что там мучиться, если у тебя оригинал ТЧ стоит, берёшь распаковщик и разбираешь спавн ACDC, поправил и запаковал снова, с распаковкой спавна некоторых модов там где классы менялись да могут возникнуть проблемы, но ручками подправить файлы самого распаковщика надо будет, кстати там же в аллспавне и файлы вей-поинтов ,которые тебе тоже нужны будут, чтоб направить непися туда куда нужно path_walk и path_look, мучиться это если пересобирать и править кучу секций в спавне, а тебе пару строк поправить)

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


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

@Balavnik у тебя неправильная функция, чтоб убить например Фаната, тебе надо найти его уникальный номер объекта SID, который прописывается в алл-спавне и можно найти или там или в оригинальном файле game_story_ids.ltx для ТЧ там все основные персы прописаны, тогда ты можешь удалить именно этот объект, а не просто какой-то объект с секцией Фаната, которых ты можешь наспавнить спавнеров хоть сто штук:) а тебе нужен один единственный,который спавнится в начале игры через алл-спавн, и для этого нужны эти SIDы чтоб обратиться конкретно к этому уникальному объекту :

 

local npc = level_object_by_sid(тут пишешь ID Фаната)

if npc then
    npc:kill( npc )  ---- типа самоубийство

 

 

  • Полезно 1

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


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

Ранее спрашивал такой вопрос про то ,что странно в моде на ОГСР НПС продавали всё своё оружие, думал что в движке поменяли торговлю, но на днях другой мод перевёл на ОГСР и там НПС оружием основным не торговали, стал ковыряться в оригинальных файлах торговли и выяснил причину:

 

в оригинале ТЧ оказывается всё работает также, но там ПЫСы заморочились и почти все предметы в игре прописали как неторгуемые в trade_generic.ltx ( это главный файл конфига торговли для всех НПС у которых в логике не задан отдельный файл торговли) не важно квестовый непись или симуляционный, если у него нет файла торговли, то торговать он будет через trade_generic.ltx, а там всё что он не покупает и не продаёт должно быть указано, если чего-то не указать он этим торгует с ценами по себестоимости , наряду с теми вещами, что прописаны с конкретными значениями после знака =, так вот в первом моде ничего не было прописано кроме квестовых предметов, потому неписи торговали всем своим оружием, а втором моде - неписям разрешено было торговать только ПМ и обрезами, а остальным оружием - нет, а в оригинале получается НПС, которые не имели своего торгового файла по дефолту в trade_generic вообще никаким оружием не торгуют, потому создавалось впечатление, что не торгуют оружием которое в данный момент в слоте.

 

11 часов назад, Balavnik сказал:

А можно как-то выудить этот айдишник без открытия сторонних файлов?

это стори ид его задаёт сам создатель игры/мода для удобства, ПЫСы например не стеснялись чуть ли не каждой собаке и дверной ручке давать свой SID, так и ты когда делаешь мод, сам задаёшь эти айдишники в аллспавне под будущие квесты или сценки, или что-то надо заспавнить по ай-дишнику в определённый момент объект из алл-спавне по скрипту, Фанат спавнится в оригинале по инфопоршню в аллспавне перед походом в X18 но у него тоже есть свой sid, если в скриптах например в его квесте надо будет у нему обратиться, например что его убить и т.п.

вообще удобная вещь, например есть объект с sid=203  -

чтоб получить клиентский объект пользуем level_object_by_sid (203) как выше писал.

чтоб получить серверный объект - alife():story_object(203), чтоб например вообще удалить объект из игры.

чтоб заспавнить объект из аллспавна  - alife():spawn_id(203), но если он уже есть то игра вылетит, это подходит если объект сначала был удалён из игры, а потом его надо вернуть.

Изменено пользователем CiberZold
  • Нравится 1

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


Ссылка на сообщение
7 часов назад, imcrazyhoudini сказал:

Пытаюсь избавиться от зависимости от db архивов

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

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


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

@imcrazyhoudini ну да надо не забывать сначала распакованная игра, а потом уже сверху файлы мода копируешь в gamedata, а не в gamedata твоего мода кидать распакованную от оригинала, оригинальный файлы перепишут файлы твоего мода)

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


Ссылка на сообщение
12 часов назад, Balavnik сказал:

а в _g.script объявил переменную create = balavnik_script.create. Так можно делать? Иначе не очень удобно каждый раз обращаться.

у тебя что миллион строк кода, что если ты будешь писать create вместо alife():create() или вместо balavnik_script.create? для текстового редактора при копи-пасте все равно в этом случае сколько символов копировать:)

  • Нравится 1
  • Смешно 1

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


Ссылка на сообщение
3 часа назад, Капрал Хикс сказал:

предметы, если я их хочу запретить к продаже/покупке?

в OGSR по-крайней мере всё отдано на файлы конфигов торговли ,если надо запретить прописываешь нужную секцию в продажу/покупку и больше ничего не ставишь ни знак равно ничего после, если секции какого-то предмета нет в этом файле, а у непися этот предмет есть, он будет покупать и продавать его по номиналу

 

в оригинале вроде было также, но точно не скажу, там не разбирался там дотошно, но переведя один мод с OGSE на OGSR, ничего не меняя в конфигах обнаружил, что у меня неписи, которые раньше не торговали своим оружием в слоте после перевода мода на другой движок стали) потому не знаю, видимо в ОГСР всё отдали на откуп файлам торговли, а в оригинале был какой-то ещё флаг.

  • Полезно 2

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


Ссылка на сообщение
10 часов назад, imcrazyhoudini сказал:

В чём может быть проблема?

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

  • Согласен 1

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


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

Да даже если перезайти в игру то ничего не меняется.

то есть скрипт не меняет user файл я так понимаю, тогда надо разбираться что-там за косяки с ui скриптами от мода и как они заменяют оригинальные.

 

сейчас проверил на ОГСР не самый последний билд правда, но всё прекрасно работает, смена настройки карты теней при выходе из игры переписывает user, нужно если ты адаптируешь мод или оригинальную игру на ОГСр обязательно перенести все скрипты ui и ui_mm_opt.xml из самого gamedata билда движка, может они конечно накосячили что-то в последних билдах, но думаю вряд ли скорее ты что-то не так сделал)

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

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


Ссылка на сообщение
8 часов назад, St_Tongor сказал:

там написано "найдите функцию в строке, она неправильная, исправьте". Вот только она и в оригинале - такая же точно

суть в том, что лоад коллбэк при загрузке сейва проверяет версии скриптов для НПС, а игра не может их прочитать отчего-то, у каких-то нпс, а может и у всех у тебя не считываются эти данные, это только тебе разбираться что-ты там с ними делал и что правил.

 

в оригинальном, имею ввиду до 6 патча, xr_motivator.script кстати вообще при загрузке нет проверки скриптовой версии НПС там просто строка

dialog_manager.load(self.object, reader)  - объект вызывается без всяких проверок версии скриптов, возможно у тебя как раз такая солянка из старых скриптов и правленных под 6 патч, отсюда и проблемы.

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

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


Ссылка на сообщение
5 часов назад, St_Tongor сказал:

но битие сейвов наблюдалось и до этого

если ты про вышеописанный вылет, то это не "битый сейв", ну в моём понимании "битый сейв" это когда в сейв записались какие-то неверные данные или не записались которые обязательно были должны, здесь же сейв можно реанимировать, если найти причину и поправить все скрипты по цепочке вызываемые при загрузке этого сейва.

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


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

В общем разобрался я кажется полностью по урону неписям , как это работает:

 

- если модели , которую использует НПС вообще не прописать кастом-дату, не указав там инклуд на файлы которые лежат в папке models\capture, в этом случае будет считаься, что непись без брони, броня будут игнориться, а дамаг по неписю, его иммунитеты будут браться из той секции на которой этот непись создан (в аллспавне, или в спавн-секциях, если спавним через скрипт).

 

- если же в кастом-дате модели прописаны данные через тот же инклуд, то у непися будет учитываться броня как и у актора, а урон и иммунитеты будут браться из файлов immunities.ltx и damages.ltx из папки creatures, а не из секции сталкера на которой он создан, тут у неписей уже будет броня и в зависимости от защиты костей что прописаны в кастом дате модели, в файле damages будет браться соответствующая секция, где будет сравниваться пробила ли пуля броня значение защиты кости больше или меньше kAP патрона или kPierce в ТЧ/ОГСР, и если пуля не пробила броню, то урон будет равен hit_fraction, который прописан там же в этой секции брони в файле damages.

 

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

  • Полезно 3

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


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

у нпс есть лишь сопротивление урону

это можно хоть как назвать суть в защите костей, если в модели указана кастом дата со ссылкой на файл damages, то при попадании в кости броня считается, если там выставить значение например bip01_pelvis         = 1.0, 0.35, первая цифра множитель урона при попадании в эту кость, вторая это как раз типа "броня", которая сравнивается с k_ap пули в ЗП, но в ТЧ оно тоже работает, только вместо k_ap, похоже игра берёт значение  k_pierce ну или какое другое, это чисто для расчёта урона, а не для фактического пробития как с материалами, факт в том что если завысить вторую цифру "броню" то почти все калибры очень маленький урон начинают наносить кроме тех патронов который как раз имеют высокий k_pierce.

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


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

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

  • Жуть! 1

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


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

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