23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 
 | 
  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
  
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
17
18 
 | 
  local AdvCommon = require "adv.AdvCommon"
  
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
19
20 
 | 
  local _M = {}
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 
 | 
  -- 无尽模式是否开放
  local function isOpenEndless(role)
  	if role.advOverTime ~= 0 and skynet.timex() >= role.advOverTime then
  		return false
  	end
  	return true
  end
  -- 冒险内的操作是否可以继续
  local function isCanContinue(role)
  	local adv = role:getAdvData()
  	if not adv:isRunning() then return false end
  	if adv:isEndless() then
  		if not isOpenEndless(role) then return false end
  	end
  	return true
  end
  
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
38 
 | 
  
 
 | 
c3d5fe54
 
  zhouhaihai
 
无战斗状态挂机清掉战斗队伍
 | 
39 
 | 
  local function checkFormat(role, format, checkAdvTeam)
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
40
41
42
43
44
45
46
47
48
49 
 | 
  	local advHang = role:getProperty("advHang")
  	local hadHero = {}
  	for chapterId, info in pairs(advHang) do
  		if info.format then
  			for _, heroId in pairs(info.format.heros) do
  				hadHero[heroId] = true
  			end
  		end
  	end
  
 
 | 
98d32f92
 
  测试
 
多编队
 | 
50
51
52
53 
 | 
  	if not format then
  		format = role:getProperty("advTeam")
  	end
  
 
 | 
c3d5fe54
 
  zhouhaihai
 
无战斗状态挂机清掉战斗队伍
 | 
54 
 | 
  	if checkAdvTeam then
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
55
56
57
58
59
60 
 | 
  		for _, heroId in pairs(role:getProperty("advTeam").heros or {}) do
  			hadHero[heroId] = true
  		end
  	end
  
  	if not format.leader then return end
 
 | 
bfd33de5
 
  zhouhaihai
 
队长技
 | 
61 
 | 
  	if format.leader2 == format.leader then return end
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
62 
 | 
  	local hadLeader = false
 
 | 
bfd33de5
 
  zhouhaihai
 
队长技
 | 
63
64 
 | 
  	local hadLeader2 = false
  	local heroCount = 0
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
65
66
67
68
69
70
71 
 | 
  	for slot, heroId in pairs(format.heros) do
  		if not role.heros[heroId] or hadHero[heroId] then
  			return
  		end
  		if heroId == format.leader then
  			hadLeader = true
  		end
 
 | 
bfd33de5
 
  zhouhaihai
 
队长技
 | 
72
73
74
75
76
77
78 
 | 
  		if heroId == format.leader2 then
  			hadLeader2 = true
  		end
  		heroCount = heroCount + 1
  	end
  	if not hadLeader2 and heroCount >= 2 then
  		return
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
79
80
81
82
83 
 | 
  	end
  	if not hadLeader then return end
  	return true
  end
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
84 
 | 
  --开始一个新的关卡
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
85
86
87 
 | 
  function _M.startAdvRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
88
89 
 | 
  	local chapterId = msg.chapterId --关卡id
  	local layer = msg.layer or 1	--选择层数
 
 | 
98d32f92
 
  测试
 
多编队
 | 
90 
 | 
  	--local format = msg.format 		--编队
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
91 
 | 
  	local supportIdx = msg.supportIdx --选择的支援效果
 
 | 
d232676a
 
  zhouhaihai
 
功能解锁  冒险返回
 | 
92
93 
 | 
  	if not role:isFuncUnlock(FuncUnlock.Adv) then return end
  	
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
94 
 | 
  	--上一个关卡结束才可以开始新的关卡
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
95 
 | 
  	if role:getAdvData():isRunning() then return 8 end
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
96 
 | 
  	local advHang = role:getProperty("advHang")
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
97 
 | 
  	-- if advHang[chapterId] then return 9 end --正在挂机
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
98 
 | 
  
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
99 
 | 
  
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
100 
 | 
  	local chapterData = csvdb["adv_chapterCsv"][chapterId]
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
101 
 | 
  	if not chapterData or layer < 1 then return  1 end
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
102 
 | 
  
 
 | 
47d5d769
 
  zhouhaihai
 
中继判断 随机任务
 | 
103 
 | 
  	local advPass = role:getProperty("advPass")
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
104
105
106 
 | 
  
  	if AdvCommon.isEndless(chapterId) then -- 无尽模式判断
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
107
108 
 | 
  		if chapterId ~= role.advElChapter then return end -- 不是当前进行的章节
  		if not isOpenEndless(role) then return end
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
109 
 | 
  
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
110 
 | 
  		if role.dailyData:getProperty("advElC") >= role:getAdvElLimit() then return 2 end -- 是否有体力
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
111
112
113 
 | 
  		if not role:isFuncOpen(FuncOpenType.AdvEndless) then return 11 end -- 无尽模式 才可以玩儿无尽模式
  
  		local advElM = role:getProperty("advElM")  --最高通关的层数
 
 | 
e51ff6d2
 
  zhouhaihai
 
冒险~
 | 
114 
 | 
  		if not role:advChapterIsOpen(chapterId) then return 13 end
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
115 
 | 
  
 
 | 
e51ff6d2
 
  zhouhaihai
 
冒险~
 | 
116 
 | 
  		if layer ~= 1 then
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
117 
 | 
  			local relayData = role:getAdvData():isHaveRelay(layer, chapterId) 
 
 | 
e51ff6d2
 
  zhouhaihai
 
冒险~
 | 
118
119 
 | 
  			if not relayData then return 14 end  -- 不是中继层
  			if advElM < relayData.unlockfloor then return 15 end --未解锁
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
120 
 | 
  		end 
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
121 
 | 
  	else   -- 普通模式判断
 
 | 
fc316d1f
 
  zhouhaihai
 
冒险体力优化
 | 
122 
 | 
  		if not role:checkAdvCount(chapterData.limitlevel) then return 2 end -- 是否有体力
 
 | 
e51ff6d2
 
  zhouhaihai
 
冒险~
 | 
123 
 | 
  		if layer >= chapterData.limitlevel  then return 4 end
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
124 
 | 
  		-- 关卡开放判断
 
 | 
e51ff6d2
 
  zhouhaihai
 
冒险~
 | 
125
126
127
128
129
130
131 
 | 
  		if not role:advChapterIsOpen(chapterId) then return 5 end
  
  		if layer ~= 1 then
  			local relayData = role:getAdvData():isHaveRelay(layer, chapterId) 
  			if not relayData then return 6 end  -- 不是中继层
  			if (advPass[chapterId] or 0) < relayData.floor then return 21 end
  		end
 
 | 
8da953a7
 
  zhouhaihai
 
无尽模式
 | 
132 
 | 
  	end
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
133 
 | 
  	
 
 | 
98d32f92
 
  测试
 
多编队
 | 
134
135
136
137
138
139
140
141
142
143
144
145 
 | 
  	if not checkFormat(role) then return 7 end
  
  	--local advTeam = role:getProperty("advTeam")
  	--table.clear(advTeam)
  
  	--advTeam.heros = {}
  	--for slot, heroId in pairs(format.heros) do
  	--	advTeam.heros[slot] = heroId
  	--end
  	--advTeam.leader = format.leader
  	--advTeam.leader2 = format.leader2
  	--role:updateProperty({field = "advTeam", value = advTeam})
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
146
147
148 
 | 
  	if AdvCommon.isEndless(chapterId) then
  		role.dailyData:updateProperty({field = "advElC", delta = 1})
  	else
 
 | 
