9c525cf9
 
  gaofengduan
 
add car smithy
 | 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 
 | 
  local ipairs = ipairs
  local table = table
  local math = math
  local redisproxy = redisproxy
  local MsgPack = MsgPack
  
  local _M = {}
  
  function _M.makePotionRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local potionId = msg.id
  	local count = msg.count
  	if count < 1 then return 0 end
  	local potionBag = role:getProperty("potionBag")
  	local potionLv = role.dinerData:getProperty("dishTree"):getv(potionId, 0)
  	if potionLv < 1 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 own = potionBag[potionId] or 0
  	if own+count > potionData.limit then
  		return 4
  	end
  
  	local cost = potionData.material:toNumMap()
 
 | 
e668f4d0
 
  gaofengduan
 
fix cost
 | 
31
32 
 | 
  	for k, n in pairs(cost) do
  		cost[k] = n * count
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
33
34
35
36
37 
 | 
  	end
  	if not role:checkItemEnough(cost) then
  		return 5
  	end
  
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
38 
 | 
  	role:costItems(cost, {log = {desc = "makePotion", int1 = potionId, int2 = count}})
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
39
40 
 | 
  	potionBag[potionId] = own + count
  	role:updateProperty({field = "potionBag", value = potionBag})
 
 | 
53e8037e
 
  zhouhaihai
 
任务
 | 
41 
 | 
  	role:checkTaskEnter("PotionMake", {count = count, id = potionId})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
42 
 | 
  
 
 | 
c59e058b
 
  zhouhaihai
 
新一批日志记录
 | 
43
44
45
46
47 
 | 
  	role:log("carriage_cook", {
  		item_id = potionId, -- 道具id
  		item_level = potionLv, -- 道具等级
  		item_type = 0, -- 道具类型,具体见枚举表中道具类型枚举表
  		carriage_cook_amount = count, -- 制作总量
 
 | 
887c1843
 
  zhouhaihai
 
日志新一批
 | 
48 
 | 
  		carriage_cook_cost = cost, -- 制作消耗道具,json格式记录,{'itemid1':10,'itemid2':5,…………..}
 
 | 
c59e058b
 
  zhouhaihai
 
新一批日志记录
 | 
49 
 | 
  	})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
50
51 
 | 
  	role:mylog("role_action", {desc = "makePotion", int1 = potionId, int2 = count})
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
52
53
54
55
56
57
58
59
60 
 | 
  	SendPacket(actionCodes.Car_makePotionRpc, MsgPack.pack({potionBag = potionBag}))
  	return true
  end
  
  function _M.equipUpRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local id = msg.id
  	local count = msg.count
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
61 
 | 
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
62
63
64
65
66
67
68
69 
 | 
  	local typ = math.floor((id-7000)/100)
  	local lv = (id-7000)%100
  
  	local dataSet = csvdb["equipCsv"][typ]
  	if not dataSet then return 1 end
  	local equipData = dataSet[lv]
  	if not equipData then return 21 end
  	if equipData.merge < 1 then return 22 end
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
70 
 | 
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
71
72
73
74
75
76
77
78 
 | 
  	local maxLv = 3
  	local nextLv = lv+1
  	if nextLv%10 > maxLv then
  		nextLv = nextLv+10-maxLv
  	end
  	local nextEquip = dataSet[nextLv]
  	if not nextEquip then return 23 end
  
 
 | 
912f7d2c
 
  zhouhaihai
 
bug
 | 
79 
 | 
  	local limit = csvdb["itemCsv"][nextEquip.id].limit ~= 0 and csvdb["itemCsv"][nextEquip.id].limit or math.huge
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
80
81 
 | 
  
  	if math.illegalNum(count, 1, limit)  then return 0 end
 
 | 
43cc5f51
 
  gaofengduan
 
调整 equip 数据结构
 | 
82
83 
 | 
  
  	local own = role:getEquipCount(typ,lv)
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
84 
 | 
  	local costCount = equipData.merge * count
 
 | 
43cc5f51
 
  gaofengduan
 
调整 equip 数据结构
 | 
85 
 | 
  	if own < costCount then
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
86
87
88
89 
 | 
  		return 3
  	end
  
  	local cost = equipData.cost:toNumMap()
 
 | 
e668f4d0
 
  gaofengduan
 
fix cost
 | 
