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

  • 0
pz_4

Потенциальный конфликт "Системы продажи книг" с любым использованием обычных довоенных книг

Вопрос

В моем конкретном случае, я имею конфликт с моим любимым Яблоком,

 

[INFO:0C071B95] ('Э... Где-то я тебя уже видел.' in GRUP Topic Children of GREETING "GREETING" [DIAL:000000C8] for Vault13JenkinsDialogue [QUST:0C0B2BF3]) и Vault13Taker02 "Vault13Taker02" [DIAL:0C071B93]

 

но в ровной мере будет справедливо для любого мода, который потребует от игрока BookGeneric01 и любую проивзодную от нее.

"Перк" aaaSFWBookPerk "Книголюб" [PERK:0A004F54], который позволяет получать книги повышенной ценности, заменяет через aaaSFWbtcBookPerkScrFunc [SCPT:0A512F74] при подборе(или просто на апдейте, я не стал углубляться, не суть) книги на их SFW аналоги (см. aaaSFWbtcBooksFormList [FLST:0A021CAA])  вроде BookGeneric01SFWCopy, что автоматом шлет нахрен любой мод, где используется BookGeneric. Но и использовать везде BookGeneric01SFWCopy(и ее вариации) тоже не вариант, пушто без перка мы эти копии нигде не найдем.

Такие дела, да. Для конфликта в метрполисе я сейчас просто поставлю затычку(Оценил объем работы, вместо затычки просто снёс перк и отключил квест-скрипт по замене книг. Оно того не стоит.), но это не решение проблемы, нужно подумать о каком то более адекватном решении, иначе зае... мучаемся ставить везде костыли. 

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

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


Ссылка на сообщение

29 ответов на этот вопрос

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

  • 0
11 часов назад, MagnuMspec сказал:

Решение видится таким

Сделал, разбил по модулям.

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

GRA_BookWork.7z

@pz_4 если есть желание проверить?)

  • Спасибо! 1

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


Ссылка на сообщение
  • 0

Упреждая вопрос, "а зачем вообще нужна замена?" А нужна она, чтобы нельзя было одну и ту же книгу поднимать и выкидывать, пытаясь "выбить" себе ценную книжку. Т.е. при подборе у игрока идет считывание обычных книг, и дальше на рандоме * удачу идет замена или на ценную, или на обычную но "копию", что не позволяет абузить скрипт.

Заменяет, впрочем, тоже со странностями, например вышеупомянутый  BookGeneric01 у меня лично, стабильно меняет на  BookGeneric07SFWCopy и BookGeneric08SFWCopy, что позволяет особо домороченному игроку доебаться, что визуалы при этом у книг будут разные.

Тоже спорный момент.

 

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


Ссылка на сообщение
  • 0
12 часов назад, pz_4 сказал:

"Перк" aaaSFWBookPerk "Книголюб" [PERK:0A004F54], который позволяет получать книги повышенной ценности, заменяет через aaaSFWbtcBookPerkScrFunc [SCPT:0A512F74] при подборе(или просто на апдейте, я не стал углубляться, не суть) книги на их SFW аналоги (см. aaaSFWbtcBooksFormList [FLST:0A021CAA])  вроде BookGeneric01SFWCopy, что автоматом шлет нахрен любой мод, где используется BookGeneric.

Насколько вижу, сама замена обычных книг на копии происходит внутри старого монстра aaaSFWMainFixesScript [SCPT:0A004F1E]

 

Тут еще есть промежуточный слой проблемы - книги Generic2 и далее добавлены в Вегасе, в ф3 их нет, соответственно любые скриптовые задействования ф3 модов не учитывают вегасовские книги с другими обложками.

 

Решение видится таким:

1. сделать замену книг на копии и без наличия перка, просто добавив блок с заменой без шансов на ценные книги if bookPerk < 100

2. во всех скриптово-диалоговых местах заменять книги на копии. Их не так много, по идее. Единичные диалоги и сортировщики в домах, ну и по мелочи.

3. в модах с ф3 достаточной будет замены 01 на копию, но если хочется заморочиться, то каждый кейс нужно будет обрабатывать с учетом остальных вариантов.

4. ну и по поводу несоответствия цвета, заменять каждую книгу на номерную копию, вместо общего уровневого списка.

  • Нравится 1

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


Ссылка на сообщение
  • 0
37 минут назад, MagnuMspec сказал:

есть желание проверить?)