fc316d1f
 
  zhouhaihai
 
冒险体力优化
 | 
149 
 | 
  		role:changeAdvCount(chapterData.limitlevel)
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
150 
 | 
  	end
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
151 
 | 
  
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170 
 | 
  	local support = {}  -- 支援效果
  	if AdvCommon.isEndless(chapterId) then
  		-- 选择的支援效果
  		local advSup = role:getProperty("advSup")
  		if supportIdx then
  			if advSup[supportIdx] then
  				table.insert(support, advSup[supportIdx])
  			end
  			role:advRandomSupportEffect() -- 选完就重新随机
  		end
  		-- 增加 默认增加的支援效果
  		local active = role:getAdvActiveSupportEffect()
  		for aId, _ in pairs(active) do
  			local curData = csvdb["adv_supportCsv"][aId]
  			if curData.type == 2 then
  				table.insert(support, aId)
  			end
  		end
  	end
 
 | 
35e2e3c4
 
  zhouhaihai
 
优化 gm advt  增加感知b...
 | 
171
172
173
174
175
176
177 
 | 
  	role:getAdvData():initByChapter({
  		chapterId = chapterId, 
  		level = layer, 
  		isRelay = layer ~= 1, 
  		isEnter = true, 
  		support = support,
  	})
 
 | 
53e8037e
 
  zhouhaihai
 
任务
 | 
178 
 | 
  	role:checkTaskEnter("AdvStart", {id = chapterId})
 
 | 
f60b89b1
 
  zhouhaihai
 
奖励副本
 | 
179 
 | 
  	role:checkTaskEnter("AdvStartSelf", {id = chapterId})
 
 | 
ecf464a3
 
  zhouhaihai
 
冒险开始bug
 | 
180 
 | 
  	role:getAdvData():popBackEvents() -- 清一下事件
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
181 
 | 
  	role:getAdvData():mylog({desc = "start", int1 = supportIdx})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
182 
 | 
  
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
183
184
185 
 | 
  	SendPacket(actionCodes.Adv_startAdvRpc, '')
  	return true
  end
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
186
187 
 | 
  
  function _M.startHangRpc(agent, data)
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
188
189 
 | 
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
190 
 | 
  	local chapterId = msg.chapterId --关卡id
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
191 
 | 
  	local campId = msg.campId or 2 --营地id
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
192 
 | 
  	local format = msg.format --编队
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
193 
 | 
  	local index = msg.index or 1--时间索引id
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
194 
 | 
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
195 
 | 
  	local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId]
 
 | 
39e60fd1
 
  zhouhaihai
 
支持上传 oss
 | 
196 
 | 
  	if not chapterData then return 1 end
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
197
198
199
200
201
202
203
204
205
206 
 | 
  	local campSiteData = chapterData[campId]
  	if not campSiteData then return 1 end
  	if campSiteData.idleReward_1 == "" and campSiteData.idleReward_2 == "" then return 2 end --没有奖励 没有挂机
  
  	local adv_idle_time = globalCsv.adv_idle_time[index]
  	local adv_idle_energy = globalCsv.adv_idle_energy[index]
  	local adv_idle_reward_coef = globalCsv.adv_idle_reward[index]
  	if not adv_idle_time or not adv_idle_energy or not adv_idle_reward_coef then
  		return 2
  	end
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
207 
 | 
  	adv_idle_time = adv_idle_time * 60
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
208
209 
 | 
  
  	local advHang = role:getProperty("advHang")
 
 | 
39e60fd1
 
  zhouhaihai
 
支持上传 oss
 | 
210 
 | 
  	if advHang[chapterId] then return 3 end --正在挂机
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
211 
 | 
  
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
212 
 | 
  	-- if role:getAdvData():isRunning() and role:getAdvData().chapterId == chapterId then return 4 end
 
 | 
73da9b9d
 
  zhouhaihai
 
冒险队伍优化
 | 
213 
 | 
  
 
 | 
39e60fd1
 
  zhouhaihai
 
支持上传 oss
 | 
214 
 | 
  	if AdvCommon.isEndless(chapterId) then return 5 end -- 无尽没有代理
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
215 
 | 
  
 
 | 
be4e8031
 
  zhouhaihai
 
活动 拾荒
 | 
216 
 | 
  	local advRelay = role:getProperty("advRelay") 
 
 | 
39e60fd1
 
  zhouhaihai
 
支持上传 oss
 | 
217 
 | 
  	if not next(advRelay[chapterId] or {}) then return 6 end -- 没有开放
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
218 
 | 
  
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
219 
 | 
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
220 
 | 
  	if not role:checkAdvCount(adv_idle_energy) then return 7 end -- 是否有体力
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
221 
 | 
  
 
 | 
39e60fd1
 
  zhouhaihai
 
支持上传 oss
 | 
222 
 | 
  	if not checkFormat(role, format, role:getAdvData():isRunning()) then return 8 end --编队是否正确
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
223 
 | 
  
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
224
225
226
227
228
229
230 
 | 
  	local player = {}
  	local attrs = role:getTeamBattleInfo(format).heros
  	for attrName, _ in pairs(AdvAttsEnum) do
  		for _, hero in pairs(attrs) do
  			player[attrName] = (player[attrName] or 0) + hero[attrName]
  		end
  		player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1)
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
231 
 | 
  	end
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
232
233
234
235
236
237
238 
 | 
  
  	local battleV = 1 * player["hp"]
  		+ 2 * player["atk"]
  		+ 1.25 * player["def"]
  		+ 0.226 * player["hit"]
  		+ 0.26 * player["miss"]
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
239 
 | 
  	if battleV < campSiteData.idleValue then return 9 end -- 战斗力是否满足
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
240
241
242
243 
 | 
  
  	local info = {}
  	info.format = {}
  	info.format.leader = format.leader
 
 | 
bfd33de5
 
  zhouhaihai
 
队长技
 | 
244 
 | 
  	info.format.leader2 = format.leader2
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
245
246
247
248 
 | 
  	info.format.heros  = {}
  	for slot, heroId in pairs(format.heros) do
  		info.format.heros[slot] = heroId
  	end
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
249 
 | 
  	info.time = skynet.timex() + adv_idle_time --挂机时间
 
 | 
50bcef87
 
  测试
 
代理拾荒开始不移除拾荒队伍阵容
 | 
250 
 | 
  	info.duration = adv_idle_time
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
251
252 
 | 
  	info.campId = campId
  	info.index = index
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
253 
 | 
  
 
 | 
c3d5fe54
 
  zhouhaihai
 
无战斗状态挂机清掉战斗队伍
 | 
254 
 | 
  	-- 没有在战斗  用team来挂机了  把team清掉
 
 | 
50bcef87
 
  测试
 
代理拾荒开始不移除拾荒队伍阵容
 | 
255
256
257 
 | 
  	--if not role:getAdvData():isRunning() then
  	--	role:updateProperty({field = "advTeam", value = {}})
  	--end
 
 | 
072db127
 
  zhouhaihai
 
推送
 | 
258 
 | 
  	role:pushMsg({type = "adv", slot = chapterId, time = adv_idle_time})
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
259
260 
 | 
  	role:changeUpdates({{type = "advHang", field = chapterId, value = info}})
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
261 
 | 
  	role:changeAdvCount(adv_idle_energy)
 
 | 
53e8037e
 
  zhouhaihai
 
任务
 | 
