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

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


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

Народ, как всё-таки писать Военные склады / Военные Склады, Тёмная долина / Тёмная Долина?

Склады или склады - всё-таки там территория далеко заходит за армейскую базу и склады при ней.

Долина или долина - все-таки местность там далеко не долина.

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

Добрейшего, граждане. Тему с багами ы вылетами закрыли уже лет десять, как, спросил совета в "курилке" - послали сюда. Ну и вот - пишу сюда, не бейте ногами.

 

У меня - старая, как сам Свалкер, проблема: что-то тормошит функцию в Мотиваторе, она и фалломорфирует, убивая попутно сейв.

 

Если это важно - сама функция вот: 

 

self.npc_script_version = alife():object(self.object:id()).script_version

 

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

 

Лог ошибки непосредственно выглядит вот так:
 

[error]Expression    : fatal error
[error]Function      : CScriptEngine::lua_error
[error]File          : E:\stalker\sources\trunk\xr_3da\xrGame\script_engine.cpp
[error]Line          : 73
[error]Description   : <no expression>
[error]Arguments     : LUA error: ...ow of chernobyl\gamedata\scripts\xr_motivator.script:513: attempt to index a nil value

 

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

 

Методом научного тыка было установлено, что некоторое время после перехода с локации на локацию можно сохраняться безопасно, а вот конкретно момент, когда сейвы начинают умирать, пока не установлен. Буквально, два сейва с разницей в полминуты и расстоянием шагов в тридцать, первый - живой, второй - битый. Dafuq.

 

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

Изменено пользователем St_Tongor
Ссылка на комментарий
2 часа назад, St_Tongor сказал:

функция, вроде, не менялась

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

 

2 часа назад, St_Tongor сказал:
self.npc_script_version = alife():object(self.object:id()).script_version

Для версии 1.0006 будет 7 (в system.ltx параметр current_server_entity_version), в предыдущих патчах могло быть 6 /  5.

В оригинале, только в этих скриптах есть проверки: dialog_manager / se_stalker / se_monster (блок load).

Ссылка на комментарий
1 час назад, h0N0r сказал:

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

 

Для версии 1.0006 будет 7 (в system.ltx параметр current_server_entity_version), в предыдущих патчах могло быть 6 /  5.

В оригинале, только в этих скриптах есть проверки: dialog_manager / se_stalker / se_monster (блок load).

 

Версию сервера чекнул - семёрка. Файлы сравнил Блокнотом++ - скрипты в "рабочей" гейдате и в "контрольной" нетронутой распаковке отличаются только длиной табуляции перед ними. Однако!

Чуть ниже идёт вот такой скрипт:
 

function motivator_binder:hear_callback(victim, who, sound_type, sound_position, sound_power)
  --if who:id() == self:id() then
	--dbg.log("motivator_binder:hear_callback who:id() == self:id()")  
    --return
  --end
  local type = "NIL"
  if bit_and(sound_type, snd_type.weapon) == snd_type.weapon then
	type = "WPN"
<и дальше еще куча вариантов>

 

"В оригинале" это безобразие сильно скромнее и выглядит так:
 

function motivator_binder:hear_callback(self, who, sound_type, sound_position, sound_power)
	if who:id() == self:id() then
		return
			
	end
	local type = "NIL"
	<и далее опять куча вариантов>

 

Соот-нно, в "рабочке" - закомментированный кусок и переменная "self" заменена на переменную "victim" (и там еще в конце есть строчка - в ней тоже селф на виктим поменян), что бы это значило? "Проблемная" функция, если я хоть что-то понимаю, обращается как раз к "self"-у, не?

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

@St_Tongor 

По слухам, в огср лучше отлавливать ошибки, лог детальнее и прочее.

 

1 час назад, St_Tongor сказал:

что бы это значило?

У тебя стоят какие-то правки / моды, добавляющие данный вылет :biggrin:

 

Можешь сделать так:

	get_console():execute("load log:"..string.format("npc: %s, version: %d", tostring(self.object:name()), tostring(alife():object(self.object:id()).script_version)))

	self.npc_script_version = alife():object(self.object:id()).script_version

Выведет в лог имена нпс с версией. Часто, перед самим FATAL ERROR, будет имя последнего объекта его вызвавший.

  • Нравится 2
Ссылка на комментарий

Ребятки, вопросик такой, возможно не по теме, Собирал модельки через OGF Tools, НПС перестали реагировать на что либо, в диалог не вступают, если по ним начать стрелять-просто сковь проходят пули и всё, как исправить?

