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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
end
if not role:checkItemEnough(cost) then
return 5
end
role:costItems(cost)
potionBag[potionId] = own + count
role:updateProperty({field = "potionBag", value = potionBag})
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
if count < 1 then return 0 end
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
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
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
67
68
69
70
71
72
73
74
|
local ownSet = role.equipBag[typ]
if not ownSet then return 31 end
local ownData = ownSet[lv]
if not ownData then return 32 end
local own = role:getEquipCount(typ,lv)
local costCount = equipData.merge*count
if own < costCount then
|
9c525cf9
gaofengduan
add car smithy
|
75
76
77
78
|
return 3
end
local cost = equipData.cost:toNumMap()
|
e668f4d0
gaofengduan
fix cost
|
79
80
|
for k, n in pairs(cost) do
cost[k] = n * count
|
9c525cf9
gaofengduan
add car smithy
|
81
82
83
84
85
|
end
if not role:checkItemEnough(cost) then
return 4
end
|
9c525cf9
gaofengduan
add car smithy
|
86
|
role:costItems(cost)
|
43cc5f51
gaofengduan
调整 equip 数据结构
|
87
88
|
role:addEquip({type=typ,level=lv,count=-costCount})
role:addEquip({type=typ,level=nextLv,count=count})
|
9c525cf9
gaofengduan
add car smithy
|
89
90
91
92
|
SendPacket(actionCodes.Car_equipUpRpc, '')
return true
end
|
fb321075
gaofengduan
add rune up
|
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
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
if ownRune:getProperty("refer") ~= 0 then return 2 end
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
local maxLv = #csvdb["rune_buildCsv"]
if level >= maxLv then return 6 end
local lvData = csvdb["rune_buildCsv"][level+1]
local cost = lvData.cost:toNumMap()
if not role:checkItemEnough(cost) then
return 7
end
role:costItems(cost)
ownRune:updateProperty({field = "level",value = level+1})
SendPacket(actionCodes.Car_runeUpRpc, '')
return true
end
|
9c525cf9
gaofengduan
add car smithy
|
124
|
return _M
|