262 
 | 
  	role:checkTaskEnter("AdvStart", {id = chapterId})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
263 
 | 
  	role:mylog("adv_action", {desc = "startHang", int1 = chapterId})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
264 
 | 
  
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
265
266
267
268 
 | 
  	SendPacket(actionCodes.Adv_startHangRpc, '')
  	return true
  end
  
 
 | 
96d591f7
 
  测试
 
天赋升级修改,增加英雄信赖
 | 
269
270
271
272
273
274
275
276
277
278 
 | 
  local function addHeroFaith(role, heroId, exp)
  	local hero = role.heros[heroId]
  	if not hero then
  		return
  	end
  
  	hero:addHeroFaith(exp)
  	return hero:getProperty("faith")
  end
  
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
279
280
281
282
283
284
285
286
287
288 
 | 
  function _M.quickHangRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local chapterId = msg.chapterId --关卡id
  	
  	local advHang = role:getProperty("advHang")
  	local info = advHang[chapterId]
  	if not info then return end 
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
289
290 
 | 
  	local index = info.index
  	local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId]
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
291 
 | 
  	if not chapterData then return end
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
292
293
294
295
296
297
298
299
300 
 | 
  
  	local campSiteData = chapterData[info.campId]
  	if not campSiteData then return 1 end
  	if campSiteData.idleReward_1 == "" and campSiteData.idleReward_2 == "" then return 2 end --没有奖励 没有挂机
  
  	local adv_idle_time = globalCsv.adv_idle_time[index]
  	if not adv_idle_time then
  		return 2
  	end
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
301 
 | 
  	adv_idle_time = adv_idle_time * 60
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
302
303
304
305 
 | 
  	
  	local reward, isFull
  	if skynet.timex() >= info.time then return end  -- 已经完成了
  
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
306 
 | 
  	local cost = math.ceil((info.time - skynet.timex()) / 3600 * globalCsv.adv_idle_quicken)
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
307
308 
 | 
  
  	if not role:checkItemEnough({[ItemId.Diamond] = cost}) then return end
 
 | 
33be3111
 
  zhouhaihai
 
修改hangPass 结构
 | 
309 
 | 
  	role:costItems({[ItemId.Diamond] = cost}, {log = {desc = "advQuickHang", int1 = chapterId}})
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
310
311
312 
 | 
  	info.time = 0
  	role:changeUpdates({{type = "advHang", field = chapterId, value = info}})
  
 
 | 
072db127
 
  zhouhaihai
 
推送
 | 
313 
 | 
  	role:pushCancel({type = "adv", slot = chapterId})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
314
315 
 | 
  	role:mylog("adv_action", {desc = "advQuickHang", int1 = chapterId})
  
 
 | 
5404ee7d
 
  zhouhaihai
 
冒险挂机加速
 | 
316
317
318
319 
 | 
  	SendPacket(actionCodes.Adv_quickHangRpc, '')
  	return true
  end
  
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
320
321
322
323
324
325
326
327
328
329
330 
 | 
  function _M.endHangRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local chapterId = msg.chapterId --关卡id
  	local cancel = msg.cancel  --是否是取消
  	
  	local advHang = role:getProperty("advHang")
  	local info = advHang[chapterId]
  	if not info then return end 
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
331
332 
 | 
  	local index = info.index or 1
  	local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId]
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
333 
 | 
  	if not chapterData then return end
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
334
335
336
337
338
339
340
341
342
343 
 | 
  	local campSiteData = chapterData[info.campId or 2]
  	if not campSiteData then return 1 end
  	if campSiteData.idleReward_1 == "" and campSiteData.idleReward_2 == "" then return 2 end --没有奖励 没有挂机
  
  	local adv_idle_time = globalCsv.adv_idle_time[index]
  	local adv_idle_energy = globalCsv.adv_idle_energy[index]
  	local adv_idle_reward_coef = globalCsv.adv_idle_reward[index]
  	if not adv_idle_time or not adv_idle_energy or not adv_idle_reward_coef then
  		return 2
  	end
 
 | 
533db86a
 
  测试
 
代理拾荒bug
 | 
344 
 | 
  	adv_idle_time = adv_idle_time * 60
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
345 
 | 
  	
 
 | 
96d591f7
 
  测试
 
天赋升级修改,增加英雄信赖
 | 
346 
 | 
  	local reward, isFull, change, heroFaithMap
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
347 
 | 
  	if skynet.timex() >= info.time then
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
348
349 
 | 
  		-- 最新需求加成取消
  		--[[
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
350
351
352 
 | 
  		-- 英雄加成
  		local idleUnit = chapterData.idleUnit:toNumMap()
  		local upUnit = 0
 
 | 
be4e8031
 
  zhouhaihai
 
活动 拾荒
 | 
353
354
355
356
357
358 
 | 
  		for slot, heroId in pairs((info.format or {}).heros or {}) do
  			local hero = role.heros[heroId]
  			if hero then
  				if idleUnit[hero:getProperty("type")] then
  					upUnit = upUnit + idleUnit[hero:getProperty("type")]
  				end
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
359
360
361
362
363
364
365
366
367 
 | 
  			end
  		end
  		-- 中继加成
  		local advPass = role:getProperty("advPass")
  		local maxCampsite = nil
  		local campsiteCsv = csvdb["adv_chapter_campsiteCsv"][chapterId]
  		for _, campsite in ipairs(campsiteCsv) do
  			if campsite.floor <= advPass[chapterId] then
  				maxCampsite = campsite
 
 | 
be4e8031
 
  zhouhaihai
 
活动 拾荒
 | 
368
369 
 | 
  			else
  				break
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
370
371
372
373 
 | 
  			end
  		end
  
  		if not maxCampsite then return end
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
374 
 | 
  		]]
 
 | 
96d591f7
 
  测试
 
天赋升级修改,增加英雄信赖
 | 
375
376
377
378
379
380
381
382 
 | 
  		-- 增加英雄信赖
  		local exp = info.duration / 60
  		heroFaithMap = {}
  		for _, heroId in pairs(info.format.heros) do
  			local curFaith = addHeroFaith(role, heroId, exp)
  			heroFaithMap[heroId] = curFaith
  		end
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
383 
 | 
  		local totalReward = campSiteData.idleReward_1 .. " " .. campSiteData.idleReward_2
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
384 
 | 
  
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
385 
 | 
  		local idleReward = totalReward:toNumMap()
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
386 
 | 
  		for itemId, count in pairs(idleReward) do
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
387 
 | 
  			idleReward[itemId] = count * adv_idle_reward_coef
 
 | 
a7c0f779
 
  zhouhaihai
 
挂机加成
 | 
388 
 | 
  		end
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
389 
 | 
  		reward, change = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}})
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
390
391 
 | 
  	else
  		if cancel then
 
 | 
93f6e69b
 
  测试
 
拾荒选择时间,抽卡增加sr保底
 | 
392 
 | 
  			--role:changeAdvCount(-chapterData.limitlevel)
 
 | 
fc316d1f
 
  zhouhaihai
 
冒险体力优化
 | 
393
394
395
396
397 
 | 
  			-- if role:getProperty("advC") <= 0 then 
  			-- 	isFull = true
  			-- else
  			-- 	role:updateProperty({field = "advC", delta = -chapterData.limitlevel})
  			-- end
 
 | 
072db127
 
  zhouhaihai
 
推送
 | 
