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

av661194

Сталкеры
  • Публикаций

    101
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные av661194


  1. Для тех, кто сохранил ржавое ведро с гайками:

    Адаптация мода «SFZ Project Episode Zero DELUXE REMAKE» для Windows 7

    https://disk.yandex.ru/d/7Fly02lIk7tA5A

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

    • Мастер! 1
    • Смущение 1

  2. Прошёл мод полностью Из минусов пока только один:  после прохождения DELUXE REMAKE решил сыграть в версию 2020 года. И... вот не могу для себя решить, какая из них мне понравилась больше. Предлагаю всем игрокам сыграть в обе версии и решить для себя этот вопрос.

    Diman_GTX Может, стоит добавить в шапку темы ссылку на первоначальный вариант модификации?


  3. Держите запакованную в db-архивы версию мода «Oblivion Lost Remake 3.0 + Patch 19». Ссылка на Гугл-диск

    https://drive.google.com/drive/folders/1H3U92zxhHKTYhT5Qm8qQlhTsCq0qGEj4?usp=sharing

    Установка:
     скачать все части архива (6 штук) и распаковать архиватором «7z»;
     устновить необходимое программное обеспечение из папки "SOFT";
     в случае выхода новых патчей - скопировать их содержимое в папку с игрой, согласившись на замену файлов.

    Примечание: Структура db архивов указана в файле Read.txt. Размер мода после распаковки примерно 8.5 Гб.

    • Мастер! 1
    • Спасибо 2

  4. М-м-дя. Не тот уже сталкер пошёл, не тот. А ведь было время - без всяких там GPT-чатов и прочих ИИ народ творил свои бессмертные произведения. Да ещё как творил!

    Вот начинающим графоманам для ознакомления (а для GPT пример для подражания) - классика жанра:

    Спойлер


    ---------------------------------------------------------

    Сталкер Каюк бежал по Рыжиму Лесу, раздвигая сучья дерев и легко отталкиваясь задними ногами. Он боялся, потому что за ним бежала стая слепых собак , каторые хотели ему перекусить горло, угрюмо рыча. Рюкзак болтался на спине сталкера, когда он сбив дыхалку прыгал по бревнам, а вдалеке был виден реактор. Пустая фляга давила на карман, сталкер сунул туда руку и выбросил флягу влево в кусты, там лег труп, кровососа убитого кланом долга. Неподалеку вблизи лежал свободовец будто пьяный, но он был не пьяный а просто отдыхал, пережидая выброс.
    - Беги за мной, собаки скачут в погоню! – крикнул Каюк свобод овцу. Свободовец вскочил глядя широкими глазами на Каюка, затем схватил его рюкзак и побежал рядом, сбив ноги. Он схватил автомат за ствол, передернув калаша.
    - Не добежим. – сказал свободовец, надо драться.
    - Ты дурак! – сказал Каюк, перебирая копытами ака раненый снорк. – Там ведет контролер. Он взорвет твой мозг.
    Свободовец опять удивился, и сжал цевье винтовки сильнее. В его ноге весел нож, пальцы с облупленными ногтями потянули рукаятку.
    - Я не дам контролеру, - сказал он. – свой мозг. Я себя порешу.
    - Не надо! – Каюк заплакал. Он перестал бежать и чуть не пал в травву, а трава была с радиацией. Каюк сжал челести.
    - Ты прав мы будем бится! – прорычал Каюк, выдернув кольцо гранаты. Сняв противогаз он в последний раз показал лицо жестокому небу. Свободавец стал стрелять по кустам, иногда попадая слепым собакам в глаза. Псы рычали, плевались но помирали толпами. Скоро трупы лежали штабелями, а собаки отступали чтобы свободовец мог перезарядить обойму калаша. Каюк стоял молча сживая кольцо гранаты, он чуствовал как ее ребристая сфера жгет пальцы. Он не двигался сместа ждал когда появится контролер. И когда свободовец испустил последний потрон, контролер выглянул из за кустов с диким ревом. Каюк подождал, когда серце обстучит адреналин, он успокоился и сделав замах, кинул гранату в контролера. Свободовец упал на травву и Каюк будто умирая почуствовал как взрывная волна убивает мутанта Зоны. Каюк упал, потому что свобод овец его накрыл своим телом как одиялом.
    - Спасибо друг, сказал Каюк, вылезая из под свободовца. – Кстате, как твоё имя, сталкер?
    - Меня зовут Антон, - сказал свободовец и глаза его победно блеснули.
    - Я дал бы тебе артефакт, Антон вот только жаль что у меня его нет, - сказал Каюк не в силах сдержать слез от блогоговения. Он был очень рад что не умер когда кинул гранату бес чеки.
    - Теперь ты мой должник, - сказал Антон, а он был свободовец. – Я отведу тебя к мой штаб и там тебя допросят. Мы умеем платить долги.
    - Зачем тебе, - занык Каюк. Он уже не был рад что остался жив и мечтал смерти Зоны, которая заберет его и сделает мутантом и даст отомстить крысе свободовцу. Он вспомнил как стал дезертиром, и как маленький ел шокалад, вымазав щеки в фольге. Каюк понял как он любит жизнь и свободу. Он захотел в клан Долговцев так как там, как он решил соберались все должники свободы.
    - Я тебя найду и отомщу, - угрюмо пригрозил Каюк. Лицо свободовца вытянулось от удивления. Он начал поднимать калаша за ремень, упершись впече прикладом. Но Каюк был начеку и пнул ногой, выбросив далеко вперед стопу.
    - Ой! – ойкнул свободовец сжимаясь пополам до земле. Каюк сжал его руками за шею и громко хрустнул позвоночником. Свободовец удивился и упал опять. Он лежал не дыша и смотрел широкими глазами в небо. Каюк смотрел на него и убедился, что тот не моргает. И Каюк понял что Антон мертв. Он не переждал этот злополучный выброс.
    - Зона крысс не любит, - победно крикнул Каюк, обыская свобод овца и напихав полные карманы артефактов. Пиная раздавитые банки из под пива он пошел в бар, выпеть за удачную хотку.

     

    • Мастер! 1

  5. Alexus Это патчи для старой версии мода. Версия 4.01 в патчах не нуждается. С дополнениями так же будь осторожнее - все они делались для старой версии. Просто шапку темы давно не обновляли, вот там и лежит не пойми что.

    Diman_GTX  Стоит поправить шапку. Если остались ссылки на версию  2.34, то следует указать, что патч и дополнения - только для этой версии. Если ссылок нет, то убрать из шапки лишний хлам.

    • Жму руку 1

  6. Rollmops 69

    20 минут назад, Rollmops 69 сказал:

    Как сделать так, чтобы «EASY SEXY WOMEN SGM-BASED» появился на «https://ap-pro.ru/stuff/»
    в качестве новой модификации?

    В список «Новые модификации» добавляются только оригинальные моды, использующие минимум чужих наработок. А EASY SEXY WOMEN - это ,фактически, дополнение для мода SGM-2.0. Поэтому EASY SEXY WOMEN и помещён в раздел «Прочие модификации». (Это не точно. Но я так понимаю политику сайта. За конкретными ответами лучше обращаться к администрации сайта)


  7. 6 часов назад, Rollmops 69 сказал:

    Изменение моего экрана загрузки исключено!

    Ну, извини. Я и не думал делать из мода комикс. Просто понравилась картинка.

    Фикс обновлён. Изменения:

    - Убраны загрузочные экраны. Желающие могут установить их отдельно.

    - Исправлен вылет, если поставить в ячейку быстрого использования съедобный предмет, занимающий больше одной клетки, например "Шоколад". Все иконки таких предметов сделаны в одной клетке

    Ссылка прежняя.

    • Жму руку 1
    • Хабар 2
    • Спасибо 1

  8. Rollmops 69 Благодарю. Интересная получилась сборка. Оптимизация порадовала - играется легко и приятно, без лагов и тормозов.

    Вот, сделал небольшой фикс для мода. Скачать - https://drive.google.com/file/d/1DDrlZPhNL7_kq9V-1dkEnq3XVA0TK5bu/view?usp=sharing  Если в будущем фикс будет дополняться, то обновления можно скачать по этой же ссылке.

    Установка: скопировать папку «gamedata» в директорию с игрой, согласившись на замену файлов. Новую игру начинать не надо.

    Спойлер

    Добавлены отдельные описания для изношенной брони

    Добавлена прокачка по всем веткам костюмам «Восход» и «Гагарин»

    Исправлен не работавший из-за некорректных имён файлов плеер

    xr_conditions.script - торговцы и телохранители не исчезают после разгрома баз группировок

    Исправлены некорректные символы в именах файлов

    Грамматические правки текста (те, которые нашёл. Возможно, есть ещё ошибки)

    Убраны полосы на экранах загрузки и сохранения


    Исправления ошибок оригинального SGM:
    ====================================
    amb02.ogg, amb16.ogg - фикс вылетов по звукам в Тёмной Долине

    sgm_queue.script - исправление названий некорректных квестовых сохранение типа "save_val_first_coming_on_valley_on_base"

    sgm_modules.script- фикс неработающего средства на приручение псевдопса

    xr_statistic.script - правка вылета после нахождения 256-го артефакта

    sistem.ltx, class_registrator.script - правка вылета из-за переполнения нет-пакета

    sgm_callbacks.script --правка на отключение ПНВ перед сном

     

    • Мастер! 2
    • Хабар 1
    • Спасибо 1

  9. AlekseiMods Смотря для чего этот инвентарь нужен. Если только для того, чтобы хранить там трофеи, которые можно срезать с монстров (как это сделано в ТЧ), то можно взять готовую реализацию из Мизери.

    Если нужен полноценный инвентарь, то тут можно обратится к реализации багажников в ОЛР: спавнится фейковый inventory_box , его id сохраняется в pstor объекта и при лутании тушки монстра открывается инвентарь этого inventory_box.

    • Мастер! 1
    • Спасибо 1

  10. ПоЖарнег18 Странный вылет. Похоже, не подключился модуль marshal - только тогда может быть задействована строка 782. Попробуй ставить последовательно: установил мод - запустил, проверил. Установил патч или аддон - снова запустил и проверил.


  11. MaestroMaior Это никакие не баги, а недоработка. И не оригинала, а сборок на основе НЛС 3хх. Просто уберите удаление торговцев в bind_monster.script. Или закиньте в gamedata\scripts вот этот файлик

    Спойлер
    
    function init_module()
      bind_monster.misc = {force_offline = function() end,}
    end

     

     

    • Жму руку 1
    • Спасибо 2

  12. Аддон + Дополнение для Winter of Death: Ultimatum от Sany@Mst (_МстителЬ_) от 06.01.2013.

    Тема на старом сайте - http://old.ap-pro.ru/forum/102-3851-1

    Спойлер

    -Исправлены грамматические ошибки в диалогах и квестах
    -Изменено стартовое снаряжение ГГ и количество денег (приближено к хардкору)
    -Динамический худ противогазов
    -Добавлено снятие денег с трупов
    -Прозрачный интерфейс
    -Изменён урон попадания в ГГ (теперь выжить гораздо сложнее)
    -Во время выброса у ГГ накапливается радиация
    -Оружие убирается во время использования предметов
    -Добавлены постэффекты при попадании в ГГ
    -Изменено свечение фонарика
    -Фонарик носится теперь на плече
    -Добавлены новые шейдеры
    -Изменена картинка при запуске игры
    -Добавлено покачивание прицела
    -Со сталкерами можно играть в карточные игры "Коллапс" и "Кот мешке"
    -Адаптирован AI-Pack (т.е. сталкеры умеют использовать бинты и аптечки, меняют позицию во время боя, бьют прикладом если враг поблизости, используют нож)
    -Изменён угол обзора на 83 градуса
    -Смерть от первого лица
    -Изменён вид от третьего лица теперь стрельба идёт по направлению игрока
    -Коллизия трупов как в билдах
    -Отсутствие распознования НПС перекрестием
    -100 советов заменены на 100 цитат
    -Раскачка камеры ГГ как в ТЧ
    -Оружие не достаётся на лестницах
    -Еда больше не лечит
    -Лампочки можно разбить (на Статике не работает)
    -Изменены некоторые звуки
    -Возвращены анекдоты из ТЧ и ЧН
    -Увеличено здоровье у мутантов в 2 раза теперь играть будет сложнее
    -Уменьшен максимальный переносимый вес теперь можно таскать 45 кг
    -Изменены текстуры некоторого оружия
    -У оружия вместо перекрестия, теперь круглый прицел как в билдах
    -Некоторые награды уменьшены в 2 раза
    -Добавлен спальный мешок
    -Спальный мешок добавлен в продажу торговцам
    -Переработан баланс, у сталкеров разжиться патронами как следует и многими предметами не получится (теперь играть сложнее)
    -Мутанты теперь больше отнимают XP и больше силы
    -Новая модель противогаза
    -Новые текстуры детекторов
    -Изменены иконки
    -Новая динамическая музыка
    -Иконки НПС тоже изменены
    -Изменён шлем "Заслон"
    -Вновь поправлены тексты
    -Оружие не убирается на базах
    -Уменьшено количество ворон на локациях
    -Чуть-чуть изменил интерфейс
    -Убран камыш
    -Убрано свечение глаз у некоторых монстров
    -Изменены модели Чистонебовцев новичков
    -Новые модели военных
    -Изменены прицельные сетки
    -Изменены текстуры деревьев и машин
    -Реалистичное падение трупов
    -Исправлены вылеты с некоторым оружием при апгрейде
    -Поправлены отношения между группировками

    Скачать - Аддон + Дополнение от _МстителЬ_

    Внимание!!!
    Фикс для мода уже есть в аддоне!!! Желательна новая игра.
    Порядок установки: ЗП с патчем 1.6.02 + Winter of Death: Ultimatum + Аддон от Sany@Mst

    Hardtmuth  Можно добавить в шапку

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

  13. стрелок_2009 Можно. Вот готовый пример из СоС. Надо только адаптировать коллбеки под ЗП

    Спойлер
    
    ---------------------
    -- release 2019.01.30
    -- fixed some crashes
    
    
    ---------------------
    -- release 2019.01.18
    -- first release
    
    function on_game_start()
    	RegisterScriptCallback("actor_menu_mode_changed",actor_menu_mode_changed)
    end
    
    function actor_menu_mode_changed(mode,last_mode)
    	if mode == 4 then
    		local stash = level.get_target_obj()
    		local stash_id = stash and stash:id()
    		update_stashes(stash_id)
    	end
    end
    
    function update_stashes(stash_id)
    	local m_data = alife_storage_manager.get_state()
    	local checked_s_id
    	if m_data.player_created_stashes and stash_id then
    		checked_s_id = m_data.player_created_stashes[stash_id] and stash_id
    	end
    	
    	local target_stash = checked_s_id or nearest_player_stash()
    	if not target_stash then return end
    	transfer_stashes(target_stash)
    end
    
    function distance(a,b)
    	return a:distance_to_sqr(b)
    end
    
    function nearest_player_stash()
    	local m_data = alife_storage_manager.get_state()
    	if m_data.player_created_stashes then
    		local stash
    		local mind = 999999
    		for id in pairs(m_data.player_created_stashes) do
    			local temp = level.object_by_id(id)
    			if temp then
    				if stash then
    					local temp_d = distance(temp:position(), db.actor:position())
    					if temp_d < mind then
    						mind = temp_d
    						stash = temp
    					end
    				else
    					mind = distance(temp:position(), db.actor:position())
    					stash = temp
    				end
    			end
    		end
    		return stash and stash:id(), stash and stash:position(), mind
    	else
    		return nil
    	end
    end
    
    function transfer_stashes(dest_id)
    	local sim = alife()
    	local list = {}
    	local m_data = alife_storage_manager.get_state()
    	if not m_data.player_created_stashes then return end
    	
    	for i=1,65534 do
    		local se_obj = sim:object(i)
    		if se_obj and  m_data.player_created_stashes[se_obj.parent_id] and not (se_obj.parent_id == dest_id) then
    			list[se_obj.id] = true
    		end
    	end
    	
    	for id in pairs(list) do
    		transfer_item(id, dest_id)
    	end
    end
    
    function transfer_item(id, dest_id)
    	local sim = alife()
    	local se_old = sim:object(id)
    	local se_new = sim:create(se_old:section_name(), vector(), 0, 0, dest_id, false)
    	
    	local data = stpk_utils.get_object_data(se_old)
    	stpk_utils.set_object_data(data,se_new)
    	
    	sim:register(se_new)
    	sim:release(se_old)
    end

     

     

    • Мастер! 1

  14. 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