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

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


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

@ZonaChe  говорят, что надо удалить файл pctrlchk.dll из папки bin. Можно просто убрать его в другое место.

  • Согласен 1
  • Полезно 1
 

Desktop: i7-11700k/Gigabyte Z590 D/64 Гб DDR4-3600 (2х32Гб)/GTX 1070Ti 8Гб/30" - WQXGA/ADATA Legend 960 4Тб + 3HDD (9Тб)/Thermaltake smart BM2 - 650Вт/Win10+QtTab

\\\ Дополнения к ОГСЕ 0693 /// \\\ OGSRmod ///\\\Огниво (говорим обо всём)///\\\Балкон///

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

SGM 2.2. Получаем награду у Митрофана - торговца монолитовского, за доставку кейса Леона. На выбор 4 коробки с наградой: № 456781, № 458719, № 435239, № 437240. Где в конфигах найти эти коробки? Интересует наполнение этих коробок

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

Выскочила такая вот ошибка без лога.

stack trace:

0023:06879408 xrGame.dll, CxIOFile::Open()
0023:0668C542 xrGame.dll, CDialogHolder::IgnorePause()
0023:06505D5B xrGame.dll, CDialogHolder::IgnorePause()
0023:0668CFEE xrGame.dll, CDialogHolder::IgnorePause()
0023:066912FA xrGame.dll, CDialogHolder::IgnorePause()
0023:06665E67 xrGame.dll, CDialogHolder::IgnorePause()
0023:0672E2C8 xrGame.dll, CDialogHolder::IgnorePause()

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

Добавлено  Опричник,

Перемещено.

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

Здравствуйте.

Помогите, пожалуйста, разобраться с маской terrain’а. Мне нужно запретить монстрам проходить по некоторым graph_point’ам.

У самих монстров по умолчанию стоит маска [255,000,255,255], а нужным графам я поставил [000,002,000,000] (location_1 - "запрещенный доступ"), но это не помогло.

Как правильно настроить маску graph_point’у, что бы монстры через него не ходили?

S.T.A.L.K.E.R. CoP Objects (upd 15.11.24)

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

Здравствуйте!

В travel_manager.script нашел подобную функцию:

function squad_action_description(actor, npc, dialog_id, phrase_id)

	local npc_squad = get_object_squad(npc)

	if npc_squad.current_action == nil or npc_squad.current_action.name == "stay_point" then
		return "dm_" .. "stalker" .."_doing_nothing_"..tostring(math.random(1,3))  --npc:character_community()
	end

	local target_id = npc_squad.assigned_target_id
--	if target_id == nil then
--		return "dm_" .. npc:character_community() .."_doing_nothing"
--	end

	local target_obj = alife():object(target_id)

	if target_obj == nil then

		abort("SIM TARGET NOT EXIST %s, action_name %s", tostring(target_id), tostring(npc_squad.current_action.name))
	end

	local target_clsid = target_obj:clsid()
	if target_clsid == clsid.script_actor then
		abort("Actor talking with squad, which chasing actor")
	elseif target_clsid == clsid.online_offline_group_s then
		return "dm_" .. "stalker" .."_chasing_squad_"..alife_character_community(target_obj) --npc:character_community()

	elseif target_clsid == clsid.smart_terrain then
		local smart_name = target_obj:name()
		local travel_class = get_travel_class()

		local desc = travel_class.smart_to_stringtables[smart_name]
		if desc == nil then
			abort("wrong smart name [%s] in travel_manager.ltx", tostring(smart_name))
		end
		return desc
	end
	abort("wrong target clsid [%s]", tostring(target_clsid))
end

 

Собстено меня заинтересовала строка:

return "dm_" .. "stalker" .."_chasing_squad_"..alife_character_community(target_obj) --npc:character_community()

 

Выдает нам ее НПС когда охотится з отрядом, например за бандитами. Игра обращается к функции "alife_character_community()" (_g.script) и должна вернуть значение "bandit" и выдать "dm_stalker_chasing_squad_bandit", однако игра не правильно определяет группировку отряда и возвращает всегда значение "monster" и на выходе всегда получается "dm_stalker_chasing_squad_monster"

function alife_character_community (obj)
	if IsStalker(obj, obj:clsid()) then
		return obj:community()
	end
	return "monster"
end

 

Находил в _g.script подобное:

function start_game_callback()
	aa = alife()

	squad_community_by_behaviour = {
		["stalker"]							= "stalker",
		["bandit"]							= "bandit",
		["dolg"]							= "dolg",
		["freedom"]							= "freedom",
		["army"]							= "army",
		["ecolog"]							= "ecolog",
		["killer"]							= "killer",
		["zombied"]							= "zombied",
		["monolith"]						= "monolith",
		["monster"]							= "monster",
		["monster_predatory_day"]			= "monster",
		["monster_predatory_night"]			= "monster",
		["monster_vegetarian"]				= "monster",
		["monster_zombied_day"]				= "monster",
		["monster_zombied_night"]			= "monster",
		["monster_special"]					= "monster"
	}
