Artos 99 Опубликовано 8 Июня 2012 (изменено) *Shoker*, неверная трактовка "You are saving too much" То, чт идет переполнение - да, но это именно переполнение нет-пакета конкретного об'екта! Если при спавне твоих сталкеров в хранилище актору записывается дополнительная информация - то об'ем естественно растет, но расти может и из-за тобою добавляемой информации, которая вероятно и не подчищается, а не из-за бОльшего кол-ва неписей в игре. Учитывая, что об'ем нет-пакета в ТЧ может быть до 16кБ, то временным решением может быть увеличение с 10240 до ~16000, т.е.: if dif >= 16000 then однако, это именно временная мера, и неплохо бы тебе просмотреть коды мода на предмет излишней информации в хранилище (pstor) актора и, или подчищать перед сохранениями или вынести часть не относящуюся именно к актору в иное место ... Добавлено через 10 мин.: P.S. А вообще ... в ЧН и ЗП актору в pstor разработчики стали писать кучу к нему неотносящейся информации в особенности об'ем с'едают "zones spawn npc" (db.script_ids) и даже 16кБ могут не спасать. Советую задуматься, или уменьшать кол-во неписей в Зоне, или выносить "непрофильные" данные из стораджа актора в иное место. Изменено 8 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение
Artos 99 Опубликовано 8 Июня 2012 (изменено) Kirgudu, а не нужно изобретать велосипедов или вслепую гадать. ;-) Конечно из set_save_marker можно что-то выудить, но ... хлопотно это ... Ты правильно заметил, что в нет-пакет актору пишется не только его pstor, но и со всемен оригинального ТЧ в него пишется немало сторонней информации. Самые прожерливые: менеджер заданий (task_manager), менеджер тайников (treasure_manager, особливо с рандомными). В ЧН добавили, как уже сказал выше - целую табличку db.script_ids и пр. Ну а так как пишутся последовательными кусками, то считать сумму set_save_marker не очень-то удобно. Ну да это не важно. Раз идет переполнение - считай/не считай, а незаписывать то ты и не волен, все одно раз пишет - значит надо. ;-) Тут два пути: - оптимизировать об'емы записей из сторонних модулей, что требует знаний и ковыряний с форматами записи; - писать в сторонний файл, но ... - писать не в акторский нет-пакет, а в некий иной ... С 1-ым вариантом без навыков и знаний - только копипастить готовые решения, кои есть, но ... 2-ой вариант имеет пороки. И время доступа на чтение/запись к такому файлу гораздо больше чем к RAM и разделение сэйва на куски приводит к неудобствам/путанице. А вот 3-й вариант уже имеет решение и вполне пригодет. Исходная информация по универсальному безразмерному хранилищу уже давно была (см. топик Язык Lua. Общие вопросы программирования). Удобство и в том, что не только акторский нет-пакет разгружается, но и все что пожелает модмейкер. *Shoker*, ведь тебе знакома тема про 'универсальное хранилище', самое время им заняться. Не так это и хлопотно и даже (при желании) совместимость с сэйвами можно сохранить. Изменено 8 Июня 2012 пользователем Artos "Но иногда найдется вдруг чудак, этот чудак все сделает не так ..."© Машина времени Поделиться этим сообщением Ссылка на сообщение