90
91 
 | 
  	for k, n in pairs(cost) do
  		cost[k] = n * count
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
92
93
94
95
96 
 | 
  	end
  	if not role:checkItemEnough(cost) then
  		return 4
  	end
  
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
97
98
99 
 | 
  	role:costItems(cost, {log = {desc = "equipUp", int1 = id, int2 = count}})
  	role:addEquip(typ, lv, -costCount, {log = {desc = "equipUp"}})
  	role:addEquip(typ, nextLv ,count, {log = {desc = "equipUp"}})
 
 | 
f60b89b1
 
  zhouhaihai
 
奖励副本
 | 
100 
 | 
  	role:checkTaskEnter("EquipUp", {count = count})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
101 
 | 
  
 
 | 
c59e058b
 
  zhouhaihai
 
新一批日志记录
 | 
102
103
104
105
106
107 
 | 
  	role:log("equip_upgrade", {
  		equip_upgrade_part = typ, -- 升级部位,记录部位ID
  		equip_id = nextLv, -- 升级后的装备ID
  		equip_upgrade_amount = count, -- 升级获取的装备数量
  		equip_upgrade_usedid = lv, -- 升级消耗的装备ID
  		equip_upgrade_cost = costCount, -- 升级操作消耗装备数量
 
 | 
887c1843
 
  zhouhaihai
 
日志新一批
 | 
108 
 | 
  		equip_upgrade_current = cost, -- 升级消耗的货币类型
 
 | 
c59e058b
 
  zhouhaihai
 
新一批日志记录
 | 
109 
 | 
  	})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
110 
 | 
  	role:mylog("role_action", {desc = "equipUp", int1 = id, int2 = count})
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
111
112
113
114 
 | 
  	SendPacket(actionCodes.Car_equipUpRpc, '')
  	return true
  end
  
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
115
116
117
118
119
120 
 | 
  function _M.runeUpRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local uid = msg.uid
  	local ownRune = role.runeBag[uid]
  	if not ownRune then return 1 end
 
 | 
f52efe51
 
  zhouhaihai
 
符文升级
 | 
121 
 | 
  
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
122
123
124
125
126
127
128
129
130
131 
 | 
  
  	local typ = ownRune:getProperty("type")
  	local id = ownRune:getProperty("id")
  	local level = ownRune:getProperty("level")
  
  	local runeSet = csvdb["runeCsv"][typ]
  	if not runeSet then return 4 end
  	local runeData = runeSet[id]
  	if not runeData then return 5 end
  
 
 | 
3f50410e
 
  zhouhaihai
 
判断错误
 | 
132
133 
 | 
  	local maxLv = #csvdb["rune_buildCsv"]
  	if level >= maxLv then return 6 end
 
 | 
04c7448f
 
  gaofengduan
 
fix rune up
 | 
134 
 | 
  	local lvData = csvdb["rune_buildCsv"][level]
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
135
136
137
138
139 
 | 
  	local cost = lvData.cost:toNumMap()
  	if not role:checkItemEnough(cost) then
  		return 7
  	end
  
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
140 
 | 
  	role:costItems(cost, {log = {desc = "runeUp", int1 = uid, int2 = level}})
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
141 
 | 
  	ownRune:updateProperty({field = "level",value = level+1})
 
 | 
53e8037e
 
  zhouhaihai
 
任务
 | 
142 
 | 
  	role:checkTaskEnter("RuneUp")
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
143 
 | 
  
 
 | 
f52efe51
 
  zhouhaihai
 
符文升级
 | 
144
145
146
147
148
149 
 | 
  	if ownRune:getProperty("refer") ~= 0 then
  		local hero = role.heros[ownRune:getProperty("refer")]
  		if hero then
  			hero:updateProperty({field = "battleV", value = hero:getBattleValue()})
  		end
  	end
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
150 
 | 
  	ownRune:mylog({desc = "runeUp", int1 = level + 1})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
151 
 | 
  
 
 | 
fb321075
 
  gaofengduan
 
add rune up
 | 
152
153
154
155 
 | 
  	SendPacket(actionCodes.Car_runeUpRpc, '')
  	return true
  end
  
 
 | 
912f7d2c
 
  zhouhaihai
 
bug
 | 
156 
 | 
  function _M.saleEquipRpc(agent, data )
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
157
158 
 | 
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
 
 | 
9dd0add2
 
  zhouhaihai
 
批量分解装备
 | 
159
160
161 
 | 
  	local backs = msg.backs
  	if not backs then return end
  	for id, count in pairs(backs) do
 
 | 
2445248d
 
  zhouhaihai
 
去掉热门料理
 | 
