原创地址Shoppy Stock – 插件 – Codefling
关于 Shoppy Stock
RUST 插件测试服务器
在那里测试我的插件!
连接 play.thepitereq.ovh:28050
Shoppy Stock 是一个功能强大且用途广泛的经济系统,旨在通过商店、股票市场、转账、交易所和存款功能来丰富您的 Rust 服务器。
此插件可以轻松创建具有独特货币的多个商店,使用商品列表设置动态股票市场,并管理完全可定制的服务器销售中心——以及更多高级选项。
插件包 (zip) 包含:
- ShoppyStock 插件
- ShoppyConverter 插件 (将 1.x 配置转换为 2.0 配置)
全球
- 包括超过 17 个详细的 Rust 主题 GUI 窗口。
- 针对性能进行了优化 —作是轻量级的,不会给您的服务器带来负担。
- 高度可扩展,仅受您的想象力限制。
- 通过 PopUp API 提供完全可定制的弹出消息。
- 为货币管理提供全面的命令和 API 支持。
- 所有消息和项目都提供完整的语言支持。
- 支持 NoEscape 集成。
- 完成 UI 颜色定制。
- 商店和股票市场的 NPC 交互支持。
- 页面记忆功能会在重新打开时记住您在商店中的位置。
- 向物品存款和从物品中存入和提取货币。
- 不同类型之间的货币兑换。
- 内置货币排行榜。
商店
- 创建多个商店,每个商店使用不同的货币。
- 从其他经济插件轻松导入您的旧货币。
- 使用自定义图标将项目组织成类别,以实现无缝浏览。
- 所有类别的统一搜索栏。
- 准确购买您需要的物品数量。
- 完全自定义项目支持。
- 如果货币是基于物品的,则允许以虚拟货币的形式存入商店,并允许提款回物品。
- 可针对每个作配置的精细权限系统。
- 每日或擦除购买限制。
- 购买冷却时间。
- 可配置的折扣系统。
- 带有可自定义列表的随机报价轮换。
- 累进定价 — 每次购买的价格可以按设定值或乘数增加。
股票市场
- 创建具有不同货币的多个市场。
- 用于快速访问的 Favorite items 选项卡。
- 自动列出所有支持黑名单的原版 Rust 项目。
- 多种排序选项,实现更好的市场管理。
- 购买和出售请求创建。
- 可配置的服务器销售价格历史记录。
- 基于权限的限制,每个玩家可以创建多少列表。
- 房源可以免费取消、退款或退回市场。
- 可定制的市场行为税。
- 支持额外的物品信息,例如耐久度和植物基因。
- 定时价格滚动以在设定的时间调整价格。
- 基于需求的定价,根据项目受欢迎程度进行调整(消息需要 DiscordCore)。
- 带有价格计算器的高级销售中心,使用超过 15 个变量(例如,销售量、在线玩家数量)。
- Stock Market Broker 系统——玩家可以在离线时存储或退款物品、设置提醒价格,甚至自动出售资源。
- 自定义类别和完整的自定义项目支持。
- Web API 支持价格检查或集成到服务器工具中(需要 Web 服务器)。
- 用于微调您的经济的统计模块。
- 具有可配置可用性持续时间的定时列表。
- 能够回购出售给市场的资源。
- 根据上架时间上架税。
- 动态价格历史图表。
- 每个项目的服务器购买/卖出报价的单独配置。
- 生成历史价格数据。
转移
- 向其他玩家发送货币,无论他们是在线还是离线。
- 可配置的转账限额和税费。
以下核心权限是静态的,无法更改。但是,配置文件包含数百个可自定义的权限,几乎涵盖所有作。
- shoppystock.admin – 授予对管理员命令和管理工具的完全访问权限。
所有命令都可以在配置中完全自定义。以下是插件中包含的默认命令:
- /shop 或 /s — 打开 Shoppy Stock 主界面。
- /adminshop — 打开管理员商店管理面板。(在 2.1 版中提供)
- /deposit — 打开货币存款清单。
- /mshop 或 /goldshop — 打开特定商店。
- /market — 打开特定货币的股票市场界面(默认为 “money”)。
- /sell — 打开出售库存以直接向服务器出售物品(默认为 “money”)。
- /list — 打开界面以在股票市场上列出新项目(默认为 “money”)。
- /bank — 打开特定股票市场的银行界面(默认为 “money”)。
- /stockcode <code> — 使用列表所有者共享的代码显示专属列表。
- updateprices — 控制台命令,显示有关股票市场中项目价格滚动或更新的详细信息。
Shoppy Stock 具有强大的功能,第一次配置所有内容可能会让人不知所措。
本指南提供了一个快速演练,可帮助您入门并了解插件的关键部分。
可选的 Supported Currency Plugins
- 经济学
- 服务器奖励
- 银行系统
- IQ经济
从 V1 迁移到 V2。
Shoppy Stock V2 几乎完全从头开始重写,重用了不到 10% 的旧代码。
新配置经过重新设计,更加直观且功能丰富。
为了帮助您迁移,请使用提供的 ShoppyConverter,它可以将大约 95% 的旧配置和数据文件转换为新格式。
转换后,请务必仔细检查您的新配置 — V2 包含数十个新选项,这些选项不会自动调整到您的首选设置。
如何转换:
- 将 ShoppyConverter.cs 放在 plugins 文件夹中。
- 按照控制台说明将文件移动到所需位置。
- 根据提示执行 conversion 命令。
- 转换后,按照指示将新文件放在正确的文件夹中。
配置文件
该插件的广泛功能分为多个文件和文件夹:
- /config/ShoppyStock.json
包含货币、商店、股票市场和全局选项的默认设置的主配置。 - /data/ShoppyStock/playersData.json
存储全局插件数据和玩家货币。 - /data/ShoppyStock/Shops/Configs/<shopName>.json
商店配置,包括可用的类别和商品。 - /data/ShoppyStock/Shops/Statistics/
有关每日限制、独特购买等的数据。 - /data/ShoppyStock/StockMarkets/Configs/<stockName>.json
股票市场配置。 - /data/ShoppyStock/StockMarkets/Listings/
玩家买卖优惠。 - /data/ShoppyStock/StockMarkets/PlayerData/
提醒数据、收藏夹、银行物品等。 - /data/ShoppyStock/StockMarkets/PriceCache/
历史价格数据和当前服务器售价。 - /data/ShoppyStock/StockMarkets/Statistics/
出售给服务器的物品和赚取的总货币的数据。
主要配置亮点
Web API
您可以使用 Web API 在您的网站上显示市场价格。
需要支持 PHP 的虚拟主机。
单击此处下载 apiupdate.php。
将其放在 “Web Price API – Link” 配置设置的目录中。
确保它有权创建 api.html。
生成的文件可通过 <Web Price API – Link>/api.html 访问。
服务器销售物品 → 默认销售金额计算 (DSAC)
DSAC 帮助根据服务器的玩家活动定义一段时间内售出的平均物品数量。该期间为 1 个价格展期时间。
示例:一个拥有 ~20-30 名玩家的 PvE x10 服务器可能会将 wood 的 DSAC 设置为 1,800,000 — 根据我的一些计算,但请根据您自己的统计数据和服务器需求进行调整。
始终在小时分钟
上运行计时器 控制插件何时滚动股票价格。
例如:
- 值:0、30、60 → x:00 或 x:30 滚动。
- 值:0、20、40、60 → x:00、x:20 或 x:40 滚动。
股票市场 – 默认类别
默认情况下,股票市场包括以下类别:
- 收藏夹
- 我的房源
- 岸
- 所有项目
在配置中使用这些代号来自定义显示顺序。
项目 – 自定义详细信息 (skinId: languageKey)
您可以在列表中添加自定义信息标签(类似于显示工具条件或克隆基因)。
例如,将某些项目标记为“升级成分”。
兑换库存名称
确保在 RedeemStorageAPI 中创建具有此名称的存储 — 否则,某些作中的项目可能会消失,并且可能会发生错误。
生成包含所有原版物品
的商店配置要自动将所有原版 RUST 物品添加到商店:
- 在 /config/ShoppyStock.json 中,在所需的 shop 部分中将 Generate Config With All Default RUST Items 设置为 true。
- 删除 /data/ShoppyStock/Shops/Configs/ 中已有的商店配置文件。
- 重新加载插件 – 这将生成一个包含所有默认项目的新配置。
Shop Data Config 亮点
商店物品 – 命令
在命令中支持几种类型的动态变量:
- {userId} →买家的 Steam ID
- {userName} →买家的昵称
- {userPosX}、{userPosY}、{userPosZ} →买家的坐标
有关需求系统、价格乘数、股票市场趋势和开发人员 API 的常见问题的答案的集合。
乘数事件和需求系统
Q: 需求系统是如何运作的?什么是“重量”?
A: 需求系统使用主配置中定义的 “Multiplier Events”。每个事件都有一个权重,该权重决定了它在价格滚动期间被选择的机会。需求出现的频率在您的股票市场文件中配置:/data/ShoppyStock/StockMarket/Configs/<shopName>.json。确保 main config 和 stock market config 中的名称完全匹配。
问:“最小”和“最大”如何运作?
答:这些定义了随机价格乘数的范围。
示例:如果最小值为 1.4,最大值为 1.8,原始价格为 1.4,则最终滚动乘数可能是 ~1.685,→最终价格变为 2.359≈。
如果随机滚动高于 max 或低于 min,则将其限制为 min/max。
股票市场 – 时间戳和趋势
问:时间戳是用来做什么的?
答:该插件存储历史价格数据,这些数据会显示在图表中,供具有正确权限的玩家使用。
提示:即使您现在不打算显示玩家,也可以设置一个合理的时间戳保留值,这样您就可以尽早开始收集有用的数据。
数据文件夹,股票市场配置
Q:阻止的乘数列表键
A:您希望从权限价格乘数中排除的某些项目。
价格计算器
Q:价格变化 – 价格波动百分比
A:添加随机的小幅价格变化,以便在没有其他事件运行时保持市场真实。
Q: 价格变化 – 相同的价格作最小值/最大值
A: 控制价格必须按顺序上涨或下跌的滚动次数,使趋势看起来更自然。
Q: 价格变化 – 根据当前价格百分比
增加的机会 A: 这是运行上面列出的作的机会。它以 “<价格百分比> 制作:<价格增加机会 (百分比)>格式。它旨在使价格在低时更容易走高,在价格高时更难。
Q: 降价 – 卖出金额惩罚乘数
A: 当许多物品快速售出时,价格会变为负数×惩罚乘数,使其下降得更快。
Q: 降价 – 售出数量 最高价格罚款
A: 如果售出大量商品(例如,10000% 的 DSAC),则价格将被锁定在一段时间内原始价值的 25%(例如,24 次价格滚动)。
Q: 价格上涨 – 未实现
DSAC A: 当商品需求过低(DSAC 售出 <100%)时,价格上涨速度会更快,以鼓励农业,例如,上涨 1.5 倍。
Q: 默认销售金额计算 – 玩家在线乘数
A: 根据当前玩家数量自动扩展 DSAC(检查每个价格滚动)。如果在线人口差异很大,则很有用。
Q: 价格乘数 – 事件
之间的最小时间距离 A: 设置乘数事件之间的冷却时间以避免价格飙升。
Q: 价格乘数 – 根据售出量
出现的机会 A: 当售出少量或许多物品时,让乘数更频繁地触发。
Q: 价格乘数事件
A: 定义 price-increase/decrease 事件应持续多少次价格波动。
服务器销售物品
Q: 什么是价格父系统?
答:允许您设置基础物品(例如,金属矿石)和精炼物品(例如,金属碎片),以便碎片始终比矿石更有价值,从而促进精炼。
- int GetCurrencyAmount(string shopName, BasePlayer player) – 返回玩家的余额,四舍五入到整数。如果未找到,则返回 0。
- int GetCurrencyAmount(string shopName, ulong userId) – 返回玩家的余额,四舍五入到整数。如果未找到,则返回 0。
- float GetCurrencyAmountFloat(string shopName, BasePlayer player) – 返回玩家的余额。如果未找到,则返回 0。
- float GetCurrencyAmountFloat(string shopName, ulong userId) – 返回玩家的余额。如果未找到,则返回 0。
- bool TakeCurrency(string shopName, BasePlayer player, int amount) – 接受玩家货币。如果采用,则返回 true,否则返回 false。
- bool TakeCurrency(string shopName, BasePlayer player, float amount) – 接受玩家货币。如果采用,则返回 true,否则返回 false。
- bool TakeCurrency(string shopName, ulong userId, int amount) – 接受玩家货币。如果采用,则返回 true,否则返回 false。
- bool TakeCurrency(string shopName, ulong userId, float amount) – 接受玩家货币。如果采用,则返回 true,否则返回 false。
- void GiveCurrency(string shopName, ulong sellerId, int amount) – 提供玩家货币。
- void GiveCurrency(string shopName, ulong sellerId, float amount) – 提供玩家货币。
- string FormatCurrency(string shopName, BasePlayer player) – 返回玩家的格式化余额。
视频配置
包含视频上显示的所有配置文件。
我的私有配置是为我的目的创建的。
注意:许多自定义项目功能不会直接在您的服务器上工作,它们特定于作者的私有设置。
默认主配置
点击这里!
默认商店数据配置
点击这里!
默认股票市场数据配置
点击这里!
暂无评论内容