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 |