Commit 3eb7777532c6afb4f7eba05595481ebf76f3e59d
1 parent
7f1e84e6
完成友情界面功能
Showing
1 changed file
with
44 additions
and
12 deletions
Show diff stats
src/actions/HeroAction.lua
| @@ -362,23 +362,55 @@ end | @@ -362,23 +362,55 @@ end | ||
| 362 | function _M.loveItemRpc(agent, data) | 362 | function _M.loveItemRpc(agent, data) |
| 363 | local role = agent.role | 363 | local role = agent.role |
| 364 | local msg = MsgPack.unpack(data) | 364 | local msg = MsgPack.unpack(data) |
| 365 | - local hero = role.heros[msg.id] | ||
| 366 | - if not hero then return end | ||
| 367 | - local result = {} | 365 | + local hero = role.heros[msg.heroId] |
| 366 | + if not hero then | ||
| 367 | + return | ||
| 368 | + end | ||
| 368 | local curL = hero:getProperty("loveL") | 369 | local curL = hero:getProperty("loveL") |
| 369 | local curExp = hero:getProperty("loveExp") | 370 | local curExp = hero:getProperty("loveExp") |
| 370 | local curPlus = csvdb["unit_love_plusCsv"][hero:getProperty("type")] | 371 | local curPlus = csvdb["unit_love_plusCsv"][hero:getProperty("type")] |
| 371 | - if not curPlus or curL >= curPlus.limit then return end | ||
| 372 | - | 372 | + if not curPlus then |
| 373 | + return | ||
| 374 | + end | ||
| 375 | + if curL >= curPlus.limit then | ||
| 376 | + SendPacket(actionCodes.Hero_loveItemRpc, MsgPack.pack({errMsg = 1})) --已满级 | ||
| 377 | + return true | ||
| 378 | + end | ||
| 373 | local curEffect = csvdb["unit_love_effectCsv"][curL] | 379 | local curEffect = csvdb["unit_love_effectCsv"][curL] |
| 374 | - if not curEffect or curExp >= curEffect.loveValue then return end | ||
| 375 | - local delta = 100 -- todo | ||
| 376 | - local newExp = curExp + delta | ||
| 377 | - hero:updateProperty({field = "loveExp", value = newExp}) | ||
| 378 | - if newExp >= curEffect.loveValue then | ||
| 379 | - -- todo 发任务 | 380 | + if not curEffect then |
| 381 | + return | ||
| 382 | + end | ||
| 383 | + if curExp >= curEffect.loveValue and not msg.bBreak then | ||
| 384 | + SendPacket(actionCodes.Hero_loveItemRpc, MsgPack.pack({errMsg = 2})) --当前等级经验已满 | ||
| 385 | + return true | ||
| 386 | + end | ||
| 387 | + | ||
| 388 | + if msg.bBreak then | ||
| 389 | + local cost = curEffect.cost:toArray(true, "=") | ||
| 390 | + if not role:checkItemEnough({[cost[1]] = cost[2]}) then | ||
| 391 | + SendPacket(actionCodes.Hero_loveItemRpc, MsgPack.pack({errMsg = 3, itemId = cost[1]})) --物品不足 | ||
| 392 | + return true | ||
| 393 | + end | ||
| 394 | + role:costItems({[cost[1]] = cost[2]}) | ||
| 395 | + hero:updateProperty({field = "loveL", value = curL + 1}) | ||
| 396 | + hero:updateProperty({field = "loveExp", value = 0}) | ||
| 397 | + else | ||
| 398 | + local delta = globalCsv.unit_love_presentValue[msg.itemId] | ||
| 399 | + if not delta then | ||
| 400 | + return | ||
| 401 | + end | ||
| 402 | + if not role:checkItemEnough({[msg.itemId] = 1}) then | ||
| 403 | + SendPacket(actionCodes.Hero_loveItemRpc, MsgPack.pack({errMsg = 3, itemId = msg.itemId})) | ||
| 404 | + return true | ||
| 405 | + end | ||
| 406 | + local newExp = curExp + delta | ||
| 407 | + if newExp > curEffect.loveValue then | ||
| 408 | + newExp = curEffect.loveValue | ||
| 409 | + end | ||
| 410 | + role:costItems({[msg.itemId] = 1}) | ||
| 411 | + hero:updateProperty({field = "loveExp", value = newExp}) | ||
| 380 | end | 412 | end |
| 381 | - SendPacket(actionCodes.Hero_loveItemRpc, MsgPack.pack({delta = delta})) | 413 | + SendPacket(actionCodes.Hero_loveItemRpc, "") |
| 382 | return true | 414 | return true |
| 383 | end | 415 | end |
| 384 | 416 |