Commit ee3ac0b544a8841b9607a77caa27cdd04120868b
1 parent
ad484303
fix magic
Showing
3 changed files
with
44 additions
and
18 deletions
Show diff stats
src/actions/HeroAction.lua
| ... | ... | @@ -521,14 +521,47 @@ function _M.referEquipsRpc(agent, data) |
| 521 | 521 | return true |
| 522 | 522 | end |
| 523 | 523 | |
| 524 | --- typ 位置,id等级对应唯一符文,id为0时为移除,不为0时无则装备,有则替换 | |
| 525 | -function _M.referRunes(agent, data) | |
| 524 | +-- typ 位置,uid对应唯一符文,uid为0时为移除,不为0时无则装备,有则替换 | |
| 525 | +function _M.referRunesRpc(agent, data) | |
| 526 | 526 | local role = agent.role |
| 527 | 527 | local msg = MsgPack.unpack(data) |
| 528 | 528 | local hero = role.heros[msg.id] |
| 529 | 529 | if not hero then return 10 end |
| 530 | 530 | local runes = msg.runes |
| 531 | 531 | if not runes or not next(runes) then return 11 end |
| 532 | + | |
| 533 | + for typ,uid in pairs(runes) do | |
| 534 | + local referUid = hero:getProperty("rune"):getv(typ,0) | |
| 535 | + if uid == 0 then | |
| 536 | + if referUid == 0 then return 2 end | |
| 537 | + else | |
| 538 | + local ownRune = role.runeBag[uid] | |
| 539 | + if not ownRune then return 3 end | |
| 540 | + if ownRune:getProperty("refer") ~= 0 then return 4 end | |
| 541 | + | |
| 542 | + local runeSet = csvdb["runeCsv"][typ] | |
| 543 | + if not runeSet then return 5 end | |
| 544 | + local runeData = runeSet[ownRune.id] | |
| 545 | + if not runeData then return 6 end | |
| 546 | + end | |
| 547 | + end | |
| 548 | + | |
| 549 | + for typ,uid in pairs(runes) do | |
| 550 | + local referUid = hero:getProperty("rune"):getv(typ,0) | |
| 551 | + if uid == 0 then | |
| 552 | + local referRune = role.runeBag[referUid] | |
| 553 | + referRune:updateProperty({field = "refer",value = 0}) | |
| 554 | + else | |
| 555 | + if referUid ~= 0 then | |
| 556 | + local referRune = role.runeBag[referUid] | |
| 557 | + referRune:updateProperty({field = "refer",value = 0}) | |
| 558 | + end | |
| 559 | + local ownRune = role.runeBag[uid] | |
| 560 | + ownRune:updateProperty({field = "refer",value = hero:getProperty("id")}) | |
| 561 | + end | |
| 562 | + hero:updateProperty({field = "rune", value = hero:getProperty("equip"):setv(typ,uid)}) | |
| 563 | + end | |
| 564 | + SendPacket(actionCodes.Hero_referRunesRpc, "") | |
| 532 | 565 | return true |
| 533 | 566 | end |
| 534 | 567 | ... | ... |
src/models/RolePlugin.lua
| ... | ... | @@ -481,18 +481,14 @@ function RolePlugin.bind(Role) |
| 481 | 481 | end |
| 482 | 482 | end |
| 483 | 483 | |
| 484 | - function Role:getRuneCount(id,lv) | |
| 485 | - local runeSet = self.runeBag[id] | |
| 486 | - if runeSet then | |
| 487 | - local rune = runeSet[lv] | |
| 488 | - if rune then | |
| 489 | - return rune:getProperty("count") | |
| 490 | - else | |
| 491 | - return 0 | |
| 484 | + function Role:getRuneByType(typ) | |
| 485 | + local runeSet = {} | |
| 486 | + for _,v in pairs(self.runeBag) do | |
| 487 | + if v.type == typ then | |
| 488 | + table.insert(runeSet,v) | |
| 492 | 489 | end |
| 493 | - else | |
| 494 | - return 0 | |
| 495 | 490 | end |
| 491 | + return runeSet | |
| 496 | 492 | end |
| 497 | 493 | |
| 498 | 494 | function Role:getAdvData() | ... | ... |
src/models/Rune.lua
| ... | ... | @@ -65,18 +65,15 @@ local function getRandomValue(types,values) |
| 65 | 65 | |
| 66 | 66 | local range = valueArry[tk]:toArray(true,"=") |
| 67 | 67 | value = math.random(range[1],range[2]) |
| 68 | - print("typ "..typ.." value "..value) | |
| 69 | 68 | return typ,value |
| 70 | 69 | end |
| 71 | 70 | |
| 72 | 71 | function Rune:generateAttrs() |
| 73 | 72 | local runeData = csvdb["runeCsv"][self:getProperty("type")][self:getProperty("id")] |
| 74 | 73 | local attrs = "" |
| 75 | - attrs:setv(1,20) | |
| 76 | - attrs:setv(getRandomValue(runeData.attr1,runeData.range1)) | |
| 77 | - attrs:setv(getRandomValue(runeData.attr2,runeData.range2)) | |
| 78 | - print(attrs) | |
| 79 | - self:setProperty("attrs","2=30") | |
| 74 | + attrs = attrs:setv(getRandomValue(runeData.attr1,runeData.range1)) | |
| 75 | + attrs = attrs:setv(getRandomValue(runeData.attr2,runeData.range2)) | |
| 76 | + self:setProperty("attrs",attrs) | |
| 80 | 77 | end |
| 81 | 78 | |
| 82 | 79 | function Rune:data() | ... | ... |