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

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

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

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

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

 

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

 

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

 

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

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

@St_Tongor,

16 часов назад, St_Tongor сказал:

Вот где теперь, [censored], искать, что там опять отвалилось?

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

 

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

Граждане, интересный вопрос:

Читай туторы по конфигам...

 

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

Не понял, а что изначально копалось в IMM, что он "сломался"? Так то он работает и для АМК, вроде, есть адаптированная версия.

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

Ссылка на комментарий
2 минуты назад, Капрал Хикс сказал:

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

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

@mole venomous модель "с прицелом" есть, но она как бы для "отдельной пушки", не связанной со "стандартной" ТОЗ-кой, там в том моде и файл конфига свой для неё и всё своё, и как я понял - прицел к ней приколочен гвоздями, так что есть подозрение, что у "модовой" ТОЗ-ки отсутствует вариант текстуры уже "без прицела". А хоцца, чтобы и так и так можно было.
@Капрал Хикс Туторы я курил, но так и не врубился, где идёт вот этот выбор "вот тут берём текстуру без прицела, а вот тут - с прицелом", и как это происходит.
Как припаять иконку прицела к иконке пушки в инвентаре - вроде, понял, вопрос про модельку в руках.

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

Так-с.

А если я, упаси Господь, своими кривыми лапками залезу в ОГФ-редактор, и приколхожу меш стандартного прицела на меш стандартной ТОЗ-ки - оно же, по идее, подтянет к ним стандартные же текстурки, и никаких проблем не будет, да?

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

 

Не хочет картинка в спойлер прятаться, упорно. Звиняйте, я пытался.


image.jpg

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

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

Все же не очень удобно, что пост можно редактировать только несколько минут после написания. Вот щас и не подчистишь весь нерелейтед, получается. И от модерации по башке прилетит. Досадно.

 

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

Подскажите по логике ворот в Тёмной долине, она вроде уникальная...

[logic]
active = ph_gate@locked

[ph_gate@locked]
state = closed
locking = hard
on_info = {+val_chase_start} ph_gate@unlocked

[ph_gate@unlocked]
state = closed
locking = stick

[collide]
ignore_static

 

Как добавить звук открытия ворот?

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

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

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

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

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

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

Войти

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

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

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

AMK-Team.ru

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