[RPG Maker MZ 插件] Battlepass System v1.2.0 — 最大自由度、可视化编辑器、每日/每周任务
由 Rpx & Just Dev 制作
先看截图
一款适用于 RPG Maker MZ 的商业级 Battlepass 系统,提供最大自由度:支持任意奖励类型、灵活的付费成本、赛季日期以及完全可视化的编辑器。
这是什么?
此插件将您的 RPG Maker MZ 游戏转变为现代的 Battlepass 体验,类似于《堡垒之夜》(Fortnite)、《爆裂球球》(Brawlhalla) 或任何拥有季节性进度系统的 AAA 级作品。玩家通过游戏获得战斗点数 (BP),通过等级提升解锁奖励,并在免费和高级两条路线上解锁奖励。
功能概览
- 最多 999 级,每级可通过 JS 公式计算所需的 BP
- 两条路线: 免费 + 高级,奖励完全可定制
- 支持 MZ 的任何奖励类型:
- 金币、物品、武器、防具、技能
- 变量、开关、角色、职业
- 经验值、等级、状态
- BGM/BGS/ME/SE、公共事件
- 自定义脚本(JS 执行)
- 每级多个奖励
- 完全可视化的编辑器 — 奖励阶梯、每日/每周任务均为结构化表格,点击行即可编辑(不再需要一行行的 JSON!)
- 灵活的付费成本 — 金币、变量、开关、等级、物品/武器/防具的组合(AND 条件)
- 赛季系统 包含开始/结束日期 + 倒计时(自动/天/周/两者/时:分:秒)
- 每日和每周任务 自动重置,每项任务均提供 BP
- 弹窗通知,可选的主菜单集成
- 插件命令 +
$gameBattlepassAPI
视频教程
观看 YouTube 上的完整设置指南:
youtu be / YOUR_VIDEO_ID (请移除空格)
快速设置
- 将
BattlepassSystem.js复制到js/plugins/文件夹 - 在插件管理器中启用它
- 配置
MaxLevel、BPFormula和RewardData - (可选)设置
PremiumCost/PremiumItemId - 自动添加到菜单或通过插件命令调用:
Battlepass OpenBattlepass - 从事件中授予 BP:
Battlepass AddBP 100
参数概览
| 参数 | 描述 | 默认值 |
|---|---|---|
| MaxLevel | 最高可达等级 | 50 |
| BPFormula | 使用 level 的 JS 表达式 |
100 * level |
| BattlepassName | 标题名称 | Battlepass |
| MenuIcon / AddToMenu | 菜单集成 | 0 / true |
| PremiumCost | 金币价格 | 1000 |
| PremiumItemId | 替代货币 | 0 (禁用) |
| GainBPOnVictory | 胜利时自动获得 BP | false |
| BPAwardPerVictory | 数量或公式 | 15 |
| RewardData / RewardTiers | 可视化阶梯编辑器 | [] |
| SeasonDurationDays | 赛季长度 | 60 |
| SeasonCountdownFormat | 计时器显示 | auto |
| SeasonStartDate | 固定开始日期 | 空 |
| SeasonExpireBehavior | 无 / 重置通知 | none |
| DailyMissions / WeeklyMissions | 可视化任务编辑器 | (示例) |
| DailyResetHour | 每日重置时间 | 5 |
| WeeklyResetWeekday | 每周重置日 | 1 |
| NotificationDuration | 弹窗帧数 | 120 |
| SoundEffectClaim / LevelUp | SE 名称 | Item3 / Up4 |
奖励数据示例
[
{"level":1, "free":[{"type":"gold","value":300}], "premium":[{"type":"item","id":5,"amount":2}]},
{"level":2, "free":[{"type":"weapon","id":3}], "premium":[{"type":"skill","id":10}]},
{"level":3, "free":[{"type":"variable","id":10,"value":1,"mode":"add"}], "premium":[{"type":"switch","id":5,"value":true}]},
{"level":5, "free":[{"type":"commonEvent","id":3}], "premium":[{"type":"script","value":"$gameVariables.setValue(20, 999)"}]},
{"level":10,"free":[{"type":"armor","id":4,"amount":1}],"premium":[{"type":"gold","value":1500},{"type":"item","id":1,"amount":5}]}
]
支持的奖励类型及必填字段:
| 类型 | 必填字段 | 备注 |
|---|---|---|
gold |
value: number |
金币数量 |
item |
id: number, amount?: number |
物品数据库 ID |
weapon |
id: number, amount?: number |
武器数据库 ID |
armor |
id: number, amount?: number |
防具数据库 ID |
skill |
id: number |
队长学习 |
variable |
id: number, value: any, `mode?: “set” |
“add”` |
switch |
id: number, value?: boolean |
默认: true |
commonEvent |
id: number |
也接受 “common_event” / “event” |
script |
value: string |
JS 执行;a=队长, v=变量, s=开关 |
actor |
id: number |
将角色加入队伍 |
class |
actorId: number, classId: number, keepExp?: boolean |
默认 keepExp: true |
exp |
value: number, actorId?: number |
0 = 所有队伍成员 |
level |
value: number, actorId?: number |
0 = 所有队伍成员 |
state |
id: number, actorId?: number |
0 = 所有队伍成员 |
bgm / bgs / me / se |
name: string |
音频文件名 |
任务示例
每日任务:
[
{"id":"d1","name":"战士的职责","desc":"赢得 3 场战斗","type":"win_battle","target":3,"bp":30,"icon":76},
{"id":"d2","name":"寻宝猎人","desc":"赚取 500 金币","type":"earn_gold","target":500,"bp":25,"icon":314},
{"id":"d3","name":"杀戮者","desc":"击败 10 个敌人","type":"kill_enemies","target":10,"bp":40,"icon":16}
]
每周任务:
[
{"id":"w1","name":"老兵","desc":"赢得 15 场战斗","type":"win_battle","target":15,"bp":120,"icon":160},
{"id":"w2","name":"富有与名声","desc":"赚取 5000 金币","type":"earn_gold","target":5000,"bp":150,"icon":314}
]
任务类型:
win_battle— 赢得 X 场战斗kill_enemies— 击败 X 个敌人earn_gold— 赚取 X 金币gain_item— 获得 X 物品use_item— 使用 X 物品gain_bp— 获得 X BPcustom— 使用插件命令或脚本调用
插件命令 (MZ 1.5+)
| 命令 | 示例 | 描述 |
|---|---|---|
Battlepass AddBP |
Battlepass AddBP 100 |
添加 BP |
Battlepass RemoveBP |
Battlepass RemoveBP 20 |
移除 BP (有下限) |
Battlepass SetBP |
Battlepass SetBP 350 |
设置 BP 绝对值 |
Battlepass SetLevel |
Battlepass SetLevel 10 |
跳转到指定等级 |
Battlepass AddLevel |
Battlepass AddLevel 5 |
增加等级 (负数则减少) |
Battlepass SubtractLevel |
Battlepass SubtractLevel 3 |
减少等级 |
Battlepass UnlockPremium |
— | 立即授予高级会员 |
Battlepass SetPremium |
Battlepass SetPremium true/false |
启用/禁用高级会员 |
Battlepass ResetBattlepass |
— | 清除进度 (用于测试) |
Battlepass OpenBattlepass |
— | 打开 Battlepass 场景 |
Battlepass OpenMissions |
— | 打开任务场景 |
Battlepass AddMissionProgress |
Battlepass AddMissionProgress kill_enemies 5 |
推进任务类型进度 |
Battlepass ClaimMission |
Battlepass ClaimMission d1 |
按 ID 领取任务奖励 |
Battlepass ResetDaily |
— | 强制重置每日任务 |
Battlepass ResetWeekly |
— | 强制重置每周任务 |
Battlepass SetSeasonDays |
Battlepass SetSeasonDays 30 |
覆盖赛季天数 |
Battlepass AddSeasonDays |
Battlepass AddSeasonDays 7 |
增加/减少赛季天数 |
脚本调用
$gameBattlepass.addBP(100)
$gameBattlepass.removeBP(20)
$gameBattlepass.setBP(350)
$gameBattlepass.setLevel(10)
$gameBattlepass.addLevel(5)
$gameBattlepass.subtractLevel(3)
$gameBattlepass.isPremium() // 布尔值
$gameBattlepass.getLevel() // 数字
$gameBattlepass.getBP() // 数字
$gameBattlepass.getProgress() // {level, bp, need, ratio, nextLevel}
$gameBattlepass.claim(level, track, index) // track "free"|"premium"
$gameBattlepass.claimAll() // 领取所有当前可用的奖励
$gameBattlepass.reset() // 同 ResetBattlepass
$gameBattlepass.getSeasonInfo() // {days, weeks, remainingMs, isExpired, ...}
$gameBattlepass.getDailyMissions() // 任务对象数组
$gameBattlepass.getWeeklyMissions() // 任务对象数组
$gameBattlepass.addMissionProgress(type, amount, extra)
$gameBattlepass.claimMission(id)
$gameBattlepass.resetDaily()
$gameBattlepass.resetWeekly()
// 别名
BattlepassSystem.isPremium()
BattlepassSystem.open() // OpenBattlepass
BattlepassSystem.openMissions()
战斗公式说明
BPAwardPerVictory 可以是固定数字或 JS 公式:
可用变量:
enemyLevel— 敌人等级 (来自敌人元数据或默认 1)level— enemyLevel 的别名a—$gameParty.leader()b— 敌人战斗单位troop— 队伍数组
示例:
"12"— 每个敌人固定 12 BP"enemyLevel * 5 + 10"— 随敌人等级缩放"Math.floor(a.level * 0.5) + troop.length * 2"— 基于队长等级和队伍大小
键盘快捷键
| 按键 | 操作 | 参数 |
|---|---|---|
Shift |
领取所有奖励 | KeyClaimAll |
P |
购买高级会员 | KeyBuyPremium |
M |
打开任务 | KeyOpenMissions |
Q / W |
切换标签页 (左/右) | KeyTabLeft / KeyTabRight |
Space / Enter |
确认 / 领取 | KeyConfirm |
Esc |
取消 / 关闭 | KeyCancel |
所有按键均可通过插件参数完全自定义。
主题
插件包含 8 种内置主题:
- 默认深色
- 浅色
- 午夜蓝
- 皇家紫
- 翡翠绿
- 深红
- 金色
- 青色霓虹
- 极简主义
您还可以通过 VisualConfig.json 使用自己的颜色创建自定义主题。
参数参考
(来自插件帮助文件的完整参数列表)
| 参数 | 类型 | 默认值 | 描述 |
|---|---|---|---|
| MaxLevel | number | 50 | 最高 Battlepass 等级 |
| BPFormula | string | 100 * level | 计算 BP 需求的 JS 表达式 |
| BattlepassName | string | Battlepass | 标题名称 |
| MenuIcon | number | 0 | 菜单条目图标 |
| AddToMenu | boolean | true | 在主菜单中添加命令 |
| MenuText | string | Battlepass | 菜单标签 |
| MenuPosition | number | 4 | 菜单命令位置 |
| PremiumCost | number | 1000 | 金币成本 |
| PremiumItemId | number | 0 | 替代货币物品 ID |
| PremiumItemAmount | number | 1 | 所需数量 |
| GainBPOnVictory | boolean | false | 战斗后自动奖励 BP |
| BPAwardPerVictory | string | 15 | 数字或 JS 公式 |
| RewardData / RewardTiers | struct | 可视化阶梯编辑器 | |
| NotifyOnLevelUp | boolean | true | 显示升级弹窗 |
| NotifyOnRewardUnlock | boolean | true | 显示奖励弹窗 |
| NotificationDuration | number | 120 | 弹窗停留帧数 |
| NotificationPosition | select | top | top / bottom / center |
| SoundEffectClaim | string | Item3 | 领取音效 |
| SoundEffectLevelUp | string | Up4 | 升级音效 |
| LevelUpCommonEvent | number | 0 | 升级时的事件 |
| SeasonDurationDays | number | 60 | 赛季长度 |
| SeasonCountdownFormat | select | auto | auto / days / weeks / both / hms |
| SeasonStartDate | string | (空) | YYYY-MM-DD |
| SeasonEndDate | string | (空) | YYYY-MM-DD |
| SeasonExpireBehavior | select | none | none / reset_notify |
| PremiumCosts | struct | 灵活的成本列表 | |
| DailyMissions / WeeklyMissions | struct | (示例) | 可视化任务编辑器 |
| DailyMissionsData / WeeklyMissionsData | struct | 额外任务 | |
| DailyResetHour | number | 5 | 0-23 |
| WeeklyResetWeekday | number | 1 | 0=周日..6=周六 |
| MissionCompleteSE | string | Item2 | 任务完成音效 |
| ConfirmTitle / Desc / Yes / No | string | (各种) | 对话框自定义 |
| KeyClaimAll / BuyPremium / etc. | string | (各种) | 键盘按键 |
故障排除
AddBP 没有任何反应:
检查是否已达到 MaxLevel,或 BPFormula 返回 0/NaN — 控制台将发出警告并回退到100*level。
奖励未显示:
使用在线验证器验证 RewardData JSON;控制台会对格式错误的条目发出警告,但不会崩溃。
没有 Battlepass 的旧存档:
首次加载时自动迁移到默认值。
图标/声音缺失:
优雅地回退到 0 / 静音。
超宽屏上的视觉故障:
场景动态使用Graphics.boxWidth/Height。
下载
下载: (描述中的链接 / 附件文件)
作者网站: rpxgames.win
致谢
创建者: Rpx & Just Dev
网站:rpxgames.win
使用条款:
- 免费用于商业和非商业项目
- 需要署名
- 不得重新分发或转售
链接
插件网站: rpxgames.win/
YouTube 教程: https://www.youtube.com/watch?v=XYFTDyimx4c
itchio https://r-px.itch.io/battlepass-system-for-rpg-maker-mz
感谢您使用 Battlepass System!如果遇到任何问题或有建议,请告诉我们。 ![]()



