新增多个 BOSS 相关配置字段,包括任务关联、奖励机制与挑战限制等, 增强 BOSS 精灵的可配置性与业务表达能力。同时完善字段注释以对齐 XML 实际使用情况,并保留原有部分字段用于兼容历史配置。 fix(fight): 调整战斗胜利回调执行顺序以确保数据一致性 将战斗结束回调移至广播之前执行,保证在发送战斗结果前已完成所有状态 更新,尤其是针对胜利宠物的信息同步
55 lines
1.5 KiB
Go
55 lines
1.5 KiB
Go
package task
|
||
|
||
import "blazing/modules/blazing/model"
|
||
|
||
type TaskResult struct {
|
||
PetTypeId uint32 `json:"petTypeId" description:"发放的精灵ID"` // 发放的精灵ID,
|
||
|
||
ItemList []model.ItemInfo `json:"itemList" description:"发放物品的数组"` // 发放物品的数组,
|
||
}
|
||
|
||
var TaskResultMap = make(map[uint32]map[uint32]TaskResult)
|
||
|
||
// 添加默认分支0
|
||
func Get_Task_Info(v CompleteTaskInboundInfo) *TaskResult {
|
||
|
||
t, ok := TaskResultMap[v.TaskId][v.OutState]
|
||
if ok {
|
||
|
||
return &t
|
||
} else {
|
||
t, ok := TaskResultMap[v.TaskId][0]
|
||
if ok {
|
||
return &t
|
||
}
|
||
}
|
||
return nil
|
||
}
|
||
func init() {
|
||
// 定义通用奖励:经验奖励(ItemId:3,数量20000)
|
||
expReward := []model.ItemInfo{{ItemId: 3, ItemCnt: 20000}}
|
||
// 定义扭蛋牌奖励(ItemId:400501,数量5)
|
||
eggReward := []model.ItemInfo{{ItemId: 400501, ItemCnt: 5}}
|
||
|
||
// 批量初始化任务ID 401-407(奖励均为经验)
|
||
for taskID := 401; taskID <= 407; taskID++ {
|
||
// 为每个任务ID初始化内层map
|
||
TaskResultMap[uint32(taskID)] = make(map[uint32]TaskResult)
|
||
// 设置状态0对应的奖励(与401格式一致)
|
||
TaskResultMap[uint32(taskID)][0] = TaskResult{
|
||
ItemList: expReward,
|
||
}
|
||
}
|
||
|
||
// 单独初始化任务462(奖励为扭蛋牌)
|
||
TaskResultMap[462] = make(map[uint32]TaskResult)
|
||
TaskResultMap[462][0] = TaskResult{
|
||
ItemList: eggReward,
|
||
}
|
||
|
||
// 后续若有其他任务,按相同格式添加即可
|
||
// 例如:
|
||
// TaskResultMap[xxx] = make(map[uint32]TaskResult)
|
||
// TaskResultMap[xxx][0] = TaskResult{ItemList: ...}
|
||
}
|