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,14 +521,47 @@ function _M.referEquipsRpc(agent, data) | ||
521 | return true | 521 | return true |
522 | end | 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 | local role = agent.role | 526 | local role = agent.role |
527 | local msg = MsgPack.unpack(data) | 527 | local msg = MsgPack.unpack(data) |
528 | local hero = role.heros[msg.id] | 528 | local hero = role.heros[msg.id] |
529 | if not hero then return 10 end | 529 | if not hero then return 10 end |
530 | local runes = msg.runes | 530 | local runes = msg.runes |
531 | if not runes or not next(runes) then return 11 end | 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 | return true | 565 | return true |
533 | end | 566 | end |
534 | 567 |
src/models/RolePlugin.lua
@@ -481,18 +481,14 @@ function RolePlugin.bind(Role) | @@ -481,18 +481,14 @@ function RolePlugin.bind(Role) | ||
481 | end | 481 | end |
482 | end | 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 | end | 489 | end |
493 | - else | ||
494 | - return 0 | ||
495 | end | 490 | end |
491 | + return runeSet | ||
496 | end | 492 | end |
497 | 493 | ||
498 | function Role:getAdvData() | 494 | function Role:getAdvData() |
src/models/Rune.lua
@@ -65,18 +65,15 @@ local function getRandomValue(types,values) | @@ -65,18 +65,15 @@ local function getRandomValue(types,values) | ||
65 | 65 | ||
66 | local range = valueArry[tk]:toArray(true,"=") | 66 | local range = valueArry[tk]:toArray(true,"=") |
67 | value = math.random(range[1],range[2]) | 67 | value = math.random(range[1],range[2]) |
68 | - print("typ "..typ.." value "..value) | ||
69 | return typ,value | 68 | return typ,value |
70 | end | 69 | end |
71 | 70 | ||
72 | function Rune:generateAttrs() | 71 | function Rune:generateAttrs() |
73 | local runeData = csvdb["runeCsv"][self:getProperty("type")][self:getProperty("id")] | 72 | local runeData = csvdb["runeCsv"][self:getProperty("type")][self:getProperty("id")] |
74 | local attrs = "" | 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 | end | 77 | end |
81 | 78 | ||
82 | function Rune:data() | 79 | function Rune:data() |