github.com/lianghucheng/zrddz@v0.0.0-20200923083010-c71f680932e2/src/game/internal/taskdata.go (about) 1 package internal 2 3 import ( 4 "conf" 5 "time" 6 ) 7 8 // 任务类型 9 const ( 10 _ = iota 11 taskRedPacket // 1 红包任务 12 taskChip // 2 金币任务 13 ) 14 15 // 跳转 16 const ( 17 _ = iota 18 basescoreMatching // 1 底分匹配 19 redpacketMatch // 2 红包比赛 20 wechatShare // 3 微信分享 21 shop // 4 商店 22 wechatInvite // 5 邀请 23 ) 24 25 type TaskMetaData struct { 26 ID int 27 Type int // 类型 28 Total int // 总数 29 RedPacket float64 // 红包奖励 30 Chips int64 // 金币奖励 31 Desc string // 描述 32 Jump int // 跳转 33 } 34 35 // 金币任务奖励数据(存数据库) 36 type ChipTaskPrizeData struct { 37 UserID int 38 TaskID int 39 Chips int64 40 CreatedAt int64 41 UpdatedAt int64 42 } 43 44 // 红包任务奖励数据(存数据库) 45 type RedPacketTaskPrizeData struct { 46 UserID int 47 TaskID int 48 RedPacket float64 // 红包奖励 49 ExchangeCode string 50 Desc string 51 CreatedAt int64 52 UpdatedAt int64 53 Taken bool // true点击过复制按钮 false 没有点击过复制按钮 54 } 55 56 // (存数据库) 57 type TaskData struct { 58 TaskID int // 任务ID 59 Progress int // 任务进度 60 Taken bool // 奖励是否被领取 61 TakenAt int64 62 Handling bool // 处理中 63 } 64 65 // 用户任务列表数据(存数据库) 66 type UserTaskListData struct { 67 UserID int // 用户ID 68 RedPacketTaskList []TaskData // 红包任务列表 69 ChipTaskList []TaskData // 金币任务列表 70 UpdatedAt int64 71 } 72 73 // 活动任务时间表 74 type ActivityTaskSchedule struct { 75 Start int64 // 开始时间 76 End int64 // 结束时间 77 Deadline int64 // 截至时间 78 } 79 80 var ( 81 TaskList = make(map[int]*TaskMetaData) 82 ActivityTimeList = make(map[int]*ActivityTaskSchedule) // 活动时间列表 83 // 小于五万 84 RedPacketIDs = []int{28, 28, 28, 28, 28, 11, 1, 1, 1, 1, 1, 33, 33, 34, 34, 34, 46, 46, 31, 31, 47, 47, 47, 47, 47, 48, 48, 48, 49, 49, 49, 49, 49, 50, 50, 61, 62, 32, 32, 32, 32, 53, 53, 54, 54, 56, 56, 56, 85 38, 38, 38, 38, 40, 40, 40, 40, 40, 63, 63, 63, 59, 59, 59, 59, 43, 43, 45, 45, 45} 86 // 大于5万 87 RedPacketIDs2 = []int{28, 28, 28, 28, 28, 11, 1, 1, 1, 1, 33, 33, 31, 31, 31, 31, 48, 48, 48, 48, 48, 49, 49, 50, 53, 53, 54, 54, 37, 37, 38, 38, 38, 55, 55, 56, 56, 56, 56, 56, 40, 57, 57, 57, 63, 63, 88 58, 58, 58, 58, 41, 41, 41, 59, 60, 60, 61, 61, 43, 44, 44, 45} 89 ChipTaskIDs = []int{1000, 1001, 1002, 1003, 1004, 1005, 1006, 1008, 1009, 1010, 1011, 1012, 1013, 1016} 90 FirstLoginRedPacketIDs = []int{1, 1, 1, 33, 33, 34, 34, 34, 46, 46, 31, 31, 47, 47, 47, 48, 48, 48, 49, 49, 49, 50, 50, 61, 62, 32, 32, 53, 53, 54, 54, 38, 40, 63, 63, 59, 43, 45} 91 ) 92 93 func init() { 94 //红包任务 95 TaskList[0] = &TaskMetaData{ID: 0, Type: taskRedPacket, Total: 10, Desc: "胜利10局", Jump: basescoreMatching} 96 TaskList[1] = &TaskMetaData{ID: 1, Type: taskRedPacket, Total: 3, Desc: "打出3个飞机", Jump: basescoreMatching} 97 TaskList[2] = &TaskMetaData{ID: 2, Type: taskRedPacket, Total: 5, Desc: "打出5个连对", Jump: basescoreMatching} 98 TaskList[3] = &TaskMetaData{ID: 3, Type: taskRedPacket, Total: 3, Desc: "打出3个炸弹", Jump: basescoreMatching} 99 TaskList[4] = &TaskMetaData{ID: 4, Type: taskRedPacket, Total: 3, Desc: "打出3个王炸", Jump: basescoreMatching} 100 TaskList[5] = &TaskMetaData{ID: 5, Type: taskRedPacket, Total: 10, Desc: "对局10局", Jump: basescoreMatching} 101 TaskList[6] = &TaskMetaData{ID: 6, Type: taskRedPacket, Total: 2, Desc: "连胜2局", Jump: basescoreMatching} 102 TaskList[7] = &TaskMetaData{ID: 7, Type: taskRedPacket, Total: 10, Desc: "当地主10次", Jump: basescoreMatching} 103 TaskList[8] = &TaskMetaData{ID: 8, Type: taskRedPacket, Total: 10, Desc: "抢地主10次", Jump: basescoreMatching} 104 TaskList[9] = &TaskMetaData{ID: 9, Type: taskRedPacket, Total: 10, Desc: "明牌开始10次", Jump: basescoreMatching} 105 TaskList[10] = &TaskMetaData{ID: 10, Type: taskRedPacket, Total: 10, Desc: "加倍10次", Jump: basescoreMatching} 106 TaskList[11] = &TaskMetaData{ID: 11, Type: taskRedPacket, Total: 1, Desc: "购买任意数量的金币", Jump: shop} 107 108 TaskList[28] = &TaskMetaData{ID: 28, Type: taskRedPacket, Total: 1, Desc: "参加一次红包比赛场", Jump: redpacketMatch} 109 110 TaskList[30] = &TaskMetaData{ID: 30, Type: taskRedPacket, Total: 4, Desc: "打出4个炸弹", Jump: basescoreMatching} 111 TaskList[31] = &TaskMetaData{ID: 31, Type: taskRedPacket, Total: 4, Desc: "打出4个王炸", Jump: basescoreMatching} 112 TaskList[32] = &TaskMetaData{ID: 32, Type: taskRedPacket, Total: 2, Desc: "单局打出2个炸弹", Jump: basescoreMatching} 113 TaskList[33] = &TaskMetaData{ID: 33, Type: taskRedPacket, Total: 6, Desc: "打出6个连对", Jump: basescoreMatching} // 打出6个连对 114 TaskList[34] = &TaskMetaData{ID: 34, Type: taskRedPacket, Total: 5, Desc: "打出5个炸弹", Jump: basescoreMatching} // 打出5个炸弹 115 116 TaskList[36] = &TaskMetaData{ID: 36, Type: taskRedPacket, Total: 10, Desc: "打出10个顺子", Jump: basescoreMatching} // 打出10个顺子 117 TaskList[37] = &TaskMetaData{ID: 37, Type: taskRedPacket, Total: 10, Desc: "普通场累计对局10次", Jump: basescoreMatching} // 普通场累计对局10次 118 TaskList[38] = &TaskMetaData{ID: 38, Type: taskRedPacket, Total: 1, Desc: "普通场打出1个飞机", Jump: basescoreMatching} // 普通场打出1个飞机 119 TaskList[39] = &TaskMetaData{ID: 39, Type: taskRedPacket, Total: 2, Desc: "普通场打出2个连对", Jump: basescoreMatching} // 普通场打出2个连对 120 TaskList[40] = &TaskMetaData{ID: 40, Type: taskRedPacket, Total: 2, Desc: "普通场打出2个炸弹", Jump: basescoreMatching} // 普通场打出2个炸弹 121 TaskList[41] = &TaskMetaData{ID: 41, Type: taskRedPacket, Total: 2, Desc: "普通场打出2个王炸", Jump: basescoreMatching} // 普通场打出2个王炸 122 TaskList[42] = &TaskMetaData{ID: 42, Type: taskRedPacket, Total: 6, Desc: "普通场打出6个顺子", Jump: basescoreMatching} // 普通场打出6个顺子 123 TaskList[43] = &TaskMetaData{ID: 43, Type: taskRedPacket, Total: 8, Desc: "普通场加倍底分8次", Jump: basescoreMatching} // 普通场加倍底分8次 124 TaskList[44] = &TaskMetaData{ID: 44, Type: taskRedPacket, Total: 8, Desc: "普通场当地主8次", Jump: basescoreMatching} // 普通场当地主8次 125 TaskList[45] = &TaskMetaData{ID: 45, Type: taskRedPacket, Total: 6, Desc: "普通场叫地主6次", Jump: basescoreMatching} // 普通场叫地主6次 126 TaskList[46] = &TaskMetaData{ID: 46, Type: taskRedPacket, Total: 6, Desc: "打出6个炸弹", Jump: basescoreMatching} // 打出6个炸弹 127 TaskList[47] = &TaskMetaData{ID: 47, Type: taskRedPacket, Total: 5, Desc: "打出5个王炸", Jump: basescoreMatching} // 打出5个王炸 128 TaskList[48] = &TaskMetaData{ID: 48, Type: taskRedPacket, Total: 10, Desc: "以地主身份获胜10局", Jump: basescoreMatching} // 以地主身份获胜10局 129 TaskList[49] = &TaskMetaData{ID: 49, Type: taskRedPacket, Total: 12, Desc: "以农民身份获胜12局", Jump: basescoreMatching} // 以农民身份获胜12局 130 TaskList[50] = &TaskMetaData{ID: 50, Type: taskRedPacket, Total: 5, Desc: "连胜5局", Jump: basescoreMatching} // 连胜5局 131 TaskList[51] = &TaskMetaData{ID: 51, Type: taskRedPacket, Total: 3, Desc: "单局打出2个顺子3次", Jump: basescoreMatching} // 单局打出2个顺子3次 132 TaskList[52] = &TaskMetaData{ID: 52, Type: taskRedPacket, Total: 8, Desc: "打出8次三带二", Jump: basescoreMatching} // 打出8次三带二 133 TaskList[53] = &TaskMetaData{ID: 53, Type: taskRedPacket, Total: 3, Desc: "打出3次四带二", Jump: basescoreMatching} // 打出3次四带二 134 TaskList[54] = &TaskMetaData{ID: 54, Type: taskRedPacket, Total: 15, Desc: "当地主15次", Jump: basescoreMatching} // 当地主15次 135 TaskList[55] = &TaskMetaData{ID: 55, Type: taskRedPacket, Total: 2, Desc: "普通场打出2个飞机", Jump: basescoreMatching} // 普通场打出2个飞机 136 TaskList[56] = &TaskMetaData{ID: 56, Type: taskRedPacket, Total: 4, Desc: "普通场打出4个连对", Jump: basescoreMatching} // 普通场打出4个连对 137 TaskList[57] = &TaskMetaData{ID: 57, Type: taskRedPacket, Total: 3, Desc: "普通场打出3个炸弹", Jump: basescoreMatching} // 普通场打出3个炸弹 138 TaskList[58] = &TaskMetaData{ID: 58, Type: taskRedPacket, Total: 10, Desc: "普通场打出10个顺子", Jump: basescoreMatching} // 普通场打出10个顺子 139 TaskList[59] = &TaskMetaData{ID: 59, Type: taskRedPacket, Total: 6, Desc: "普通场地主身份获胜6局", Jump: basescoreMatching} // 普通场地主身份获胜6局 140 TaskList[60] = &TaskMetaData{ID: 60, Type: taskRedPacket, Total: 8, Desc: "普通场农民身份获胜8局", Jump: basescoreMatching} // 通场农民身份获胜8局 141 TaskList[61] = &TaskMetaData{ID: 61, Type: taskRedPacket, Total: 4, Desc: "单局打出2个顺子4次", Jump: basescoreMatching} // 单局打出2个顺子4次 142 TaskList[62] = &TaskMetaData{ID: 62, Type: taskRedPacket, Total: 5, Desc: "单局打出2个顺子5次", Jump: basescoreMatching} // 单局打出2个顺子5次 143 TaskList[63] = &TaskMetaData{ID: 63, Type: taskRedPacket, Total: 8, Desc: "普通场打出8次三带二", Jump: basescoreMatching} // 普通场打出8次三带二 144 145 // 金币任务 146 TaskList[1000] = &TaskMetaData{ID: 1000, Type: taskChip, Total: 1, Chips: 100, Desc: "登录游戏"} // 成功登录游戏,奖励100金币 147 TaskList[1001] = &TaskMetaData{ID: 1001, Type: taskChip, Total: 1, Chips: 2000, Desc: "微信分享游戏", Jump: wechatShare} // 微信分享游戏,奖励2000金币 148 TaskList[1002] = &TaskMetaData{ID: 1002, Type: taskChip, Total: 3, Chips: 2000, Desc: "胜利3局", Jump: basescoreMatching} // 累计胜利3局,奖励2000金币 149 TaskList[1003] = &TaskMetaData{ID: 1003, Type: taskChip, Total: 5, Chips: 3000, Desc: "胜利5局", Jump: basescoreMatching} // 累计胜利5局,奖励3000金币 150 TaskList[1004] = &TaskMetaData{ID: 1004, Type: taskChip, Total: 6, Chips: 3000, Desc: "胜利6局", Jump: basescoreMatching} // 累计胜利6局,奖励3000金币 151 TaskList[1005] = &TaskMetaData{ID: 1005, Type: taskChip, Total: 5, Chips: 2000, Desc: "对局5局", Jump: basescoreMatching} // 累计对局5局,奖励2000金币 152 TaskList[1006] = &TaskMetaData{ID: 1006, Type: taskChip, Total: 10, Chips: 3000, Desc: "对局10局", Jump: basescoreMatching} // 累计对局10局,奖励3000金币 153 TaskList[1007] = &TaskMetaData{ID: 1007, Type: taskChip, Total: 15, Chips: 5000, Desc: "对局15局", Jump: basescoreMatching} // 累计对局15局,奖励5000金币 154 TaskList[1008] = &TaskMetaData{ID: 1008, Type: taskChip, Total: 2, Chips: 3000, Desc: "连胜2局", Jump: basescoreMatching} // 任意场连胜2局,奖励3000金币 155 TaskList[1009] = &TaskMetaData{ID: 1009, Type: taskChip, Total: 3, Chips: 5000, Desc: "连胜3局", Jump: basescoreMatching} // 任意场连胜3局,奖励5000金币 156 TaskList[1010] = &TaskMetaData{ID: 1010, Type: taskChip, Total: 1, Chips: 2000, Desc: "购买任意数量的金币", Jump: shop} // 购买任意数量金币,奖励2000金币 157 TaskList[1011] = &TaskMetaData{ID: 1011, Type: taskChip, Total: 3, Chips: 3000, Desc: "打出3个飞机", Jump: basescoreMatching} // 累计打出3个飞机,奖励3000金币 158 TaskList[1012] = &TaskMetaData{ID: 1012, Type: taskChip, Total: 2, Chips: 3000, Desc: "打出2个王炸", Jump: basescoreMatching} // 累计打出2个王炸,奖励3000金币 159 TaskList[1013] = &TaskMetaData{ID: 1013, Type: taskChip, Total: 3, Chips: 3000, Desc: "打出3个炸弹", Jump: basescoreMatching} // 累计打出3个炸弹,奖励3000金币 160 TaskList[1014] = &TaskMetaData{ID: 1014, Type: taskChip, Total: 2, Chips: 2000, Desc: "明牌开始2次", Jump: basescoreMatching} // 累计明牌开始2次,奖励2000金币 161 TaskList[1015] = &TaskMetaData{ID: 1015, Type: taskChip, Total: 3, Chips: 3000, Desc: "明牌开始3次", Jump: basescoreMatching} // 累计明牌开始3次,奖励3000金币 162 TaskList[1016] = &TaskMetaData{ID: 1016, Type: taskChip, Total: 1, Chips: 5000, Desc: "参加一次红包比赛场", Jump: redpacketMatch} // 参加一次红包比赛,奖励5000金币 163 164 // 活动任务(必须有活动时间表) 165 TaskList[1017] = &TaskMetaData{ID: 1017, Type: taskChip, Total: 2, Chips: 18888, Desc: "活动期间成功邀请2位好友", Jump: wechatInvite} // 成功邀请2位好友,奖励9999金币 166 ActivityTimeList[1017] = &ActivityTaskSchedule{ 167 Start: time.Date(2018, 5, 9, 0, 0, 0, 0, time.Local).Unix(), 168 End: time.Date(2018, 5, 18, 0, 0, 0, 0, time.Local).Unix(), 169 Deadline: time.Date(2018, 5, 19, 20, 0, 0, 0, time.Local).Unix(), 170 } 171 172 TaskList[1018] = &TaskMetaData{ID: 1018, Type: taskChip, Total: 18, Chips: 1888, Desc: "活动期间完成18次红包比赛", Jump: redpacketMatch} // 活动期间完成18次红包比赛,奖励999金币 173 ActivityTimeList[1018] = &ActivityTaskSchedule{ 174 Start: time.Date(2018, 4, 28, 0, 0, 0, 0, time.Local).Unix(), 175 End: time.Date(2018, 5, 6, 0, 0, 0, 0, time.Local).Unix(), 176 Deadline: time.Date(2018, 5, 7, 20, 0, 0, 0, time.Local).Unix(), 177 } 178 for _, schedule := range conf.GetCfgActivityTimes() { 179 ActivityTimeList[schedule.TaskID] = &ActivityTaskSchedule{ 180 Start: schedule.Start, 181 End: schedule.End, 182 Deadline: schedule.Deadline, 183 } 184 } 185 }