Commit ee3ac0b544a8841b9607a77caa27cdd04120868b

Authored by gaofengduan
1 parent ad484303

fix magic

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()