Blame view

src/actions/AdvAction.lua 2.73 KB
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
48
49
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
78
79
80
81
82
83
84
85
86
  		advTeam.heros[slot] = heroId
  	end
  	role:updateProperty({field = "advTeam", value = advTeam}) 
  	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
  
  --使用技能
  function _M.useSkillRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local adv = role:getAdvData()
  	local status = adv:useSkill(msg.skillId, msg.target) -- target {roomId = 1, blockId = 1} 选择的目标
  	if not status then return end
  	SendPacket(actionCodes.Adv_useSkillRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
23d89d13   zhouahaihai   冒险 结构
87
88
  
  
ec87b4a5   zhouahaihai   冒险 完善
89
90
91
92
93
94
95
96
97
98
  --退出
  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 
  
23d89d13   zhouahaihai   冒险 结构
99
100
101
  
  
  return _M