...

 

Вот как раз эти группировки отряда должна определять игра. Так вот вопрос: как заставить игру определить группировку преследуемого отряда? Пробовал вместо "alife_character_community(target_obj)" вставить это: "npc_squad:get_squad_community(target_obj)", и игра в таком случае определяет группировку НПС, с которым говорит игрок, а не группировку преследуемого отряда.

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

Привет, дело скверное, пошел делать мод на сталкер ЗП, на войну группировок, бывший скриптер много плохого в скриптах сделал, из-за него теперь периодически убивая нпс какой-то гп, вылетает вылет по ай ди, а точнее их дубляжа, вот лог короче:

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

[LSS] Spawning object [sim_default_renegate_028969][sim_default_renegate_0][28969]
[LSS] Spawning object [sim_default_renegate_028971][sim_default_renegate_0][28971]
[LSS] Spawning object [sim_default_posleduden_530977][sim_default_posleduden_5][30977]
[LSS] Spawning object [sim_default_renegate_033064][sim_default_renegate_0][33064]
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=28969 self=sim_default_renegate_028969 other=sim_default_renegate_028969
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=29194 self=wpn_pm29194 other=wpn_pm29194
! Failed to spawn entity 'wpn_pm'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36612 self=ammo_12x76_zhekan36612 other=ammo_12x76_zhekan36612
! Failed to spawn entity 'ammo_12x76_zhekan'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36613 self=ammo_9x18_pmm36613 other=ammo_9x18_pmm36613
! Failed to spawn entity 'ammo_9x18_pmm'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=28971 self=sim_default_renegate_028971 other=sim_default_renegate_028971
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=29197 self=wpn_bm1629197 other=wpn_bm1629197
! Failed to spawn entity 'wpn_bm16'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36610 self=bandit_novice_outfit36610 other=bandit_novice_outfit36610
! Failed to spawn entity 'bandit_novice_outfit'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36864 self=ammo_12x70_buck36864 other=ammo_12x70_buck36864
! Failed to spawn entity 'ammo_12x70_buck'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36865 self=ammo_9x18_pmm36865 other=ammo_9x18_pmm36865
! Failed to spawn entity 'ammo_9x18_pmm'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=30977 self=sim_default_posleduden_530977 other=sim_default_posleduden_530977
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=31235 self=wpn_desert_eagle31235 other=wpn_desert_eagle31235
! Failed to spawn entity 'wpn_desert_eagle'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=26639 self=wpn_l8526639 other=wpn_l8526639
! Failed to spawn entity 'wpn_l85'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36358 self=ammo_pkm_10036358 other=ammo_pkm_10036358
! Failed to spawn entity 'ammo_pkm_100'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36359 self=ammo_50ae_fmj36359 other=ammo_50ae_fmj36359
! Failed to spawn entity 'ammo_50ae_fmj'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36360 self=ammo_5.56x45_ap36360 other=ammo_5.56x45_ap36360
! Failed to spawn entity 'ammo_5.56x45_ap'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=33064 self=sim_default_renegate_033064 other=sim_default_renegate_033064
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=33294 self=wpn_bm1633294 other=wpn_bm1633294
! Failed to spawn entity 'wpn_bm16'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36956 self=ammo_12x76_zhekan36956 other=ammo_12x76_zhekan36956
! Failed to spawn entity 'ammo_12x76_zhekan'
ERROR: CGameObject:net_spawn() Object with ID already exists! ID=36957 self=ammo_9x18_pmm36957 other=ammo_9x18_pmm36957
! Failed to spawn entity 'ammo_9x18_pmm'
stack trace:

0023:0826BCAD xrGame.dll, CDialogHolder::IgnorePause()
0023:0826E9AF xrGame.dll, CDialogHolder::IgnorePause()
0023:0040E6FF xrEngine.exe, CRenderDevice::End()

 

 

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

Перемещено.

Правила форума,

1) п. 2.5. Рекомендуется к ознакомлению:https://www.amk-team.ru/forum/topic/13514-objavlenija/?do=findComment&comment=1099221

2) п. 2.9. Для сообщений большого объёма  используйте, пожалуйста, спойлеры.

 

 

Заметка изменена

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

При попытке начать игру вылетает с логом: 

ExExpression    : <no expression>
Function      : CScriptEngine::lua_pcall_failed
File          : ..\xrServerEntities\script_engine.cpp
Line          : 257
Description   : fatal error
Arguments     : 
 1 : [Lua] ...maly-1.5.2/bin/..\gamedata\scripts\hf_obj_manager.script(50) : func_or_userdata

LUA error: ...maly-1.5.2/bin/..\gamedata\scripts\hf_obj_manager.script:50: attempt to call global 'game_objects_iter' (a nil value)

Check log for details

stack trace:
все сайты пересмотрел так ответ и не нашел

Добавлено  Опричник,

Перемещено.

Ссылка на комментарий
12.09.2023 в 19:21, ziper сказал:

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