Ссылка на комментарий
8 часов назад, St_Tongor сказал:

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

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

 

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

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

Изменено пользователем CiberZold
Ссылка на комментарий
7 часов назад, h0N0r сказал:

@St_Tongor 

 

Можешь сделать так:

get_console():execute("load log:"..string.format("npc: %s, version: %d", tostring(self.object:name()), tostring(alife():object(self.object:id()).script_version))) self.npc_script_version = alife():object(self.object:id()).script_version

	get_console():execute("load log:"..string.format("npc: %s, version: %d", tostring(self.object:name()), tostring(alife():object(self.object:id()).script_version)))

	self.npc_script_version = alife():object(self.object:id()).script_version

Выведет в лог имена нпс с версией. Часто, перед самим FATAL ERROR, будет имя последнего объекта его вызвавший.

 

Эта строка дописывается в мотиватор перед "проблемной", я всё верно понимаю?

 

4 часа назад, CiberZold сказал:

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

 

Да там не "возможно", там определённо точно - лютая солянка. Я по какой-то причине не могу скачать сборку АМК непосредственно с данного сайта, нажимаю на ссылку - и не происходит ничего. Через это мной был найден наименее подозрительный сторонний установщик, однако ж - уже имеющий унутре сам АМК, два патча с правками к нему, некий третий бета-патч, а также - "различные правки и улучшения", начиная от двух потерянных рецептов и заканчивая Интеллектуальным Мародёром (он, скорее всего - и есть корень проблемы, я не помню, чтобы его официально адаптировали к шестому патчу, а как его пришивали к данной сборке - сие тайна великая есть). 

Из того, что лично я приколхозил - это перепаковщик патронов и бабло с трупов, но битие сейвов наблюдалось и до этого.

Ссылка на комментарий
5 часов назад, St_Tongor сказал:

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

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

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

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

 

В этом и весь прикол. Запихал я строку-логгер в мотиватора, провёл эксперимент: загрузился с "нормального" сейва, дошёл до того места, где "точно вылетит", сохранился, загрузился - вылетело (кто бы мог подумать). Посмотрел в лог - там что-то такое:
 

! Cannot find saved game log:npc: esc_lager4, version: 7
! Cannot find saved game log:npc: esc_lager5, version: 7
! Cannot find saved game log:npc: esc_lager6, version: 7
! Cannot find saved game log:npc: esc_wolf, version: 7
! Cannot find saved game log:npc: esc_vagon_wounded, version: 7
! Cannot find saved game log:npc: esc_novice_attacker1, version: 7
! Cannot find saved game log:npc: esc_novice_attacker2, version: 7
! Cannot find saved game log:npc: esc_factory_bandit1, version: 7
<перечисление кучи живого и мёртвого народу на Кордоне>
и почему-то всё заканчивается вообще другой локой:
! Cannot find saved game log:npc: gar_stalker_respawn_13488, version: 7

 

Однако, для чистоты эксперимента, я снова загрузился с "нормального" сейва, после чего не сходя с места вышел в Шындошс, и полез в логи. А там - та же фигня (только не в конце, а в середине), что нифига не помешало сейв прогрузить! Нелогично.

Отсюда вывод: дело не только в этом. Есть смутное наблюдение: вылетает, в основном, при попытке прогрузиться рядом с большим скоплением сталкеров. Видимо - кто-то или что-то в оффлайне себя нормально чувствует, а в А-Лайфе кобенится. Но это - вообще не точно.

Добавлено  Купер,

Правила форума, п. 2.6 (оверквотинг).
Рекомендуется к ознакомлению: здесь и здесь.

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

...в обчем - ясно, что ничего не ясно. Кто-нибудь может посоветовать, где сейчас можно скачать наиболее "чистый" АМК и патчи с адаптациями до 1.06 к нему? Я опять попытался с глагне вытащить - и опять та же песня: нажимаю на ссылку и не происходит ничего.

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

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

@ted.80 Преогромнейше. Даже ИМ и Арена в наличии, наес! Они, кстати, как - на 1.04 или на 1.06? ЕМНИП, Мародёра на 1.06 адаптировали (но это не точно), а вот с Ареной не уверен...

 

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

Эх, еще бы магазинное питание оружия кто-нибудь до ума бы довёл - совсем хорошо бы было. Но, видать - не судьба. Сам пытался - не взлетело, магазины есть, перенабивка - не есть...

 

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

Подскажите, почему сталкеры атакуют собачку? Вроде всё верно тута:
 

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

