Blackmail01 Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Собрался я тут в старый добрый поиграть, и увидел на него отличный скрипт, что в мегамоде мне нравился. Мистер Ethereal, адаптировал его под реалии Restoration Project. Скачать его можно здесьПринцип работы:При первом заходе на локацию он заполняет пустые контейнеры случайным барахлом.Тут я решил малость его посмотреть от какого предмета иногда при луте контейнера происходит вылет.Там и возникло желание его улучшить, и сделать в перспективе легко совместимым с модами на вещи и/или локации. Создавалось и тестировалось всё на F2 GOG + Killaps Unofficial Patch.Типы локаций (их я пока не трогал):1. Arroyo, Klamath, энкаунтеры вокруг.2. Дэн, Модок, энкаунтеры вокруг.3. Гекко, Волт-Сити, Реддинг, энкаунтеры4. Брокен-Хиллс, Нью-Рино, База Сьерра5. НКР, Волт 13,15, энкаунтеры6. Финальные локации, Сан-фран, Наварро, Вышка и т.п.Там есть ещё локации из Restoration Project, но если их нет то и ок.Сейчас сделана броня: T1: Leather Armor Leather Jacket RobesT2: Leather Armor Leather Jacket Robes Combat Leather Jacket Leather Armor Mark II+ Metal ArmorT3: Leather Armor Leather Jacket Robes Combat Leather Jacket Leather Armor Mark II Metal Armor Mark II Metal ArmorT4: Combat Armor Tesla Armor Combat Leather Jacket Leather Armor Mark II Metal Armor Mark IICombat Armor Mark IIT5: Power Armor Combat Armor Tesla Armor Metal Armor Mark II Combat Armor Mark IIT6: Power Armor Hardened Power Armor Tesla Armor Advanced Power Armor Adv. Power Armor MKII Combat Armor Mark II Добрался потихоньку до оружия и что мы имеем: Сейчас стоит распределение по тирам такое:1. Кnife, Sledgehammer, Spear, Crowbar, Throwing Knife, Molotov Cocktail, Pipe Rifle, Zip Gun, Switchblade, Sharpened Pole, Shiv2. 10mm Pistol, Hunting Rifle, Assault Rifle, Grenade (Frag), Molotov Cocktail, Spiked Knuckles, Zip Gun, Sawed-Off Shotgun3. Hunting Rifle, Assault Rifle, Grenade (Frag), Grenade (Plasma), Shotgun, Light Support Weapon, M604. 10mm SMG, Desert Eagle .44, 14mm Pistol, Assault Rifle, Grenade (Frag), Grenade (Plasma), Combat Knife, .44 Magnum Revolver, FN FAL, H&K G11, XL70E3, Light Support Weapon, M60, Needler Pistol5. Rocket Launcher, Laser Pistol, Plasma Pistol, Grenade (Frag), Grenade (Plasma), Grenade (Pulse), 9mm Mauser, Red Ryder BB Gun, Red Ryder LE BB Gun, Power Fist, Combat Shotgun, Tommy Gun, Bozar, Light Support Weapon, FN FAL HPFA6. Plasma Rifle, Grenade (Plasma), Grenade (Pulse), Gatling Laser, Super Sledge, Ripper, Laser Rifle, .223 Pistol, H&K CAWS, HK P90c, H&K G11, Light Support Weapon, M60, Needler Pistol, H&K G11E, M72 Gauss Rifle, Phazer, PPK12 Gauss Pistol, Vindicator Minigun, YK32 Pulse Pistol, YK42B Pulse Rifle, Holy Hand Grenade, FN FAL HPFA Что не очень то что надо. Например, в первых двух тирах присутствует вырезанный зип ган. На 6 тире есть святая граната. Я считаю, что уникальные вещи должны оставаться такими. Дигл и магнум на 4 тире, хотя их заполучить можно и в Дэне. И вы никогда оттуда не получите такие вещи как Flamer Sniper Rifle Avenger Minigun Cattle Prodи улучшенные версии пушек тоже (что для меня вполне ок)Моё видение этого скрипта после доработки:настройка в ини оружия по типам;отдельная настройка вероятностей для силовой брони;возможность добавлять туда вещи из модов без правки скриптов;добавление локаций из модов также через ини файл;отключаемая вероятность выпадения предметов не только своего тира, но и на 2 тира меньше.Предлагайте свои вариации как это всё получше распределить. 1 Ссылка на комментарий
Mr.Sталин Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Одна-две радномные вещи на локу в рандомный ящик, при первом заходе на карту.А пихать кучу вещей/барахла на одну карту не вижу смысла, тем более это нарушает игру. 1 Ссылка на комментарий
Pyran Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Вот набор скриптов.Одна-две радномные вещи на локу в рандомный ящик, при первом заходе на карту.А пихать кучу вещей/барахла на одну карту не вижу смысла, тем более это нарушает игру.Запихать для теста - можно, для игры, в пределах 3% Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Mr.Sталин Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Ну или действительное барохло типа дров/презервативов/дошираков генерить на локе без ограничений. для игры, в пределах 3%3% от чего от ВВП страны?)))Или 3% шанса на одну шмотку, а таких шмоток будет к примеру 10 в итоге в один прекрасный день получите все 10 шмоток на одной локе. Херня эта заливная рыба. Ссылка на комментарий
Pyran Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Ну или действительное барохло типа дров/презервативов/дошираков генерить на локе без ограничений.Без ограничений явно не стоит, а вот появление травки или полена в случайнойвстречи скажем, 7%. Патронов и амуниции 3%.. итд..Собственно, в мегамоде 2.44.3 я их снижал с 60-90, до 3-5, что делало их редкими. Но то, можно было взять микрореакторы уже в Ден, портило баланс.А в минимоде, в пред.версиях так полки вообще ломились от бластеров и энергоячеек. Что, лично мне и не нравилось...Ну или действительное барохло типа дров/презервативов/дошираков генерить на локе без ограничений. 3% от чего от ВВП страны?)))от какой страны.... страна без флага(вероятность появления 3%... Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Blackmail01 Опубликовано 18 февраля, 2021 Автор Поделиться Опубликовано 18 февраля, 2021 Да, мне и самому нравится малая вероятность этого всего. Очень понравилась настройка в Megamod US от Pyran. Иначе нету никакого смысла лутать уже давно знакомые локации. А так, вероятность мала, но есть. 1 Ссылка на комментарий
Pyran Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Да, мне и самому нравится малая вероятность этого всего. Очень понравилась настройка в Megamod US от Pyran. Иначе нету никакого смысла лутать уже давно знакомые локации. А так, вероятность мала, но есть.в 2.44.3 - исправленная и стандартная с пометкой old.2.47.5 - стандартная, есть параметр контейнеров, но нет параметра "дубликаты". И вопросец: если значения считаются в процентах, то в 2.47.5 указано неверное значение (оставил его из оригинала).;nothing will be added if the roll falls into this rangeRandomNothingPercent=110 и нужно ставить 90. Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Blackmail01 Опубликовано 18 февраля, 2021 Автор Поделиться Опубликовано 18 февраля, 2021 Там всё считается тоже довольно колхозно. Берутся все эти "проценты", складываются, затем рандом (1, это число) и там если рандом выпал <= на первую опцию то вызываем процедуру первой функции(генерация брони). Затем куча условий если рандом выпал не туда то не <= ли он для следующего условия. И далее. А там уж создаётся какая-нить вещица, или не создаётся если рандом выпал на Nothing.В общем, RandomNothingPercent добавляет сколь угодно. Хоть 500 "процентов".Увеличивая RandomNothingPercent вы увеличиваете шансы на пустой контейнер.RandomNumberOfItemsMin(MAX) считается отдельно. Mr. Stalin, дайте совет как эту штуку можно упростить? Ссылка на комментарий
Ethereal Опубликовано 18 февраля, 2021 Поделиться Опубликовано 18 февраля, 2021 Насколько я помню, то в моде появление Advanced Power Armor, Adv. Power Armor MKII и всех модернизированных предметов было исключено. Вот в отдельной версии скрипта - не уверен. F2 Restoration Project 2.3.3 - MinimodDiablo: Myth Alternative 1.1FT Dev.Mod v002 Космос ПростоSpace Room Ссылка на комментарий
Blackmail01 Опубликовано 20 февраля, 2021 Автор Поделиться Опубликовано 20 февраля, 2021 С первым этапом вроде закончил. Исходный код стал меньше почти в 4 раза.https://drive.google.com/file/d/1kL8zwy4xwFJqeYsEgUcDP05t4C5Vlq14/view?usp=sharing Теперь вот думаю, что с этой красотой делать: procedure pick_item_type(variable arg0) begin //_FLDC_ case_item := 0; money := 0; random_roll := 0; town_level := 0; current_town := ""; random_roll := 0; call determine_town_level; random_roll := random(1, get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416) + get_sfall_global_int(4417) + get_sfall_global_int(4418) + get_sfall_global_int(4420)); if (random_roll <= get_sfall_global_int(4407)) then begin call random_armor; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408))) then begin call random_weapons; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409))) then begin call random_ammo; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410))) then begin call random_stimpacks; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411))) then begin if (get_sfall_global_int(4434) == 1) then begin call random_books; end else begin if (get_sfall_global_int(4434) == 0) then begin call random_books_vanilla; end end end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412))) then begin call random_booze; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413))) then begin call random_herbs; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414))) then begin call random_drugs; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415))) then begin call random_upgrades; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416))) then begin call random_explosives_tools; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416) + get_sfall_global_int(4417))) then begin call random_misc; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4406) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416) + get_sfall_global_int(4419))) then begin call random_money; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4406) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416) + get_sfall_global_int(4419) + get_sfall_global_int(4420))) then begin call random_heavyguns; end else begin if (random_roll <= (get_sfall_global_int(4407) + get_sfall_global_int(4408) + get_sfall_global_int(4409) + get_sfall_global_int(4410) + get_sfall_global_int(4411) + get_sfall_global_int(4412) + get_sfall_global_int(4413) + get_sfall_global_int(4414) + get_sfall_global_int(4415) + get_sfall_global_int(4416) + get_sfall_global_int(4417) + get_sfall_global_int(4419) + get_sfall_global_int(4420) + get_sfall_global_int(4418))) then begin return 0; end end end end end end end end end end end end end endend В таком виде любое добавление/удаление новых переменных это ад.Ещё заметки: DudlicateItemPercent в ини влияет на вероятность того что в одном контейнере создастся 2 или более одинаковых предметов. Не влияет на общие вероятности и значение должно быть от 0 до 100.Если локация отсутствует в списке предопределённых, ей присваивается уровень 4.Книги появляются начиная с 4 уровня. Если уровень меньше заменяются случайным мусором.В мегамоде RandomUpgradesPercent влиял на вероятность появления улучшений для оружия. Т.к. в оригинале их нет, были заменены на улучшенные версии оружия с перераспределением по уровням. 1 Ссылка на комментарий
Pyran Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Там еще есть параметр, который отвечает за замену scenery на item т.е. переводящий "горшки" из декора в контейнеры. Что делать? Обкатывать, и проверять состоятельность, потом править) Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Blackmail01 Опубликовано 20 февраля, 2021 Автор Поделиться Опубликовано 20 февраля, 2021 Да он работает, и даже получается туда добавлять новые типы предметов. Только в таком виде как он есть, от этого код процедуры растёт как снежный ком. Следовательно и вариантов накосячить больше. То есть если хотя бы добавить отдельно Unarmed, Small guns, Melee, Throwing, BigGuns, Energy Weapon, Power Armor код процедуры сильно разбухнет. А если что-то понадобится удалить тоже не так всё просто. Думаю для выбора того какой тип предмета случайным образом создавать тоже использовать массив. Продумываю детали. Не нравятся мне эти десятки проверок if else. 1 Ссылка на комментарий
Foxx Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Я бы вообще не раздовал рандомно топовые предметы, так мелочь в ящиках. Рандомный лут в игре Олимп сделали, поэтому такая фича многим не прижилась. Перезагрузил сохранение и вот тебе 5 штопоров и 10 циркулярных дисков в начале игры и т.д. Также и лут НПС, никакой последовательности, что и где искать - как WIKI писать по такой игре, тоже рандомно))) Ссылка на комментарий
Blackmail01 Опубликовано 20 февраля, 2021 Автор Поделиться Опубликовано 20 февраля, 2021 Так колхоз - дело добровольное. Всё в ини гибко настраивается. Я из пула исключил все квестовые, уникальные предметы. А если человек сам хочет себе испортить впечатления рванув в Сан-Фран и настроить вероятности на максимум - его выбор. Ссылка на комментарий
Mr.Sталин Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Использование глобальных переменных ввиде get_sfall_global_int(4409) это зло.Можно нарваться на такую же переменную из какого-нибудь другого мода кто модил таким же дебмльным методом. Вот у фокса используется в книжках но там другие номера 1... Set/get_sfall_global_int должны использоваться с именными переменными. Тогда шанс нарваться на пременную из другого мода минимальный. 2 Ссылка на комментарий
Mr.Sталин Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Set/get_sfall_global_int с номерами вообще были придуманы для очень больших глобальных модов.А не для таких которые умещаются в одном скрипте.Все эти sfall-global нужно заменить на один массив.Скрипт вобще писался злосным нубярой каким-то. Я бы вообще не раздовал рандомно топовые предметы, так мелочь в ящиках. Рандомный лут в игре Олимп сделали, поэтому такая фича многим не прижилась. Перезагрузил сохранение и вот тебе 5 штопоров и 10 циркулярных дисков в начале игры и т.д. Также и лут НПС, никакой последовательности, что и где искать - как WIKI писать по такой игре, тоже рандомно)))Мне наоборот нрав когда есть рандом, но когда этот рандом поддержан самими модом а не сторонним скриптом, который насувает предметов сверх нормы. 1 Ссылка на комментарий
Foxx Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Вот у фокса используется в книжках но там другие номера 1...Я знал, что Александр не использует сфаловские функции и ещё исходники для надежности проверил. С именными названиями так и не понял - не больше восьми символов, а кавычки считаются? Ссылка на комментарий
Blackmail01 Опубликовано 20 февраля, 2021 Автор Поделиться Опубликовано 20 февраля, 2021 Mr. Сталин, вы развеяли мои сомнения. Тоже думал, а что если где-то эта уже используется переменная. Или другие, которые я собираюсь занять. Скрипт вобще писался злосным нубярой каким-то.Но зато теперь есть с чем работать. С нуля я бы даже шевелить себя не стал. Ссылка на комментарий
Foxx Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Тоже думал, а что если где-то эта уже используется переменная. Или другие, которые я собираюсь занять.В RPU\Tweaks\Novarain\Phobos на гитхабе тоже исходники лежат, а кто еще sFall использовал пример таких переменных? Ссылка на комментарий
Mr.Sталин Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 С именными названиями так и не понял - не больше восьми символов, а кавычки считаются?Кавычки не считаются. Должно быть 8 букв/символов, не меньше и не больше. В RPU\Tweaks\Novarain\Phobos на гитхабе тоже исходники лежат, а кто еще sFall использовал пример таких переменных?Нус на nma часто любять эти глобальные переменные. Там у одного автора такой же стиль все пихать в глобальные переменные. Ссылка на комментарий
Foxx Опубликовано 20 февраля, 2021 Поделиться Опубликовано 20 февраля, 2021 Кавычки не считаются. Должно быть 8 букв/символов, не меньше и не больше.Запускал стандартный RPu, ошибка постоянно лезла - сейчас на новой сборке проверю. Ссылка на комментарий
Blackmail01 Опубликовано 21 февраля, 2021 Автор Поделиться Опубликовано 21 февраля, 2021 Gvarы упразднил., но с процедурой выбора пока не выходит.нельзя вызвать процедуру в виде call ArrayName[1] , а было бы то что надо. P. s. : кодер из меня тот ещё. До этого руками код писать приходилось 13-14 лет назад ¯\_(ツ)_/¯ Ссылка на комментарий
Pyran Опубликовано 10 марта, 2021 Поделиться Опубликовано 10 марта, 2021 Новый скрипт randomloot с фиксом появления "reserved item" из 2.47.6. Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
1war Опубликовано 10 марта, 2021 Поделиться Опубликовано 10 марта, 2021 Новый скрипт randomloot с фиксом появления "reserved item" из 2.47.6.А где ini для настроики, или от старого подойдет? Ссылка на комментарий
Pyran Опубликовано 10 марта, 2021 Поделиться Опубликовано 10 марта, 2021 А где ini для настроики, или от старого подойдет?изменился только скрипт. ini от 2.47.5\6. 1 Fallout 2: Путеводитель по модам | FAQ | Перевод модов | Путеводитель по RP Nevada Band: Путеводитель по играм серии | FAQ Fallout Tactics: Путеводитель по модам | FAQ База Данных: YD\YD\MF Цитата: "Помогая другим, не забывай о себе..." Ссылка на комментарий
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать аккаунт
Зарегистрируйте новый аккаунт в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти