Перейти к содержанию
tolyan366

GEONEZIS ADDON FOR SGM 2.0 + STCoP Weapon Pack of the A.N.T.I.G.U.A.R.Y

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

 
 

tolyan366 Проверил ещё раз сохранения от Lil F.E.A.R  - даже в тех, которые ещё грузятся,  нет пакет почти полностью заполнен. Ещё пару записей (новые задания, записи статистики или соунд-менеджера)- и побьются сейвы. Вот, сделал небольшой фикс, дабы немного разгрузить нет-пакет ГГ. Новая игра не нужна.

Fix сохранений.7z

  • Лайк 4
  • Спасибо 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
24 минуты назад, av661194 сказал:

tolyan366 Проверил ещё раз сохранения от Lil F.E.A.R  - даже в тех, которые ещё грузятся,  нет пакет почти полностью заполнен. Ещё пару записей (новые задания, записи статистики или соунд-менеджера)- и побьются сейвы. Вот, сделал небольшой фикс, дабы немного разгрузить нет-пакет ГГ. Новая игра не нужна.

Fix сохранений.7z 11 \u043a\u0411 · 0 загрузок

Спасибо огромное!

А насколько велик шанс, что снова начнёт вылетать? Мб мне со своей стороны можно что-то сделать (брать меньше квестов, вещей меньше носить, например), чтобы стабильнее работало?

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

Lil F.E.A.R По размеру нет-пакета и по статистике артефактов вылетать не будет (но это не значит, что не будет вылетов, связанных с чем-то другим)

Спойлер

Нет-пакет - это не файл. Это бинарный буфер, в который можно писать и из которого можно читать данные. Длина пакета установлена ( "зашита" ) в движке - const u32 NET_PacketSizeLimit = 16*1024;
    Имеется значение NET_PacketSizeLimit = 8192; //16384
    Т.е. для ТЧ (SHoC) размер net-пакета должен быть не более 8192 байт, а для ЧН/ЗП соответственно 16384, однако(!) допустимые значения меньше объявленных/указанных. Это обусловлено тем, что для "склеивания в сэйв" - при обработке net-пакетов каждого игрового объекта для включения его данных в общий сэйв используются аналогичные функции имеющие те же ограничения и расходуются доп.байты... Эмпирическим путем определено, что расходуется порядка 512 байт (или менее). Т.е. при расчете допустимых размеров для элементов универсальных хранилищ (и вообще как ограничение для всех других объектов) следует использовать следующие значения:
SHoC: NET_PacketSizeLimit = 8192 - 512 = 7680 bytes
CS|CoP: NET_PacketSizeLimit = 2x8192 - 512 = 15872 bytes

    В нет-пакет пишутся все достижения ГГ (статистика). Соответственно и растёт нет-пакет.
    Например при старте игры у вас нет найденных артефактов - пишется одна цифра "ноль", а в конце игры у вас найдено 300 артефактов - запишется 301 цифра ( 1 - цифра количество найденных артов и ещё 300 цифр - это адишники найденных артефактов). И так по многим параметрам статистики. Вот пакет и растёт.
    Каждый квест "жрёт" около 150 байт нет-пакета. Вот как сдал квест, так сразу объём и упал.Если одновременно например взято 20 квестов, то и сожрёт соответственно около 3000 байт нет-пакета.

    Дмитрий makdm предложил отличный выход: сделать специальный игровой объект и всю статистику писать в пакет этого предмета. Теперь у нас есть два пакета, их ёмкость удвоилась. Оба пакета записываются в сейвах, как в оригинале. Казалось, что 32000 в двух пакетах хватит с запасом, но доигрался в SGM 2.2 до того, что даже с разделением нет-пакета на две части по методу от makdm, нарвался на вылет с INCORRECT LOAD.

При этом нет пакет ГГ не был переполнен. Пришлось разбираться. Сделал просто - поставил маркеры на каждый пакет данных, который сохраняется в actor_binder.save и вывел на печать их размеры.

Вот что получилось:
В пакете объекта -
    release_body_manager = 86
    sgm_loader = 94
    sr_psy_antenna = 900
    xr_sound = 7806
    xr_statistic = 6829
    task_manager = 40