image.png

 

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

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

@imcrazyhoudini 

Параметр community в конфигах m_dog и прочих m_ не работает, используется только species = название из таблицы на скрине.

Может пригодится:

Скрытый текст
[monster_relations]
;[1] друг, [0] нейтрал, [-1] враг, [-2] злейший враг
;_________________________________________________________________________________________________________
;                |   |   |   |   | b |   |   |   |   |   |   |   |   |   | p |   |   |   |   |   |   |   |
;                |   |   |   |   | l |   |   |   |   |   |   |   |   | c | o |   |   |   |   |   |   |   |
;                |   |   |   |   | o |   |   | p |   |   |   |   |   | o | l |   |   |   |   |   |   |   |
;                |   |   |   |   | o |   |   | s |   |   |   |   |   | n | t |   | f |   |   | t |   |   |
;                |   |   |   |   | d |   |   | e |   | c |   |   |   | t | e |   | r |   |   | u | h | h |
;                |   |   |   |   | s |   |   | u |   | h |   | z |   | r | r |   | a |   |   | s | u | u |
;                | a | h | a |   | u | f |   | d |   | i | g | o | b | o | g | s | c |   |   | h | m | m |
;                | c | u | r | b | c | l |   | o |   | m | i | m | u | l | e | n | t | b |   | k | a | a |
;                | t | m | e | o | k | e | d | d | c | e | a | b | r | l | i | o | u | i | r | a | n | n |
;                | o | a | n | a | e | s | o | o | a | r | n | i | e | e | s | r | r | r | a | n | - | - |
;                | r | n | a | r | r | h | g | g | t | a | t | e | r | r | t | k | e | d | t | o | m | z |
;________________|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|___|
actor           =  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
human           =  0,  0,  0, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,  0,  0, -1, -1, -1
arena_monstr    = -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0
boar            = -2, -2,  0,  1, -1,  0, -1, -1, -1, -1, -1,  0, -1,  0,  0, -1, -1,  0,  0,  0, -1,  0
bloodsucker     = -2, -2,  0, -1,  1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0, -1,  0
flesh           = -2, -2,  0,  0, -1,  1, -1, -1, -1, -1,  0,  0,  0,  0,  0, -1, -1,  0,  0, -1, -1,  0
dog             = -2, -2,  0, -1, -1, -1,  1,  1, -2, -1, -1,  0, -1,  0,  0, -1, -1,  0,  0, -1, -1, -1
pseudodog       = -2, -2,  0, -1, -1, -1,  1,  1, -2, -1, -1,  0, -1,  0,  0, -1, -1,  0,  0, -1, -1, -1
cat             = -2, -2,  0, -1, -1, -1, -2, -2,  1, -1,  0,  0, -1,  0,  0, -1, -1,  0, -2, -2, -1,  0
chimera         = -2, -2,  0, -1, -1, -1, -1, -1, -1,  1, -1,  0, -1,  0,  0, -1, -1,  0,  0,  0, -1,  0
giant           = -2, -2,  0, -1,  0,  0, -1, -1,  0, -1,  1,  0,  0,  0,  0, -1,  0,  0,  0,  0, -1,  0
zombie          = -2, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1
burer           = -2, -2,  0, -1,  0,  0, -1, -1, -1, -1,  0,  0,  1,  0,  0,  0, -1,  0,  0,  0, -1,  0
controller      = -2, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0,  1
poltergeist     = -2, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0,  0,  0,  0
snork           = -2, -2,  0, -1,  0, -1, -1, -1, -1, -1, -1,  0,  0,  0,  0,  1, -1,  0,  0, -1, -1,  0
fracture        = -2, -2,  0, -1,  0, -1, -1, -1, -1, -1,  0,  0, -1,  0,  0, -1,  1,  0,  0,  0, -1,  0
bird            =  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0,  0
rat             =  0,  0,  0,  0,  0,  0,  0,  0, -2,  0,  0,  0,  0,  0,  0,  0,  0,  0,  1,  0,  0,  0
tushkano        = -2, -2,  0,  0,  0, -1, -1, -1, -2,  0,  0,  0,  0,  0,  0, -1,  0,  0,  0,  1, -1,  0
human_m         = -2, -2,  0, -1, -1, -1, -1, -1, -1, -1, -1,  0, -1,  0,  0, -1,  0,  0,  0, -1,  1,  0
human_z         = -2, -2,  0,  0,  0,  0, -1, -1,  0,  0,  0,  1,  0,  1,  0,  0,  0,  0,  0,  0,  0,  1

