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