Вполне. Установлю, подошью правки в соотв. мастеры, верну перк и перезапущу скрипто-квест.

Но сразу отмечу, что модули Итемов, Плеерхомов, Фолловеров и Домсити(вроде бы это Купол Боулдера?) я не использую.

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

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


Ссылка на сообщение
  • 0
24 минуты назад, pz_4 сказал:

Но сразу отмечу

Думаю, главное проверить саму замену книг, там от переменной BookPerk пляшем, добавил блок, если меньше 100, как заменять.

Ну и мб конкретно на метрополисе, может что не заметил.

  • Нравится 1

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


Ссылка на сообщение
  • 0
В 13.05.2026 в 05:36, MagnuMspec сказал:

если есть желание проверить?)

Вроде бы всё работает.

  • Спасибо! 1

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


Ссылка на сообщение
  • 0

@pz_4 Вот любишь ты придолбаться.

 

Книги меняют свою обложку по той причине, что они обрабатываются пакетом:

 

Если автолут схватил 80 книг, например, то операций с инвентарём хоть для 8, хоть для 1000 -- всегда 16 (8 -- формлист оригиналов / 8 -- формлист копий)

 

Там для распределения по стопкам, так, чтобы при 800 их не лежало ровно по 100 в каждой стопке -- используется алгоритм псевдо-случайности.

 

ПАКЕТНАЯ ОБРАБОТКА нужна, чтобы когда ты из чистых журналов сделаешь их 1000 / подберёшь автолутом 80 -- игра не крашилась и не тупила от частых запросов функций инвентаря.

 

...Их обработку из скрипта-динозавра надо тупо вырезать.

 

Идите короче, ЧИТАЙТЕ ДОКУМЕНТАЦИЮ к моей системе.

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


Ссылка на сообщение
  • 0

@MagnuMspec В скрипте-динозавре у вас ДУБЛИРУЮЩАЯ ФУНКЦИОНАЛЬНОСТЬ.

 

Я  для системы делал свой Скрипт Перка. И просто скрипт-динозавр (портянка) будет конфликтовать с моим скриптом JIP-xNVSE ...

 

...Плиз глянь БТЦ-Кат.есп

 

У @pz_4 всё хорошо только по той причине, что он не заработал Перк Книголюб, а ваша портянка молотила без его учёта... потому у Камрада "всё как-будто бы исправилось" -- что, разумеется, абсолютно не так.

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


Ссылка на сообщение
  • 0

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

 

Тоесть, если в формлист копий добавить ещё книг -- КОД НЕ_ХАРДКОЖЕН И ОН ЭТО ПОЗВОЛЯЕТ. ТАМ ДАЖЕ ПРОВЕРКА ЧЁТНОСТЬ/НЕЧЁТНОСТЬ айтемов списка

 

А оригиналы разматываются циклом. Тоесть вы беспрепятственно можете добавлять книги в список оригиналов / список замен -- и скрипт всё схавает без ошибок. (!!!)

 

Спойлер

 

 

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


Ссылка на сообщение
  • 0

В СКРИПТЫ БЫЛИ ЗАЛОЖЕНЫ АРХИТЕКТУРНЫЕ РЕШЕНИЯ.

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


Ссылка на сообщение
  • 0

@Trust

Так, давайте спокойно. Смысл правок по данной теме был в следующем:

1. изначально был рандом, когда при перке книга одной обложки при подбирании менялась на другую. Счел это лишним. (допустим игрок хочет книгу именно такую как взял, а не рандом).

2. при перке обычные книги подменялись на копии (чтобы исключить абьюз, понятно), по это создавало проблемы с квестовыми и другими модами, где требовались исходные книги.

 

Теперь книги при подбирании меняются на копии в любом случае, и весь имеющийся в сборке контент, связанный с наличием у ГГ книг, адаптирован к этому.

 

Если есть желание это переделать, или что-то не работает, можно переделать. Но чтобы описанные пункты по-прежнему решались.

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


Ссылка на сообщение
  • 0
10 минут назад, MagnuMspec сказал:

@Trust

Так, давайте спокойно. Смысл правок по данной теме был в следующем:

1. изначально был рандом, когда при перке книга одной обложки при подбирании менялась на другую. Счел это лишним. (допустим игрок хочет книгу именно такую как взял, а не рандом).

2. при перке обычные книги подменялись на копии (чтобы исключить абьюз, понятно), по это создавало проблемы с квестовыми и другими модами, где требовались исходные книги.

 

