Trading system [extension for EasyAPI][ALPHA]


Adds markets to sell and buy items. Use /set-sell-price-globally and /set-buy-price-globally to set prices

Content
16 days ago
1.1 - 2.0
161
Logistics

b Crash on market UI for big prices

a month ago
(updated a month ago)

Краш при открытии интерфейса маркета (на покупку в моем случае). Выглядит как переполнение цифры-слово (word/short int).
Это не твой косяк, это проблема сущности-маркета судя по всему, я видел похожее у других модов.

Тут вообще два момента:
1) почему я вообще смог создать такой высокий прайс через консольную команду? Если есть ограничения прайсов, то отслеживай это на их установке в консоли + при импорте из файла. Мод не должен приводить к крашу игры — это не стабильно для мультиплееров и тд

2) С таким мелким прайсом невозможно толком работать, если задаешь КУЧУ материалов в маркете: от дешевых до дорогих.
Тут есть возможность для оптимизации — у тебя есть мод money printer, который удобен для генерации физических монет для маркетов. Он же вводит другие монеты с большим номиналом. Я думаю, что вместо лимита прайсов 65535 в команде консоли (см пункт №1), тут можно ввести оптимизацию: если стоит мод с печатанием денег (ну или тот, что вводит монеты с другим номиналом), то добавить логику в прайс, если сумма прайса выше 65535:
а) берем монету с самым крупным номиналом, делим прайс на этот номинал, получаем целую часть — отправляем ее в прайс с этим типом монеты, а остаток от деления переходит к следующей монете ниже номиналу
б) повторяем пункт А для следующей монеты, пока не останется оригинальная монета с номиналом == 1, которая и заберет себе остаток.

Если такого мода нет — просто проверять на лимит при установке прайса, или при импорте прайсов из файла.

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


The mod Trading system [extension for EasyAPI] (0.0.14) caused a non-recoverable error.
Please report this error to the mod author.

Error while running event trading_system::on_gui_opened (ID 88)
Value (124880.000000) outside of range. The data type allows values from 0 to 65535 in property tree at ROOT.price[0][1]
stack traceback:
[C]: in function 'add_market_item'
...ading_system__/models/trading_system-extra-stability.lua:654: in function 'add_force_items_for_buy_market'
...ading_system__/models/trading_system-extra-stability.lua:838: in function <...ading_system__/models/trading_system-extra-stability.lua:803>

a month ago

Я бы для удобства ввел ещё пару монет с высшим номиналом.
1000k, 1M, etc.

a month ago

Ещё альтернативное решение под большие прайсы — просто хак, без доп проверок, как сейчас:
- Просто для команд установки прайса сделать не 2 параметра (item + price), а три: item + price + (optional) price_item.

Тогда всё перекладывается на юзера команд (админов):
- Если третьего параметра нет — он использует coin,
- Если третий параметр есть — использует тот item, который указали, вместо монет.

a month ago

offtop: А как оно ведет себя при импорте прайсов из файла, если мы сохранили файл с модами и новыми айтемами, а загружаем, скажем, в ванилле, где этих новых айтемов нету? ИМХО не должно крашится, стоит просто игнорировать такие позиции из файла.

a month ago

ХЗ... короче, ещё раз посмотрел все моды: как-то вся эта тема с монетами выглядит сыро, если смешивать моды.
Не хватает каких-то параметров для выравнивания цены монеты между модами: крупные цены в маркете поставить нельзя, а сама идея унификации монеты в одну виртуальную сущность ломается об лимиты цен в маркетах...
Даже хз что ещё посоветовать.

a month ago
(updated a month ago)

Исправлен баг, разные монеты были введены для удобства их сбора с земли и оптимизации + совместимость с другими модами/сценариями.

a month ago

offtop: А как оно ведет себя при импорте прайсов из файла, если мы сохранили файл с модами и новыми айтемами, а загружаем, скажем, в ванилле, где этих новых айтемов нету? ИМХО не должно крашится, стоит просто игнорировать такие позиции из файла.

Если правильно помню, будет игнорировать.

a month ago
(updated a month ago)

К монетам ещё вернусь.
Скорее всего, сделаю обмен монет по "кнопке" через похожий или тот же функционал.

New response