; два последних - монолит и зомбированные

 

 

  • Спасибо 2
  • Нравится 1
Ссылка на комментарий

Ох, божечки, как же я абажаю Свалкер, а...

Собрал его еще раз - вылетов при загрузке сейва, _вроде бы_ (тьху-тьху) пока не наблюдается. Зато! Мародёр перестал портить броньки на трупах и у всех сталкеров отвалилась фраза а-ля "до встречи" для выхода из диалога. Не то, чтобы это было критично, но, [censored], как? Как, дьявол его задери, вперехлёст его через клюз и трипперного осьминога ему в печень сапогом утрамбовать, это произошло-то? Из всех модов, которые я пришивал, диалоги в принципе трогала только расширенная арена, да и она только Бар и затронула, по сути...

Вот где теперь, [censored], искать, что там опять отвалилось? Люди добрые, подскажите, будь ласка, где лежит кусок Мародёра, отвечающий за износ брони и кусок диалогов, отвечающий за "до встречи", я уже смотреть не могу на папку gamedata, не то, что опять её всю перекапывать...

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

Остаётся ждать, пока добрые люди на пятый анрыл всё перенесут, а другие добрые люди, случись чудо, АМК на это всё портируют... Может - там не настолько геморройно всё это будет.

 

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

Добавил собачке логику, ловлю вылет:

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

[29.03.24 21:30:50.340] ***************************[ScriptCrashHandler]**********************************
[29.03.24 21:30:50.340] stack traceback:
[29.03.24 21:30:50.340] *********************************************************************************
[29.03.24 21:30:50.340] ********************************************************************************
[29.03.24 21:30:50.340] !![LogStackTrace] Thread: [X-RAY Primary thread], ExceptionCode: [c0000005]
[29.03.24 21:30:53.276] !!Unhandled exception stack trace:
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75B5391C], Fun: [CPatrolPathManager::select_point()] + [1456 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\patrol_path_manager.cpp-->199]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75B4C1D5], Fun: [CMovementManager::process_patrol_path()] + [637 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\movement_manager_patrol.cpp-->31]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75B48DCC], Fun: [CMovementManager::update_path()] + [524 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\movement_manager.cpp-->224]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75B4897A], Fun: [CMovementManager::on_frame()] + [46 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\movement_manager.cpp-->358]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75BB3D0D], Fun: [CCustomMonster::UpdatePositionAnimation()] + [65 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\CustomMonster.cpp-->482]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75BB2FB5], Fun: [CCustomMonster::UpdateCL()] + [769 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\CustomMonster.cpp-->452]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75BBB479], Fun: [CBaseMonster::UpdateCL()] + [53 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\ai\Monsters\BaseMonster\base_monster.cpp-->321]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75C3E72E], Fun: [CAI_Dog::UpdateCL()] + [14 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\ai\Monsters\Dog\dog.cpp-->212]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C2F2F0], Fun: [CObjectList::SingleUpdate()] + [124 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\xr_object_list.cpp-->107]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C2F5CA], Fun: [CObjectList::Update()] + [394 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\xr_object_list.cpp-->165] + [19 byte(s)]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C2B1F4], Fun: [IGame_Level::OnFrame()] + [24 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\IGame_Level.cpp-->128]
! Module: [E:\Hope For Life\bin_x64\xrGame.dll], AddrPC.Offset: [00007FFA75D5B92D], Fun: [CLevel::OnFrame()] + [205 byte(s)], File-->Line: [E:\S.T.A.L.K.E.R\!!!Github\Perimetr\ogsr_engine\xrGame\Level.cpp-->402]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C5BB10], Fun: [CRegistrator<pureAppStart>::Process()] + [84 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\pure.h-->86]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C5AC18], Fun: [CRenderDevice::FrameMove()] + [288 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\device.cpp-->443]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C5AF12], Fun: [CRenderDevice::on_idle()] + [238 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\device.cpp-->214]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C5B6F2], Fun: [CRenderDevice::message_loop()] + [98 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\device.cpp-->316]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C5AD2E], Fun: [CRenderDevice::Run()] + [222 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\device.cpp-->389]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C1EEA8], Fun: [Startup()] + [296 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\x_ray.cpp-->216]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C1F21E], Fun: [WinMain_impl()] + [478 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\x_ray.cpp-->416]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C1C9E8], Fun: [WinMain()] + [72 byte(s)], File-->Line: [E:\OGSR-Engine-dev\Perimetr\ogsr_engine\xr_3da\x_ray.cpp-->437]
! Module: [E:\Hope For Life\bin_x64\xrEngine.exe], AddrPC.Offset: [00007FF7C0C7A9D2], Fun: [__scrt_common_main_seh()] + [262 byte(s)], File-->Line: [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl-->288] + [33 byte(s)]
! Module: [C:\Windows\System32\KERNEL32.DLL], AddrPC.Offset: [00007FFAB00B7034], Fun: [BaseThreadInitThunk()] + [20 byte(s)]
! Module: [C:\Windows\SYSTEM32\ntdll.dll], AddrPC.Offset: [00007FFAB1622651], Fun: [RtlUserThreadStart()] + [33 byte(s)]
[29.03.24 21:30:53.276] ********************************************************************************
[29.03.24 21:31:01.368] --Saved dump file to [e:\hope for life\userdata\logs\xray_imcrazyhoudini_03-29-24_21-30-54.mdmp]