Теперь книги при подбирании меняются на копии в любом случае, и весь имеющийся в сборке контент, связанный с наличием у ГГ книг, адаптирован к этому.

 

Если есть желание это переделать, или что-то не работает, можно переделать. Но чтобы описанные пункты по-прежнему решались.

 

Скрипт-динозавр работает каждые 5 секунд по Восьми (формлист)

 

Мой перк срабатывает моментально. Это значит, что Ваш скрипт может моментально отхватить 8 (учитывая весь форм-лист), но не может опередить конверсию моего перка.

 

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

 

Я абсолютно спокоен, и надеюсь, что и вы не будете обижаться из-за моих аргументов.

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


Ссылка на сообщение
  • 0

почему-бы в конфликтные моды в форм-листы не вписать дубли???

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


Ссылка на сообщение
  • 0
2 минуты назад, Trust сказал:

 

Скрипт-динозавр работает каждые 5 секунд по Восьми (формлист)

 

Мой перк срабатывает моментально. Это значит, что Ваш скрипт может моментально отхватить 8 (учитывая весь форм-лист), но не может опередить конверсию моего перка.

 

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

 

Я абсолютно спокоен, и надеюсь, что и вы не будете обижаться из-за моих аргументов.

Как бы, зависимости эдита не обманешь, правили тот кусок скрипта потому, что он и занимался подменой книг, результат был проверен, работал.

Т.е. то что он ничего не делает, неверно.

 

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

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


Ссылка на сообщение
  • 0
2 минуты назад, Trust сказал:

почему-бы в конфликтные моды в форм-листы не вписать дубли???

Потому что не везде там формлисты, где-то проверки в диалогах и скриптах. Как я и писал выше:

В 13.05.2026 в 01:36, MagnuMspec сказал:

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

GRA_BookWork.7z

 

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


Ссылка на сообщение
  • 0
1 минуту назад, MagnuMspec сказал:

Как бы, зависимости эдита не обманешь, правили тот кусок скрипта потому, что он и занимался подменой книг, результат был проверен, работал.

Т.е. то что он ничего не делает, неверно.

 

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

А перк на_деле -- вы проверяли??

 

Что происходит если перк получен???

 

Ведь проблема была в том, что скрипт-фиксес молотил книги без перка. Как дела обстоят с полученным перком??

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


Ссылка на сообщение
  • 0
4 минуты назад, MagnuMspec сказал:

Как бы, зависимости эдита не обманешь, правили тот кусок скрипта потому, что он и занимался подменой книг, результат был проверен, работал.

Т.е. то что он ничего не делает, неверно.

 

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

 

Я не выражаю агрессию. Я всего-лишь говорю: "ЗДЕСЬ НАДО ЗАДУМАТЬСЯ"

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


Ссылка на сообщение
  • 0
8 минут назад, Trust сказал:

Ведь проблема была в том, что скрипт-фиксес молотил книги без перка. Как дела обстоят с полученным перком??

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

Эту проблему решили, заменяя книги в любом случае на копии и адаптировав всё скриптовое участие книг на копии.

 

Сейчас если посмотришь скрипт, там если перк взят, то весь блок такой же, как и был (только выровнена замена обложек на соответствующие), а если не взят, то книги заменяются, просто бес шанса на ценные варианты.

 

Я не понимаю, что не так-то. Что именно не работает?

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


Ссылка на сообщение
  • 0
4 минуты назад, MagnuMspec сказал:

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

Эту проблему решили, заменяя книги в любом случае на копии и адаптировав всё скриптовое участие книг на копии.

 

Сейчас если посмотришь скрипт, там если перк взят, то весь блок такой же, как и был (только выровнена замена обложек на соответствующие), а если не взят, то книги заменяются, просто бес шанса на ценные варианты.

 

Я не понимаю, что не так-то. Что именно не работает?

 

Тоесть в модах -- Вы подменили оригиналы на копии, и сделали замену-палюбэ.

 

Штош -- это для меня была неопределённая_переменная.

 

Только вот в моих скриптах -- перк добывается сдачей оригиналов. Тогда в диалоге следует добавить условие на наличие_замен, и сдачу замен а не ток оригиналов.

 

Может ещё вписать В ДИНОЗАВРА "отключение замен если есть перк (который делает то-же)"

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


Ссылка на сообщение
  • 0
3 часа назад, Trust сказал:

