Сегодня разберём систему товарооборота в Fallout и Fallout 2. В этих играх она работает похоже, но у каждого торговца есть свои особенности. Всё описанное ниже актуально для оригинальных версий игры (фанатские патчи вносят изменения). Под торговцами будем понимать только торгующих регулярно.
Кстати, полную статистику по торговцам мы собрали в одной таблице, которую можно скачать здесь.
Общая механика товарооборота
Хранилище товара
Обычно для хранения товара ставился товарный ящик со скриптом за пределами видимой карты. Вы наверняка это знаете, так как в Броккен-Хиллс по недосмотру разработчиков эти ящики видны.
В некоторых случаях хранилище товаров находится рядом с торговцем как объект магазина. Взаимодействие с ним обычно вызывает диалог.
Скрипт хранилища считает время до следующего обновления товара. Точное время индивидуально для каждого ящика (см. таблицу выше). Когда проходит назначенное игровое время, срабатывает пересчёт товара. Однако эти операции происходят при загрузке карты. Поэтому нет смысла ожидать обновления на месте — нужно выйти с карты и вернуться. Хотя есть исключения, где обновление происходит, если сохранить и загрузить игру. Но это скорее недоработка разработчиков, забывших поставить проверку загрузки (is_loading_game), как в остальных случаях.
Обновление конкретного товара происходит через операцию check_restock_item(the_item, min_amt, max_amt, res_perc). Здесь the_item — это порядковый номер предмета, min_amt — минимальное количество, max_amt — максимальное количество, res_perc — вероятность появления товара в процентах от 0 до 100. Причём деньги часто рассчитываются так же, как обычный предмет торга. С той лишь разницей, что вероятность их появления равна 100%.
В первом же Fallout (например, у Киллиана и торговца в Адитуме) товар чаще накладывался в редакторе сразу в контейнер, а не создавался скриптом. Поэтому со временем обновлялись только деньги, а не товар, так как они рассчитывались отдельно, причём не у контейнера, а в скрипте торговца.
Торговец
Связь с торговцем осуществляется через общую переменную, которая даёт указатель на товарный ящик. В начале диалога торговец переносит весь лут из контейнера в инвентарь, а в конце диалога — весь инвентарь переносит в этот ящик. В момент смерти торговца лут из ящика обычно переносится в его инвентарь (иногда эту опцию разработчики забывали).
При входе в бартер может сработать малозаметный движковый баг: первое оружие у торговца пропадет из окна бартера. Чтобы оно появилось в списке, нужно выйти из бартера и вернуться обратно.
В диалоге торговца могут быть введены модификаторы бартера. Эти команды повышают или понижают цены у торговца. Они различаются у каждого нпс и меняются в зависимости от игровых событий. Но опять же из-за недоработок эта опция не всегда работает как надо. На ценообразование также влияют навык бартера ГГ и навык бартера торговца, харизма ГГ и харизма спутников ГГ, способности и перки. Возможна даже ситуация, когда при сильной прокачке навыка вы сможете скупать вещи дешевле, чем их продаёте. Таким образом, можно бесконечно впаривать торговцу его же товар, пока он не опустеет. Это скорее недоработка, но в тоже время можно считать фичей, ведь для этого требуется действительно большая прокачка.
Хранилище личных вещей
Кроме товарного ящика часто встречается ещё один, общий для всех торговцев локации. Туда на время диалога скидывается весь личный неторговый лут торговца. Именно поэтому обычно нельзя украсть товар, а подкинутые воровством вещи в товаре не появляются. Если же личного ящика нет, то личные вещи добавятся в товар при первом диалоге. Соответственно, личные вещи (если они есть) можно украсть ДО первого диалога. Ещё есть торговцы, которым деньги из товарного ящика переносятся в личный инвентарь, что позволяет их украсть. Кроме того, совершенная через диалог плата за услуги обычно переносится от ГГ прямо в товар торговцу.
Но всё это — лишь общая схема. Теперь посмотрим на особенности в каждом конкретном случае.
Кламат
В Кламате четыре (а по сути три) торговца: Мэйда Бакнер, бармен Сайаг и братья Дантоны. Все они владеют контейнерами за пределами карты, возле сетки перехода к упавшему винтокрылу. Причём у Дантонов ящик один на двоих. Да и сами Дантоны обладают одним скриптом, хотя это два разных человека.
Универсального контейнера для вещей здесь нет. Поэтому вещи Сайага после диалога смешиваются с товаром. Это самодельное ружье (он держит его в неактивной руке, хотя не может им пользоваться) и пачка патронов 10 мм (до диалога доступна для кражи).
У товарных ящиков помимо товара прописаны стандартные опции контейнеров, хотя это абсолютно бесполезно. Они заперты, их пришлось бы взламывать, будь возможным до них дотянуться.
Дыра
Торговцы Дыры — Смитти, Флик, Табби, Мамаша и... Мецгер! Да, Мецгер технически тоже торговец, хотя не все точки входа в диалог приводят к выкладке товара для бартера. А вот Ребекка и Френки к торговцам не относятся, хотя могли бы. Товарные ящики здесь также за пределами карты. Они, в отличие от Кламата, не заперты и не обладают стандартным кодом контейнеров.
Имеется ящик для личных вещей на время диалога. Что немаловажно, ведь Мецгер изначально держит в руках двустволку и патроны к ней, а после диалога эти вещи переносятся в рюкзак с возможностью кражи. Мамаша вооружена ножом. У Табби в руках дубинка и винт. У Смитти — пистолет 10 мм и патроны к нему. У Флика нет ничего.
Зато для ящика Флика сохранилась более старая версия скрипта. Сейчас используется датированный 22 августа 1998 (по данным из исходников) diFliBox. Старая версия diFlkBox создана 26 сентября 1997. В ней прописаны стандартные опции контейнеров (в новой их уже нет), обновление товара происходит раз в 7-14 суток (в новой 2-4), а также сильно отличается состав товара. Например, Флик мог с вероятностью 10% продать журнал «Пушки и пули» и с вероятностью 20% баффаут. К тому же у него был необычно большой разброс денег — от 148 до 3512 (сейчас только 55-61)!
У ящика Мецгера есть особенность. Если продать одного из напарников Мецгеру, то в товар перенесутся все вещи этого напарника. Их можно выменять обратно, но только ДО следующего обновления товара (а оно происходит раз в 1-5 суток). При обновлении игра разово и безвозвратно удалит все вещи из ящика и заново наполнит его товаром. Если продать ещё одного напарника, ситуация повторится.
Ящик Мамаши располагается не только во втором районе (где находится Мамаша), но также в первом районе, хотя там от него нет никакой пользы. Возможно, это значит, что Мамаша изначально располагалась в первом районе, а не во втором.
Реддинг
Технически здесь есть только один торговец — кассир в казино. Причём в его товаре есть только деньги, зато много — от 1000 до 5000 с обновлением каждые 14 суток. Товарный ящик располагается прямо позади кассира. По этой причине вещи из ящика не переносятся владельцу после смерти (как это обычно происходит), а остаются в ящике. Хотя сам ящик можно свободно открывать (владелец на это не реагирует), но подойти к нему без хитростей не получится из-за охранника у двери. Кроме того, деньги в ящике пополняются даже после убийства кассира, никаких поправок на такой случай нет.
В ящике изначально лежит 1350 баксов. Они размещены через редактор карты, а не скриптом. Смысла в этом нет, так как скрипт перепишет число денег при первом же посещении карты.
Ещё одна проблема этого кассира — модификация цен в зависимости от местной репутации ГГ. А точнее команда выглядит так: gdialog_mod_barter((-30+global_var(TOWN_REP_VAR))). Но и в этом смысла нет. Во-первых, модификатор не может изменить стоимость денег, а товара у кассира нет. Конечно, товар появится после его продажи нашим ГГ, но едва ли игрок станет выкупать вещи обратно, раз он их продал. И даже если станет, это будет такая редкость, что связь ценообразования с репутацией останется незаметной. Во-вторых, чтобы модификатор сработал, нужно войти в бартер именно через реплику в диалоге, а не через кнопку бартера справа. Что явная недоработка. В-третьих, чем ниже репутация, тем ниже получаются цены у кассира. Что довольно странно.
Можно подумать, что док Джонсон, Лу и Джош тоже торговцы, но это не так. Товарных ящиков для них нет, «товар» изначально помещён в рюкзак через маппер и не обновляется, а вещи можно украсть. Хотя Джош торгует пивом через реплики диалога. Причём заплаченные ему деньги возвращаются в его товар в уменьшенном количестве: 2 вместо 5 за бутылку и 20 вместо 50 за угощение всех присутствующих. А если вы заплатите за угощение своей команды (5 монет умножить на число спутников), то в товар вернётся ровно 3 монеты.
Модок
В Модоке три торговца: Джо, Балтаз, Гришем. Товарные ящики Балтаза и Гришема находятся за пределами карты, а товарный ящик Джо (точнее полки) располагается прямо позади него.
Джо запрещает касаться своих полок. Он делает два предупреждения, а на третье атакует. Вещи с полок легко своровать в скрытности, так как совершается стандартная движковая проверка наблюдения ГГ. А она слабовата и к тому же Джо расположен строго спиной к полкам и ГГ. Товар Джо незначителен, а денег у него никогда не бывает. Но что примечательно — товар расширяется новыми предметами после выполнения заданий со слагами. Для старого Fallout, как ни странно, влияние квестов на товар — большая редкость.
Ящик с находками в баре Роуз не товарный, но обладает схожей скриптовой механикой. Обновление происходит не по времени, а по загрузке карты. То есть достаточно выйти с карты и вернуться, чтобы в ящике появилась находка. Если же ГГ станет врагом Модока, то находки прекратятся. Самое дорогое, что можно найти в ящике — это пистолет-пулемет 10 мм. Вероятность его появления 1%.
Гекко
Перси Крамп — единственный торговец Гекко. В его случае товарооборот работает по стандартной схеме, но с двумя багами.
Первый баг — отсутствие скрипта на ящике для личных вещей. Сам ящик есть, он стоит рядом с товарным ящиком немного ниже его хижины. Скрипты для ящиков и Перси тоже созданы. Но всё это не работает, потому что ящику просто не задан скрипт. Это незаметно, так как у Перси нет личных вещей.
Второй баг куда серьёзнее — товар не перемещается к Перси в момент смерти и остаётся в ящике. В случае смерти Перси вы не получите его вещи.
Джереми и Скитер торговцами не являются. У Скиттера плата за услуги переносится в рюкзак с возможностью кражи (бартер у Скиттера вообще отключен). У Вузи можно покупать бухло, но заплаченные ему деньги пропадают из игры бесследно.
Город Убежища
Здесь 4 торговца: Гарри, Рэндал, Фаррел, Дэрроу. Их ящики находятся за пределами карты. Все они обладают исходным лутом, который размещён в маппере, но скрипты переписывают их при первой же загрузке.
По той же причине у Гарри есть своя странность. Рядом с его товарным ящиком стоит ящик для личных вещей. Но в нём уже лежит множество предметов. После первого диалога эти вещи перемещаются в инвентарь Гарри с возможностью кражи (обменять их нельзя), хотя до диалога их там не будет.
У ящиков Фаррела, Дэрроу и Гарри есть проверка скрытности в момент кражи, что тоже не имеет смысла, так как они недоступны игроку. Если мы всё же попробуем обворовать ящики и провалим эту проверку, то Фаррел и Дэрроу с криком «Все, хватит! Вон отсюда!» выкинет нас на стартовую карту перед воротами города. Причём не имеет значения, видят они ГГ или нет. У Рэндала такой опции нет. А Гарри активирует охрану криком «Думаешь, ты в магазине самообслуживания? Ах ты ворюга... охрана! Охрана!» После этого охрана должна будет подойти к месту последнего нахождения ГГ, но у этой механики много недоработок. Зачем всё это? Видимо, предполагалось, что товарные ящики будут стоять рядом с торговцами, а не за пределами карты. Или стояли там в ранних билдах.
Ещё один общий баг: всем чётырем торговцам забыли прописать перемещение товара на тело в момент смерти. Так что если вы захотите устроить геноцид в Городе Убежища, то добычи с торговцев вам не видать.
Броккен-Хиллс
Местные торговцы: Док, Джейкоб, Лиз и Билл. Их ящики находятся на севере карты. И до них даже можно добраться. Дело в том, что в сетке перехода слева есть прореха. Нужно подойти вплотную к забору в определённую позицию и кликнуть позади него. ГГ сам найдёт путь. Но можно обойти карту по периметру с другой стороны, сделав полный круг. Это надёжнее, но занимает больше времени.
У всех четырёх торговцев есть личные вещи. Они переносятся в общий ящик на время диалога. Тем самым вещи из рук становятся доступны для кражи после первого диалога и недоступны для торга. У Дока это антирадин и докторский чемоданчик, у Билла боевой нож, у Лиз пистолет 14 мм, у Джейкоба тоже пистолет 14 мм и динамит.
Доку, Джейкобу и Билу забыли прописать возврат товара на тело после смерти. У Лиз эта опция включена, хотя ей-то она меньше всего нужна, так как её ящик находится рядом в магазине. Причём лут оттуда можно выкрасть при удачной проверке скрытности. Это именно проверка навыка, она не учитывает, где находится Лиз и видит ли она ГГ. При неудаче Лиз даёт одно предупреждение, а при повторе вступает в бой.
В товары Дока единожды при первом посещении карты добавляется книга первой помощи. Но регулярно он ею не торгует.
Нью-Рино
Хотя в Нью-Рино самое большое количество торговцев, их ценность крайне низка. Надо сказать, что деньги у них почти не встречаются. У Ренеско бывает всего 250-500 монет, у остальных их вовсе нет (как у Элдриджа) или же они конечны (как у пушеров).
Трое барменов (бары Бишопа, Мордино и Сальваторе) обладают одним скриптом и идентичным составом товара. Отличие только в том, что в баре Мордино продают больше джета. Все три бармена имеют личные вещи, которые можно выкрасть, но нельзя обменять.
Товарный ящик Ренеско изначально забит вещами через маппер, но скрипт ящика переписывает их. В товаре Ренеско будет одна книга скаута и одна аптечка, но регулярно этими вещами он не торгует. При себе Ренеско имеет 57 монет, 2 стимулятора и ментаты, но он ими не торгует (доступны только для кражи).
У Элдриджа два товарных ящика. В первом хранится обычный товар, доступный всем игрокам. Во втором — особый, доступный только членам больших семей. Элдридж держит в руках пистолет 14 мм с патронами, а в слоте брони у него надета бронекуртка. После первого же диалога эти вещи перемещаются в инвентарь с возможностью кражи.
Ти-Рей должен был продавать батарейки и микрореакторы, но этого не происходит по двум причинам. Во-первых, нелепая ошибка в скрипте: в начале диалога ему переносится товар из ящика и тут же переносится обратно. Во-вторых, даже если бы скрипт работал, то товарного ящика на карте попросту нет. Поэтому Ти-Рей торгует только своим личным инвентарём.
У Хулио самое быстрое обновление товара в игре — 12-24 часа. Продаёт только стимуляторы и винт.
Неожиданно, но жена Райта тоже торговец. Каждые 13-15 суток ей добавляется 1 ядер-кола и 1 цветок, а также 1-12 монет. Понять из игры это невозможно, так как опция бартера для неё отключена и при смерти товар в инвентарь не перемещается. В чём был смысл наделять ее торговыми свойствами, остаётся загадкой.
Ящик для пожертвований отца Тулли не товарный по назначению, но работает аналогично. Раз в 7 суток в этом ящике генерируются деньги количеством от 1 до 50, при условии, что отец Тулли жив. Дальше примерно раз в 20 секунд сумма сохраняется в переменную с проверкой изменений. В случае, если денег окажется больше, даётся 3 кармы и 1 репутация, а если меньше — то отнимается. В отличие от торговцев, отец Тулли не перемещает эти деньги для бартера. Но при Интеллекте больше 6 его можно уговорить отдать их, чтобы купить ему выпивки. Он сам отдаст все деньги из коробки без изменений кармы и репутации.
Ещё за торговцев можно принять пушеров, так как у них есть на продажу какая-то мелочь. Но правда в том, что это личный инвентарь, добавленный через редактор карты. Товар не обновляется и украсть его нельзя.
НКР
У бармена Дасти в НКР нет товарного ящика. Его товар создаётся и хранится непосредственно на его теле. Это редкий случай, когда товар можно напрямую выкрасть.
У Бастера в НКР сразу три товарных шкафа. Используя их, мы принудительно входим в диалог для торга. Это первый такой случай по сюжету. Хотя в первом Fallout это была обычная механика. Ранее у Джо в Модоке и Лиз в Броккен-Хиллс мы встречали контейнеры с товаром, но попытка взаимодействия с ними приводила к агрессии торговца. Хотя их можно было обокрасть. И шкафы Бастера тоже можно обокрасть со средней прокачкой навыка. У каждого шкафа свой товар и торговать придётся с каждым отдельно.
Если использовать на шкафы динамит или взрывчатку, Бастер отреагирует особой фразой.
Личные вещи Бастер переносит на время диалога в отдельный ящик. Но этот ящик он создаёт сам, ящика изначально на карте нет. После диалога ящик удаляется из игры.
Деньги Бастер создаёт собственным скриптом в количестве 200-500 штук и затем переносит в первый товарный шкаф. Причём разработчики и здесь облажались с проверкой загрузки карты. Поэтому если выторговать все деньги у Бастера, затем сохранить и загрузить сохранение, то у Бастера вновь появятся деньги. Это можно делать бесконечно (хотя столь малые суммы того не стоят).
Среди товаров Бастера есть ещё одна примечательная вещь — эксклюзивное ружье РедРайдер. Вот только появляется оно исключительно при Удаче 10 с вероятностью 20%.
Ещё один забавный ляп у Бастера — в скрипте первых товарных полок продублирована строка создания микрореактора. Это не имело бы значения, если бы не вероятность товара 50%. Ведь в результате ляпа его шансы ощутимо увеличиваются.
У Дуппо два аналогичных стола с вещами (в исходнике скрипта есть пометка и для третьего, но его нет). Обокрасть столы невозможно. Зато их можно запереть навыком или отмычками, что выглядит полным абсурдом. После торговли все деньги из товара переносятся в рюкзак Дуппо с возможностью кражи. Причём деньги рассчитываются отдельно в скрипте самого Дуппо, а не в товарном ящике. И это всегда ровно 30 монет.
Игуанщик Майки владеет ящиком за пределами карты. Сам ящик формирует только игуану-на-палочке, причём с большим разбросом по количеству — от 10 до 100 каждые 7-14 суток. А вот шашлык и деньги формируются отдельно в скрипте Майки с периодичностью 6-12 суток. Они удерживаются в его рюкзаке с возможностью кражи до момента диалога, затем перекладываются в товарный ящик. Если захотите обокрасть бедолагу, то сначала крадите, а потом говорите. При следующем обновлении товара ситуация повторится. Ещё возможна ситуация, при которой шашлыки и деньги будут добавляться к уже имеющимся, хотя у других торговцев товар всегда ограничен по количеству.
Сан-Франциско
В Сан-Франциско четыре торговца. Работа их магазинов проработана в одной схеме, хотя до того по всей игре мы наблюдали разнобой. Все они ведут торговлю через использование вещей на прилавке, как было принято в первом Fallout. Обворовать их невозможно — любое использование навыков или предметов ведёт к диалогу. Личные вещи торговцы переносят на время диалога в ящик за пределами карты, но у этого ящика нет скрипта, а указатель на него задаётся через поиск по номеру гекса (8966 для Чайнатауна и 14751 для танкера).
В Чайнатауне торговцы принудительно возвращают в свой инвентарь деньги из товара после диалога, что делает их доступными для кражи. На танкере такого не происходит. Зато торговцы на танкере — единственные в игре, у кого вероятность появления денег ниже 100% (у них по 80%).
В магазине «Красные ружья-888» есть вот такая удивительная запись: check_restock_item(PID_BOZAR, 0, 0, 0). Она означает, что в товар должен быть выложен Бозар в количестве 0 с вероятностью 0%.
На танкере есть бармен, который мог бы тоже быть торговцем, судя по бартерной операции в скрипте. Но персонаж не доделан, а диалог с ним заблокирован.
Оригинальная Fallout
Как уже сказано, товарооборот в оригинальном Fallout работал с рядом отличий.
- Чаще хранилище товара являлось объектом магазина и использовалось для входа в бартер. В F2 это практиковалось лишь в Сан-Франциско и НКР.
- Украсть товар в магазинах обычно нельзя, попытка тут же приводила к диалогу с торговцем.
- Почти всегда товар размещался заранее через маппер, в F2 же он почти всегда создавался скриптом.
- Товар не обновлялся со временем и пополнялся только за счёт проданных вещей главного героя.
- Со временем обновлялись только деньги. Причём очень часто (раз в сутки) или даже просто по факту новой загрузки диалога.
Джанктаун. У Киллиана в скрипте есть заметка о четвёртом столе, который должен был располагаться на гексе 27470, но в магазине такого нет, а указанная точка пустует. ▲