398 
 | 
  			role:pushCancel({type = "adv", slot = chapterId})
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
399 
 | 
  		else
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
400
401
402 
 | 
  			return
  		end
  	end
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
403
404
405 
 | 
  	
  	role:changeUpdates({{type = "advHang", field = chapterId, value = nil}})
  
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
406
407 
 | 
  	role:mylog("adv_action", {desc = "endHang", int1 = chapterId, short1 = cancel and 1 or 0})
  
 
 | 
e0ad10e9
 
  测试
 
英雄帖任务简单类型测试
 | 
408
409 
 | 
  	role:checkTaskEnter("AdvHang", {})
  
 
 | 
96d591f7
 
  测试
 
天赋升级修改,增加英雄信赖
 | 
410 
 | 
  	SendPacket(actionCodes.Adv_endHangRpc, MsgPack.pack({reward = reward, change = change, isFull = isFull, heroFaith = heroFaithMap}))
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
411
412
413
414
415
416
417
418 
 | 
  	return true
  end
  
  function _M.buyAdvCountRpc(agent , data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	
  	local count = msg.count --购买次数
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
419
420
421 
 | 
  	local isEl = msg.isEl -- 是否是无尽模式
  	local cost
  	if isEl then
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
422 
 | 
  		if math.illegalNum(count, 1, globalCsv.adv_endless_daily_buy_count - role.dailyData:getProperty("advElBC")) then return end
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
423
424 
 | 
  		cost = {[ItemId.Diamond] = count * globalCsv.adv_endless_daily_buy_cost}
  	else
 
 | 
0e3ab88d
 
  zhouhaihai
 
中继层
 | 
425 
 | 
  		if math.illegalNum(count, 1, globalCsv.adv_daily_buy_count - role.dailyData:getProperty("advBC")) then return end
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
426
427
428
429 
 | 
  		cost = {[ItemId.Diamond] = count * globalCsv.adv_daily_buy_cost}
  	end
  	
  	
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
430 
 | 
  	if not role:checkItemEnough(cost) then return end
 
 | 
887c1843
 
  zhouhaihai
 
日志新一批
 | 
431 
 | 
  	role:costItems(cost, {log = {desc = "buyAdvCount", int1 = isEl and 1 or 0, int2 = count}})
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
432
433
434
435 
 | 
  	if isEl then
  		role.dailyData:updateProperty({field = "advElC", delta = -count})
  		role.dailyData:updateProperty({field = "advElBC", delta = count})
  	else
 
 | 
fc316d1f
 
  zhouhaihai
 
冒险体力优化
 | 
436 
 | 
  		role:changeAdvCount(-count * globalCsv.adv_daily_buy_num)
 
 | 
e38b9c49
 
  zhouhaihai
 
无尽次数
 | 
437
438 
 | 
  		role.dailyData:updateProperty({field = "advBC", delta = count})
  	end
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
439 
 | 
  	role:mylog("adv_action", {desc = "buyAdvCount", short1 = isEl and 1 or 0, int1 = count})
 
 | 
09be9059
 
  zhouhaihai
 
冒险接口
 | 
440
441 
 | 
  	
  	SendPacket(actionCodes.Adv_buyAdvCountRpc, '')
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
442
443
444 
 | 
  	return true
  end
  
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
445
446
447
448 
 | 
  function _M.finishTaskRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
449 
 | 
  	if not isCanContinue(role) then return end
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
450
451 
 | 
  	local adv = role:getAdvData()
  	local taskId = msg.taskId  -- -1 则是主线任务
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
452 
 | 
  	local status, reward, change
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
453 
 | 
  	if taskId == -1 then
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
454 
 | 
  		status, reward, change = adv:finishMTask()
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
455
456 
 | 
  	else
  		status, reward = adv:finishTask(taskId)
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
457
458 
 | 
  		adv:checkAchievement(adv.AchievType.TaskLayer, 1, taskId)
  		adv:updateAchievement()
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
459 
 | 
  	end
 
 | 
f99f48df
 
  zhouhaihai
 
冒险任务
 | 
460 
 | 
  	adv:updateTask()
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
461 
 | 
  	if not status then return end
 
 | 
53e8037e
 
  zhouhaihai
 
任务
 | 
462 
 | 
  	role:checkTaskEnter("AdvOverTask", {id = taskId})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
463 
 | 
  
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
464 
 | 
  	adv:mylog({desc = "finishTask", int1 = taskId})
 
 | 
97807511
 
  zhouhaihai
 
增加日志
 | 
465
466
467
468
469
470
471
472
473
474 
 | 
  	
  	role:log("mission_pick_achiev", {
  		mission_threadid = adv.chapterId, -- 大地图ID
  		mission_threadname = (csvdb["adv_chapterCsv"][adv.chapterId] or {})["chapter"] or "auto", -- 大地图名称
  		mission_id = adv.level, -- 关卡ID
  		mission_sequenceid = adv.logid, -- 本次拾荒ID,用于关联一次拾荒产生多条不同类型的日志
  		mission_pick_achiev_id = taskId, -- 任务ID
  		mission_pick_achiev_reward = reward, -- 任务奖励,[{"id":101,"num":10},{"id":102,"num":20},{"id":103,"num":30}]
  	})
  
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
475 
 | 
  
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
476 
 | 
  	SendPacket(actionCodes.Adv_finishTaskRpc, MsgPack.pack(role:packReward(reward, change)))
 
 | 
4faef572
 
  zhouhaihai
 
冒险任务,冒险扫荡, 冒险中继
 | 
477
478
479 
 | 
  	return true
  end
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
480
481
482
483
484 
 | 
  -- 点击地块(解锁)(触发事件)
  function _M.clickBlockRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
 
 | 
6fc397d6
 
  zhouhaihai
 
角色新突破  冒险优化点击地块
 | 
485
486
487
488
489
490
491
492 
 | 
  	local function returnFail(status)
  		SendPacket(actionCodes.Adv_clickBlockRpc, MsgPack.pack({events = {}}))
  		return true or status -- 调试使用 status
  	end
  
  	if not isCanContinue(role) then
  		return returnFail()
  	end
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
493 
 | 
  	local adv = role:getAdvData()
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
494 
 | 
  
 
 | 
6fc397d6
 
  zhouhaihai
 
角色新突破  冒险优化点击地块
 | 
495 
 | 
  	if adv:isWaitChooseArtifact() then return returnFail() end
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
496 
 | 
  
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
497
498 
 | 
  	adv:mylog({desc = "clickBlock", int1 = msg.roomId, int2 = msg.blockId})
  
 
 | 
8c4a6f4c
 
  zhouhaihai
 
冒险增加错误返回
 | 
499 
 | 
  	local status, errorCode = adv:clickBlock(msg.roomId, msg.blockId, msg)
 
 | 
6fc397d6
 
  zhouhaihai
 
角色新突破  冒险优化点击地块
 | 
500 
 | 
  	if not status then return returnFail(errorCode) end
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
501 
 | 
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
502
503
504
505
506
507
508
509
510 
 | 
  	SendPacket(actionCodes.Adv_clickBlockRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
  --use item 使用背包道具
  function _M.useItemRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
 
 | 
25a376de
 
  zhouhaihai
 
冒险使用道具
 | 
511
512
513
514
515
516
517 
 | 
  	local itemId = msg.itemId -- 道具Id
  	local count = msg.count or 1 --数量
  	local target = msg.target -- {roomId = 1, blockId = 1} 选择的目标
  
  	local itemData = csvdb["adv_itemCsv"][itemId] 
  	if not itemData then return end
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
518 
 | 
  	if not isCanContinue(role) then return end
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
519 
 | 
  	local adv = role:getAdvData()
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
520 
 | 
  	if adv:isWaitChooseArtifact() then return end
 
 | 
25a376de
 
  zhouhaihai
 
冒险使用道具
 | 
521
522
523
524 
 | 
  	--重置数量 
  	if itemData["function"] == 0 or itemData["function"] == 2 then count = 1 end
  	if not adv:cost({[itemId] = count}, {}, true) then return true end
  
 
 | 
25a376de
 
  zhouhaihai
 
冒险使用道具
 | 
525
526 
 | 
  	--消耗
  	if itemData["function"] == 0 or itemData["function"] == 1 then 
 
 | 
498f0eb2
 
  zhouhaihai
 
冒险 action
 | 
527 
 | 
  		adv:cost({[itemId] = count}, {log = {desc = "useItem", int1 = itemId, int2 = count}})
 
 | 
85ded242
 
  zhouhaihai
 
丰富返回事件
 | 
528 
 | 
  		adv:backUse({[itemId] = count})
 
 | 
25a376de
 
  zhouhaihai
 
冒险使用道具
 | 
529 
 | 
  	end
 
 | 
8955225b
 
  zhouhaihai
 
快速拾取。快速使用
 | 
530
531 
 | 
  	
  	adv:useItem(itemId, count, target)
 
 | 
6dc482bb
 
  zhouhaihai
 
中继层完成, 新增两个冒险物品使用效果
 | 
532 
 | 
  	
 
 | 
25a376de
 
  zhouhaihai
 
冒险使用道具
 | 
533
534
535 
 | 
  	adv:afterRound()
  	adv:saveDB()
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
536
537
538
539 
 | 
  	SendPacket(actionCodes.Adv_useItemRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
540 
 | 
  --使用营养技能
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
541 
 | 
  function _M.usePotionRpc(agent, data)
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
542
543 
 | 
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
4f0a5fae
 
  zhouhaihai
 
营养剂
 | 
544
545
546
547
548
549
550
551
552
553
554
555
556
557 
 | 
  	local potionId = msg.potionId -- 营养剂Id
  	local target = msg.target -- {roomId = 1, blockId = 1} 选择的目标
  	local potionLv = role.dinerData:getProperty("dishTree"):getv(potionId, 0)
  	if potionLv == 0 then return 1 end
  
  	local potionSet = csvdb["adv_potionCsv"][potionId]
  	if not potionSet then return 2 end
  
  	local potionData = potionSet[potionLv]
  	if not potionData then return 3 end
  
  	local potionBag = role:getProperty("potionBag")
  	local own = potionBag[potionId] or 0
  	if own <= 0 then return 4 end
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
558
559 
 | 
  
  	if not isCanContinue(role) then return end
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
560 
 | 
  	local adv = role:getAdvData()
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
561
562 
 | 
  	if adv:isWaitChooseArtifact() then return end
  
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
563 
 | 
  	adv:mylog({desc = "usePotion", int1 = potionId})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
564 
 | 
  
 
 | 
4f0a5fae
 
  zhouhaihai
 
营养剂
 | 
565 
 | 
  	local status = adv:doActive(potionData.effect, target) -- target
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
566 
 | 
  	if not status then return end
 
 | 
4f0a5fae
 
  zhouhaihai
 
营养剂
 | 
567
568
569 
 | 
  
  	potionBag[potionId] = own - 1
  	role:updateProperty({field = "potionBag", value = potionBag})
 
 | 
85ded242
 
  zhouhaihai
 
丰富返回事件
 | 
570 
 | 
  	adv:pushBackEvent(AdvBackEventType.Potion, {id = potionId})
 
 | 
4f0a5fae
 
  zhouhaihai
 
营养剂
 | 
571
572
573
574 
 | 
  	adv:afterRound()
  	adv:saveDB()
  	role:checkTaskEnter("AdvUsePotion")
  
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
575
576 
 | 
  	role:finishGuide(61)
  
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
577 
 | 
  	SendPacket(actionCodes.Adv_usePotionRpc, MsgPack.pack({events = adv:popBackEvents()}))
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
578
579 
 | 
  	return true
  end
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
580 
 | 
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
581
582
583
584 
 | 
  -- 选择神器
  function _M.chooseArtifactRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
585 
 | 
  
 
 | 
41e118a5
 
  zhouhaihai
 
增加输出
 | 
586 
 | 
  	if not isCanContinue(role) then return 1 end
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
587
588 
 | 
  
  	local adv = role:getAdvData()
 
 | 
41e118a5
 
  zhouhaihai
 
增加输出
 | 
589
590 
 | 
  	if not msg.idx then return 2 end
  	if not adv:isWaitChooseArtifact() then return 3 end
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
591 
 | 
  	local status = adv:chooseArtifact(msg.idx)
 
 | 
41e118a5
 
  zhouhaihai
 
增加输出
 | 
592 
 | 
  	if not status then return 4 end
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
593 
 | 
  	adv:saveDB()
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
594 
 | 
  	
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
595
596
597
598
599
600
601
602
603
604
605 
 | 
  	SendPacket(actionCodes.Adv_chooseArtifactRpc, '')
  	return true
  end
  
  -- 穿戴神器
  function _M.wearArtifactRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local slot = msg.slot
  	local id = msg.id
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
606
607 
 | 
  	if not isCanContinue(role) then return end
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
608
609 
 | 
  	local adv = role:getAdvData()
  
 
 | 
d3da3368
 
  zhouhaihai
 
冒险地图被动技, buff  神器
 | 
610 
 | 
  	if math.illegalNum(slot, 1, 5) then return 1 end
 
 | 
c992c911
 
  zhouhaihai
 
中继
 | 
611 
 | 
  	if adv:isWaitChooseArtifact() then return 2 end
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
612
613 
 | 
  
  	local status = adv:wearArtifact(slot, id)
 
 | 
c992c911
 
  zhouhaihai
 
中继
 | 
614 
 | 
  	if not status then return 3 end
 
 | 
97807511
 
  zhouhaihai
 
增加日志
 | 
615 
 | 
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
616
617 
 | 
  	adv:saveDB()
  
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
618
619 
 | 
  	role:finishGuide(55)
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
620
621
622
623
624
625
626
627
628
629 
 | 
  	SendPacket(actionCodes.Adv_wearArtifactRpc, '')
  	return true
  end
  
  -- 升级神器
  function _M.upArtifactRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local id = msg.id
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
630
631 
 | 
  	if not isCanContinue(role) then return end
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
632 
 | 
  	local adv = role:getAdvData()
 
 | 
d3da3368
 
  zhouhaihai
 
冒险地图被动技, buff  神器
 | 
633 
 | 
  	if adv:isWaitChooseArtifact() then return 1 end
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
634 
 | 
  	local curLevel = adv:isHaveArtifact(id)
 
 | 
d3da3368
 
  zhouhaihai
 
冒险地图被动技, buff  神器
 | 
635
636
637
638 
 | 
  	if not curLevel then return 2 end
  	if not role:isArtifactOpen(id, adv:isEndless(), curLevel + 1) then return 3 end
  	local cost = csvdb["adv_artifactCsv"][id][curLevel].exp:toNumMap()
  	if not adv:cost(cost, {}, true) then return 4 end
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
639
640 
 | 
  
  	local status = adv:artifactLevelUp(id)
 
 | 
97807511
 
  zhouhaihai
 
增加日志
 | 
641
642
643
644
645
646
647
648
649
650
651
652
653
654 
 | 
  	if not status then 
  		return 5 
  	else
  		role:log("mission_pick_reform", {
  			mission_threadid = adv.chapterId, -- 大地图ID
  			mission_threadname = (csvdb["adv_chapterCsv"][adv.chapterId] or {})["chapter"] or "auto", -- 大地图名称
  			mission_id = adv.level, -- 关卡ID
  			mission_pick_equip_id = id, -- 神器ID
  			mission_pick_reform_beflv = curLevel, -- 神器原等级
  			mission_pick_reform_aftlv = curLevel + 1, -- 神器现等级
  			mission_pick_reform_cost = cost[ItemId.AdvPoint], -- 消耗探险点数
  			mission_sequenceid = adv.logid, -- 本次拾荒ID,用于关联一次拾荒产生多条不同类型的日志
  		})
  	end
 
 | 
498f0eb2
 
  zhouhaihai
 
冒险 action
 | 
655 
 | 
  	adv:cost(cost, {log = {desc = "upArtifact", int1 = id}})
 
 | 
85ded242
 
  zhouhaihai
 
丰富返回事件
 | 
656 
 | 
  	adv:backCost(cost)
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
657
658 
 | 
  	if status == 1 then -- 现在穿着呢。更新下
  		adv:saveDB()
 
 | 
284482c6
 
  zhouhaihai
 
冒险成就
 | 
659
660 
 | 
  	else
  		adv:updateAchievement()
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
661 
 | 
  	end
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
662 
 | 
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
663
664
665
666 
 | 
  	SendPacket(actionCodes.Adv_upArtifactRpc, '')
  	return true
  end
  
 
 | 
ec87b4a5
 
  zhouahaihai
 
冒险 完善
 | 
667
668
669
670 
 | 
  --退出
  function _M.exitAdvRpc(agent, data)
  	local role = agent.role
  	-- local msg = MsgPack.unpack(data)
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
671 
 | 
  	if not isCanContinue(role) then return end
 
 | 
0c90a4f4
 
  chenyueqi
 
拾荒引导结束要设定引导步骤为成就引导
 | 
672 
 | 
  	-- 冒险中途退出的时候要把引导步骤设定到成就引导
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
673
674
675 
 | 
  	if not role:checkOverGuide(57) then
  		role:saveGuide(57,1,true)
  	end
 
 | 
ec87b4a5
 
  zhouahaihai
 
冒险 完善
 | 
676 
 | 
  	local adv = role:getAdvData()
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
677 
 | 
  	adv:mylog({desc = "exit"})
 
 | 
ec87b4a5
 
  zhouahaihai
 
冒险 完善
 | 
678
679
680
681
682 
 | 
  	local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标
  	SendPacket(actionCodes.Adv_exitAdvRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end 
  
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
683
684
685
686
687
688
689
690
691
692
693 
 | 
  --开始战斗
  function _M.startBattleRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	-- 校验一下信息
  	local roomId = msg.roomId
  	local blockId = msg.blockId
  	local monsterId = msg.monsterId
  	local enemyId = msg.enemyId
  	if not enemyId then return end
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
694 
 | 
  	if not isCanContinue(role) then return end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
695
696 
 | 
  
  	local adv = role:getAdvData()
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
697 
 | 
  
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
698 
 | 
  	if adv:isWaitChooseArtifact() then return end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
699
700 
 | 
  	local enemy = adv.battle:getEnemyById(enemyId)
  
 
 | 
5aecad36
 
  zhouhaihai
 
安全判定
 | 
701 
 | 
  	if not enemy or enemy.monsterId ~= monsterId or enemy.roomId ~= roomId or enemy.blockId ~= blockId or enemy.lock or enemy.isDead then return end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721 
 | 
  
  	local key = tostring(math.random())
  	adv.__battleCache = {
  		enemyId = enemyId,
  		key = key
  	}
  	SendPacket(actionCodes.Adv_startBattleRpc, MsgPack.pack({key = key}))
  	return true
  end
  
  -- 结束战斗
  function _M.endBattleRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local roomId = msg.roomId
  	local blockId = msg.blockId
  	local monsterId = msg.monsterId
  	local enemyId = msg.enemyId
  	local key =  msg.key
  	local player = msg.player
 
 | 
d3da3368
 
  zhouhaihai
 
冒险地图被动技, buff  神器
 | 
722 
 | 
  	local bySkill = msg.bySkill --死于 技能
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
723
724 
 | 
  
  	if not player or not player.hp or not player.sp or not enemyId or not key then return end
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
725
726 
 | 
  	if not isCanContinue(role) then return end
  	
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
727 
 | 
  	local adv = role:getAdvData()
 
 | 
ccbafe67
 
  zhouhaihai
 
冒险神器和buff
 | 
728 
 | 
  	if adv:isWaitChooseArtifact() then return end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
729
730
731
732 
 | 
  	-- 校验
  	if not adv.__battleCache then return end
  	if adv.__battleCache.enemyId ~= enemyId then return end
  	local enemy = adv.battle:getEnemyById(enemyId)
 
 | 
5aecad36
 
  zhouhaihai
 
安全判定
 | 
733 
 | 
  	if not enemy or enemy.monsterId ~= monsterId or enemy.roomId ~= roomId or enemy.blockId ~= blockId then return end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
734
735 
 | 
  	adv.__battleCache = nil
  
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
736
737
738
739
740
741
742
743
744
745
746
747 
 | 
  	-- 打完野猪怪
  	role:finishGuide(52)
  	-- 调理剂使用引导(生命药剂)
  	if not role:checkOverGuide(61) then
  		local potionBag = role:getProperty("potionBag")
  		local own = potionBag[10] or 0
  		if own > 0 then
  			-- 造假
  			player.hp = player.hp * 0.8
  			role:saveGuide(61,1,true)
  		end
  	end
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
748 
 | 
  	adv:mylog({desc = "endBattle"})
 
 | 
8cfb25d7
 
  zhouhaihai
 
传递 敌人信息
 | 
749 
 | 
  	local status = adv:clickBlock(roomId, blockId, {player = player, enemy = msg.enemy, bySkill = bySkill})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
750 
 | 
  
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
751
752
753
754
755 
 | 
  	if not status then return end
  	SendPacket(actionCodes.Adv_endBattleRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
 
 | 
007af97e
 
  zhouhaihai
 
item_random 结构更改
 | 
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782 
 | 
  -- function _M.workshopRpc(agent, data)
  -- 	local role = agent.role
  -- 	local msg = MsgPack.unpack(data)
  
  -- 	local id = msg.id 
  -- 	local count = msg.count or 1
  -- 	local mergeData = csvdb["adv_mergeCsv"][id]
  -- 	if not mergeData then return 1 end
  
  -- 	if not role:isFuncOpen(FuncOpenType.AdvWS) or role:getFuncLv(FuncOpenType.AdvWS) < mergeData.unlock then return 2 end
  
  -- 	local advWs = role.dailyData:getProperty("advWs")
  -- 	if math.illegalNum(count, 1, mergeData.limit - (advWs[id] or 0)) then return 3 end
  
  -- 	local cost = mergeData.formula:toNumMap()
  -- 	for k, v in pairs(cost) do
  -- 		cost[k] = v * count
  -- 	end
  -- 	if not role:checkItemEnough(cost) then return 4 end
  
  -- 	role:costItems(cost)
  -- 	advWs[id] = (advWs[id] or 0) + count
  -- 	role.dailyData:updateProperty({field = "advWs", value = advWs})
  -- 	local reward = role:award({[id] = count})
  -- 	SendPacket(actionCodes.Adv_workshopRpc, MsgPack.pack({reward = reward}))
  -- 	return true
  -- end
 
 | 
12f7b52c
 
  zhouhaihai
 
冒险战斗
 | 
783 
 | 
  
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
784
785 
 | 
  function _M.wheelSurfRpc(agent, data)
  	local role = agent.role
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
786 
 | 
  	-- if not role:isFuncOpen(FuncOpenType.AdvWheelSurf) then return end -- 默认解锁
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
787 
 | 
  
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
788 
 | 
  	local msg = MsgPack.unpack(data)
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
789 
 | 
  
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
790
791 
 | 
  	local ptype = msg.ptype  -- 池子类型 1, 2
  	local ctype = msg.ctype  -- 抽取次数  1 1次,2 10次
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
792 
 | 
  
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
793
794
795
796
797 
 | 
  	local countPool = {
  		[1] = 1,
  		[2] = 10
  	}
  	local count = countPool[ctype]
 
 | 
8f5218e6
 
  zhouhaihai
 
犯回错误区分
 | 
798 
 | 
  	if not count then return 1 end
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
799 
 | 
  
 
 | 
6b5c9206
 
  zhouhaihai
 
冒险资助升级属性奖励
 | 
800 
 | 
  	if ptype == 2 and not role:isFuncOpen(FuncOpenType.AdvEndless) then
 
 | 
8f5218e6
 
  zhouhaihai
 
犯回错误区分
 | 
801 
 | 
  		return 2
 
 | 
6b5c9206
 
  zhouhaihai
 
冒险资助升级属性奖励
 | 
802 
 | 
  	end
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
803 
 | 
  
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
804 
 | 
  	local drawTypeData = csvdb["adv_wheelsurfCsv"][ptype]
 
 | 
8f5218e6
 
  zhouhaihai
 
犯回错误区分
 | 
805 
 | 
  	if not drawTypeData then return 3 end
 
 | 
6b5c9206
 
  zhouhaihai
 
冒险资助升级属性奖励
 | 
806 
 | 
  	local drawData = drawTypeData[role:getAdvWheelSurfLv(ptype)]
 
 | 
8f5218e6
 
  zhouhaihai
 
犯回错误区分
 | 
807 
 | 
  	if not drawData then return 4 end
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
808 
 | 
  
 
 | 
7474dd12
 
  zhouhaihai
 
资助抽奖bug
 | 
809
810
811
812 
 | 
  	local cost = drawData.cost:toArray(true, "=")
  	local costs = {[ItemId.OldCoin] = cost[ctype]}
  	if not next(costs) then return 6 end
  
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
813 
 | 
  
 
 | 
8f5218e6
 
  zhouhaihai
 
犯回错误区分
 | 
814 
 | 
  	if not role:checkItemEnough(costs) then return 5 end
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
815 
 | 
  	role:costItems(costs, {log = {desc = "advWheelSurf", int1 = ptype}})
 
 | 
97807511
 
  zhouhaihai
 
增加日志
 | 
816 
 | 
  	local oldLv, lv = role:addAdvLvExp(costs[ItemId.OldCoin] or 0)
 
 | 
764e5296
 
  zhouhaihai
 
冒险抽奖保底
 | 
817
818
819 
 | 
  	local advDrawB = role:getProperty("advDrawB")
  	advDrawB[ptype] = (advDrawB[ptype] or 0) + count
  	role:updateProperty({field = "advDrawB", value = advDrawB})
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
820 
 | 
  	-- 随机池子
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
821
822
823 
 | 
  	local reward = {}
  	local backReward = {}
  	for i = 1, count do
 
 | 
7474dd12
 
  zhouhaihai
 
资助抽奖bug
 | 
824 
 | 
  		local pool = drawData.weight:randWeight()
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
825
826
827
828 
 | 
  		local gift = drawData["pool" .. pool]:randWeight(true)
  		reward[gift[1]] = (reward[gift[1]] or 0) + gift[2]
  		table.insert(backReward, gift)
  	end
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
829 
 | 
  	role:award(reward, {log = {desc = "advWheelSurf", int1 = ptype}})
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
830 
 | 
  	role:finishGuide(58)
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
831 
 | 
  
 
 | 
9912e064
 
  zhouhaihai
 
新增3个每日任务类型
 | 
832 
 | 
  	role:checkTaskEnter("AdvDraw", {count = count, ptype = ptype})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
833 
 | 
  	role:mylog("adv_action", {desc = "advWheelSurf", int1 = ptype, int2 = count})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
834 
 | 
  
 
 | 
97807511
 
  zhouhaihai
 
增加日志
 | 
835
836
837
838
839
840
841
842
843
844 
 | 
  	role:log("mission_pick_fund", {
  		item_id = ItemId.OldCoin, -- 资助花费道具ID
  		mission_pick_fund_amount = costs[ItemId.OldCoin], -- 资助花费道具数量
  		mission_pick_fund_cnt = count, -- 资助花费道具次数,1或者10
  		mission_pick_fund_reward = reward, -- 资助获得奖励,[{"id":100,"num":10},{"id":101,"num":20},{"id":102,"num":30}]
  		mission_pick_fund_stagereward = {}, -- 资助阶段奖励
  		mission_pick_fund_beflv = oldLv, -- 资助前资助等级
  		mission_pick_fund_aftlv = lv, -- 资助后资助等级
  	})
  
 
 | 
81032a9c
 
  zhouhaihai
 
抽奖
 | 
845 
 | 
  	SendPacket(actionCodes.Adv_wheelSurfRpc, MsgPack.pack({reward = backReward}))
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
846
847 
 | 
  	return true
  end
 
 | 
764e5296
 
  zhouhaihai
 
冒险抽奖保底
 | 
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869 
 | 
  function _M.repayWheelSurfRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local ptype = msg.ptype
  
  	if ptype == 2 and not role:isFuncOpen(FuncOpenType.AdvEndless) then
  		return
  	end
  
  	local drawTypeData = csvdb["adv_wheelsurfCsv"][ptype]
  	if not drawTypeData then return end
  	local drawData = drawTypeData[role:getAdvWheelSurfLv(ptype)]
  	if not drawData then return end
  
  	local advDrawB = role:getProperty("advDrawB")
  	if (advDrawB[ptype] or 0) < globalCsv.adv_draw_back_cond then
  		return
  	end
  	advDrawB[ptype] = advDrawB[ptype] - globalCsv.adv_draw_back_cond
  	role:updateProperty({field = "advDrawB", value = advDrawB})
  	local gift = drawData["pool3"]:randWeight(true)
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
870
871 
 | 
  	local reward, change = {[gift[1]] = gift[2]}
  	reward, change = role:award(reward, {log = {desc = "advRepayWheelSurf", int1 = ptype}})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
872 
 | 
  	role:mylog("adv_action", {desc = "advRepayWheelSurf", int1 = ptype})
 
 | 
764e5296
 
  zhouhaihai
 
冒险抽奖保底
 | 
873 
 | 
  
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
874 
 | 
  	SendPacket(actionCodes.Adv_repayWheelSurfRpc, MsgPack.pack(role:packReward(reward, change)))
 
 | 
764e5296
 
  zhouhaihai
 
冒险抽奖保底
 | 
875
876 
 | 
  	return true
  end
 
 | 
f4c65591
 
  zhouhaihai
 
抽奖
 | 
877 
 | 
  
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
878
879
880 
 | 
  function _M.finishAchievRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
881 
 | 
  	local ctype = msg.ctype or 2 -- 领取类型 1 成就  2 pt累计奖励
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
882
883
884
885 
 | 
  	local chapterId = msg.chapterId --章节id
  	local taskId = msg.taskId  -- 领取id
  
  	local adv = role:getAdvData()
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
886 
 | 
  
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
887 
 | 
  	local status, reward, change
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
888 
 | 
  	if ctype == 1 then
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
889 
 | 
  		status, reward, change = adv:finishAchievement(chapterId, taskId)
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
890 
 | 
  	elseif ctype == 2 then
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
891 
 | 
  		status, reward, change = adv:getAchievementReward(chapterId, taskId)
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
892 
 | 
  	end
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
893
894 
 | 
  	if not status then return end
  	adv:updateAchievement()
 
 | 
1e9cb217
 
  chenyueqi
 
服务器记录控制引导过程
 | 
895 
 | 
  	role:finishGuide(57)
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
896
897 
 | 
  	role:mylog("adv_action", {desc = "finishAchiev", short1 = ctype, int1 = chapterId, int2 = taskId})
  
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
898 
 | 
  	SendPacket(actionCodes.Adv_finishAchievRpc, MsgPack.pack(role:packReward(reward, change)))
 
 | 
b176d7d3
 
  zhouhaihai
 
冒险成就
 | 
899
900
901 
 | 
  	return true
  end
  
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
902
903
904
905 
 | 
  function _M.rankRpc(agent, data)
  	local role = agent.role
  
  	local list = {}
 
 | 
b2e41074
 
  zhouhaihai
 
冒险 排行榜拆分
 | 
906 
 | 
  	local ids = redisproxy:zrevrange(role:getAdvRankKey(), 0 , 99, "WITHSCORES")
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
907
908
909 
 | 
  	local redret = {}
  	if ids and next(ids) then
  		redret = redisproxy:pipelining(function (red)
 
 | 
1313eac0
 
  zhouhaihai
 
冒险的一些bug
 | 
910 
 | 
  			for i = 1, #ids, 2 do
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
911 
 | 
  				local roleId = ids[i]
 
 | 
1313eac0
 
  zhouhaihai
 
冒险的一些bug
 | 
912
913 
 | 
  				local score = tonum(ids[i + 1])
  				table.insert(list, {roleId = tonumber(roleId), score = score})
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
914
915
916
917
918
919
920
921
922
923 
 | 
  				red:hget(RANK_ADV_INFO, roleId)
  			end
  		end)
  	end
  	for i = 1, #redret do
  		local player = MsgPack.unpack(redret[i])
  		player.format = nil
  		list[i].player = player
  	end
  	local redret = redisproxy:pipelining(function(red)
 
 | 
b2e41074
 
  zhouhaihai
 
冒险 排行榜拆分
 | 
924
925 
 | 
  		red:ZREVRANK(role:getAdvRankKey(), role:getProperty("id"))
  		red:zscore(role:getAdvRankKey(), role:getProperty("id"))
 
 | 
1b20cfdb
 
  zhouhaihai
 
赛季更新完善 无尽冒险排行榜
 | 
926
927
928
929
930
931
932
933
934
935
936
937 
 | 
  	end)
  	local rank = redret[1]
  	if not rank then
  		rank = -1
  	else
  		rank = redret[1] + 1
  	end
  	local score = tonum(redret[2], 0)
  
  	SendPacket(actionCodes.Adv_rankRpc, MsgPack.pack({list = list, rank = rank, score = score}))
  	return true
  end
 
 | 
ae20365b
 
  suhongyang
 
Revert "修改冒险战斗逻辑"
 | 
938 
 | 
  
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
939
940
941
942
943
944
945 
 | 
  function _M.refreshSupportRpc(agent, data)
  	local role = agent.role
  
  	local cr = role.dailyData:getProperty("advSupRe")	
  	local al = role:getAdvSupportFreeCount()
  
  	if cr < al then  --免费
 
 | 
1a04c06c
 
  zhouhaihai
 
冒险 被动调整
 | 
946 
 | 
  		role.dailyData:updateProperty({field = "advSupRe", delta = 1})
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
947
948 
 | 
  	else -- 付费
  		if not role:checkItemEnough({[ItemId.Diamond] = globalCsv.adv_support_refresh_cost}) then return end
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
949 
 | 
  		role:costItems({[ItemId.Diamond] = globalCsv.adv_support_refresh_cost}, {log = {desc = "advReSupport"}})
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
950
951
952 
 | 
  	end
  
  	role:advRandomSupportEffect()
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
953 
 | 
  	role:mylog("adv_action", {desc = "advSupRe", short1 = cr < al and 0 or 1})
 
 | 
9ced5432
 
  zhouhaihai
 
冒险支援效果 保底事件
 | 
954
955
956
957
958 
 | 
  
  	SendPacket(actionCodes.Adv_refreshSupportRpc, '')
  	return true
  end
  
 
 | 
98d32f92
 
  测试
 
多编队
 | 
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984 
 | 
  function _M.roleFormatRpc(agent , data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local index = msg.index	-- 阵容索引
  	local title = msg.title -- 阵容名称
  	local team = {}
  	for slot, heroId in pairs(msg.heros) do
  		if not role.heros[heroId] then
  			return 1
  		end
  	end
  
  	if index > 10 then
  		return 2
  	end
  
  	team.heros = {}
  	for slot, heroId in pairs(msg.heros) do
  		team.heros[slot] = heroId
  	end
  	team.leader = msg.leader
  	team.leader2 = msg.leader2
  	team.title = title
  	role:setAdvTeamFormat(index, team)
  
  	local advTeam = role:getProperty("advTeam")
 
 | 
782ee57d
 
  测试
 
多编队功能
 | 
985
986
987 
 | 
  	local curIndex = advTeam.index
  	if curIndex == index then
  		table.clear(advTeam)
 
 | 
98d32f92
 
  测试
 
多编队
 | 
988 
 | 
  
 
 | 
782ee57d
 
  测试
 
多编队功能
 | 
989
990
991
992
993
994
995
996 
 | 
  		advTeam.heros = {}
  		for slot, heroId in pairs(msg.heros) do
  			advTeam.heros[slot] = heroId
  		end
  		advTeam.leader = msg.leader
  		advTeam.leader2 = msg.leader2
  		advTeam.index = index
  		role:updateProperty({field = "advTeam", value = advTeam})
 
 | 
98d32f92
 
  测试
 
多编队
 | 
997 
 | 
  	end
 
 | 
98d32f92
 
  测试
 
多编队
 | 
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008 
 | 
  
  	SendPacket(actionCodes.Adv_roleFormatRpc, '')
  	return true
  end
  
  function _M.selectTeamRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local index = msg.index	-- 阵容索引
  	local team = role:getAdvTeamFormat(index)
  	if not next(team) then return end
 
 | 
782ee57d
 
  测试
 
多编队功能
 | 
1009 
 | 
  	team["index"] = index
 
 | 
98d32f92
 
  测试
 
多编队
 | 
1010
1011
1012
1013
1014
1015 
 | 
  	role:updateProperty({field = "advTeam", value = team})
  
  	SendPacket(actionCodes.Adv_selectTeamRpc, '')
  	return true
  end
  
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
1016 
 | 
  return _M
 
 |