Насколько я помню сообщения, зашитые при неправильных действиях в движке.

То что у вас в логе пишется, скрипты сделать не могут. Вообще никак. Это косяки в движке, соответственно "плохой скриптер" что-то с ним делал, нехорошее.

 

23.09.2023 в 14:10, nktbuba сказал:

scripts\hf_obj_manager.script:50: attempt to call global 'game_objects_iter' (a nil value)

Криво собрали сборку, скрипт хочет вызвать глобальную функцию game_objects_iter, а такой нет. Скорее всего файлик с ней просто забыли в сборку добавить (в оригинале такой нет).

Мод, где не бывает одинаковых путей - Судьба Зоны. (Лучшее, что у меня получилось на X-Ray) На базе модифицированного движка OGSR Engine.

Бывший мододел на X-Ray / Начинающий игродел на Unreal Engine. Программист.

AMD Ryzen 9 7950X (16 ядер, 32 потока, 5.75 ГГц); RTX 3080; 128 ГБ DDR5; Arctic Liquid Freezer II-420; 3 ТБ SSD PCIe 4.0; 4ТБ HDD.

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

launch_speed = 5 у стокового РПГ-7. В конфиге апгрейда гранатомёта (SGM мод) параметр launch_speed прописан 8 . Эти 8 плюсуются к базовому 5 или же после апгрейда launch_speed = 8 именно?

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

Движок:

[xrGame\WeaponMagazinedWGrenade.cpp]
bool CWeaponMagazinedWGrenade::install_upgrade_impl( LPCSTR section, bool test )
	
	result |= process_if_exists( section, "launch_speed", &CInifile::r_float, m_fLaunchSpeed, test );

 

Судя по отсутствию знака "+", значение m_fLaunchSpeed заменяется.

  • Нравится 1

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

Ссылка на комментарий
29.09.2023 в 01:02, bsanek628 сказал:

Эти 8 плюсуются к базовому 5 или же после апгрейда launch_speed = 8 именно?

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

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

Я играю в STALKER CALL OF CHERNOBYL, модификация великая война,  включаю спавнер, беру две вещи и игра вылетает. Вот скрин: https://imgur.com/a/ZI8VlGg. Я вчера играл - было всё нормально, сегодня запустил - не работает.

Изменено пользователем Купер
Добавлено  Опричник,

Перемещено.

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

включаю спавнер

не использовать спавнер, если не умеешь править скрипты:) потому что спавнер как правило заменяет оригинальные скрипты модов в том числе важнейший для каждого мода ui_main_menu.script

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

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

FATAL ERROR 
 
[error]Expression : <no expression> 
[error]Function : CScriptEngine::lua_error 
[error]File : ..\xrServerEntities\script_engine.cpp 
[error]Line : 189 
[error]Description : fatal error 
[error]Arguments : LUA error: ...\desktop\ЗБТ\Великая Война\gamedata\scripts\utils.script:1072: ERROR in spawn_item. Cannot spawn item, section '%s' does not exists! 
 
 
stack trace: 
 
0023:0056399C xrCore.dll, xrDebug::fatal() 
0023:05AE2B06 xrGame.dll, CDialogHolder::IgnorePause()

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

Бывает... А ещё бывает, что оригинальный utils.script заканчивается ровно на 823 строке. Есть предположение, что писать стоит в темы тех модификаций, в которые играть соизволим.

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

Привет бродягам.

Сорри если не в ту тему, вопрос про OpenXray для COP.

 

Пилю модик-солянку для себя, заинтересовался этим движком, в первую очередь из-за анонсированной улучшенной стабильности и производительности. Качаю отсюда (Релиз December 2020 Preview) - https://github.com/OpenXRay/xray-16/wiki/[RU]-Как-установить-и-играть

 

Вопросы к знатокам этого движка:

 

1. Чем отличается версия для игроков от версии для мододелов?

2. Там рекомендуют ставить только папку bin, если у вас уже свой мод с gamedata. Что там важного в gamedata, идущей в комплекте с движком? Ее можно игнорить, или адаптировать свои правки?

3. В папке gamedata движка есть папка с шейдерами. На первый взгляд (на DX 10) - мне не понравилось. Слишком темная и контрастная картинка, особенно в помещениях. Вкратце, что меняют шейдеры движка OpenXray?

 

Заранее спасибо за ответы.

Изменено пользователем SoP
Ссылка на комментарий

Старый вопрос со случайным переключением погоды на невозможно шумный дождь, который забивает все звуки даже в помещении, но, хвала Монолиту, длится всего секунд 30:
• через level.get_weather() при таком дожде читается погода default_thunder
• если запустить погоду default_thunder принудительно, грозу будет едва слышно в помещении
• шумный дождь повторяется при загрузке одного и того же сейва, но отсутствует в нем же, если перезапустить игру

 

Откуда может запускаться этот шумный дождь и как его заглушить?

Мини-моды: ТЧ ЧН ЗП

Шпаргалка

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

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

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

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

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

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

Войти

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

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

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