В пакете актора-
    treasure_manager = 1698
    всё остальное = 1620 (погода, сложность игры, pstor и прочее)

Как видно, основное место занимают данные из файлов xr_sound.script и xr_statistic.script. Кроме того, именно размер этих данных постоянно растёт. Если со статистикой всё понятно - она и должна расти при каждом действии в игре, то с файлом xr_sound.script не всё так просто. Этот файл не изменялся модом, а остался от оригинального Зова Припяти. В файле хранятся звуковые схемы сталкеров, причём не предусмотрена проверка на то, существует ли в игре объект, звуковую схему которого мы храним. И кроме схем живых сталкеров, там лежат и "мёртвые души" - звуковые схемы тех, кто ушёл - в Вальхаллу, мать её, верхнюю тундру, в леса богатые дичью.

Все другие сохраняемые данные статичны и их объём практически не меняется на протяжении всей игры. Взяли задание - увеличился объём в task_manager.script, выполнили - уменьшился. Нашли тайник - уменьшился размер данных в treasure_manager.

Получается, перенеся из нет-пакета актора самые "тяжеловесные" данные, мы проблему решили только частично. Нет пакет актора теперь не переполняется, но переполняется нет-пакет объекта.

Поэтому я решил разделить сохраняемые данные примерно на три части. Данные из xr_sound.script и xr_statistic.script записывать в нет-пакеты объектов, а всё остальное оставить в пакете актора.
Вот результат.
Начало игры:
    actor_binder = 5644
    se_store_obj-1 = 3111 (данные из xr_sound.script)
    se_store_obj-2 = 736 (данные из xr_statistic.script)

Конец игры (на Агропроме):
    actor_binder = 4480
    se_store_obj-1 = 6008
    se_store_obj-2 = 4345

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

        Как определить длину нет-пакета.
Открываем файл gamedata\scripts\_g.script и в самый конец вставляем вот этот кусок:


------------Функции для проверки корректности сейв лоад--------START---
function set_save_marker(p, mode, check, prefix)
	-- определяем ключ маркера.
	local result = ""
	result = result .. "_" .. prefix
	if check == true then
		if save_markers[result] == nil then
			abort("Trying to check without marker %s", result)
		end
		if mode == "save" then
			local dif = p:w_tell() - save_markers[result]
			printf(result..": SAVE DIF: %s", dif)
			if dif >= 8000 then
				printf("WARNING! may be this is problem save point")
			end
                        --/ SGM in
                	if prefix=="actor_binder" then
                           sgm_flags.value_pstor_factor=tonumber(dif)
                	end
                        --/ SGM out
			p:w_u16(dif)
			if string.find(prefix, "actor_binder") or string.find(prefix, "se_store_obj") then
				infor_log("%s %s = %d", mode, prefix, dif )
			end
		else
			local c_dif = p:r_tell() - save_markers[result]
			local dif = p:r_u16()
			 if dif ~= c_dif then
                                --/ SGM in
                                --/fill_log("check="..check)
			 	abort("INCORRECT LOAD [%s].[%s][%s]", result, dif, c_dif)
                                return
                                --/ SGM out
			 else
			 	printf(result..": LOAD DIF: %s", dif)
			 end
			if string.find(prefix, "actor_binder") or string.find(prefix, "se_store_obj") then
				infor_log("%s %s = %d", mode, prefix, dif )
			end
		end
		return
	end
	if mode == "save" then
		printf(result..": set save marker: %s", p:w_tell())
		save_markers[result] = p:w_tell()
		if p:w_tell() > 16000 then
			abort("You are saving too much")
		end
	else
		printf(result..": set load marker: %s", p:r_tell())
		save_markers[result] = p:r_tell()
	end
end
function infor_log(frm, ...)
	local file = io.open("infor.log", "a+")
	if io.type(file) == "file" then
		file:write(string.format(frm, ...), "\n")
		file:flush()
		file:close()
	end
end
-------------------------------END--------------------------

--Теперь после сохранения в папке игры появится файл infor.log. Открыв файл, можно посмотреть длину нет-пакетов. Если около 15000, то пакет на грани переполнения, будут вылеты.

 

  • Лайк 4

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


