be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
1
2
|
|
03a6166a
zhouhaihai
餐厅优化
|
3
|
-- 增加 checkTaskEnter 内的参数 记得增加注释
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
4
|
local TaskType = {
|
53e8037e
zhouhaihai
任务
|
5
6
7
|
-- hero 相关
DrawHero = 1, -- 招募 - pool count
AddHero = 2, -- 增加角色 - heroType wakeL camp job
|
03a6166a
zhouhaihai
餐厅优化
|
8
9
|
LoveBreak = 3, -- 好感度进阶 - heroType loveL
Wake = 4, -- 觉醒 - heroType wakeL
|
53e8037e
zhouhaihai
任务
|
10
11
12
13
14
|
HeroLevelUp = 5, -- 角色升级 - level
DecoFrag = 6, -- 碎片分解 - count
WakeCG = 7, -- 觉醒到解锁CG - heroType
HeroTalent = 8, -- 天赋升级 - heroType alv
DrawSSR = 9, -- 抽到SSR - count
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
15
16
17
|
HeroLvlCollect = 10, -- 英雄等级收集进度
HeroQualityCollect = 11, -- 英雄品质收集进度
HeroStarCollect = 12, -- 英雄星级收集进度
|
53e8037e
zhouhaihai
任务
|
18
19
20
21
|
--装备相关
AddEquip = 101, -- 获得装备 - equipId rarity
SaleEquip = 102, -- 出售装备 - count
|
f60b89b1
zhouhaihai
奖励副本
|
22
|
EquipUp = 103, -- 装备强化 - count
|
53e8037e
zhouhaihai
任务
|
23
24
25
26
27
28
29
30
31
32
33
34
35
|
-- 符文(零件)相关
RuneUp = 201, -- 符文强化
DecoRune = 202, -- 分解符文 - count
AddRune = 203, -- 分解符文 - id type rarity
-- 挂机相关
HangPass = 301, -- 挂机通关 - id
HangGet = 302, -- 挂机收货
HangQuick = 303, -- 快速挂机
HangBattle = 304, -- 挂机战斗 - id
HangGetGold = 305, -- 挂机获得齿轮 - count
|
be24b6ad
zhouhaihai
传递 count
|
36
|
BonusPass = 306, -- 奖励副本通关 - id count
|
f76d63e1
liuzujun
联动任务活动
|
37
|
BonusQuick = 307, -- 奖励关卡扫荡 -- id count
|
53e8037e
zhouhaihai
任务
|
38
39
40
41
42
43
44
45
46
47
|
-- 冒险相关
AdvPass = 401, -- 冒险通过关 - id level score
AdvStart = 402, -- 冒险开始(包括挂机) - id
AdvBattleWin = 403, -- 冒险内战斗胜利 - id
AdvAllPass = 404, -- 冒险章节通关 - id
AdvLevel = 405, -- 探险者协会升级 - level
AdvOverTask = 406, -- 完成任务 - id
AdvOpenBlock = 407, -- 打开地块 - id
AdvUsePotion = 408, -- 使用营养剂
|
89338c47
zhouhaihai
技能目标
|
48
49
|
AdvStartSelf = 409, -- 手动冒险 - id
AdvScore = 410, -- 冒险分数 - score
|
9912e064
zhouhaihai
新增3个每日任务类型
|
50
|
AdvDraw = 411, -- 冒险资助 - count ptype
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
51
|
AdvHang = 412, -- 代理拾荒次数
|
161c50cc
zhouhaihai
宝藏怪活动
|
52
53
|
AdvMineKill = 413, -- 宝藏怪击杀
AdvMineLayer = 414, -- 宝藏洞激活
|
f76d63e1
liuzujun
联动任务活动
|
54
55
|
AdvKillBoss = 415, -- 拾荒击杀boss
AdvHangHeroCnt = 416, -- 拾荒人数
|
a25b4535
liuzujun
fix conflict
|
56
|
AdvPassFirst = 417, -- 冒险首次通关 - id
|
53e8037e
zhouhaihai
任务
|
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
--爬塔相关
TowerPass = 501, -- 爬塔通关 - level
TowerBattle = 502, -- 爬塔战斗 - level
-- 餐厅相关
FoodMGet = 601, -- 食材获取
MakeFood = 602, -- 制作料理 - id count
GetOderTask = 603, -- 接受餐厅订单 - rarity
OverOderTask = 604, -- 完成特别订单 - rarity
FoodSell = 605, -- 料理贩卖 - count
FoodSellQuick = 606, -- 料理快速贩卖
FoodSellGold = 607, -- 贩卖获得齿轮 - count
DinerPopular = 608, -- 人气值 - count
DinerLevelUp = 609, -- 餐厅升级 - level type
|
d763fb14
zhouhaihai
签到 九宫格
|
72
|
DinerTalentUp = 610, -- 天赋升级 - type level
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
73
|
VillageApply = 611, -- 餐厅委托个数
|
53e8037e
zhouhaihai
任务
|
74
75
76
|
-- 车厢相关
PotionMake = 701, -- 营养剂制作 - id count
|
9912e064
zhouhaihai
新增3个每日任务类型
|
77
|
OpenBox = 702, -- 拆解时间箱 - id
|
d763fb14
zhouhaihai
签到 九宫格
|
78
|
SupportSkill = 703, -- 后勤支援技升级 - id level
|
53e8037e
zhouhaihai
任务
|
79
80
|
|
3dbbc9f3
zhouhaihai
加上新的任务
|
81
82
83
84
85
86
87
88
89
|
-- pvp相关
PvpWin = 751, -- pvp胜利 - score
PvpBattle = 752, -- pvp挑战
--好友相关
GiveFriendP = 801, -- 赠送友情点 - count
AddFriend = 802, -- 加入一个好友 - count
GetFriendP = 803, -- 获得友情点 - count
|
9ea0c502
liuzujun
限时礼包
|
90
|
-- 角色相关
|
f0aff632
zhouhaihai
调整顺序
|
91
92
93
94
95
96
97
|
RoleLevelUp = 851, -- 角色升级 - curlevel
RuneQualityCollect = 852, -- 铭文品质收集进度
-- 其他相关
SignIn = 901, -- 签到
Pay = 902, -- 充值
ShopAll = 903, -- 在任意商店购买
|
ac885527
liuzujun
联动签到活动
|
98
|
DailyTask = 904, -- 完成每日活跃任务
|
f76d63e1
liuzujun
联动任务活动
|
99
100
|
RadioTaskStart = 905, -- 电台任务开始
FinishSpeTask = 906, -- 指定任务完成
|
9ea0c502
liuzujun
限时礼包
|
101
|
|
53e8037e
zhouhaihai
任务
|
102
|
--功能未实现 todo
|
53e8037e
zhouhaihai
任务
|
103
|
AdvShop = 1002, -- 冒险商城
|
53e8037e
zhouhaihai
任务
|
104
105
106
|
UnionBoss = 1004, -- 工会boss
UnionBattle = 1005, -- 工会战
AddUnion = 1006, -- 加入一个公会
|
53e8037e
zhouhaihai
任务
|
107
108
109
|
BindPhone = 1008, -- 绑定手机
WeChat = 1009, -- 关注微信
WeBlog = 1010, -- 关注微博
|
00e663bd
zhouhaihai
剧情相关
|
110
111
|
}
|
d763fb14
zhouhaihai
签到 九宫格
|
112
113
|
local function f(field, func)
return {type = "field", value = field, func = func}
|
00e663bd
zhouhaihai
剧情相关
|
114
115
|
end
|
53e8037e
zhouhaihai
任务
|
116
|
-- 剧情任务监听
|
00e663bd
zhouhaihai
剧情相关
|
117
118
119
|
local StoryListener = {
func = "checkStoryStatus",
listen = {
|
9912e064
zhouhaihai
新增3个每日任务类型
|
120
121
122
123
124
|
[TaskType.HangPass] = {{1, f("id")}},
[TaskType.AdvPass] = {{4, f("id")}},
[TaskType.LoveBreak] = {{2, f("heroType")}},
[TaskType.Wake] = {{3, f("heroType"), f("wakeL")}},
[TaskType.AddHero] = {{3, f("heroType"), f("wakeL")}},
|
53e8037e
zhouhaihai
任务
|
125
126
127
128
129
130
131
|
}
}
-- 通用任务监听
local CommonListener = {
func = "checkCommonTasks",
listen = {
|
9912e064
zhouhaihai
新增3个每日任务类型
|
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
|
[TaskType.HangGet] = {{1}},
[TaskType.HangQuick] = {{2}},
[TaskType.HangBattle] = {{3}},
[TaskType.DrawHero] = {{4, f("count"), f("pool")}},
[TaskType.TowerBattle] = {{5}},
[TaskType.PvpBattle] = {{6}},
[TaskType.PvpWin] = {{7}},
[TaskType.AdvStart] = {{8}},
[TaskType.AdvBattleWin] = {{9}},
[TaskType.AdvShop] = {{10}},
[TaskType.GetOderTask] = {{11}},
[TaskType.OverOderTask] = {{12}},
[TaskType.MakeFood] = {{13, f("count")}},
[TaskType.FoodSell] = {{14, f("count")}},
[TaskType.FoodSellQuick] = {{15}},
[TaskType.FoodMGet] = {{16}},
[TaskType.HeroLevelUp] = {{17}},
[TaskType.Wake] = {{18}},
[TaskType.EquipUp] = {{19, f("count")}},
[TaskType.GiveFriendP] = {{20, f("count")}},
[TaskType.UnionBoss] = {{21}},
[TaskType.GetFriendP] = {{22, f("count")}},
|
be24b6ad
zhouhaihai
传递 count
|
154
|
[TaskType.BonusPass] = {{23, f("count")}},
|
9912e064
zhouhaihai
新增3个每日任务类型
|
155
|
[TaskType.AdvStartSelf] = {{24}},
|
7228c195
zhouhaihai
商城 购买
|
156
|
[TaskType.ShopAll] = {{25, f("count")}},
|
9912e064
zhouhaihai
新增3个每日任务类型
|
157
|
[TaskType.RuneUp] = {{26}},
|
56d52cf4
zhouhaihai
任务
|
158
|
[TaskType.OpenBox] = {{27, f("count"), f("id")}},
|
9912e064
zhouhaihai
新增3个每日任务类型
|
159
160
|
[TaskType.AdvDraw] = {{28, f("count"), f("ptype")}},
[TaskType.PotionMake] = {{29, f("count"), f("id")}},
|
53e8037e
zhouhaihai
任务
|
161
162
163
164
165
166
167
|
}
}
-- 成就监听
local AchievListener = {
func = "checkAchievTask",
listen = {
|
9912e064
zhouhaihai
新增3个每日任务类型
|
168
169
170
|
[TaskType.HangPass] = {{1, f("id")}},
[TaskType.UnionBattle] = {{2}},
[TaskType.PvpWin] = {{3}, {4, f("score")}},
|
a6549a94
zhouhaihai
次数加上
|
171
|
[TaskType.AdvAllPass] = {{5, 1, f("id")}},
|
9912e064
zhouhaihai
新增3个每日任务类型
|
172
173
174
175
176
177
178
179
180
181
182
183
|
[TaskType.AdvLevel] = {{6, f("level")}},
[TaskType.AdvScore] = {{7, f("score")}},
[TaskType.AdvBattleWin] = {{8}},
[TaskType.AdvOverTask] = {{9}},
[TaskType.AdvOpenBlock] = {{10}},
[TaskType.AdvUsePotion] = {{11}},
[TaskType.AdvStart] = {{12}},
[TaskType.FoodSell] = {{13, f("count")}},
[TaskType.OverOderTask] = {{14}},
[TaskType.FoodSellGold] = {{15, f("count")}},
[TaskType.DinerPopular] = {{16, f("count")}},
[TaskType.TowerPass] = {{17, f("level")}},
|
56d52cf4
zhouhaihai
任务
|
184
|
[TaskType.OpenBox] = {{18, f("count")}},
|
9912e064
zhouhaihai
新增3个每日任务类型
|
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
|
[TaskType.DinerLevelUp] = {{19, f("level"), f("type")}},
[TaskType.DinerTalentUp] = {{20, 1, f("type")}},
[TaskType.HangGetGold] = {{21, f("count")}},
[TaskType.HeroLevelUp] = {{22, f("level")}},
[TaskType.Wake] = {{23, f("wakeL")}},
[TaskType.WakeCG] = {{24}},
[TaskType.HeroTalent] = {{25, f("alv")}},
[TaskType.AddHero] = {{26, f("heroType")}, {27}},
[TaskType.DrawSSR] = {{28, f("count")}},
[TaskType.DrawHero] = {{29, f("count"), f("pool")}},
[TaskType.AddEquip] = {{30, f("rarity")}, {34, 1, f("rarity")}},
[TaskType.AddRune] = {{31, f("rarity")}, {35, 1, f("rarity")}},
[TaskType.EquipUp] = {{32, f("count")}},
[TaskType.RuneUp] = {{33}},
[TaskType.AddUnion] = {{36}},
[TaskType.AddFriend] = {{37, f("count")}},
[TaskType.BindPhone] = {{38, 1}},
[TaskType.WeChat] = {{38, 2}},
[TaskType.WeBlog] = {{38, 3}},
[TaskType.SignIn] = {{39}},
|
00e663bd
zhouhaihai
剧情相关
|
205
206
207
|
}
}
|
9a1c54b2
zhouhaihai
活动
|
208
|
local SudokuListener = {
|
d763fb14
zhouhaihai
签到 九宫格
|
209
210
211
212
213
214
215
216
217
218
219
220
|
func = "checkSudokuTask",
listen = {
[TaskType.HangPass] = {{1, 1, f("id")}},
[TaskType.DrawHero] = {{4, f("count")}},
[TaskType.HeroLevelUp] = {{5, f("level")}},
[TaskType.Wake] = {{6, f("wakeL")}},
[TaskType.AddFriend] = {{7, f("count")}},
[TaskType.GetFriendP] = {{8, f("count")}},
[TaskType.AdvStart] = {{9, 1}},
[TaskType.AdvDraw] = {{10, f("count")}},
[TaskType.DinerLevelUp] = {{11, f("level"), f("type")}},
[TaskType.FoodSell] = {{12, f("count")}},
|
56d52cf4
zhouhaihai
任务
|
221
|
[TaskType.OpenBox] = {{13, f("count")}},
|
d763fb14
zhouhaihai
签到 九宫格
|
222
223
224
225
226
227
228
|
[TaskType.TowerPass] = {{14, f("level")}},
[TaskType.PvpWin] = {{15, 1}},
[TaskType.DinerTalentUp] = {{16, f("level"), f("type")}},
[TaskType.RuneUp] = {{17, 1}},
}
}
|
7f9f002d
liuzujun
循环周活动
|
229
|
local Activity = require("models.Activity")
|
161c50cc
zhouhaihai
宝藏怪活动
|
230
|
|
9a1c54b2
zhouhaihai
活动
|
231
232
|
local ActivityListener = {
func = "checkActivityTask",
|
7f9f002d
liuzujun
循环周活动
|
233
|
listen = {
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
234
|
[TaskType.DrawHero] = {{Activity.ActivityType.DrawHero, f("count"), f("pool")}},
|
7f9f002d
liuzujun
循环周活动
|
235
236
237
|
[TaskType.FoodSell] = {{Activity.ActivityType.FoodSell, f("count")}},
[TaskType.AdvDraw] = {{Activity.ActivityType.AdvDraw, f("count")}},
[TaskType.OpenBox] = {{Activity.ActivityType.OpenBox, f("count")}},
|
e52c384f
liuzujun
探索指令bug, 充值返利活动
|
238
|
[TaskType.Pay] = {{Activity.ActivityType.PayBack, f("twd")}},
|
161c50cc
zhouhaihai
宝藏怪活动
|
239
240
|
[TaskType.AdvMineKill] = {{Activity.ActivityType.Crisis, 1}},
[TaskType.AdvMineLayer] = {{Activity.ActivityType.Crisis, 2}},
|
ac885527
liuzujun
联动签到活动
|
241
|
[TaskType.DailyTask] = {{Activity.ActivityType.CommonSignIn, f("pre"), f("cur")}},
|
9a1c54b2
zhouhaihai
活动
|
242
243
244
|
}
}
|
9ea0c502
liuzujun
限时礼包
|
245
246
247
248
249
250
|
local StoreListener = {
func = "checkStoreTask",
listen = {
[TaskType.HangPass] = {{TriggerEventType.HangPass, f("id")}},
[TaskType.RoleLevelUp] = {{TriggerEventType.LevelUp, f("level")}},
[TaskType.TowerPass] = {{TriggerEventType.TowerPass, f("level")}},
|
0c54995a
liuzujun
第一次通关拾荒章节推送限时礼包,活...
|
251
|
[TaskType.AdvPassFirst] = {{TriggerEventType.AdvPass, f("id")}},
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
252
|
[TaskType.AddHero] = {{TriggerEventType.AddNewHero, f("heroType")}, {TriggerEventType.SSRCount, f("ssrCount")}},
|
9ea0c502
liuzujun
限时礼包
|
253
254
255
|
}
}
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
256
257
258
259
|
local CalendaTaskListener = {
func = "checkCalendaTask",
listen = {
[TaskType.DrawHero] = {{1, 1, f("count")}},
|
be24b6ad
zhouhaihai
传递 count
|
260
|
[TaskType.BonusPass]= {{2, 1, f("count")}},
|
d51ed472
liuzujun
日历任务 拾荒开始任务
|
261
|
[TaskType.AdvStart]= {{3, 1}},
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
262
263
264
265
266
267
268
269
270
271
272
|
[TaskType.DinerLevelUp]= {{4, 2, f("level")}},
[TaskType.HeroLvlCollect]= {{5, 3}}, -- x名y级英雄
[TaskType.AdvHang]= {{6, 1}}, ----
[TaskType.HeroQualityCollect]= {{7, 3}},
[TaskType.OverOderTask]= {{8, 1}},
[TaskType.VillageApply]= {{9, 1}},
[TaskType.PvpWin]= {{10, 2, f("score")}},
[TaskType.DinerPopular]= {{11, 2, f("count")}},
[TaskType.RoleLevelUp]= {{12, 2, f("level")}},
[TaskType.TowerPass]= {{13, 2, f("level")}},
[TaskType.HeroTalent]= {{14, 1}},
|
190e1415
liuzujun
英雄帖活动初始化
|
273
|
[TaskType.HangPass]= {{15, 3}},
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
274
275
276
|
[TaskType.HeroStarCollect]= {{16, 3}},
[TaskType.FoodSell]= {{17, 1, f("count")}},
[TaskType.HangGet]= {{18, 3, f("reward")}},
|
ffa0e259
liuzujun
日历活动 穿戴x个y品质铭文
|
277
|
[TaskType.RuneQualityCollect]= {{19, 3}},
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
278
|
[TaskType.OpenBox]= {{20, 3, f("count"), f("quality")}},
|
f76d63e1
liuzujun
联动任务活动
|
279
280
281
282
283
284
285
286
|
[TaskType.RadioTaskStart] = {{21, 1}, {22, 3, f("heroCnt")}},
[TaskType.BonusQuick] = {{23, 1, f("count")}},
[TaskType.AdvHangHeroCnt] = {{24, 3, f("HeroCnt")}},
[TaskType.AdvKillBoss] = {{25, 1}},
[TaskType.AdvMineKill] = {{26, 1}},
[TaskType.PvpBattle] = {{27, 1}},
[TaskType.FinishSpeTask] = {{28, 3, f("taskId"), f("actId")}},
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
287
288
289
|
}
}
|
00e663bd
zhouhaihai
剧情相关
|
290
291
|
local TaskListeners = {
StoryListener,
|
53e8037e
zhouhaihai
任务
|
292
293
|
CommonListener,
AchievListener,
|
9a1c54b2
zhouhaihai
活动
|
294
295
|
SudokuListener,
ActivityListener,
|
9ea0c502
liuzujun
限时礼包
|
296
|
StoreListener,
|
e0ad10e9
liuzujun
英雄帖任务简单类型测试
|
297
|
CalendaTaskListener,
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
298
299
300
301
302
303
|
}
local RoleTask = {}
function RoleTask.bind(Role)
|
00e663bd
zhouhaihai
剧情相关
|
304
305
|
-- 任务相关入口
function Role:checkTaskEnter(taskType, params, notNotify)
|
03a6166a
zhouhaihai
餐厅优化
|
306
307
308
309
|
params = params or {}
if type(taskType) == "string" then
taskType = TaskType[taskType]
end
|
00e663bd
zhouhaihai
剧情相关
|
310
311
|
for _, listener in ipairs(TaskListeners) do
if listener and listener.listen and listener.listen[taskType] and listener["func"] then
|
53e8037e
zhouhaihai
任务
|
312
|
for _, vs in ipairs(listener.listen[taskType]) do
|
89338c47
zhouhaihai
技能目标
|
313
|
local pms = {}
|
53e8037e
zhouhaihai
任务
|
314
315
|
for __, v in ipairs(vs) do
if type(v) == "table" and v.type then
|
9912e064
zhouhaihai
新增3个每日任务类型
|
316
|
if v.type == "field" then
|
d763fb14
zhouhaihai
签到 九宫格
|
317
318
319
320
321
|
local value = params[v.value]
if v.func then
value = v.func(value)
end
table.insert(pms, value)
|
53e8037e
zhouhaihai
任务
|
322
323
324
|
else
table.insert(pms, v)
end
|
00e663bd
zhouhaihai
剧情相关
|
325
326
327
|
else
table.insert(pms, v)
end
|
00e663bd
zhouhaihai
剧情相关
|
328
|
end
|
53e8037e
zhouhaihai
任务
|
329
|
self[listener["func"]](self, notNotify, table.unpack(pms))
|
00e663bd
zhouhaihai
剧情相关
|
330
|
end
|
00e663bd
zhouhaihai
剧情相关
|
331
332
|
end
end
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
333
334
|
end
|
00e663bd
zhouhaihai
剧情相关
|
335
336
337
338
339
340
341
342
|
--剧情相关----begin-------------
local function checkStoryStatusByHang(role, data, status, cond1) -- cond1 carbonId
if tonumber(data.unlockData) ~= cond1 then return end
status.s = 1
return true
end
local function checkStoryStatusByLove(role, data, status, cond1) -- cond1 heroType
|
14f1591b
zhouhaihai
删除好感度相关
|
343
344
345
346
347
|
-- if data.sort ~= cond1 then return end
-- local curL = role:getProperty("loveStatus"):getv(cond1, 0)
-- if curL < tonumber(data.unlockData) then return end
-- status.s = 1
-- return true
|
00e663bd
zhouhaihai
剧情相关
|
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
|
end
local function checkStoryStatusByMultStar(role, data, status, cond1, cond2) -- cond1 heroType, cond2 wakeL
local heroType = cond1
local need = data.unlockData:toArray(true, "=")
local had = false
for _, v in pairs(need) do
if v == heroType then
had = true
break
end
end
if not had then return end
if cond2 > (status["s" .. heroType] or 0) then
status["s" .. heroType] = cond2
end
local starC = 0
for _, v in pairs(need) do
starC = starC + (status["s" .. v] or 0)
end
if starC >= tonumber(data.unlockData2) then
table.clear(status)
status.s = 1
end
return true
end
local function checkStoryStatusByAdv(role, data, status, cond1) -- cond1 advId
if tonumber(data.unlockData) ~= cond1 then return end
status.s = 1
return true
end
|
be697585
liuzujun
活动剧情解锁
|
381
382
383
384
385
386
387
388
389
390
|
local function checkStoryStatusByActBattle(role, data, status, cond1) -- cond1 carbonId
local actid = data.sort
if not role.activity:isOpenById(actid) then return end
if cond1 and tonumber(data.unlockData) == cond1 then
status.s = 1
return true
end
return
end
|
00e663bd
zhouhaihai
剧情相关
|
391
392
393
394
395
|
local checkstoryStatusFunc = {
[1] = checkStoryStatusByHang,
[2] = checkStoryStatusByLove,
[3] = checkStoryStatusByMultStar,
[4] = checkStoryStatusByAdv,
|
be697585
liuzujun
活动剧情解锁
|
396
|
[5] = checkStoryStatusByActBattle,
|
00e663bd
zhouhaihai
剧情相关
|
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
|
}
function Role:checkStoryStatus(notNotify, stype, cond1, cond2, cond3)
local storyBookStatus = self:getProperty("storyB")
local change = {}
for id, data in pairs(csvdb["story_bookCsv"]) do
if stype == data.unlockType and checkstoryStatusFunc[stype] then
local curStatus = storyBookStatus[id] or {}
if not curStatus.s then -- 存在状态就是已经完成
local isChange = checkstoryStatusFunc[stype](self, data, curStatus, cond1, cond2, cond3)
if isChange then
storyBookStatus[id] = curStatus
table.insert(change, {type = "storyB", field = id, value = curStatus, isOnlyToC = true})
end
end
end
end
if next(change) then
self:setProperty("storyB", storyBookStatus) -- 统一写入数据库
if not notNotify then
self:changeUpdates(change)
end
end
end
--剧情相关----end-------------
|
53e8037e
zhouhaihai
任务
|
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
function Role:checkCommonTasks(notNotify, stype, count, cond1, cond2)
count = count or 1
self:checkLoopTask(notNotify, stype, count, cond1, cond2)
end
function Role:checkLoopTask(notNotify, stype, count, cond1, cond2)
local tasks = {self:getProperty("dTask")["t"] or {}, self:getProperty("wTask")["t"] or {}}
local isChange = {false, false}
for key, status in ipairs(tasks) do
local taskDatas = csvdb["task_loopCsv"][key]
for taskId, data in pairs(taskDatas) do
if status[taskId] ~= -1 and data.type == stype and (data.condition2 == 0 or data.condition2 == cond1) then
status[taskId] = (status[taskId] or 0) + count
isChange[key] = 1
end
end
end
local change = {}
if isChange[1] then
table.insert(change, {type = "dTask", field = "t", value = tasks[1]})
end
if isChange[2] then
table.insert(change, {type = "wTask", field = "t", value = tasks[2]})
end
if next(change) then
self:changeUpdates(change, notNotify)
end
end
function Role:checkAchievTask(notNotify, stype, v1, v2)
local change = {}
local achiveStatus = self:getProperty("achiveT")
local IsFindMax = {
|
ca865c7e
zhouhaihai
成就bug
|
458
|
[1] = true,
|
53e8037e
zhouhaihai
任务
|
459
460
461
462
463
464
465
466
467
|
[4] = true,
[6] = true,
[7] = true,
[16] = true,
[17] = true,
[19] = true,
[22] = true,
[23] = true,
[25] = true,
|
71003290
zhouhaihai
好友成就 bug
|
468
|
[37] = true,
|
53e8037e
zhouhaihai
任务
|
469
470
|
}
|
89338c47
zhouhaihai
技能目标
|
471
|
for tId , achiveData in pairs(csvdb["achievement_typeCsv"]) do
|
53e8037e
zhouhaihai
任务
|
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
|
local curStatus = achiveStatus[tId] or 0
if achiveData.type == stype then
if achiveData.type == 1 then --取出难度
v2 = math.floor(v1 / 10000)
end
if achiveData.type == 26 then
local campS = {}
local jobS = {}
for _, hero in pairs(self.heros) do
local unitData = csvdb["unitCsv"][hero:getProperty("type")]
campS[unitData.camp] = (campS[unitData.camp] or 0) + 1
jobS[unitData.job] = (jobS[unitData.job] or 0) + 1
end
local nStatus = 0
if achiveData.condition2 == 1 then
|
89338c47
zhouhaihai
技能目标
|
488
|
for k , v in pairs(campS) do
|
53e8037e
zhouhaihai
任务
|
489
490
491
|
nStatus = math.max(nStatus, v)
end
elseif achiveData.condition2 == 2 then
|
89338c47
zhouhaihai
技能目标
|
492
|
for k , v in pairs(jobS) do
|
53e8037e
zhouhaihai
任务
|
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
|
nStatus = math.max(nStatus, v)
end
end
if nStatus > curStatus then
table.insert(change, {type = "achiveT", field = tId, value = nStatus})
end
elseif achiveData.type == 30 then --装备套装
if achiveData.condition2 == 0 or achiveData.condition2 == v1 then
local suitS = {}
for equipType, equips in pairs(self:getProperty("equips")) do
for lv, c in pairs(equips) do
local equipData = csvdb["equipCsv"][equipType][lv]
if achiveData.condition2 == 0 or achiveData.condition2 == equipData.rarity then
if equipData.suit ~= "" then
suitS[equipData.suit] = suitS[equipData.suit] or {}
suitS[equipData.suit][equipType] = 1
end
end
end
end
local nStatus = 0
for k , v in pairs(suitS) do
local n = 0
for _, __ in pairs(v) do
n = n + 1
end
nStatus = math.max(nStatus, n)
end
|
53e8037e
zhouhaihai
任务
|
521
522
523
524
525
526
527
528
529
|
if nStatus > curStatus then
table.insert(change, {type = "achiveT", field = tId, value = nStatus})
end
end
elseif achiveData.type == 31 then -- 符文套装
if achiveData.condition2 == 0 or achiveData.condition2 == v1 then
local suitS = {}
for _, rune in pairs(self.runeBag) do
local runeData = csvdb["runeCsv"][rune:getProperty("type")][rune:getProperty("id")]
|
89338c47
zhouhaihai
技能目标
|
530
|
if achiveData.condition2 == 0 or achiveData.condition2 == runeData.rarity then
|
53e8037e
zhouhaihai
任务
|
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
|
if runeData.suit ~= "" then
suitS[runeData.suit] = suitS[runeData.suit] or {}
suitS[runeData.suit][runeData.type] = 1
end
end
end
local nStatus = 0
for k , v in pairs(suitS) do
local n = 0
for _, __ in pairs(v) do
n = n + 1
end
nStatus = math.max(nStatus, n)
end
if nStatus > curStatus then
table.insert(change, {type = "achiveT", field = tId, value = nStatus})
end
end
elseif IsFindMax[achiveData.type] then -- 最大值
if achiveData.condition2 == 0 or achiveData.condition2 == v2 then
if (v1 or 0) > curStatus then
table.insert(change, {type = "achiveT", field = tId, value = v1})
end
end
else --通用增加
if achiveData.condition2 == 0 or achiveData.condition2 == v2 then
table.insert(change, {type = "achiveT", field = tId, value = curStatus + (v1 or 1)})
end
end
end
end
if next(change) then
self:changeUpdates(change, notNotify)
end
|
53e8037e
zhouhaihai
任务
|
565
|
end
|
89338c47
zhouhaihai
技能目标
|
566
|
|
d763fb14
zhouhaihai
签到 九宫格
|
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
|
-- 九宫格任务
function Role:checkSudokuTask(notNotify, stype, count, cond)
local change = false
local sudoku = self:getProperty("sudoku")
local curPhase = sudoku[-1] or 1
if curPhase == -1 then return end
local IsFindMax = {
[5] = true,
[6] = true,
[7] = true,
[11] = true,
[14] = true,
[16] = true,
}
sudoku.task = sudoku.task or {}
|
d763fb14
zhouhaihai
签到 九宫格
|
585
586
587
588
589
590
|
for pause, guide_sudokuData in pairs(csvdb["guide_sudokuCsv"]) do
if pause >= curPhase then
sudoku.task[pause] = sudoku.task[pause] or {}
for id , sudikuData in pairs(guide_sudokuData) do
local curStatus = sudoku.task[pause][id] or 0
|
dea89131
zhouhaihai
修复bug
|
591
|
if curStatus ~= -1 and sudikuData.type == stype then
|
d763fb14
zhouhaihai
签到 九宫格
|
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
|
if IsFindMax[sudikuData.type] then -- 最大值
if sudikuData.con2 == 0 or sudikuData.con2 == cond then
if (count or 0) > curStatus then
change = true
sudoku.task[pause][id] = count
end
end
else --通用增加
if sudikuData.con2 == 0 or sudikuData.con2 == cond then
change = true
sudoku.task[pause][id] = curStatus + (count or 1)
end
end
end
end
end
end
if change then
self:updateProperty({field = "sudoku", value = sudoku, notNotify = notNotify})
end
end
|
9a1c54b2
zhouhaihai
活动
|
615
|
function Role:checkActivityTask(notNotify, activityType, ...)
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
616
|
if not self.activity then return end
|
ea40710f
zhouhaihai
活动
|
617
|
self.activity:checkActivity(notNotify, activityType, ...)
|
9a1c54b2
zhouhaihai
活动
|
618
619
|
end
|
9ea0c502
liuzujun
限时礼包
|
620
|
function Role:checkStoreTask(notNotify, triggerType, param)
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
621
|
if not self.storeData then return end
|
9ea0c502
liuzujun
限时礼包
|
622
623
624
|
self.storeData:OnTriggerLimitTimePack(triggerType, param)
end
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
625
|
function Role:checkCalendaTask(notNotify, mainType, subType, param1, param2)
|
190e1415
liuzujun
英雄帖活动初始化
|
626
627
|
--print("check calenda taskl", mainType, subType, param1, param2)
if not self.activity then return end
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
628
629
630
631
632
633
634
635
636
637
638
639
640
641
|
local open, actId = self.activity:isOpen("CalendaTask")
local actData = csvdb["activity_ctrlCsv"][actId]
if not actData then return end
if not open then return end
local change = false
local calTask = self:getProperty("calTask") or {}
param1 = param1 or 1
local cid = actData.condition
for k, taskList in pairs(csvdb["activity_taskCsv"]) do
if k == cid then
for id, cfg in pairs(taskList) do
if cfg.type == mainType then
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
642
643
644
645
646
|
if subType == 1 then -- 增加数值
calTask[id] = (calTask[id] or 0) + param1
elseif subType == 2 then -- 直接赋值
calTask[id] = param1
elseif subType == 3 then -- 自定义类型
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
647
648
649
650
651
652
653
654
655
656
|
if cfg.type == 7 then -- 英雄品质收集进度
local count = 0
for _, hero in pairs(self.heros) do
local unitData = csvdb["unitCsv"][hero:getProperty("type")]
if unitData then
if cfg.condition2 <= unitData.rare then
count = count + 1
end
end
end
|
4bd3095f
liuzujun
英雄帖任务bug
|
657
|
if (calTask[id] or 0) < count then
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
658
659
660
661
662
663
664
665
666
|
calTask[id] = count
end
elseif cfg.type == 5 then -- 英雄等级收集进度
local count = 0
for _, hero in pairs(self.heros) do
if cfg.condition2 <= hero:getProperty("level") then
count = count + 1
end
end
|
366dcc54
liuzujun
日历活动bug
|
667
|
if (calTask[id] or 0) < count then
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
668
669
670
671
672
673
674
675
676
|
calTask[id] = count
end
elseif cfg.type == 16 then -- 英雄星级收集进度
local count = 0
for _, hero in pairs(self.heros) do
if cfg.condition2 <= hero:getProperty("wakeL") then
count = count + 1
end
end
|
366dcc54
liuzujun
日历活动bug
|
677
|
if (calTask[id] or 0) < count then
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
678
679
680
|
calTask[id] = count
end
elseif cfg.type == 18 then -- 挂机累计收获id,y个
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
681
682
683
684
685
686
|
for rid, v in pairs(param1) do
if cfg.condition2 == rid then
calTask[id] = (calTask[id] or 0) + v
end
end
elseif cfg.type == 19 then -- x名英雄装备y品质以上符文套装
|
ffa0e259
liuzujun
日历活动 穿戴x个y品质铭文
|
687
688
689
690
691
|
local count = 0
for _, hero in pairs(self.heros) do
local rcount = 0
for _,uid in pairs(hero:getRunes()) do
if uid > 0 then
|
4bd3095f
liuzujun
英雄帖任务bug
|
692
|
local runeData = self.runeBag[uid]
|
ffa0e259
liuzujun
日历活动 穿戴x个y品质铭文
|
693
694
695
696
697
698
699
700
701
702
703
704
705
706
|
if runeData then
local csvData = csvdb["runeCsv"][runeData:getProperty("type")][runeData:getProperty("id")]
if csvData and cfg.condition2 <= csvData.rarity then
rcount = rcount + 1
end
end
end
end
if rcount == 6 then
count = count + 1
end
end
calTask[id] = count
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
707
|
elseif cfg.type == 20 then -- 开启x品质时钟箱子
|
ffa0e259
liuzujun
日历活动 穿戴x个y品质铭文
|
708
|
if cfg.condition2 <= (param2 or 0) then
|
6e411115
liuzujun
开启x品质时钟箱任务计数错误bug
|
709
|
calTask[id] = (calTask[id] or 0) + param1
|
ffa0e259
liuzujun
日历活动 穿戴x个y品质铭文
|
710
|
end
|
190e1415
liuzujun
英雄帖活动初始化
|
711
712
713
714
715
716
717
718
|
elseif cfg.type == 15 then -- 通关关卡
if (calTask[id] or 0) == 0 then
local hangPass = self:getProperty("hangPass")
local diff = math.floor(cfg.condition2 / 10000)
if (hangPass[diff] or 0) >= cfg.condition1 then
calTask[id] = 1
end
end
|
f76d63e1
liuzujun
联动任务活动
|
719
720
721
722
723
724
725
726
727
|
elseif cfg.type == 22 then -- 电台任务出勤人数
calTask[id] = (calTask[id] or 0) + (param1 or 0)
elseif cfg.type == 24 then -- 代理拾荒出勤人数
calTask[id] = (calTask[id] or 0) + (param1 or 0)
elseif cfg.type == 28 then -- 完成指定任务
print(actId,param2, cfg.condition2, param1)
if actId == param2 and cfg.condition2 == param1 then
calTask[id] = (calTask[id] or 0) + 1
end
|
b3f13e56
liuzujun
英雄令英雄收集相关任务
|
728
|
end
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
729
730
731
732
733
|
end
end
end
end
end
|
e0ad10e9
liuzujun
英雄帖任务简单类型测试
|
734
|
self:updateProperty({field = "calTask", value = calTask, notNotify = notNotify})
|
190e1415
liuzujun
英雄帖活动初始化
|
735
|
--dump(calTask)
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
736
737
|
end
|
be83d162
zhouahaihai
登陆成功。 增加数据结构修正功能
|
738
739
|
end
|
a25b4535
liuzujun
fix conflict
|
740
|
return RoleTask
|