Commit fb3210753670251ae1d379635b8fa5ab3f52fe5a
1 parent
ee3ac0b5
add rune up
Showing
3 changed files
with
33 additions
and
1 deletions
Show diff stats
src/ProtocolCode.lua
src/actions/CarAction.lua
@@ -90,4 +90,35 @@ function _M.equipUpRpc( agent, data ) | @@ -90,4 +90,35 @@ function _M.equipUpRpc( agent, data ) | ||
90 | return true | 90 | return true |
91 | end | 91 | end |
92 | 92 | ||
93 | +function _M.runeUpRpc( agent, data ) | ||
94 | + local role = agent.role | ||
95 | + local msg = MsgPack.unpack(data) | ||
96 | + local uid = msg.uid | ||
97 | + local ownRune = role.runeBag[uid] | ||
98 | + if not ownRune then return 1 end | ||
99 | + if ownRune:getProperty("refer") ~= 0 then return 2 end | ||
100 | + | ||
101 | + local typ = ownRune:getProperty("type") | ||
102 | + local id = ownRune:getProperty("id") | ||
103 | + local level = ownRune:getProperty("level") | ||
104 | + | ||
105 | + local runeSet = csvdb["runeCsv"][typ] | ||
106 | + if not runeSet then return 4 end | ||
107 | + local runeData = runeSet[id] | ||
108 | + if not runeData then return 5 end | ||
109 | + | ||
110 | + local maxLv = #csvdb["rune_buildCsv"] | ||
111 | + if level >= maxLv then return 6 end | ||
112 | + local lvData = csvdb["rune_buildCsv"][level+1] | ||
113 | + local cost = lvData.cost:toNumMap() | ||
114 | + if not role:checkItemEnough(cost) then | ||
115 | + return 7 | ||
116 | + end | ||
117 | + | ||
118 | + role:costItems(cost) | ||
119 | + ownRune:updateProperty({field = "level",value = level+1}) | ||
120 | + SendPacket(actionCodes.Car_runeUpRpc, '') | ||
121 | + return true | ||
122 | +end | ||
123 | + | ||
93 | return _M | 124 | return _M |
94 | \ No newline at end of file | 125 | \ No newline at end of file |
src/actions/HeroAction.lua
@@ -541,7 +541,7 @@ function _M.referRunesRpc(agent, data) | @@ -541,7 +541,7 @@ function _M.referRunesRpc(agent, data) | ||
541 | 541 | ||
542 | local runeSet = csvdb["runeCsv"][typ] | 542 | local runeSet = csvdb["runeCsv"][typ] |
543 | if not runeSet then return 5 end | 543 | if not runeSet then return 5 end |
544 | - local runeData = runeSet[ownRune.id] | 544 | + local runeData = runeSet[ownRune:getProperty("id")] |
545 | if not runeData then return 6 end | 545 | if not runeData then return 6 end |
546 | end | 546 | end |
547 | end | 547 | end |