weplay_go_heart
SKILL.md
威仔GO心动日记活动配置生成器
根据运营需求文档,自动生成威仔GO心动日记活动的 JSON 配置。
配置文件说明
心动日记需要生成 3 个配置文件:
| 文件 | 用途 | 模板 |
|---|---|---|
activity_config.json |
活动主配置 | references/activity_config.json |
gift_box_config.json |
礼盒连击配置 | references/gift_box_config.json |
random_coin.json |
随机返金配置 | references/random_coin.json |
必要信息收集
启动时检查以下信息,缺少则询问:
| 信息 | 说明 | 获取方式 |
|---|---|---|
| 活动ID (act_id) | 后台创建活动后获得的数字ID | 必须由用户提供 |
| 所属区服 | 决定 project_id、碎片名称翻译 | 优先从文档标题/内容推断 |
| 飞书需求文档 | 包含活动期数、时间、奖励的运营文档 | 飞书链接或直接粘贴内容 |
区服映射表
| 区服名称 | region | project_id | 碎片1名称(心動值) | 碎片2名称(心動寶箱) |
|---|---|---|---|---|
| 华服 | C | 435 | 心動值 | 心動寶箱 |
如需其他区服,请根据实际情况补充 project_id 和碎片名称翻译。
activity_config.json 结构说明
collect_chip(3个碎片)
| chip_id | fe_id | name | 用途 |
|---|---|---|---|
| 1 | 1 | 心動值 | 抽奖消耗、收礼奖励 |
| 2 | 2 | 心動寶箱 | 不放回抽奖大奖、兑换英雄消耗 |
| 3 | 3 | 碎片提醒标记 | 访问页面标记 |
chip_notify(2个通知)
| fe_id | chip_id | chip_num | forward | message_config_key |
|---|---|---|---|---|
| 1 | 3 | 0 | 43200 | last_12h_msg_period[N] |
| 2 | 1 | 1 | 7200 | chip_notify_key(固定) |
exchange_store(宝箱兑换英雄)
消耗 心動寶箱(chip_id=2, chip_num=1) 兑换英雄:
| fe_id | 英雄 | 附赠道具 | 返还心動值 |
|---|---|---|---|
| 1 | 英雄1 ID | prop ID (val=7) | 默认58 |
| 2 | 英雄2 ID | prop ID (val=7) | 默认58 |
| 3 | 英雄3 ID | 无 (默认无) | 默认108 |
附赠道具prop ID 、 val 、返还心動值数量以文档为准,文档未指定则使用默认值。
lottery(3个奖池)
| fe_id | type | name | 说明 |
|---|---|---|---|
| 1 | gift_box_no_repeat |
不放回奖池 | 主抽奖,有7级消耗梯度 |
| 2 | h5_show_list |
展示奖池 | 前端展示用 |
| 3 | h5_show_list_all |
全部展示奖池 | 包含所有奖励 |
不放回奖池 level_cost_chip_meta_list(7级消耗梯度,默认值):
| level | chip_num(心動值消耗) |
|---|---|
| 1 | 默认8 |
| 2 | 默认20 |
| 3 | 默认40 |
| 4 | 默认70 |
| 5 | 默认120 |
| 6 | 默认280 |
| 7 | 默认590 |
消耗梯度以文档为准,文档未指定则使用默认值。
不放回奖池最后一个奖励为心動寶箱(collect_chip chip_id=2, reward_val=1)
rank(收礼榜)
- type:
recv_gift - 计分规则:
score_rule.gift.list[0].multiple(从文档提取,样例为10) - 排名奖励: title 类型,reward_val 为天数
| 名次 | reward_type | reward_id | reward_val |
|---|---|---|---|
| 第1名 | title | 从文档提取 | 15 |
| 第2-3名 | title | 从文档提取 | 7 |
| 第4-10名 | title | 从文档提取 | 3 |
tasks(5个任务)
| id | fe_id | name | trigger type | 奖励 |
|---|---|---|---|---|
| 1 | 1 | 访问活动页面 | enter_page |
collect_chip chip_id=3 val=1 |
| 3 | 3 | 送礼增加榜单分 | send_gift |
weplay_go_rank val=500 |
| 4 | 4 | 登录app | login_app |
none |
| 5 | 5 | 获得心动碎片 | collect_chip chip_id=1 |
none(多阶段) |
| 6 | 6 | 收礼获得心动值 | recv_gift |
collect_chip chip_id=1 val=默认2 |
task5 获得心动碎片阶段(7个,默认值):
| fe_id | condition_map["1"] |
|---|---|
| 1 | 默认8 |
| 2 | 默认28 |
| 3 | 默认68 |
| 4 | 默认138 |
| 5 | 默认258 |
| 6 | 默认538 |
| 7 | 默认1128 |
task5 阶段阈值、task6 收礼奖励心动值数量以文档为准,文档未指定则使用默认值。
special_info.weplay_go_box_config
| 字段 | 值 |
|---|---|
gift_box_gift_id |
[GIFT_ID] |
limit_lottery_types |
[] |
limit_rewards |
3个英雄ID数组 |
limit_times |
10 |
weplay_go_box_type |
"heart" |
其他固定字段
| 字段 | 值 |
|---|---|
name |
"威仔GO心动日记" |
act_type |
"营收活动" |
project_id |
435 |
template_list |
["weplay_go_box"] |
task_groups[0].task_ids |
[1, 3, 4, 5, 6] |
gift_box_config.json 结构说明
顶层字段
| 字段 | 值 |
|---|---|
name |
礼盒名称(从文档提取) |
key |
[GIFT_ID] |
act_id |
[ACT_ID] |
use_reward_type |
"combo_times" |
gift_box_type |
"default" |
trigger_weight |
60 |
diff_reward_list.combo_times(2档连击)
| click_num | 英雄权重 | 说明 |
|---|---|---|
| 1 | 默认10 | 1-9次连击 |
| 10 | 默认20 | 10次以上连击 |
英雄权重及道具权重以文档为准,文档未指定则使用默认值。
英雄配置(reward_type=19 表示 king_of_impact)
| 英雄 | extra_reward | message_config_key |
|---|---|---|
| 英雄1(新期) | prop ID + val=7 | new_hero_period[N] |
| 英雄2 | prop ID + val=7 | 无 |
| 英雄3 | 无 | 无 |
random_coin.json 结构说明
随机返金配置,控制送礼时返还金币的比例。
顶层字段
| 字段 | 值 |
|---|---|
gift_id |
[GIFT_ID] |
bind_act_id |
[ACT_ID] |
rand_list(返金区间配置,默认值)
| id | section_start | section_end | weight | 说明 |
|---|---|---|---|---|
| 1 | 1 | 1 | 默认0 | 100%返金(权重0,不触发) |
| 2 | 0.8 | 1 | 默认100 | 80%-100%返金 |
| 3 | 0.6 | 0.8 | 默认600 | 60%-80%返金 |
| 4 | 0.4 | 0.6 | 默认150600 | 40%-60%返金 |
| 5 | 0.2 | 0.4 | 默认232800 | 20%-40%返金 |
| 6 | 0 | 0.2 | 默认615900 | 0%-20%返金 |
rand_list 中的 weight 和 section 范围以文档为准,文档未指定则使用默认值。
[ACT_ID] 替换位置清单
activity_config.json
- 顶层
act_id chip_notify[0].chip_num_meta_list[0].act_idchip_notify[1].chip_num_meta_list[0].act_idexchange_store[0].exchange[*].cost_chip_meta[0].act_idexchange_store[0].exchange[*].rewards.rewards[*].act_id(collect_chip 类型)lottery[0].cost_chip_meta_list[0].cost_chip_meta[0].act_idlottery[0].level_cost_chip_meta_list[*].cost_chip_meta[0].act_id(7处)lottery[0].reward_config.random_rewards[最后一个].act_idlottery[2].reward_config.random_rewards[最后一个].act_idtasks[0].condition_config...rules[0].act_id.data(task1)tasks[0].stages[0].reward_config.rewards[0].act_idtasks[1].stages[0].reward_config.rewards[0].act_id(task3)tasks[3].condition_config...rules[0].act_id.data(task5)tasks[3].condition_config...chip.list[0].act_idtasks[4].stages[0].reward_config.rewards[0].act_id(task6)
gift_box_config.json
- 顶层
act_id diff_reward_list.combo_times[0].rewards[0].act_id(新期英雄 click_num=1)diff_reward_list.combo_times[1].rewards[0].act_id(新期英雄 click_num=10)
random_coin.json
bind_act_id
[GIFT_ID] 替换位置清单
activity_config.json
gift_list[0]special_info.weplay_go_box_config.gift_box_gift_idrank[0].condition_list[0].trigger.rules[0].gift_id.datarank[0].condition_list[0].trigger.score_rule.gift.list[0].gift_idtasks[1].condition_config...rules[0].gift_id.data(task3)tasks[1].condition_config...gift.list[0].gift_idtasks[4].condition_config...rules[0].gift_id.data(task6)tasks[4].condition_config...gift.list[0].gift_id
gift_box_config.json
- 顶层
key
random_coin.json
gift_id
period[N] 替换位置清单
activity_config.json
chip_notify[0].message.message_config_key:last_12h_msg_period[N]tasks[2].message.message_config_key:login_msg_period[N](task4 登录app)
gift_box_config.json
diff_reward_list.combo_times[0].rewards[0].extra_reward...message_config_key:new_hero_period[N]diff_reward_list.combo_times[1].rewards[0].extra_reward...message_config_key:new_hero_period[N]
字段类型规则
重要:以下字段必须使用指定的数据类型,否则会导致配置解析错误。
activity_config.json
| 字段路径 | 类型 | 说明 |
|---|---|---|
gift_list[*] |
int | 礼物ID必须是整数 |
exchange_store[*].exchange[*].rewards.rewards[*].act_id |
int | collect_chip 类型奖励的 act_id |
lottery[*].cost_chip_meta_list[*].cost_chip_meta[*].act_id |
int | 抽奖消耗配置的 act_id |
lottery[*].level_cost_chip_meta_list[*].cost_chip_meta[*].act_id |
int | 阶梯消耗配置的 act_id |
lottery[*].reward_config.random_rewards[*].act_id |
int | collect_chip 类型奖励的 act_id |
rank[*].condition_list[*].trigger.rules[*].gift_id.data |
string | 规则中的 gift_id.data 是字符串 |
rank[*].condition_list[*].trigger.score_rule.gift.list[*].gift_id |
int | 计分规则中的 gift_id 是整数 |
tasks[*].condition_config.condition_list[*].trigger.rules[*].act_id.data |
string | 规则中的 act_id.data 是字符串 |
tasks[*].condition_config.condition_list[*].trigger.rules[*].gift_id.data |
string | 规则中的 gift_id.data 是字符串 |
tasks[*].condition_config.condition_list[*].trigger.score_rule.gift.list[*].gift_id |
int | 计分规则中的 gift_id 是整数 |
tasks[*].condition_config.condition_list[*].trigger.score_rule.chip.list[*].act_id |
int | chip 计分规则中的 act_id 是整数 |
tasks[*].stages[*].reward_config.rewards[*].act_id |
int | 任务奖励中的 act_id 是整数 |
类型对照表
| 占位符 | rules[*].xxx.data | score_rule 中 | rewards 中 | 其他位置 |
|---|---|---|---|---|
[ACT_ID] |
string | int | int | int |
[GIFT_ID] |
string | int | - | int |
注意:
rules[*].xxx.data字段统一使用 string 类型,而score_rule和rewards中的 ID 字段使用 int 类型。
执行步骤
Step 1: 检查必要信息是否齐全(act_id、区服、文档),缺少则询问
Step 2: 读取飞书文档(使用 feishu2stdout skill)
Step 3: 从文档提取:期数N、gift_id、3个英雄ID及附赠道具、奖池道具、排名奖励等
Step 4: 以 references/ 下的模板为骨架,替换所有占位符
Step 5: 输出三个 JSON 配置
输出格式
1. 完整 JSON 配置
文件名格式:{配置类型}_{区服}_{期数}.json
示例(华服第11期):
===== activity_config_C_11.json =====
{ ... }
===== gift_box_config_C_11.json =====
{ ... }
===== random_coin_C_11.json =====
{ ... }
2. 待确认清单
以下字段请人工核对:
- [ ] gift_id: XXXX(活动礼物)
- [ ] 英雄1 ID + 附赠道具 ID
- [ ] 英雄2 ID + 附赠道具 ID
- [ ] 英雄3 ID(无附赠道具)
- [ ] 不放回奖池道具 ID 和权重
- [ ] 连击奖池道具 ID 和权重
- [ ] 获得心动碎片各阶段阈值
- [ ] 排名奖励称号 ID 和天数
参考模板
references/activity_config.json- 活动主配置模板references/gift_box_config.json- 礼盒配置模板references/random_coin.json- 随机返金配置模板
所有 [ACT_ID]、[GIFT_ID]、period[N] 占位符必须替换为实际值。