Логика:
[logic]
active = mob_walker
 

[mob_walker]
path_walk = esc_dog_bobik_walk1
path_look = esc_dog_bobik_look1

Вэйпоинты:
esc_dog_bobik_walk1
esc_dog_bobik_look1

Связаны между собой (в СДК стоит галка напротив 0)

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

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

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

Граждане, интересный вопрос: можно ли как-нибудь повысить точность оружия, не трогая непостредственно конфиг оружия? Патроны подкрутить, например? Чтобы дробь (речь, разумеется, о дробовиках) летела, как летит (в этом и заключается основной вопрос: если править точность самого ствола - у дроби осыпи не будет, я пробовал), жекан - подальше и поточнее, а дротик - совсем далеко и совсем точно (но не так сильно, как жекан, чтобы какой-никакой баланс сохранялся)? Я так понимаю, мне нужны параметры k_dist для дальности и k_disp для разброса, а для бронебойности и урона - k_pierce и k_hit, но насколько сильно эти параметры на патронах влияют непосредственно на само оружие?

И так как я не успел отредактировать пост - приходится спрашивать отдельным, нижайше прошу пардону за эдакий спам: граждане, что конкретно нужно для того, чтобы добавить возможность надевать навесы на оружие, ранее такой возможности не имевшее? Да, прицел на вертикалку. Сколько ни искал - везде она выполнена, как отдельный "уникальный" ствол, а мне интересно именно на "стандартную" иметь возможность "еврооптику" повесить. К тому времени, когда я доберусь до Сусатов - это не такое уж и читерство будет даже. С моделингом я не особо дружен, так что модель пушки планируется позаимствовать у одной из пушек-уников (делаю я всё это сугубо "для себя" и распространять никак не буду, будем надеяться, что автор оригинального мода не будет в обиде), а что еще нужно? Ну - в конфиге цифирь проставить - это понятно, обозначить, где в инвентаре должна быть иконка прицела поверх иконки пушки, и тип самого прицела - а еще что-то нужно, или это всё?

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

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

если править точность самого ствола - у дроби осыпи не будет

Будет. Смотря, как поправишь.

 

15 минут назад, St_Tongor сказал:

жекан - подальше и поточнее, а дротик - совсем далеко и совсем точно

k_disp коэффициент на точность, k_dist - на дальность. Ты можешь ограничить дальность, но ты её не сделаешь больше, чем позволяет баллистика. Если у пули низкая начальная скорость, она может плюхнутся где-нибудь ближе, чем ты укажешь в параметрах дальности и множителя этой дальности. Для этого нужны другие параметры, но в оригинале они не работают.

 

20 минут назад, St_Tongor сказал:

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

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

Включить/выключит возможность ставить аддон (2/0) или неснимаемый аддон (1):

screenshot

Имя секции аддона и координаты его расположения на иконке:

screenshot

На движке ОГСР, где есть возможность ставить несколько разным аддонов, чуть сложнее.

 

Кроме того, нужно настраивать кратность зума и патриклы вспышки выстрела (если несъёмный глушак). Всё в конфиге ствола. Предлагаю полазить по конфигам, изучить, сравнить и попрактиковать. Только с практикой придёт должный опыт.

 

Но, самое главное, это при условии, что у тебя есть модель ствола с прицепленным аддоном. Иначе ты будешь целиться в оптику, а в руках будет стандартный ствол, и это, мягко говоря, будет выглядеть странно...

 

Здесь могла быть ваша реклама.

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

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

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

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

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

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

Войти

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

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

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