04 商品与礼包:配置、购买与发货规则
商品和礼包是玩家最常用的商城功能。后台配置时,重点是让管理清楚:价格扣哪里、代码怎么写、玩家什么时候能看见、发货会怎样执行。
入口:
商城后台 -> 商品管理
商城后台 -> 礼包管理示例视频预留
这里后续可放“新增商品和礼包”的视频,例如:/mp4/newwebdoc/04-shop-gift.mp4
一、商品管理是什么
商品是玩家直接购买的单个商品或套餐。玩家在商城前端购买后,后端会:
- 检查玩家是否登录。
- 检查会员等级是否满足商品要求。
- 检查余额是否足够。
- 扣除对应货币。
- 把发货提示和 RCON 命令写入发货队列。
商品支持两种货币:
| 货币类型 | 扣款方式 |
|---|---|
| 商城币 | 直接扣 user.金币数量 |
| 美金 | 先根据数据库同步的 user.游戏美金 判断余额,再通过 RCON 发送扣美金命令 |
如果货币类型为空,默认按商城币处理。
二、商品字段怎么填
| 字段 | 说明 |
|---|---|
| 分类 | 玩家前端按分类展示,可带表情 |
| 商品名称 | 玩家看到的商品名 |
| 代码 | 实际发货 RCON 命令或聊天提示 |
| 价格 | 购买所需金额 |
| 会员限制等级 | 玩家会员等级不足时不能购买 |
| 货币类型 | 商城币或美金 |
| 图片路径 | 商品图片路径,可上传或填写已有路径 |
会员限制等级
商品购买限制是整数等级对比。
示例:
商品会员限制等级 = 3
玩家会员等级 = 2玩家不能购买,会提示会员等级不足。
商品会员限制等级 = 3
玩家会员等级 = 3玩家可以购买。
三、商品代码怎么写
1. 普通单件商品
后台填写:
#spawnitem Car_Jack玩家购买数量为 3 时,后端会按购买数量构造发货命令。普通刷物品命令一次最多建议发 10 个,超过 10 个时系统会拆成多条命令,避免 SCUM 命令数量过大导致失败。
2. 套餐商品
套餐商品用英文逗号分隔多条命令:
#spawnItem Break_Oil 1,#spawnItem Gasoline_Canister 2,#spawnItem BeePollen_Pils_03 5如果玩家购买 3 套,不是把每条命令数量乘 3,而是发送 3 轮套餐。也就是总共 9 条命令:
#spawnItem Break_Oil 1
#spawnItem Gasoline_Canister 2
#spawnItem BeePollen_Pils_03 5每套重复一次。
3. 带 * 占位的商品
有些命令中 * 是数量占位,管理不要随便改。
示例:
#spawnitem Magazine_AK15 * AmmoCount 30 Location玩家买几个,系统会替换 * 为实际数量,并补上玩家 SteamID 或位置。
注意:满弹夹、特殊占位商品不要再手工乘购买数量,否则容易发错。
4. 聊天提示
商品代码里也可以包含聊天提示。
示例:
#spawnitem Hiking_Backpack_01_01,感谢你的购买以 # 开头的会走 RCON 命令;不以 # 开头的会走聊天提示。
四、美金商品如何扣款
如果商品货币类型是美金,玩家购买时会先检查数据库中的 user.游戏美金。
扣款实际通过 RCON 命令完成:
#ChangeCurrencyBalance Normal -金额 SteamID注意:
- 本地
游戏美金主要用于购买前判断余额。 - 真正的游戏账户扣款仍以 RCON 命令为准。
- 如果 RCON 不在线,建议不要开放美金商品购买。
五、礼包管理是什么
礼包是玩家按规则领取的一组奖励。礼包可以包含:
- 礼包代码:直接写 RCON 命令或聊天提示。
- 商品代码:引用商品管理里的商品 ID 和数量。
- 领取次数限制。
- 会员等级限制。
- 礼包类型限制。
- 价格。
- 重置周期。
玩家领取礼包后,后端会检查规则,通过后把礼包内容写入 RCON 队列。
领取通过后,系统会先发送一条“礼包即将发货”的提示,再发送具体礼包代码。这样玩家更容易理解“已领取”和“正在发货”之间的短暂间隔。
六、礼包字段怎么填
| 字段 | 说明 |
|---|---|
| 礼包名称 | 唯一名称,玩家领取时也会用到 |
| 礼包代码 | 每行一条直接发货代码 |
| 商品代码 | 引用商品表,按商品 ID 发货 |
| 等级限制 | 玩家会员等级限制 |
| 总可领取次数 | 每个玩家总共可领取多少次 |
| 每日领取次数 | 每个玩家每天可领取多少次 |
| 礼包价格 | 领取礼包需要扣除的商城币 |
| 礼包类型 | 控制谁能看见和领取 |
| 重置天数/时间 | 用于自动重置领取次数 |
新版礼包编辑弹窗增加了商品选择抽屉。管理可以直接搜索商品并加入礼包,系统会生成商品代码预览。
商品选择抽屉适合不熟悉商品 ID 的管理使用;如果你已经知道商品代码,也可以继续直接填写文本。
礼包分类可以留空。系统会过滤 <nil>、nil、null、undefined 这类无效分类,避免玩家前端出现看不懂的分类。
七、礼包代码与商品代码的区别
礼包代码
礼包代码是直接发到 RCON 队列的内容。
示例:
#spawnitem Bread 1 Location
#spawnitem Water_Bottle 1 Location
欢迎领取新手礼包商品代码
商品代码是引用商品管理里的商品。
格式类似:
51|裤子一熊|/服装/4951.png|1
52|裤子一施工样式1|/服装/4955.png|1含义通常是:
商品ID | 商品名 | 图片 | 发放数量系统会根据商品 ID 去商品表里读取真实发货代码,再按数量发放。
八、礼包类型说明
| 类型 | 可见和领取规则 |
|---|---|
| 普通礼包 | 玩家会员等级大于等于礼包要求等级即可看见和领取 |
| 每日礼包 | 通常用于每日福利,按每日次数控制 |
| 小队礼包 | 只有同小队相关玩家可见和领取 |
| 私人礼包 | 只允许指定玩家看见和领取 |
| 称号礼包 | 需要玩家拥有指定称号才可领取 |
有价格的礼包会应用会员“礼包折扣”。折扣是百分比,例如 80 表示按 80% 价格扣商城币。
私人礼包
私人礼包有两种兼容方式:
- 礼包类型明确设置为私人礼包。
- 礼包名称前 17 位是 SteamID。
示例:
76561199174639885橘橘礼包这种礼包只有该 SteamID 玩家可以看到和领取。
称号礼包
称号礼包用于做“拥有某称号才可领取”的福利。
注意:
- 商品本身不建议再和称号条件绑定。
- 称号相关领取条件应优先放在礼包、通行证、通用回收等系统里。
九、玩家游戏内领取礼包
玩家可以在游戏聊天中发送:
@领取礼包名例如:
@领取新手礼包游戏内领取和网页领取应走同一套礼包规则,包括次数、会员等级、礼包类型和发货逻辑。
十、游戏内购买商品
玩家也可以在游戏聊天中发送:
@购买商品名
@购买商品名*数量
@购买商品编号*数量示例:
@购买背包*2
@购买51*1游戏内购买与网页购买的区别:
| 项目 | 网页购买 | 游戏内 @购买 |
|---|---|---|
| 登录要求 | 需要网页登录 | 来自游戏聊天事件 |
| 在线要求 | 会检查在线玩家表 | 玩家能发言通常代表在线 |
| 数量 | 前端按页面输入 | *数量,通常限制最大 10 |
| 查询方式 | 按商品列表选择 | 支持商品名或商品编号 |
| 发货 | 写入 RCON 队列 | 写入 RCON 队列 |
如果玩家问“为什么网页提示请先进入服务器在线后再购买”,可以解释:网页购买会检查玩家是否在线,防止扣款后无法贴脸发货;游戏内 @购买 本身来自在线聊天,所以判断方式不同。
十一、补发礼包
后台礼包管理支持管理补发。
补发适合:
- 玩家反馈已领取但未收到。
- RCON 断线导致发货异常。
- 管理活动手动补偿。
注意:
- 管理补发通常不计入玩家正常领取次数。
- 补发前最好确认玩家在线。
- 补发后可到数据面板的发货记录查看队列情况。
示例视频预留
这里后续可放“礼包补发和发货记录排查”的视频,例如:/mp4/newwebdoc/04-gift-resend.mp4
十二、常见错误
1. 商品代码没有 #
不以 # 开头会按聊天提示发送。如果本来是命令,必须以 # 开头。
2. 中文逗号分隔代码
套餐商品应使用英文逗号:
#spawnitem A 1,#spawnitem B 1不要使用中文逗号:
#spawnitem A 1,#spawnitem B 13. 美金商品余额显示不准
美金余额来自 RCON 在线玩家数据同步。如果玩家刚变动美金,数据库可能有短暂延迟。建议等下一次在线数据刷新后再判断。
4. 礼包分类能看到但礼包看不到
如果分类存在,但分类下礼包不可见,通常是正常的规则过滤,例如私人礼包、小队礼包、称号礼包或会员等级限制。新版前端会尽量隐藏空分类,但如果遇到残留显示,优先检查礼包类型和可见规则。
十三、玩家可能会问
玩家说:我看不到某个礼包?
先确认礼包类型。私人礼包、小队礼包、称号礼包、会员等级礼包都会过滤可见范围。管理可以在后台看礼包类型和礼包名称前 17 位是否是 SteamID。
每日礼包和普通礼包也有不同规则:每日礼包更偏固定等级福利,普通礼包一般要求玩家等级大于等于礼包要求等级。
玩家说:礼包领取提示成功,但物品没在身边?
礼包可能包含多条代码,或者商品代码引用了商品表。先查发货记录,确认是否全部写入队列;再看 RCON 是否在线、玩家是否在线、代码是否使用了 Location SteamID。
玩家说:美金商品扣了但余额显示没变?
美金实际通过 RCON 命令扣款,网页中的游戏美金余额来自 RCON 在线玩家数据同步。余额显示可能要等下一次在线数据刷新。
玩家说:买多件商品为什么发了很多条命令?
套餐商品会按套数重复发送;普通商品超过 10 个会拆分多条命令。这是为了兼容 SCUM 单条刷物命令数量限制。
玩家说:@购买 为什么提示找不到商品?
先确认玩家输入的是商品名还是编号。编号要对应商品管理里的商品编号;商品名要尽量完整,避免重名或分类名被误当商品名。
玩家说:@领取 可以用礼包编号吗?
可以。玩家可用礼包名称,也可用礼包编号。但私人礼包仍会检查 SteamID,小队礼包仍会检查小队规则。
十四、本章检查清单
- 商品价格、货币类型、会员限制已设置正确。
- 商品代码以英文逗号分隔,命令以
#开头。 - 美金商品确认 RCON 正常且美金同步正常。
- 礼包名称唯一。
- 礼包类型符合预期。
- 私人礼包前 17 位 SteamID 正确。
- 网页领取和
@领取礼包名都能走同一套规则。