23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 
 | 
  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 = {}
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
19 
 | 
  --开始一个新的关卡
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
20
21
22 
 | 
  function _M.startAdvRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
23
24
25 
 | 
  	local chapterId = msg.chapterId
  
  	--上一个关卡结束才可以开始新的关卡
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
26 
 | 
  	local advInfo = role:getProperty("advInfo")
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
27
28 
 | 
  	if next(advInfo) then return end
  	role:getAdvData():initByChapter(chapterId, 1)
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
29 
 | 
  
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
30
31
32
33 
 | 
  	SendPacket(actionCodes.Adv_startAdvRpc, '')
  	return true
  end
  
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
34
35
36
37 
 | 
  function _M.roleFormatRpc(agent , data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local advTeam = role:getProperty("advTeam")
 
 | 
384bb077
 
  zhouahaihai
 
挂机
 | 
38 
 | 
  	for slot, heroId in pairs(msg.heros) do
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
39
40
41
42
43
44 
 | 
  		if not role.heros[heroId] then
  			return
  		end
  	end
  	table.clear(advTeam)
  	advTeam.heros = {}
 
 | 
384bb077
 
  zhouahaihai
 
挂机
 | 
45 
 | 
  	for slot, heroId in pairs(msg.heros) do
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
46
47 
 | 
  		advTeam.heros[slot] = heroId
  	end
 
 | 
00115a7a
 
  zhouahaihai
 
奖励发放
 | 
48
49 
 | 
  	advTeam.leader = msg.leader
  	role:updateProperty({field = "advTeam", value = advTeam})
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 
 | 
  	SendPacket(actionCodes.Adv_roleFormatRpc, '')
  	return true
  end
  
  -- 点击地块(解锁)(触发事件)
  function _M.clickBlockRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local adv = role:getAdvData()
  	local status = adv:clickBlock(msg.roomId, msg.blockId, msg)
  	if not status then return end
  	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)
  
  	local adv = role:getAdvData()
  	local status = adv:useItem(msg.itemId, msg.count, msg.target) -- target {roomId = 1, blockId = 1} 选择的目标
  	if not status then return end
  	SendPacket(actionCodes.Adv_useItemRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
78 
 | 
  --使用营养技能
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
79 
 | 
  function _M.usePotionRpc(agent, data)
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
80
81 
 | 
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
82
83
84
85 
 | 
  	local dishLevel = role.dinerData:getProperty("dishTree"):getv(msg.potionId, 0)
  	if dishLevel == 0 then
  		return
  	end
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
86 
 | 
  	local adv = role:getAdvData()
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
87 
 | 
  	local status = adv:usePotion(msg.potionId, dishLevel, msg.target) -- target {roomId = 1, blockId = 1} 选择的目标
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
88 
 | 
  	if not status then return end
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
89 
 | 
  	SendPacket(actionCodes.Adv_usePotionRpc, MsgPack.pack({events = adv:popBackEvents()}))
 
 | 
46fac6f1
 
  zhouahaihai
 
酱料
 | 
90
91 
 | 
  	return true
  end
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
92 
 | 
  
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
93 
 | 
  --使用战斗技能
 
 | 
b67cfabd
 
  suhongyang
 
Fix name
 | 
94 
 | 
  function _M.specialSkillRpc(agent, data)
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
95
96
97 
 | 
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local adv = role:getAdvData()
 
 | 
b67cfabd
 
  suhongyang
 
Fix name
 | 
98 
 | 
  	local status = adv:useSpecialSkill(msg.skillId)
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
99 
 | 
  	if not status then return end
 
 | 
d27ad5e0
 
  suhongyang
 
使用营养技
 | 
100 
 | 
  	SendPacket(actionCodes.Adv_specialSkillRpc, MsgPack.pack({events = {}}))
 
 | 
42f2d1d3
 
  suhongyang
 
战斗内技能序列逻辑
 | 
101
102 
 | 
  	return true
  end
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
103 
 | 
  
 
 | 
ec87b4a5
 
  zhouahaihai
 
冒险 完善
 | 
104
105
106
107
108
109
110
111
112
113 
 | 
  --退出
  function _M.exitAdvRpc(agent, data)
  	local role = agent.role
  	-- local msg = MsgPack.unpack(data)
  	local adv = role:getAdvData()
  	local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标
  	SendPacket(actionCodes.Adv_exitAdvRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end 
  
 
 | 
ae20365b
 
  suhongyang
 
Revert "修改冒险战斗逻辑"
 | 
114
115
116
117
118 
 | 
  --继续战斗
  function _M.nextTurnRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local adv = role:getAdvData()
 
 | 
e459a5fc
 
  suhongyang
 
战斗回合检查同步以及回合数据缓存
 | 
119
120
121
122
123 
 | 
  	local status = adv:nextBattleTurn(msg.turn)
  	if not status then -- 数据不同步则发送缓存数据
  		SendPacket(actionCodes.Adv_nextTurnRpc, MsgPack.pack({events = adv.tempBackEvents}))
  		return true
  	end
 
 | 
ae20365b
 
  suhongyang
 
Revert "修改冒险战斗逻辑"
 | 
124
125
126
127 
 | 
  	SendPacket(actionCodes.Adv_nextTurnRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
 
 | 
23d89d13
 
  zhouahaihai
 
冒险 结构
 | 
128 
 | 
  return _M
 
 |