162 
 | 
  		if not csvdb["itemCsv"][id] then return end
 
 | 
9dd0add2
 
  zhouhaihai
 
批量分解装备
 | 
163
164
165
166
167 
 | 
  		local typ = math.floor((id-7000)/100)
  		local lv = (id-7000)%100
  		local own = role:getEquipCount(typ,lv)
  		if math.illegalNum(count, 1, own)  then return end
  	end
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
168 
 | 
  	local reward, change = {}
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
169 
 | 
  	local allCount = 0
 
 | 
9dd0add2
 
  zhouhaihai
 
批量分解装备
 | 
170 
 | 
  	for id, count in pairs(backs) do
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
171 
 | 
  		allCount = allCount + count
 
 | 
2445248d
 
  zhouhaihai
 
去掉热门料理
 | 
172 
 | 
  		local itemData = csvdb["itemCsv"][id]
 
 | 
9dd0add2
 
  zhouhaihai
 
批量分解装备
 | 
173
174 
 | 
  		local typ = math.floor((id-7000)/100)
  		local lv = (id-7000)%100
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
175 
 | 
  		role:addEquip(typ, lv, -count, {log = {desc = "saleEquip"}}) -- 删掉装备
 
 | 
9dd0add2
 
  zhouhaihai
 
批量分解装备
 | 
176
177
178
179
180 
 | 
  		-- 发奖励
  		local one = itemData.sell_effect:toNumMap()
  		for k ,v in pairs(one) do
  			reward[k] = (reward[k] or 0) + v * count 
  		end
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
181 
 | 
  	end
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
182 
 | 
  	role:checkTaskEnter("SaleEquip", {count = allCount})
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
183 
 | 
  	reward, change = role:award(reward, {log = {desc = "saleEquip"}})
 
 | 
f22a33af
 
  zhouhaihai
 
自己的日志
 | 
184
185 
 | 
  	role:mylog("role_action", {desc = "saleEquip", int1 = allCount})
  	
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
186 
 | 
  	SendPacket(actionCodes.Car_saleEquipRpc, MsgPack.pack(role:packReward(reward, change)))
 
 | 
056c01a0
 
  zhouhaihai
 
简化装备
 | 
187
188
189 
 | 
  	return true
  end
  
 
 | 
497f9a67
 
  zhouhaihai
 
卖零件
 | 
190
191
192
193
194
195 
 | 
  function _M.saleRuneRpc(agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local backs = msg.backs
  	if not backs then return end
  
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
196 
 | 
  	local reward, change = {}
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
197 
 | 
  	local count = 0
 
 | 
2445248d
 
  zhouhaihai
 
去掉热门料理
 | 
198 
 | 
  	for _, uid in pairs(backs) do
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
199 
 | 
  		count = count + 1
 
 | 
497f9a67
 
  zhouhaihai
 
卖零件
 | 
200
201
202 
 | 
  		local rune = role.runeBag[uid]
  		if not rune then return end
  		if rune:getProperty("refer") ~= 0 then return end
 
 | 
2445248d
 
  zhouhaihai
 
去掉热门料理
 | 
203 
 | 
  		local itemData = csvdb["itemCsv"][rune:getProperty("id")]
 
 | 
497f9a67
 
  zhouhaihai
 
卖零件
 | 
204
205
206
207
208
209
210 
 | 
  		if not itemData then return end
  		local one = itemData.sell_effect:toNumMap()
  		for k ,v in pairs(one) do
  			reward[k] = (reward[k] or 0) + v
  		end
  	end
  
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
211 
 | 
  	role:delRunes(backs, {log = {desc = "saleRune"}})
 
 | 
03a6166a
 
  zhouhaihai
 
餐厅优化
 | 
212 
 | 
  	role:checkTaskEnter("DecoRune", {count = count})
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
213 
 | 
  	reward, change = role:award(reward, {log = {desc = "saleRune"}})
 
 | 
3133cb76
 
  zhouhaihai
 
日志
 | 
214 
 | 
  	
 
 | 
7bb30dca
 
  zhouhaihai
 
修改发奖
 | 
215 
 | 
  	SendPacket(actionCodes.Car_saleRuneRpc, MsgPack.pack(role:packReward(reward, change)))
 
 | 
497f9a67
 
  zhouhaihai
 
卖零件
 | 
216
217
218 
 | 
  	return true
  end
  
 
 | 
9c525cf9
 
  gaofengduan
 
add car smithy
 | 
219 
 | 
  return _M
 
 |