Ссылка на сообщение
Поделиться на другие сайты
 
17 часов назад, av661194 сказал:

Проверил ещё раз сохранения от Lil F.E.A.R  - даже в тех, которые ещё грузятся,  нет пакет почти полностью заполнен. Ещё пару записей (новые задания, записи статистики или соунд-менеджера)- и побьются сейвы. Вот, сделал небольшой фикс, дабы немного разгрузить нет-пакет ГГ. Новая игра не нужна.

Система не даёт загрузить архив, пишет что обнаружен вирус...

Спойлер

1880802095_DesktopScreenshot2024_12.15-19.59_12_14.thumb.jpg.354524d2c3959f934de76a92b2532ef2.jpgimage.png.db0eff23ea2cab8555bb0628a4542aa6.png


Дополнено 17 минуты спустя
17 часов назад, Lil F.E.A.R сказал:

Загрузил по ссылке - эти, кстати, не проверял.

Вот что мне выдала система безопасности windows 10, после загрузки твоего архива с сейвом 2, может в этом проблема была? Загружал на рабочий ноут...

Спойлер

Обнаружено: Trojan:Script/Sabsik.FL.A!ml
Дата: 15.12.2024 7:07
Сведения: Эта опасная программа выполняет команды злоумышленника.
Состояние: Удалено

Затронутые элементы: 
file: C:\Users\Анатолий\Downloads\savedgames2.7z
webfile: C:\Users\Анатолий\Downloads\savedgames2.7z|https://s201klg.storage.yandex.net/rdisk/b6e254769b3520db503a680037be33227e3727e745b4316a2b39fa6daa57a044/675e8e41/x2fQqzxlF1vx6kBtzFW3ne2zFBjKyV9cXohhuTmI8ZNh5qEKfbgx2nfzXDTKUoWaq2Q-BcqD-jGYF-_WYPYtIA==?uid=0&filename=savedgames2.7z&disposition=attachment&hash=02YmcS%2B45gvxkvI8WVP8mY53bHQhdqwDW48I9/WZ38nJmllqWFB4Iym%2BCXWeQSMiq/J6bpmRyOJonT3VoXnDag%3D%3D&limit=0&content_type=application%2Fx-7z-compressed&owner_uid=280786670&fsize=3494400&hid=a199748853262b4cc1c8ff33f169d1fc&media_type=compressed&tknv=v2&ts=6294a8e1f5240&s=e80d023322023e1ff13515e12d5c904ecca223b3b48ddadcad2ecf7f3dc359ab&pb=U2FsdGVkX1_9JNdumnZl7imF92zHrvB5wCwmr0vWfOV7V_O2pk6VE6KIH3IWYNxfJHznJunKUTlk1ksFHA49vdsYB6mEd6TPYFF3BBHBMRc|pid:1660,ProcessStart:133787092582512243

Странно, на домашнем компе загрузка прошла успешно, антивирус не ругался...

Изменено пользователем tolyan366
  • Лайк 2

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

先生

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


Ссылка на сообщение
Поделиться на другие сайты
 
12 часов назад, av661194 сказал:

tolyan366 Проверил ещё раз сохранения от Lil F.E.A.R  - даже в тех, которые ещё грузятся,  нет пакет почти полностью заполнен. Ещё пару записей (новые задания, записи статистики или соунд-менеджера)- и побьются сейвы. Вот, сделал небольшой фикс, дабы немного разгрузить нет-пакет ГГ. Новая игра не нужна.

Fix сохранений.7z 11 \u043a\u0411 · 3 загрузки

Система не даёт загрузить архив, пишет что обнаружен вирус...

  • Лайк 1
  • Жму руку 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
42 минуты назад, nikolson175 сказал:

Система не даёт загрузить архив

Что это за система такая, которая находит вирусы в архиве из четырёх текстовых файлов?!

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 

av661194 наверное система avast free :u1F602:

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

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


Ссылка на сообщение
Поделиться на другие сайты
 

nikolson175 tolyan366 Вот файлы по отдельности. system.ltx положить в папку configs , скрипты - в scripts

 

class_registrator.script se_store_obj.script system.ltx xr_statistic.script

Изменено пользователем av661194
  • Лайк 3

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