Только вот в моих скриптах -- перк добывается сдачей оригиналов.

Сейчас это работает, перк и промежуточный месадж выдается при сдаче нужного числа дубликатов.

 

Там есть другой косяк, я Магнуму о нем в ЛС отписал, грубо говоря не работает вся сдача, т.к.

 

в aaaSFWbtcBooksToCaps [SCPT:0A001BBA] стоит старая проверка

If aaaSFWbtcBookPerkQuest.BookPerk > 99
        BookListSFWbtc = aaaSFWbtcBooksFormList
    Else
        BookListSFWbtc = aaaSFWBooksFormList
    EndIf

но у нас теперь независимо от того есть ли у игрока перк - надо смотреть по перковому листу

 

Вопрос по нагрузке на игру - это другое, лично я в эту сторону вообще не проверял ничего. 

 

3 часа назад, Trust сказал:

перк на_деле -- вы проверяли??

 

Что происходит если перк получен??? 

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

 

Не исключаю впрочем, что они могут быть, но я не профильный скриптер, я васян, и только рад буду, если ты предложишь решение лучше.

 

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

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


Ссылка на сообщение
  • 0
3 часа назад, Trust сказал:

Может ещё вписать В ДИНОЗАВРА "отключение замен если есть перк (который делает то-же)"

 

В принципе если у перка функционал лучше чем у скриптового заменятора, может тогда нахрен вообще т.н. динозавра?

 

Давай тогда сделаем скрытый от глаз игрока дубликат перка, но без выдачи ценных книг, при начале игры начисляем(в диалоге с Митчеллом или Батей, например, с проверкой на оригинальный перк, чтобы не получить оба при смене пустошей) игроку перк-дубль, при получении "нормального" перка - изымаем у игрока перк "костыльный-дубликатный", и вся любовь.

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

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


Ссылка на сообщение
  • 0
1 час назад, pz_4 сказал:

 

В принципе если у перка функционал лучше чем у скриптового заменятора, может тогда нахрен вообще т.н. динозавра?

 

Давай тогда сделаем скрытый от глаз игрока дубликат перка, но без выдачи ценных книг, при начале игры начисляем(в диалоге с Митчеллом или Батей, например, с проверкой на оригинальный перк, чтобы не получить оба при смене пустошей) игроку перк-дубль, при получении "нормального" перка - изымаем у игрока перк "костыльный-дубликатный", и вся любовь.

Сорян за глупый вопрос, но не могли бы вы с Магнумом просто расширить в скриптах/формлистах приёмники книг за счёт Дублей ??

 

1 час назад, pz_4 сказал:

If aaaSFWbtcBookPerkQuest.BookPerk > 99
        BookListSFWbtc = aaaSFWbtcBooksFormList
    Else
        BookListSFWbtc = aaaSFWBooksFormList
    EndIf

 

В  том-то и дело, что я специально не рассчитал, что кто-то возьмётся всё сломать, потому, до 100 использовал оригиналы, а после 100 -- замены.

 

Эту логику раскукожить трудно.

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


Ссылка на сообщение
  • 0

Хотя, если вы проверяете сотку == ничего вы не сломали.

 

ПРОСТИТЕ ЗА БЕСПОКОЙСТВО тогда.

 

Оставьте все как есть.

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


Ссылка на сообщение
  • 0
28 минут назад, Trust сказал:

В  том-то и дело, что я специально не рассчитал, что кто-то возьмётся всё сломать, потому, до 100 использовал оригиналы, а после 100 -- замены.

К тебе вопросов и нет, это в рамках правок недосмотр, но я решил его упомянуть, чтобы тебе не тратить время на поиск проблемы если бы ты сейчас попробовал на релизном СФВ воспользоваться сдачей книг. Сейчас она сломана из за конфликта форм листов, который я указал выше.


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

Ну а ошибки всплывшие потом - это уже чистой воды недосмотр и недопроверка с моей и Магнума стороны в рамках наших "левых" правок твоего кода. 
 

28 минут назад, Trust сказал:

Сорян за глупый вопрос, но не могли бы вы с Магнумом просто расширить в скриптах/формлистах приёмники книг за счёт Дублей ?? 

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

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

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


Ссылка на сообщение

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

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

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

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

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

Войти

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

Войти


×
×
  • Создать...

Важная информация

Мы используем файлы cookie для обеспечения корректной работы сайта. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек. Узнать больше об обработке данных поможет Политика конфиденциальности