-
Публикаций
592 -
Зарегистрирован
-
Посещение
-
Победитель дней
7
Тип контента
Профили
Форумы
Блоги
Календарь
Новости
Моды
Весь контент makdm
-
С этой темой я разобрался. Мне понятно почему. Дело вот в чем. Под сохранение в нет - пакете объекта отводится 2 килобайта пространства или 16384 бита. Все что вы делаете в игре пишется в основном в нет-пакет ГГ. Я взял сохранку у кого вылетало с логом, что невозможно найти секцию, которой нет в игре, посмотрел на размер сохранения у класса S_ACTOR и увидел, что там как раз и происходит переполнение выделенного поля. Размер сохранения был больше, чем 16384 бита. Разрабы игры об этом знали, но надеялись, что проскочат. Это видно в функции set_save_marker в файле G.script . Там даже вроде как проверка есть: if p:w_tell() > 16000 then abort("You are saving too much") end Но проверка получается ради проверки и игрок об этом узнает только после того как наступит Game Over!!! Для устранения ошибки нужно немного переделать систему сохранений ( с этим легко можно справиться немного переписав скрипты ). В движок вообще не нужно лазить. Нужно просто грамотно перераспределить сохранение пакетов среди объектов, а не вешать все это на ГГ.
-
Это можно сделать. Только придется переписать файлы логики, в которых работает счетчик времени.
-
В движке время идет с момента старта игры. Его не замедлить. Вариант первый - ограничить места сна в игре и установить жесткое время скриптами, что ГГ может спать не более 6 часов в сутки. И второе - убрать спальный мешок, если он есть.
-
Если моё предположение верно, то вариантов два 1. Редактировать движок 2. Если пункт первый невозможен, то меньше спать в игре.
-
Всем Привет! Напишу своё сугубо личное мнение по вылетам. Возможно оно неправильное, но аналогичную картину я наблюдал ещё в 2012 году в темах прохождения SGM 2.2, когда игроки затирали до дыр прохождение мода. Там тоже были вылеты связанные с тем, что движок не находил секцию, которой и не было никогда в моде. Итак, посмотрев скрины статистики, меня заинтересовало не количество найденных артефактов, а ВРЕМЯ проведенное в зоне. К примеру, я проходил оригинал ЗП максимум за пять суток. Насколько я знаю, под время в движке отведено значение в 32-бита или положительное число 4 294 967 295. Учитывая, что время в движке считается в миллисекундах получаем 4 294 967 295:1000:60:60:24 = 49.7 суток Именно столько может длиться игра на движке x-ray. После этого все сейвы станут битыми независимо от того, что вы делали.
-
Юра, привет. Это атмосфер мод после выброса превращает в зомби тех сталкеров, у которых нет story_id А эксклюзивная логика здесь роли не играет. Играет роль ТОЛЬКО наличие или отсутствие story_id у НПС.
-
Схема хоть в ТЧ, хоть в ЧН, хоть в ЗП сделана для одного единственного персонажа... Сидоровича. Схема не имеет никакого отношения к монстрам. Я давно, на досуге, сделал схему mob_remark для монстров. Выкладываю по принципу - "как есть", т.е. никаких модернизаций, исправлений, консультаций и т.п. не будет. mob_remark.script
-
С релизом!
-
В файле gamedata\configs\misc\achievements.ltx замените все functor на свой. Например было functor = xr_statistic.pioneer_functor Стало functor = xr_statistic.falkineIsaku_functor И так во всех секциях оригинальных достижений ЗП. В файле xr_statistic.script в самый конец файла пишите свой функтор function falkineIsaku_functor() if true then return false end end
-
В кастом -дата ящика пишете путь к логике ящика [logic] cfg = scripts\inventory_box.ltx В файл inventory_box.ltx пишете логику [logic] active = ph_idle@open [ph_idle@open] nonscript_usable = true tips = st_search_treasure on_use = ph_idle@open %=esc_treasure_1_fun% В файл xr_effects.script пишете функцию, которая будет вызвана при первом открытии ящика. Если нужно каждый раз вызывать функцию, то проверку инфопорции нужно удалить. function esc_treasure_1_fun( actor, npc ) if has_alife_info( "esc_treasure_1_fun" ) then return end actor:give_info_portion( "esc_treasure_1_fun" ) treasure_secret_mod.esc_treasure_1_fun() end Как-то так.
-
Специально выждал время! Не увидел "вау-вау" или "мы все ждем с нетерпением" от Сталкеров. Поэтому все наработки " в топку ". Локации, которые планировались отправляются туда же. Game Over.
-
Почему я дотошно спрашиваю. Тут дело вот в чем. Ваша ошибка говорит о том, что параметр self.max_population равен NIL. Но сам скрипт когда его читает, то если не находит, то присваивает по умолчанию значение НОЛЬ. Т.е. NIL в принципе невозможен, даже если вы этот параметр не указали в конфиге смарта: local max_population = utils.cfg_get_string(ini, SMART_TERRAIN_SECT, "max_population", self, false, "", 0) local parsed_condlist = xr_logic.parse_condlist(nil, SMART_TERRAIN_SECT, "max_population", max_population) self.max_population = tonumber(xr_logic.pick_section_from_condlist(get_story_object("actor"), nil, parsed_condlist)) NIL может быть, если не найден файл из которого нужно читать параметр. Так что тут получается два варианта 1. Не указана секция конфига - [smart_terrain] 2. Неверный путь к файлу. Я пока другой причины не вижу.
-
Сейф в аномальной зоне. У вас на карте аномальные зоны отмечены.
-
В лаборатории Х-9 уже открылись две двери... Такой вот ребус на сегодняшний день.