384bb077
zhouahaihai
挂机
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
local ipairs = ipairs
local table = table
local math = math
local next = next
local string = string
local redisproxy = redisproxy
local MsgPack = MsgPack
local getRandomName = getRandomName
local mcast_util = mcast_util
local string_format = string.format
local tonumber = tonumber
local require = require
local table_insert = table.insert
local tconcat = table.concat
local table_unpack = table.unpack
local _M = {}
local function checkReward(role)
local hangInfo = role:getProperty("hangInfo")
if not hangInfo.carbonId or not hangInfo.coinTime or not hangInfo.itemTime then
|
024370be
liuzujun
双倍掉掉落bug
|
22
|
return false
|
384bb077
zhouahaihai
挂机
|
23
24
|
end
local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId]
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
25
26
|
--local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
local expCarbonData = hangInfo.expData or {}
|
bcf5bfbb
zhouahaihai
挂机new
|
27
28
|
local nowCoinTime = math.min(skynet.timex(), hangInfo.endCoinTime or 0)
local nowItemTime = math.min(skynet.timex(), hangInfo.endItemTime or 0)
|
384bb077
zhouahaihai
挂机
|
29
|
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
30
31
|
local expCoef, itemCoef = role.storeData:getHangDropCoef()
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
32
33
34
|
-- 此次挂机,其中翻倍时长占多少
local doubleTime = role.activity:getActHangDoubleTime(hangInfo.coinTime, nowCoinTime)
local normalTime = nowCoinTime - hangInfo.coinTime - doubleTime
|
384bb077
zhouahaihai
挂机
|
35
|
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
36
37
38
39
|
local coinCount = math.max(0, math.floor((normalTime) / globalCsv.idle_money_produce_cd))
local coinDoubleCount = math.max(0, math.floor((doubleTime) / globalCsv.idle_money_produce_cd)) * 2
hangInfo.coinTime = nowCoinTime
|
024370be
liuzujun
双倍掉掉落bug
|
40
|
normalTime = nowItemTime - hangInfo.itemTime
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
41
|
local itemCount = math.max(0, math.floor((normalTime) / globalCsv.idle_item_produce_cd))
|
706b517e
liuzujun
翻倍掉落活动,商城免费宝箱
|
42
|
hangInfo.itemTime = nowItemTime
|
384bb077
zhouahaihai
挂机
|
43
44
|
local items = role:getProperty("hangBag")
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
45
|
coinCount = (coinCount + coinDoubleCount) * expCoef
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
46
47
48
|
items[ItemId.Gold] = math.floor((items[ItemId.Gold] or 0) + coinCount * (expCarbonData.money or 0))
items[ItemId.Exp] = math.floor((items[ItemId.Exp] or 0) + coinCount * (expCarbonData.exp or 0))
items[ItemId.PlayerExp] = math.floor((items[ItemId.PlayerExp] or 0) + (coinCount * expCarbonData.playerExp or 0))
|
384bb077
zhouahaihai
挂机
|
49
50
51
52
53
|
local pool = {}
for _, temp in pairs(carbonData.item:toArray()) do
table.insert(pool, temp:toArray(true, "="))
end
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
54
55
56
|
local curFC = 0
local curIC = 0
for id, count in pairs(items) do
|
bcf5bfbb
zhouahaihai
挂机new
|
57
|
if id ~= ItemId.Gold and id ~= ItemId.Exp and id ~= ItemId.PlayerExp then
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
58
59
|
curFC = curFC + math.ceil(count / globalCsv.idle_field_limit)
curIC = curIC + count
|
9962b061
zhouahaihai
补充 挂机
|
60
61
|
end
end
|
317a46a9
liuzujun
添加特权卡
|
62
63
64
|
-- 特权卡挂机额外栏位
local privExtraCnt = role.storeData:getHangSlotExtraCount()
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
65
66
|
--local selfFC = role:getProperty("hangBagLimit") + privExtraCnt
local selfFC = 50
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
67
68
69
70
71
72
73
74
75
|
local selfIC = selfFC * globalCsv.idle_field_limit
local function randomItem()
if curIC >= selfIC then
return
end
local tempPool = clone(pool)
while #tempPool > 0 do
local idx = math.randWeight(tempPool, 3)
|
024370be
liuzujun
双倍掉掉落bug
|
76
|
local cur = clone(pool[idx])
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
77
|
if cur[1] ~= 0 then -- 轮空 id
|
024370be
liuzujun
双倍掉掉落bug
|
78
79
|
if cur[1] == ItemId.BreakCost and doubleTime > 0 then
cur[2] = cur[2] * 2
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
80
|
end
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
81
|
cur[2] = cur[2] * itemCoef
|
024370be
liuzujun
双倍掉掉落bug
|
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
if (items[cur[1]] and math.ceil((items[cur[1]] + cur[2]) / globalCsv.idle_field_limit) > math.ceil(items[cur[1]] / globalCsv.idle_field_limit))
or not items[cur[1]] then --要占用新栏位的情况
local addFC
if not items[cur[1]] then
addFC = math.ceil(cur[2] / globalCsv.idle_field_limit)
else
local frontC = items[cur[1]] % globalCsv.idle_field_limit
if frontC == 0 then
frontC = globalCsv.idle_field_limit
end
addFC = math.ceil((cur[2] - (globalCsv.idle_field_limit - frontC)) / globalCsv.idle_field_limit)
end
if curFC + addFC <= selfFC then
curFC = curFC + addFC
items[cur[1]] = (items[cur[1]] or 0) + cur[2]
break
else
--加不了,换别的东西
table.remove(tempPool, idx)
end
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
102
|
else
|
024370be
liuzujun
双倍掉掉落bug
|
103
104
|
items[cur[1]] = items[cur[1]] + cur[2]
break
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
105
106
|
end
else
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
107
|
break
|
9962b061
zhouahaihai
补充 挂机
|
108
|
end
|
9962b061
zhouahaihai
补充 挂机
|
109
|
end
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
110
111
|
curIC = curIC + 1
end
|
024370be
liuzujun
双倍掉掉落bug
|
112
|
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
113
114
|
for i = 1, itemCount do
randomItem()
|
384bb077
zhouahaihai
挂机
|
115
116
117
|
end
if coinCount > 0 or itemCount > 0 then
|
5af8b4aa
zhouahaihai
挂机down
|
118
|
return true
|
384bb077
zhouahaihai
挂机
|
119
|
end
|
024370be
liuzujun
双倍掉掉落bug
|
120
121
|
return false
|
384bb077
zhouahaihai
挂机
|
122
123
|
end
|
384bb077
zhouahaihai
挂机
|
124
125
126
127
128
129
|
--开始一个新的关卡
function _M.startRpc( agent, data )
local role = agent.role
local msg = MsgPack.unpack(data)
local carbonId = msg.carbonId
local carbonData = csvdb["idle_battleCsv"][carbonId]
|
f60b89b1
zhouhaihai
奖励副本
|
130
|
if not carbonData then return 1 end
|
384bb077
zhouahaihai
挂机
|
131
|
|
d232676a
zhouhaihai
功能解锁 冒险返回
|
132
133
134
135
|
if math.floor(carbonId / 10000) ~= 1 then
if not role:isFuncUnlock(FuncUnlock.DifficultHang) then return end
end
|
5d80aca6
zhouahaihai
挂机优化
|
136
137
|
for _, preCarbonId in ipairs(carbonData.prepose:toArray(true, "=")) do
|
33be3111
zhouhaihai
修改hangPass 结构
|
138
|
if not role:checkHangPass(preCarbonId) then return 2 end
|
5d80aca6
zhouahaihai
挂机优化
|
139
|
end
|
384bb077
zhouahaihai
挂机
|
140
|
|
ba33bcac
liuzujun
挂机章节解锁
|
141
142
143
144
145
146
147
148
149
|
local carbonId = msg.carbonId -- 解锁章节id
local condition = globalCsv.idle_chapter_unlock[carbonId]
if condition then
local unlockChapter = role:getProperty("unlockChap")
if not unlockChapter[carbonId] then
return 3
end
end
|
5af8b4aa
zhouahaihai
挂机down
|
150
151
152
|
if checkReward(role) then
role:updateProperty({field = "hangBag", value = role:getProperty("hangBag")})
end
|
384bb077
zhouahaihai
挂机
|
153
154
|
local hangInfo = role:getProperty("hangInfo")
|
5af8b4aa
zhouahaihai
挂机down
|
155
|
local isNew = not hangInfo.carbonId
|
384bb077
zhouahaihai
挂机
|
156
|
hangInfo.carbonId = carbonId
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
157
|
--hangInfo.expCarbonId = isNew and carbonId or hangInfo.expCarbonId
|
384bb077
zhouahaihai
挂机
|
158
|
local nowTime = skynet.timex()
|
5af8b4aa
zhouahaihai
挂机down
|
159
|
if isNew then
|
1103490d
zhouhaihai
设置 国家时间错误
|
160
161
|
hangInfo.coinTime = nowTime
hangInfo.itemTime = nowTime
|
bcf5bfbb
zhouahaihai
挂机new
|
162
163
|
hangInfo.endCoinTime = nowTime + globalCsv.idle_producetime_max
hangInfo.endItemTime = nowTime + globalCsv.idle_producetime_max
|
1103490d
zhouhaihai
设置 国家时间错误
|
164
165
166
|
else
hangInfo.coinTime = math.min(nowTime, hangInfo.endCoinTime)
hangInfo.itemTime = math.min(nowTime, hangInfo.endItemTime)
|
5af8b4aa
zhouahaihai
挂机down
|
167
|
end
|
072db127
zhouhaihai
推送
|
168
169
|
role:pushMsg({type = "hang", time = math.min(hangInfo.endCoinTime - nowTime, hangInfo.endItemTime - nowTime)})
|
33be3111
zhouhaihai
修改hangPass 结构
|
170
|
if not role:checkHangPass(carbonId) then
|
5af8b4aa
zhouahaihai
挂机down
|
171
172
173
|
hangInfo.bossTime = nowTime + carbonData.idle_time
else
hangInfo.bossTime = nil
|
384bb077
zhouahaihai
挂机
|
174
|
end
|
072db127
zhouhaihai
推送
|
175
|
|
384bb077
zhouahaihai
挂机
|
176
177
|
role:updateProperty({field = "hangInfo", value = hangInfo})
|
d02f7904
zhouhaihai
遗失的log
|
178
|
role:mylog("hang_action", {desc = "startHang", int1 = carbonId})
|
384bb077
zhouahaihai
挂机
|
179
180
181
182
183
184
185
186
|
SendPacket(actionCodes.Hang_startRpc, '')
return true
end
-- 每隔1分钟检查一次
function _M.checkRpc(agent, data)
local role = agent.role
-- local msg = MsgPack.unpack(data)
|
5af8b4aa
zhouahaihai
挂机down
|
187
188
189
190
|
if checkReward(role) then
role:updateProperty({field = "hangBag", value = role:getProperty("hangBag")})
role:updateProperty({field = "hangInfo", value = role:getProperty("hangInfo")})
end
|
384bb077
zhouahaihai
挂机
|
191
192
193
194
|
SendPacket(actionCodes.Hang_checkRpc, MsgPack.pack({}))
return true
end
|
cc5ca7f3
zhouhaihai
缓存battleKey
|
195
|
local _BattleKey = nil
|
384bb077
zhouahaihai
挂机
|
196
197
198
|
function _M.startBattleRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
bcf5bfbb
zhouahaihai
挂机new
|
199
200
|
local carbonId = msg.carbonId
local curData = csvdb["idle_battleCsv"][carbonId]
|
a1e08c9c
zhengshouren
宝箱关战斗异常
|
201
202
203
|
if not curData then
return 1
end
|
bcf5bfbb
zhouahaihai
挂机new
|
204
|
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
205
206
207
208
209
210
|
--local hangInfo = role:getProperty("hangInfo") or {}
--if curData.main ~= 1 then
-- if carbonId ~= hangInfo.carbonId then
-- return 2
-- end
--end
|
bcf5bfbb
zhouahaihai
挂机new
|
211
|
|
33be3111
zhouhaihai
修改hangPass 结构
|
212
|
if role:checkHangPass(carbonId) then
|
a1e08c9c
zhengshouren
宝箱关战斗异常
|
213
214
|
return 3
end
|
bcf5bfbb
zhouahaihai
挂机new
|
215
|
|
cc5ca7f3
zhouhaihai
缓存battleKey
|
216
217
|
_BattleKey = tostring(math.random())
|
53e8037e
zhouhaihai
任务
|
218
|
role:checkTaskEnter("HangBattle", {id = carbonId})
|
52c87300
zhouhaihai
bug
|
219
|
SendPacket(actionCodes.Hang_startBattleRpc, MsgPack.pack({key = _BattleKey}))
|
384bb077
zhouahaihai
挂机
|
220
221
222
223
224
225
|
return true
end
function _M.endBattleRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
226
|
local hangInfo = role:getProperty("hangInfo") or {}
|
cc5ca7f3
zhouhaihai
缓存battleKey
|
227
|
if not msg.key or msg.key ~= _BattleKey then
|
d6a66c74
zhouhaihai
校验失败也返回
|
228
229
|
SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({errorCode = 1}))
return true
|
4906ebd2
zhengshouren
宝箱关副本结算异常
|
230
|
end
|
bcf5bfbb
zhouahaihai
挂机new
|
231
|
local carbonId = msg.carbonId
|
d4e9b817
zhouhaihai
战斗 日志
|
232
|
local isWin = msg.starNum and msg.starNum > 0
|
bcf5bfbb
zhouahaihai
挂机new
|
233
|
local carbonData = csvdb["idle_battleCsv"][carbonId]
|
4906ebd2
zhengshouren
宝箱关副本结算异常
|
234
235
236
|
if not carbonData then
return 2
end
|
8cd3770f
liuzujun
挂机关卡可以选择,经验金币根据最高...
|
237
|
|
460afa6e
liuzujun
付费签到改为主动领取,战斗关卡不一...
|
238
239
240
241
242
|
--if carbonData.main ~= 1 then
-- if carbonId ~= hangInfo.carbonId then
-- return 3
-- end
--end
|
33be3111
zhouhaihai
修改hangPass 结构
|
243
244
|
if role:checkHangPass(carbonId) then
|
4906ebd2
zhengshouren
宝箱关副本结算异常
|
245
246
|
return 4
end
|
d4e9b817
zhouhaihai
战斗 日志
|
247
|
|
edf2ee12
zhouhaihai
防作弊
|
248
249
250
251
252
253
254
255
256
257
|
-- 防作弊
if not role:checkBattleCheat("hang", {
id = carbonId,
isWin = isWin,
info = msg.info
}) then
SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({errorCode = 1}))
return true
end
|
7bb30dca
zhouhaihai
修改发奖
|
258
|
local reward, change
|
d4e9b817
zhouhaihai
战斗 日志
|
259
|
if isWin then --win
|
33be3111
zhouhaihai
修改hangPass 结构
|
260
|
role:hangFinish(carbonId)
|
bcf5bfbb
zhouahaihai
挂机new
|
261
262
263
|
if carbonData.main ~= 1 then
hangInfo.bossTime = nil
end
|
384bb077
zhouahaihai
挂机
|
264
265
|
-- reward
reward = {}
|
384bb077
zhouahaihai
挂机
|
266
267
|
reward[ItemId.Gold] = carbonData.money_clear
reward[ItemId.Exp] = carbonData.exp_clear
|
00115a7a
zhouahaihai
奖励发放
|
268
|
reward[ItemId.PlayerExp] = carbonData.playerExp_clear
|
384bb077
zhouahaihai
挂机
|
269
|
for itemId, count in pairs(carbonData.item_clear:toNumMap()) do
|
384bb077
zhouahaihai
挂机
|
270
271
|
reward[itemId] = count
end
|
7bb30dca
zhouhaihai
修改发奖
|
272
|
reward, change = role:award(reward, {log = {desc = "hangBattle", int1 = carbonId}})
|
00e663bd
zhouhaihai
剧情相关
|
273
|
|
03a6166a
zhouhaihai
餐厅优化
|
274
|
role:checkTaskEnter("HangPass", {id = carbonId})
|
286c980a
chenyueqi
挂机战斗胜利才触发对应的引导
|
275
276
277
|
-- 引导
if carbonId == 10101 then
|
a5b98c30
chenyueqi
引导调整
|
278
|
role:finishGuide(6)
|
be0c7a19
chenyueqi
挂机打完困难20101才设定完成引导22
|
279
|
elseif carbonId == 20101 then
|
286c980a
chenyueqi
挂机战斗胜利才触发对应的引导
|
280
281
282
283
284
285
286
287
|
role:finishGuide(22)
end
for _, guideData in pairs(csvdb["guide_unlockCsv"]) do
if guideData.type == 3 and guideData.carbonId == carbonId then
role:saveGuide(guideData.guideId,1,true)
break
end
end
|
384bb077
zhouahaihai
挂机
|
288
|
end
|
53b4b8bd
liuzujun
自动挂机下一关
|
289
290
|
local nextCarbonId = role:getNextCarbonId(carbonId)
-- 设置挂机关卡
|
87c65a8d
liuzujun
挂机经验关卡改为最终通关关卡
|
291
|
if isWin then --and (hangInfo.carbonId or 0) < nextCarbonId then
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
292
293
294
295
296
297
298
|
local newCarbonData = csvdb["idle_battleCsv"][carbonId]
if newCarbonData then
local expData = hangInfo.expData or {}
expData.exp = (expData.exp or 0) + newCarbonData.exp
expData.money = (expData.money or 0) + newCarbonData.money
expData.playerExp = (expData.playerExp or 0) + newCarbonData.playerExp
hangInfo.expData = expData
|
98d32f92
liuzujun
多编队
|
299
|
end
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
300
301
302
303
304
305
306
307
308
309
310
|
--if not hangInfo.expCarbonId then
-- hangInfo.expCarbonId = carbonId
--else
-- local oldCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
-- local newCarbonData = csvdb["idle_battleCsv"][carbonId]
-- if oldCarbonData.money < newCarbonData.money then
-- hangInfo.expCarbonId = carbonId
-- end
--end
|
87c65a8d
liuzujun
挂机经验关卡改为最终通关关卡
|
311
312
313
314
|
--local cfg = csvdb["idle_battleCsv"][nextCarbonId]
--if cfg then
-- hangInfo.bossTime = skynet.timex() + cfg.idle_time
--end
|
93f6e69b
liuzujun
拾荒选择时间,抽卡增加sr保底
|
315
|
end
|
384bb077
zhouahaihai
挂机
|
316
|
role:updateProperty({field = "hangInfo", value = hangInfo})
|
33be3111
zhouhaihai
修改hangPass 结构
|
317
|
|
d4e9b817
zhouhaihai
战斗 日志
|
318
319
320
321
322
323
|
role:checkBattle("hang", {
id = carbonId,
isWin = isWin,
info = msg.info,
reward = reward,
})
|
1e9cb217
chenyueqi
服务器记录控制引导过程
|
324
|
|
d02f7904
zhouhaihai
遗失的log
|
325
326
327
|
local team = role:getProperty("pvpTC")
role:mylog("hang_action", {desc = "hangBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = carbonId, int2 = role:getProperty("hangTBV"), cint1 = role:getHerosCamp(team.heros)})
|
384bb077
zhouahaihai
挂机
|
328
329
330
|
SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({
starNum = msg.starNum,
reward = reward,
|
7bb30dca
zhouhaihai
修改发奖
|
331
|
change = change,
|
384bb077
zhouahaihai
挂机
|
332
333
334
335
|
}))
return true
end
|
7efe5275
zhouhaihai
检查leader
|
336
337
338
339
340
341
342
|
local function checkLeader(heros, leader)
if not leader then return end
for slot, heroId in pairs(heros) do
if heroId == leader then return true end
end
end
|
384bb077
zhouahaihai
挂机
|
343
344
345
|
function _M.roleFormatRpc(agent , data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
98d32f92
liuzujun
多编队
|
346
347
|
local index = msg.index -- 阵容索引
local title = msg.title -- 阵容名称
|
7d662b85
liuzujun
编队增加战术字段
|
348
|
local tactics = msg.tactics -- 战术
|
761b3ea8
chenyueqi
再改一波电波塔整容相关信息
|
349
|
local tower = msg.tower
|
98d32f92
liuzujun
多编队
|
350
|
local team = {}
|
384bb077
zhouahaihai
挂机
|
351
352
|
for slot, heroId in pairs(msg.heros) do
if not role.heros[heroId] then
|
e6ebee44
zhouhaihai
编队bug
|
353
|
return 1
|
384bb077
zhouahaihai
挂机
|
354
355
|
end
end
|
f603a60f
zhouhaihai
支援技实装
|
356
357
358
|
local supports = {}
for slot, support in pairs(msg.supports or {}) do
|
e6ebee44
zhouhaihai
编队bug
|
359
|
if slot ~= 1 and slot ~= 2 then return 2 end
|
f603a60f
zhouhaihai
支援技实装
|
360
|
local level = role.dinerData:getProperty("dishTree"):getv(support, 0)
|
e6ebee44
zhouhaihai
编队bug
|
361
|
if level <= 0 then return 3 end
|
f603a60f
zhouhaihai
支援技实装
|
362
363
|
supports[slot] = support
end
|
e6ebee44
zhouhaihai
编队bug
|
364
|
if not checkLeader(msg.heros, msg.leader) then return 4 end
|
f603a60f
zhouhaihai
支援技实装
|
365
|
|
98d32f92
liuzujun
多编队
|
366
367
368
369
370
371
372
373
374
|
if index > 10 then
return 5
end
if #title > 100 then
return 6
end
team.heros = {}
|
384bb077
zhouahaihai
挂机
|
375
|
for slot, heroId in pairs(msg.heros) do
|
98d32f92
liuzujun
多编队
|
376
377
378
379
380
|
team.heros[slot] = heroId
end
team.leader = msg.leader
team.supports = supports
team.title = title
|
f7f26c15
zhouhaihai
编队整理 增加 tactics战术
|
381
382
383
|
if msg.tactics and globalCsv.tactics_skill_passive_cell[msg.tactics] then
team.tactics = msg.tactics
end
|
98d32f92
liuzujun
多编队
|
384
|
|
761b3ea8
chenyueqi
再改一波电波塔整容相关信息
|
385
386
387
388
389
|
if tower then
role:setTowerTeamFormat(index, team)
else
role:setTeamFormat(index, team)
end
|
98d32f92
liuzujun
多编队
|
390
|
|
384bb077
zhouahaihai
挂机
|
391
392
393
394
|
SendPacket(actionCodes.Hang_roleFormatRpc, '')
return true
end
|
5af8b4aa
zhouahaihai
挂机down
|
395
396
397
398
399
|
function _M.getRewardRpc(agent , data)
local role = agent.role
checkReward(role)
local items = role:getProperty("hangBag")
if not next(items) then return end
|
7bb30dca
zhouhaihai
修改发奖
|
400
|
local reward, change = role:award(items, {log = {desc = "hangReward"}})
|
5af8b4aa
zhouahaihai
挂机down
|
401
402
403
|
table.clear(items)
local hangInfo = role:getProperty("hangInfo")
local nowTime = skynet.timex()
|
a42130ee
chenyueqi
电波塔加成错误
|
404
405
406
|
local timeAdd = role:getBnousHangTime()
hangInfo.endItemTime = nowTime + globalCsv.idle_producetime_max + timeAdd
hangInfo.endCoinTime = nowTime + globalCsv.idle_producetime_max + timeAdd
|
5af8b4aa
zhouahaihai
挂机down
|
407
408
409
410
|
hangInfo.coinTime = nowTime
hangInfo.itemTime = nowTime
role:updateProperty({field = "hangBag", value = items})
role:updateProperty({field = "hangInfo", value = hangInfo})
|
072db127
zhouhaihai
推送
|
411
412
|
role:pushMsg({type = "hang", time = globalCsv.idle_producetime_max})
|
190e1415
liuzujun
英雄帖活动初始化
|
413
|
role:checkTaskEnter("HangGet", {reward = reward})
|
53e8037e
zhouhaihai
任务
|
414
415
|
if reward[ItemId.Gold] then
role:checkTaskEnter("HangGetGold", {count = reward[ItemId.Gold]})
|
bcf5bfbb
zhouahaihai
挂机new
|
416
|
end
|
d43246b0
zhouhaihai
log 增加
|
417
418
419
420
421
422
423
424
425
426
427
|
role:log("residence_reward", {
mission_threadid = math.floor(hangInfo.carbonId / 10000), --大关卡ID
mission_id = hangInfo.carbonId, --关卡ID
mission_type = 100, --关卡类型,见关卡类型枚举表
residence_reward_type = 0, --领取奖励方式,快速(超前领取)记录为1,正常领取记录为0
residence_time = 0, --挂机或排名时长
residence_reward = reward, --获得奖励,建议使用json格式记录。示例:{ "XX": "1", "XXX": "3"}
})
|
53e8037e
zhouhaihai
任务
|
428
|
SendPacket(actionCodes.Hang_getRewardRpc, MsgPack.pack({
|
7bb30dca
zhouhaihai
修改发奖
|
429
430
|
reward = reward,
change = change
|
bcf5bfbb
zhouahaihai
挂机new
|
431
432
433
434
|
}))
return true
end
|
9962b061
zhouahaihai
补充 挂机
|
435
436
437
438
439
440
|
function _M.quickRpc(agent , data)
local role = agent.role
local hangInfo = role:getProperty("hangInfo")
if not hangInfo.carbonId then return end
local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId]
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
441
442
|
--local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
local expCarbonData = hangInfo.expData or {}
|
9962b061
zhouahaihai
补充 挂机
|
443
444
445
446
447
|
local curCount = role.dailyData:getProperty("hangQC") + 1
local costs = globalCsv.idle_quickproduce_cost:toArray(true, "=")
if not costs[curCount] then return end
if costs[curCount] > 0 then
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
448
449
|
if not role:checkItemEnough({[ItemId.Jade] = costs[curCount]}) then return end
role:costItems({[ItemId.Jade] = costs[curCount]}, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
|
9962b061
zhouahaihai
补充 挂机
|
450
451
452
453
454
455
456
457
458
|
end
role.dailyData:updateProperty({field = "hangQC", value = curCount})
local time = globalCsv.idle_quickproduce_time
local reward = {}
local coinCount = math.floor(time / globalCsv.idle_money_produce_cd)
local itemCount = math.floor(time / globalCsv.idle_item_produce_cd)
|
2a542865
liuzujun
齿轮、经验 奖励投放逻辑调整
|
459
460
461
|
reward[ItemId.Gold] = math.floor((reward[ItemId.Gold] or 0) + coinCount * (expCarbonData.money or 0))
reward[ItemId.Exp] = math.floor((reward[ItemId.Exp] or 0) + coinCount * (expCarbonData.exp or 0))
reward[ItemId.PlayerExp] = math.floor((reward[ItemId.PlayerExp] or 0) + coinCount * (expCarbonData.playerExp or 0))
|
9962b061
zhouahaihai
补充 挂机
|
462
463
464
465
466
467
468
469
470
|
local pool = {}
for _, temp in pairs(carbonData.item:toArray()) do
table.insert(pool, temp:toArray(true, "="))
end
for i = 1, itemCount do
local cur = pool[math.randWeight(pool, 3)]
reward[cur[1]] = (reward[cur[1]] or 0) + cur[2]
end
|
317a46a9
liuzujun
添加特权卡
|
471
|
|
9e1a93c2
liuzujun
快速挂机掉落浮点数取整
|
472
|
local doubleCoef = role.activity:isOpen("DoubleDrop") and 2 or 1
|
317a46a9
liuzujun
添加特权卡
|
473
474
|
-- 特权卡获取加速获得额外道具
local coef = role.storeData:getProduceItemSpeedCoef()
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
475
|
if coef > 1 or doubleCoef > 1 then
|
317a46a9
liuzujun
添加特权卡
|
476
|
for k, cnt in pairs(reward) do
|
9e1a93c2
liuzujun
快速挂机掉落浮点数取整
|
477
|
reward[k] = math.floor(cnt * coef * doubleCoef)
|
317a46a9
liuzujun
添加特权卡
|
478
479
480
|
end
end
|
7bb30dca
zhouhaihai
修改发奖
|
481
482
|
local change
reward, change = role:award(reward, {log = {desc = "quickHang", int1 = hangInfo.carbonId}})
|
f60b89b1
zhouhaihai
奖励副本
|
483
484
485
|
if reward[ItemId.Gold] then
role:checkTaskEnter("HangGetGold", {count = reward[ItemId.Gold]})
end
|
53e8037e
zhouhaihai
任务
|
486
|
role:checkTaskEnter("HangQuick")
|
d43246b0
zhouhaihai
log 增加
|
487
488
489
490
491
492
493
494
495
|
role:log("residence_reward", {
mission_threadid = math.floor(hangInfo.carbonId / 10000), --大关卡ID
mission_id = hangInfo.carbonId, --关卡ID
mission_type = 100, --关卡类型,见关卡类型枚举表
residence_reward_type = 1, --领取奖励方式,快速(超前领取)记录为1,正常领取记录为0
residence_time = time, --挂机或排名时长
residence_reward = reward, --获得奖励,建议使用json格式记录。示例:{ "XX": "1", "XXX": "3"}
})
|
9962b061
zhouahaihai
补充 挂机
|
496
|
SendPacket(actionCodes.Hang_quickRpc, MsgPack.pack({
|
7bb30dca
zhouhaihai
修改发奖
|
497
498
|
reward = reward,
change = change
|
9962b061
zhouahaihai
补充 挂机
|
499
500
501
502
|
}))
return true
end
|
f60b89b1
zhouhaihai
奖励副本
|
503
504
505
506
507
508
509
510
|
function _M.buyBonusCountRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local count = msg.count
local btype = msg.type
|
3133cb76
zhouhaihai
日志
|
511
|
if not TimeReset["DailyBattle" .. btype] then return end
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
512
513
|
local open, actId = role.activity:isOpen("BonusDouble")
local actData = csvdb["activity_ctrlCsv"][actId]
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
514
|
|
a526f9ef
liuzujun
奖励关卡活动未开启导致Bug
|
515
516
517
518
|
local coef = 1
if open and actData then
coef= tonumber(actData.condition2)
end
|
f60b89b1
zhouhaihai
奖励副本
|
519
520
|
local bonusC = role.dailyData:getProperty("bonusC")
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
521
|
local extraCnt = role.storeData:getBonusExtraFightCount()
|
f60b89b1
zhouhaihai
奖励副本
|
522
|
bonusC[btype] = bonusC[btype] or {c = 0, b = 0}
|
00bf6029
liuzujun
限时礼包,抽卡ssr广播
|
523
|
local lastCount = globalCsv.bonus_daily_buy_count * coef + extraCnt - bonusC[btype]["b"]
|
f60b89b1
zhouhaihai
奖励副本
|
524
525
|
if math.illegalNum(count, 1, lastCount) then return 1 end
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
526
|
if not role:checkItemEnough({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}) then return 2 end
|
f60b89b1
zhouhaihai
奖励副本
|
527
|
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
528
|
role:costItems({[ItemId.Jade] = globalCsv.bonus_buy_cost * count}, {log = {desc = "buyBonusCount", int1 = btype, int2 = count}})
|
d481965d
zhouhaihai
购买次数bug
|
529
530
|
bonusC[btype]["b"] = bonusC[btype]["b"] + count
bonusC[btype]["c"] = bonusC[btype]["c"] - count
|
f60b89b1
zhouhaihai
奖励副本
|
531
532
533
534
535
536
537
|
role.dailyData:updateProperty({field = "bonusC", value = bonusC})
SendPacket(actionCodes.Hang_buyBonusCountRpc, '')
return true
end
|
40b19300
chenyueqi
电波塔激活加成效果后对各个系统的加成
|
538
|
local function bonusWinReward(role, bonusData, rewardType, count, sweep)
|
be24b6ad
zhouhaihai
传递 count
|
539
|
count = count or 1
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
540
|
|
55c7c172
zhouhaihai
奖励副本 新机制
|
541
542
543
544
|
local reward, change = {}
if rewardType == 1 or rewardType == 4 then
for k, v in pairs(bonusData.clear_reward:toNumMap()) do
reward[k] = (reward[k] or 0) + v
|
be24b6ad
zhouhaihai
传递 count
|
545
546
547
|
end
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
548
|
if rewardType == 2 or rewardType == 4 then
|
e4a17692
zhouhaihai
奖励关卡 满星奖励
|
549
550
551
552
|
for k, v in pairs(bonusData.perfect_reward:toNumMap()) do
reward[k] = (reward[k] or 0) + v
end
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
553
554
555
|
if rewardType == 3 then
local open, actId = role.activity:isOpen("BonusDouble")
|
1ce3adac
zhouhaihai
充值
|
556
557
558
559
|
local actData
if open then
actData = csvdb["activity_ctrlCsv"][actId]
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
560
561
562
563
564
565
566
567
568
569
570
|
reward = bonusData.reward:toNumMap()
for itemId, c in pairs(reward) do
reward[itemId] = c * count
end
for i = 1, count do
local chance = bonusData.chance:randWeight(true)
if chance[1] ~= 0 then
reward[chance[1]] = (reward[chance[1]] or 0) + chance[2]
end
end
|
1ce3adac
zhouhaihai
充值
|
571
572
573
574
|
if open and actData then
for k, v in pairs(reward) do
reward[k] = v * (actData.condition > 1 and actData.condition or 1)
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
575
576
577
|
end
end
|
40b19300
chenyueqi
电波塔激活加成效果后对各个系统的加成
|
578
579
580
581
582
583
584
|
if sweep then
local bnousReward = role:getBnousSweep()
for key, value in pairs(bnousReward) do
reward[key] = (reward[key] or 0) + value * count
end
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
585
586
587
|
reward, change = role:award(reward, {log = {desc = "bonusBattle", int1 = bonusData.id}})
role:checkTaskEnter("BonusPass", {id = bonusData.id, count = count})
return reward, change
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
588
589
|
end
|
f60b89b1
zhouhaihai
奖励副本
|
590
591
592
593
|
function _M.startBonusBattleRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local id = msg.id
|
be24b6ad
zhouhaihai
传递 count
|
594
|
local count = msg.count or 1
|
f60b89b1
zhouhaihai
奖励副本
|
595
|
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
596
597
598
|
local open, actId = role.activity:isOpen("BonusDouble")
if not role:isFuncUnlock(FuncUnlock.BonusBattle) then return 1 end
|
d232676a
zhouhaihai
功能解锁 冒险返回
|
599
|
|
f60b89b1
zhouhaihai
奖励副本
|
600
|
local bonusData = csvdb["bonus_battleCsv"][id]
|
bc902e2d
zhouhaihai
增加开放判断
|
601
|
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
602
603
604
|
if not open then
if not role:isTimeResetOpen(TimeReset["DailyBattle" .. bonusData.type]) then return 2 end
end
|
bc902e2d
zhouhaihai
增加开放判断
|
605
|
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
606
|
if not bonusData then return 3 end
|
c5e11ffc
zhouhaihai
解锁条件修改
|
607
|
local bonusStar = role:getProperty("bonusStar")
|
f60b89b1
zhouhaihai
奖励副本
|
608
|
|
4591e219
zhouhaihai
bug
|
609
|
if bonusData.unlock ~= 0 and (not bonusStar[bonusData.unlock] or bonusStar[bonusData.unlock] == 0) then return 4 end
|
f60b89b1
zhouhaihai
奖励副本
|
610
|
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
611
|
if bonusStar[id] and bonusStar[id] >= (1 << #bonusData.sweep_condition:toTableArray(true)) - 1 then
|
55c7c172
zhouhaihai
奖励副本 新机制
|
612
613
614
615
616
617
618
619
620
621
622
623
624
625
|
local bonusC = role.dailyData:getProperty("bonusC")
bonusC[bonusData.type] = bonusC[bonusData.type] or {c = 0, b = 0}
local actData = csvdb["activity_ctrlCsv"][actId]
local extraCnt = role.storeData:getBonusExtraFightCount()
local coef = 1
if open and actData then
coef = tonumber(actData.condition2)
end
if math.illegalNum(count, 1, globalCsv.bonus_daily_count * coef + extraCnt - bonusC[bonusData.type]["c"]) then return 7 end
bonusC[bonusData.type]["c"] = bonusC[bonusData.type]["c"] + count
role.dailyData:updateProperty({field = "bonusC", value = bonusC})
|
40b19300
chenyueqi
电波塔激活加成效果后对各个系统的加成
|
626
|
local reward, change = bonusWinReward(role, bonusData, 3, count, true)
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
627
|
SendPacket(actionCodes.Hang_startBonusBattleRpc, MsgPack.pack({reward = reward, change = change}))
|
f76d63e1
liuzujun
联动任务活动
|
628
629
|
role:checkTaskEnter("BonusQuick", {count = count})
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
630
631
632
633
634
635
636
637
638
|
else
local bTeam = role:getTeamFormatByType(TeamSystemType.BonusBattle)
if not next(bTeam) then return 5 end
role.__bonusBattleCache = {
key = tostring(math.random()),
id = id,
}
SendPacket(actionCodes.Hang_startBonusBattleRpc, MsgPack.pack({key = role.__bonusBattleCache.key}))
end
|
f60b89b1
zhouhaihai
奖励副本
|
639
|
|
f60b89b1
zhouhaihai
奖励副本
|
640
641
642
643
644
645
646
647
648
649
|
return true
end
function _M.endBonusBattleRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local id = msg.id
local key = msg.key
local starNum = msg.starNum
if not role.__bonusBattleCache then return 1 end
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
650
|
|
f60b89b1
zhouhaihai
奖励副本
|
651
|
|
d6a66c74
zhouhaihai
校验失败也返回
|
652
653
654
655
|
if role.__bonusBattleCache.id ~= id or role.__bonusBattleCache.key ~= key then
SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({errorCode = 1}))
return true
end
|
edf2ee12
zhouhaihai
防作弊
|
656
657
658
659
660
661
662
663
664
665
666
667
|
role.__bonusBattleCache = nil
-- 防作弊
if not role:checkBattleCheat("bonus", {
id = id,
isWin = starNum and starNum > 0,
info = msg.info
}) then
SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({errorCode = 1}))
return true
end
|
f60b89b1
zhouhaihai
奖励副本
|
668
669
|
local bonusData = csvdb["bonus_battleCsv"][id]
|
1ce3adac
zhouhaihai
充值
|
670
|
local reward, change = {}
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
671
672
|
local bonusStar = role:getProperty("bonusStar")
|
55c7c172
zhouhaihai
奖励副本 新机制
|
673
|
local oldStar = bonusStar[id] or 0
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
674
|
local curStar = 0
|
f60b89b1
zhouhaihai
奖励副本
|
675
|
if starNum and starNum > 0 then
|
74a8fdc9
zhouhaihai
奖励副本 胜利扣除次数
|
676
|
-- 胜利扣除次数
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
677
|
|
ce950b6e
zhouhaihai
bug
|
678
|
local bTeam = role:getTeamFormatByType(TeamSystemType.BonusBattle)
|
821e2704
zhouhaihai
heros 增加 supports
|
679
|
local herosInfo = role:getTeamHerosInfo(bTeam).heros
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
680
681
682
683
684
685
686
687
688
|
local check = {}
-- 1 通关
check[1] = function(_)
return true
end
-- 2 阵亡人数 <= N
check[2] = function(_, cond)
return msg.info.dead and msg.info.dead <= cond
|
b2747fbc
zhouhaihai
挂机
|
689
|
end
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
690
691
692
|
-- 3 全员存活
check[3] = function(_)
return msg.info.dead and msg.info.dead == 0
|
accf94c4
liuzujun
活动以类型标识,修改双倍活动bug
|
693
|
end
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
694
695
696
697
|
-- 4 指定种族 >= N
check[4] = function(_, cond)
local count = 0
for _, one in pairs(herosInfo) do
|
66fe093a
liuzujun
元旦关卡活动
|
698
|
local heroData = csvdb["unitCsv"][one.type]
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
699
700
701
702
703
704
705
706
707
708
|
if heroData.camp == cond then
count = count + 1
end
end
return count >= cond
end
-- 5 指定职业 >= N
check[5] = function(_, cond)
local count = 0
for _, one in pairs(herosInfo) do
|
66fe093a
liuzujun
元旦关卡活动
|
709
|
local heroData = csvdb["unitCsv"][one.type]
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
|
if heroData.job == cond then
count = count + 1
end
end
return count >= cond
end
-- 6 含有指定角色
check[6] = function(_, cond)
for _, one in pairs(herosInfo) do
if one.type == cond then
return true
end
end
return false
end
-- 7 通关耗时 <= X 秒 msg.info.atime
check[7] = function(_, cond)
return msg.info.atime and msg.info.atime <= cond
end
curStar = 0
|
e4a17692
zhouhaihai
奖励关卡 满星奖励
|
730
731
|
local sweepConds = bonusData.sweep_condition:toTableArray(true)
for i, cond in ipairs(sweepConds) do
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
732
733
734
735
|
if check[cond[1]] and check[cond[1]](table.unpack(cond)) then
curStar = curStar + (1 << (i - 1))
end
end
|
e4a17692
zhouhaihai
奖励关卡 满星奖励
|
736
|
local status
|
55c7c172
zhouhaihai
奖励副本 新机制
|
737
738
739
740
741
742
743
744
745
746
747
748
749
|
local rewardType = 0
if curStar >= (1 << #sweepConds) - 1 then -- 满星
rewardType = 2
if oldStar == 0 then --通关
rewardType = 4
end
elseif oldStar == 0 then --通关
rewardType = 1
end
if rewardType ~= 0 then
reward, change = bonusWinReward(role, bonusData, rewardType)
end
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
750
|
else
|
55c7c172
zhouhaihai
奖励副本 新机制
|
751
|
curStar = oldStar
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
752
|
end
|
55c7c172
zhouhaihai
奖励副本 新机制
|
753
|
if curStar ~= oldStar then
|
3c51e6d4
zhouhaihai
奖励副本 完成
|
754
755
|
bonusStar[id] = curStar
role:updateProperty({field = "bonusStar", value = bonusStar})
|
f60b89b1
zhouhaihai
奖励副本
|
756
757
|
end
|
d4e9b817
zhouhaihai
战斗 日志
|
758
759
760
761
762
763
|
role:checkBattle("bonus", {
id = id,
isWin = starNum and starNum > 0,
info = msg.info,
reward = reward,
})
|
d02f7904
zhouhaihai
遗失的log
|
764
765
|
role:mylog("hang_action", {desc = "bonusBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = id})
|
f60b89b1
zhouhaihai
奖励副本
|
766
767
|
SendPacket(actionCodes.Hang_endBonusBattleRpc, MsgPack.pack({
starNum = starNum,
|
7bb30dca
zhouhaihai
修改发奖
|
768
769
770
|
reward = reward,
change = change
}))
|
f60b89b1
zhouhaihai
奖励副本
|
771
772
773
|
return true
end
|
a6508219
zhouhaihai
挂机奖励
|
774
775
776
777
778
779
780
781
782
783
784
|
function _M.hangGiftRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local id = msg.id
local carbonData = csvdb["idle_battleCsv"][id]
if not carbonData or carbonData.item_clear_special == "" then return 1 end
local hangGift = role:getProperty("hangGift")
if hangGift[id] then return 2 end
|
7bb30dca
zhouhaihai
修改发奖
|
785
|
local reward, change = role:award(carbonData.item_clear_special, {log = {desc = "hangGift", int1 = id}})
|
a6508219
zhouhaihai
挂机奖励
|
786
787
|
role:changeUpdates({{type = "hangGift", field = id, value = 1}})
|
d02f7904
zhouhaihai
遗失的log
|
788
|
role:mylog("hang_action", {desc = "hangGift", int1 = id})
|
a6508219
zhouhaihai
挂机奖励
|
789
|
|
7bb30dca
zhouhaihai
修改发奖
|
790
|
SendPacket(actionCodes.Hang_hangGiftRpc, MsgPack.pack({reward = reward, change = change}))
|
a6508219
zhouhaihai
挂机奖励
|
791
792
|
return true
end
|
f60b89b1
zhouhaihai
奖励副本
|
793
|
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
794
795
796
797
798
799
800
|
function _M.bagFieldRpc(agent, data)
local role = agent.role
local curBL = role:getProperty("hangBagLimit")
local costD = globalCsv.idle_field_cost[curBL - globalCsv.idle_field_origin]
if not costD then
return 1
end
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
801
|
if costD ~= 0 and not role:checkItemEnough({[ItemId.Jade] = costD}) then
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
802
803
804
|
return 2
end
role:updateProperty({field = "hangBagLimit", value = curBL + 1})
|
3d8050ef
liuzujun
钻石3改成虹光玉8
|
805
|
role:costItems({[ItemId.Jade] = costD}, {log = {desc = "bagField"}})
|
64e63ad0
wangyujie
完成需求:挂机栏位物品数量上限和钻...
|
806
807
808
|
SendPacket(actionCodes.Hang_bagFieldRpc, '')
return true
end
|
f60b89b1
zhouhaihai
奖励副本
|
809
|
|
ed20f277
zhouhaihai
chatline 奖励
|
810
811
812
|
function _M.chatLineRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
|
ed20f277
zhouhaihai
chatline 奖励
|
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
|
local id = msg.id
local idleData = csvdb["idle_battleCsv"][id]
if not idleData or idleData.chatline == 0 then
return
end
local chatline = role:getProperty("chatline")
if chatline[id] then return end
if not role:checkHangPass(id) then return end
chatline[id] = skynet.timex()
role:updateProperty({field = "chatline", value = chatline})
|
7bb30dca
zhouhaihai
修改发奖
|
828
|
local reward, change = role:award(idleData.chatline_reward, {log = {desc = "chatline", int1 = id}})
|
ed20f277
zhouhaihai
chatline 奖励
|
829
|
|
7bb30dca
zhouhaihai
修改发奖
|
830
|
SendPacket(actionCodes.Hang_chatLineRpc, MsgPack.pack({reward = reward, change = change}))
|
ed20f277
zhouhaihai
chatline 奖励
|
831
832
833
|
return true
end
|
98d32f92
liuzujun
多编队
|
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
|
function _M.selectTeamRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local index = msg.index -- 阵容索引
local type = msg.type -- 系统类型
if index > 10 then
return 1
end
local team = role:getTeamFormat(index)
if not next(team) then return 2 end
local teamIndex = role:getProperty("teamIndex") or {}
teamIndex[type] = index
role:updateProperty({field = "teamIndex", value = teamIndex})
|
782ee57d
liuzujun
多编队功能
|
850
851
852
853
854
|
if type == TeamSystemType.Hang then
role:finishGuide(5)
role:updateHangTeamInfo()
end
|
98d32f92
liuzujun
多编队
|
855
856
857
858
|
SendPacket(actionCodes.Hang_selectTeamRpc, '')
return true
end
|
ba33bcac
liuzujun
挂机章节解锁
|
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
|
function _M.unlockChapterRpc(agent, data)
local role = agent.role
local msg = MsgPack.unpack(data)
local carbonId = msg.carbonId -- 解锁章节id
local condition = globalCsv.idle_chapter_unlock[carbonId]
if not condition then return 1 end
local conditionMap = condition:toArray(true, "=")
local count, level = conditionMap[1],conditionMap[2]
local cnt = 0
for _, hero in pairs(role.heros) do
if hero:getProperty("level") >= level then
cnt = cnt + 1
end
end
if cnt < count then return 2 end
local unlockChapter = role:getProperty("unlockChap")
unlockChapter[carbonId] = 1
role:updateProperty({field="unlockChap", value = unlockChapter})
SendPacket(actionCodes.Hang_unlockChapterRpc, '')
return true
end
|
42dcb7da
liuzujun
merge code
|
883
|
return _M
|