Ссылка на сообщение
Поделиться на другие сайты
 
9 часов назад, tolyan366 сказал:

Вот что мне выдала система безопасности windows 10, после загрузки твоего архива с сейвом 2, может в этом проблема была?

  Скрыть контент

Обнаружено: Trojan:Script/Sabsik.FL.A!ml
Дата: 15.12.2024 7:07
Сведения: Эта опасная программа выполняет команды злоумышленника.
Состояние: Удалено

Сталкеры подобным образом теперь взламывают пк :)


Дополнено 2 минуты спустя

tolyan366 получается не у меня одного проблемы с сейвами? Я прошёл половину игры, и у меня они сломались и при загрузке вылетает Can't open section 'a', или 'ac' или 'acactor'.

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


Ссылка на сообщение
Поделиться на другие сайты
 
2 часа назад, av661194 сказал:

Что это за система такая, которая находит вирусы в архиве из четырёх текстовых файлов?!

Windows 10 Pro

Спойлер

2037716065_DesktopScreenshot2024_12.15-17_01_32_92.thumb.jpg.ed8b9e915c455805420e4249adddb31e.jpg


Дополнено 0 минут спустя
1 час назад, av661194 сказал:

Вот файлы по отдельности. system.ltx положить в папку configs , скрипты - в scripts

Файлы по отдельности загрузились без проблем! Буду тестировать!

Изменено пользователем tolyan366
  • Лайк 2

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

先生

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


Ссылка на сообщение
Поделиться на другие сайты
 

KILDIN 

42 минуты назад, KILDIN сказал:

при загрузке вылетает Can't open section 'a', или 'ac' или 'acactor'.

А можешь скинуть свои сохранения?

  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
17 часов назад, KILDIN сказал:

tolyan366 получается не у меня одного проблемы с сейвами? Я прошёл половину игры, и у меня они сломались и при загрузке вылетает Can't open section 'a', или 'ac' или 'acactor'.

Чем раньше будет выявлена проблема, тем быстрее она будет исправлена!

Изменено пользователем tolyan366
  • Лайк 2

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

先生

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


Ссылка на сообщение
Поделиться на другие сайты
 
19 часов назад, av661194 сказал:

Добавил в последний фикс!

Бережёного бог бережёт!
Не копите в сундуках горы одинакового оружия, достаточно по одному экземпляру каждой единицы на всю игру!
Не копите в сундуках горы не нужных артефактов, продавайте их торговцам, выручайте деньги и тратьте их на апгрейд брони и оружия!
Не накапливайте в ПДА кучу не выполненных заданий, по возможности выполняйте их как можно скорее!
При выполнении этих простых правил вы скорее всего не столкнётесь с непонятными вылетами и крашами своих сохранений в игре!
Желаю всем приятной игры и удачи на просторах Зоны!

Изменено пользователем tolyan366
  • Лайк 2
  • Хабар 1

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

先生

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


Ссылка на сообщение
Поделиться на другие сайты
 
В 15.12.2024 в 03:35, av661194 сказал:

Lil F.E.A.R По размеру нет-пакета и по статистике артефактов вылетать не будет (но это не значит, что не будет вылетов, связанных с чем-то другим)

Однако

Изменено пользователем nikolson175
  • Лайк 1

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


Ссылка на сообщение
Поделиться на другие сайты
 
18 часов назад, av661194 сказал:

А можешь скинуть свои сохранения?

чувак, во-первых, из-за этой проблемы я полностью удалил мод, во-вторых, я сам адаптировал мод crazy zone 2.0 и мои сохранения вызывали бы у тебя вылет (я проверял, когда загружал сейвы без этой адаптации, т.е. нужна новая игра)

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


Ссылка на сообщение
Поделиться на другие сайты
 
19 часов назад, KILDIN сказал:

 получается не у меня одного проблемы с сейвами? Я прошёл половину игры, и у меня они сломались и при загрузке вылетает Can't open section 'a', или 'ac' или 'acactor'.

Сначала напихаете в мод всякой хрени, а потом жалуетесь что у вас игра вылетает! Без подтверждённых сейвов это всё пустой трёп!

  • Лайк 2
  • Мастер! 1

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


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   1 пользователь онлайн