@@ -6,6 +6,8 @@ import (
"blazing/logic/service/player"
"blazing/logic/service/task"
"blazing/modules/blazing/model"
"github.com/jinzhu/copier"
)
/**
@@ -59,507 +61,31 @@ func (h Controller) Complete_Task(data *task.CompleteTaskInboundInfo, c *player.
}
c . Info . TaskList [ data . TaskId - 1 ] = 3
result = & task . CompleteTaskOutboundInfo { }
result . ItemList = make ( [ ] t ask. ItemInfo , 0 )
result . TaskId = data . TaskId
// 根据任务ID和选择分支( OutState) 处理奖励
switch data . TaskId {
// 新手任务1
case 85 :
// out_id=1( 默认分支) 的奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 100027 , ItemCount : 1 } , // 新手帽( 默认数量1)
task . ItemInfo { ItemId : 100028 , ItemCount : 1 } , // 新手腰带
task . ItemInfo { ItemId : 500001 , ItemCount : 1 } , // 精灵仓库
task . ItemInfo { ItemId : 500502 , ItemCount : 1 } , // 精灵恢复仓
//task.ItemInfo{ItemId: 500503, ItemCount: 1}, // 分子转化仪
)
// 新手任务2( 选择不同精灵)
case 86 :
var petType int
// 根据out_id( data.OutState) 选择宠物类型
switch data . OutState {
case 1 :
petType = 1 // 布布种子
case 2 :
petType = 7 // 小火猴
case 3 :
petType = 4 // 伊优
default :
// 默认给布布种子(或日志告警)
petType = 1
// log.Printf("任务86未知分支out_id=%d, 默认奖励布布种子", data.OutState)
}
// 生成宠物( pet_dv=31, 锁个体)
r := c . GenPetInfo ( petType , 31 , - 1 , 0 , 0 , 50 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 新手任务3
case 87 :
// out_id=1的奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 300001 , ItemCount : 5 } , // 普通胶囊x5
task . ItemInfo { ItemId : 300011 , ItemCount : 5 } , // 初级体力药剂x3
)
// 新手任务4
case 88 :
// out_id=1的奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 1 , ItemCount : 50000 } , // 赛尔豆x50000
task . ItemInfo { ItemId : 3 , ItemCount : 50000 } , // 累积经验x50000
task . ItemInfo { ItemId : 5 , ItemCount : 20 } , // 金豆x20
task . ItemInfo { ItemId : 300650 , ItemCount : 3 } , // 全能学习力遗忘器x3
task . ItemInfo { ItemId : 300651 , ItemCount : 6 } , // 全能学习力注入器x6
)
// 克洛斯星的皮皮
case 90 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 经验x1000
)
// 西塔的珍贵回忆
case 8 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 500510 , ItemCount : 1 } , // 记忆晶体x1
)
// 进入神秘通道
case 9 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 100059 , ItemCount : 1 } , // 电能锯子x1
)
// 神秘通道拼图(无奖励物品)
case 10 :
// 无物品奖励,无需处理
// 精灵广场拿石头(无奖励物品)
case 12 :
// 无物品奖励,无需处理
// 先锋队招募
case 19 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 积累经验x3000
)
// 新船员的考验
case 25 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 400501 , ItemCount : 10 } , // 神奇扭蛋牌x10
)
// 遗迹中的精灵信号(奖励奇塔)
case 28 :
// out_id=1, 宠物类型102( 奇塔)
r := c . GenPetInfo ( 102 , 31 , - 1 , 0 , 0 , 5 ) // pet_dv默认-1( 随机个体)
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 帕诺星系星球测绘
case 37 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
task . ItemInfo { ItemId : 700452 , ItemCount : 1 } , // 中型智慧芯片x1
task . ItemInfo { ItemId : 100178 , ItemCount : 1 } , // 勘察头盔x1
task . ItemInfo { ItemId : 100179 , ItemCount : 1 } , // 勘察护腕x1
task . ItemInfo { ItemId : 100180 , ItemCount : 1 } , // 勘察腰带x1
task . ItemInfo { ItemId : 100181 , ItemCount : 1 } , // 勘察军靴x1
)
// 时空之门(奖励迪卢卡)
case 40 :
// out_id=1, 宠物类型139( 迪卢卡)
r := c . GenPetInfo ( 139 , 31 , - 1 , 0 , 0 , 5 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 突围磁风暴
case 47 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 5000 } , // 累积经验x5000
task . ItemInfo { ItemId : 1 , ItemCount : 5000 } , // 赛尔豆x5000
task . ItemInfo { ItemId : 500585 , ItemCount : 1 } , // 磁力光束枪台x1
)
// 神秘失踪的爱丽丝
case 48 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
task . ItemInfo { ItemId : 700452 , ItemCount : 2 } , // 中型智慧芯片x2
)
// 密林中的托尼(奖励托尼+物品)
case 49 :
// 1. 奖励宠物: 托尼( 类型158)
r := c . GenPetInfo ( 158 , 31 , - 1 , 0 , 0 , 5 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 2. 奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 700452 , ItemCount : 2 } , // 中型智慧芯片x2
)
// 谁偷走了雪球能源?
case 52 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 400021 , ItemCount : 10 } , // 雪球能源x10
task . ItemInfo { ItemId : 100254 , ItemCount : 1 } , // 斯诺纪念x1
)
// 米鲁族的两个小不点
case 54 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 5000 } , // 累积经验x5000
task . ItemInfo { ItemId : 400021 , ItemCount : 10 } , // 雪球能源x10
)
// 米鲁族食王选拔赛
case 57 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 斯诺岩洞的不解之谜
case 58 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
task . ItemInfo { ItemId : 400021 , ItemCount : 10 } , // 雪球能源x10
)
// 新型试作机SR-01同步调试
case 63 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 铸造斯诺冰冠
case 64 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
task . ItemInfo { ItemId : 400021 , ItemCount : 10 } , // 雪球能源x10
)
// 露希欧星勘察
case 65 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 合金强化试验
case 66 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 资料室的神秘事件
case 68 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 宇宙遭遇站
case 69 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 船体紧急修复
case 70 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 赛尔号大整修( 奖励TOE+物品)
case 71 :
// 1. 奖励宠物: TOE( 类型213)
r := c . GenPetInfo ( 213 , 31 , - 1 , 0 , 0 , 5 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 2. 奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 累积经验x1000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 船长搜救任务
case 72 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 秘制改良机SR-02
case 73 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 100303 , ItemCount : 1 } , // SR-02铠甲x1
task . ItemInfo { ItemId : 400055 , ItemCount : 30 } , // 变形能量块x30
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
)
// 露希欧星历险
case 74 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 积累经验x3000
)
// 哈莫的童年片段一
case 75 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 100324 , ItemCount : 1 } , // 龙之纪念x1
)
// 寻找哈莫雷特的族人
case 79 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 3000 } , // 累积经验x3000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
)
// 重铸贾斯丁站长
case 80 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 3000 } , // 赛尔豆x3000
)
// 守候宿命的追随者
case 81 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 累积经验x1000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 光暗之迷
case 83 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 累积经验x1000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 星球改造计划
case 84 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
)
// 试炼之塔的磨练
case 89 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 500 } , // 累积经验x500
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 月光下的约定
case 91 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
task . ItemInfo { ItemId : 400124 , ItemCount : 1 } , // 艾贝多芬的精元x1
)
// 站长归来(奖励尼布+物品)
case 92 :
// 1. 奖励宠物: 尼布( 类型95)
r := c . GenPetInfo ( 95 , 31 , - 1 , 0 , 0 , 5 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 2. 奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
)
// 云霄星的新来客
case 93 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 累积经验x1000
task . ItemInfo { ItemId : 1 , ItemCount : 500 } , // 赛尔豆x500
)
// 初识星球能源
case 94 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 500 } , // 累积经验x500
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 宇宙中的黑色旋涡(两个奖励分支)
case 95 :
switch data . OutState {
case 1 : // 分支1: 刺蜂套装
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 4000 } , // 累积经验x4000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
task . ItemInfo { ItemId : 100346 , ItemCount : 1 } , // 刺蜂重盔x1
task . ItemInfo { ItemId : 100347 , ItemCount : 1 } , // 刺蜂护肩x1
task . ItemInfo { ItemId : 100348 , ItemCount : 1 } , // 刺蜂腰带x1
task . ItemInfo { ItemId : 100349 , ItemCount : 1 } , // 刺蜂滚轮x1
)
case 2 : // 分支2: 锡蝶套装
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 4000 } , // 累积经验x4000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
task . ItemInfo { ItemId : 100350 , ItemCount : 1 } , // 锡蝶重盔x1
task . ItemInfo { ItemId : 100351 , ItemCount : 1 } , // 锡蝶护肩x1
task . ItemInfo { ItemId : 100352 , ItemCount : 1 } , // 锡蝶腰带x1
task . ItemInfo { ItemId : 100353 , ItemCount : 1 } , // 锡蝶滚轮x1
)
default :
// 默认给分支1奖励
// log.Printf("任务95未知分支out_id=%d, 默认奖励刺蜂套装", data.OutState)
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 4000 } ,
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } ,
task . ItemInfo { ItemId : 100346 , ItemCount : 1 } ,
task . ItemInfo { ItemId : 100347 , ItemCount : 1 } ,
task . ItemInfo { ItemId : 100348 , ItemCount : 1 } ,
task . ItemInfo { ItemId : 100349 , ItemCount : 1 } ,
)
}
// 旅途中的伙伴
case 96 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 500 } , // 累积经验x500
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 我是音乐小麦霸
case 97 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 1000 } , // 累积经验x1000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 尼布守卫战
case 98 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 1000 } , // 赛尔豆x1000
)
// 寻找迷失的心(奖励史空+物品)
case 133 :
// 1. 奖励宠物: 史空( 类型381)
r := c . GenPetInfo ( 381 , 31 , - 1 , 0 , 0 , 5 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
// 2. 奖励物品
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 2000 } , // 累积经验x2000
task . ItemInfo { ItemId : 1 , ItemCount : 2000 } , // 赛尔豆x2000
)
// 教官考核
case 201 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 100062 , ItemCount : 1 } , // 教官指挥棒x1
)
// 领取谱尼真身(需校验物品,奖励谱尼精元)
case 300 :
// 注意: 此处省略“check节点”的物品校验逻辑( 需先检查玩家背包是否有7个裂片)
// 实际业务中需先校验,通过后再发奖励
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 400150 , ItemCount : 1 } , // 谱尼的精元x1
)
// 每日任务之毛毛
case 401 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x2000
)
// 每日任务之小火猴
case 402 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x20000
)
// 每日任务之布布种子
case 403 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x20000
)
// 每日任务之依优
case 404 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x20000
)
// 每日任务之比比鼠
case 405 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x2000
)
// 每日任务之幽浮
case 406 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x2000
)
// 每日任务之利牙鱼
case 407 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 3 , ItemCount : 20000 } , // 积累经验x2000
)
// 每日任务之谱尼扭蛋牌
case 462 :
result . ItemList = append ( result . ItemList ,
task . ItemInfo { ItemId : 400501 , ItemCount : 5 } , // 神奇扭蛋牌x5
)
default :
// 未定义的任务ID, 可添加日志
// log.Printf("未处理的任务ID: %d", data.TaskId)
result = & task . CompleteTaskOutboundInfo {
TaskId : data . T askId ,
ItemList : make ( [ ] task . ItemInfo , 0 ) ,
}
//提交任务
//task.Tasktopic.Pub(*data)
tt := task . Get_Task_Info ( * data )
result . ItemList = tt . ItemList
if tt . PetTypeId != 0 {
r := c . GenPetInfo ( int ( tt . PetTypeId ) , 31 , - 1 , 0 , 0 , 50 )
result . CaptureTime = r . CatchTime
result . PetTypeId = r . ID
c . Service . PetAdd ( * r )
}
var ttt [ ] model . SingleItemInfo
for _ , v := range result . ItemList {
ttt = append ( ttt , model . SingleItemInfo { ItemId : v . ItemId , ItemCnt : v . ItemCount } )
}
r := c . ItemAdd ( ttt ... )
tempItemList := make ( [ ] task . ItemInfo , 0 )
for _ , v := range result . ItemList {
for _ , v1 := range r {
if v1 . ItemId == v . ItemId {
tempItemList = append ( tempItemList , task . ItemInfo { ItemId : v . ItemId , ItemCount : v . ItemCount } )
}
}
copier . Copy ( ttt , result . ItemList )
}
result . ItemList = tempItemList //临时变量为了防止报错的时候返回数据没问题
return result , 0
copier . Copy ( result . ItemList , c . ItemAdd ( ttt ... ) )
return result , - 1 //通过PUB/SUB回包
}
/**