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