Commit c992c911b083de1b9089b924fb5c421b8f4c35ba
1 parent
bbf64622
中继
Showing
3 changed files
with
32 additions
and
18 deletions
Show diff stats
src/actions/AdvAction.lua
| ... | ... | @@ -452,11 +452,10 @@ function _M.wearArtifactRpc(agent, data) |
| 452 | 452 | local adv = role:getAdvData() |
| 453 | 453 | |
| 454 | 454 | if math.illegalNum(slot, 1, 5) then return 1 end |
| 455 | - if not adv:isHaveArtifact(id) then return 2 end | |
| 456 | - if adv:isWaitChooseArtifact() then return 3 end | |
| 455 | + if adv:isWaitChooseArtifact() then return 2 end | |
| 457 | 456 | |
| 458 | 457 | local status = adv:wearArtifact(slot, id) |
| 459 | - if not status then return 4 end | |
| 458 | + if not status then return 3 end | |
| 460 | 459 | adv:saveDB() |
| 461 | 460 | |
| 462 | 461 | SendPacket(actionCodes.Adv_wearArtifactRpc, '') | ... | ... |
src/adv/Adv.lua
| ... | ... | @@ -457,6 +457,12 @@ function Adv:wearArtifact(slot, id) |
| 457 | 457 | local advAFGet = self.owner:getProperty("advAFGet") |
| 458 | 458 | local advAFWear = self.owner:getProperty("advAFWear") |
| 459 | 459 | |
| 460 | + if id == -1 then | |
| 461 | + if not advAFWear[slot] then return end | |
| 462 | + else | |
| 463 | + if not advAFGet[id] then return end | |
| 464 | + end | |
| 465 | + | |
| 460 | 466 | local curWear = {} |
| 461 | 467 | for _, _id in pairs(advAFWear) do |
| 462 | 468 | curWear[_id] = 1 |
| ... | ... | @@ -484,23 +490,28 @@ function Adv:wearArtifact(slot, id) |
| 484 | 490 | curWear[advAFWear[slot]] = nil |
| 485 | 491 | end |
| 486 | 492 | |
| 487 | - curWear[id] = 1 | |
| 488 | - local newData = csvdb["adv_artifactCsv"][id][advAFGet[id]] | |
| 489 | - self:addArtifactEffect(newData.effect) | |
| 490 | - if newData.comboId ~= 0 then | |
| 491 | - local comboData = csvdb["adv_artifact_comboCsv"][newData.comboId] | |
| 492 | - if comboData then | |
| 493 | - local isHaveCombo = true | |
| 494 | - for _, _id in ipairs(comboData.artifactid:toArray(true)) do | |
| 495 | - if not curWear[_id] then | |
| 496 | - isHaveCombo = false | |
| 497 | - break | |
| 493 | + if id ~= -1 then | |
| 494 | + curWear[id] = 1 | |
| 495 | + local newData = csvdb["adv_artifactCsv"][id][advAFGet[id]] | |
| 496 | + self:addArtifactEffect(newData.effect) | |
| 497 | + | |
| 498 | + if newData.comboId ~= 0 then | |
| 499 | + local comboData = csvdb["adv_artifact_comboCsv"][newData.comboId] | |
| 500 | + if comboData then | |
| 501 | + local isHaveCombo = true | |
| 502 | + for _, _id in ipairs(comboData.artifactid:toArray(true)) do | |
| 503 | + if not curWear[_id] then | |
| 504 | + isHaveCombo = false | |
| 505 | + break | |
| 506 | + end | |
| 507 | + end | |
| 508 | + if isHaveCombo then | |
| 509 | + self:addArtifactEffect(comboData.effect) | |
| 498 | 510 | end |
| 499 | - end | |
| 500 | - if isHaveCombo then | |
| 501 | - self:addArtifactEffect(comboData.effect) | |
| 502 | 511 | end |
| 503 | 512 | end |
| 513 | + else | |
| 514 | + id = nil | |
| 504 | 515 | end |
| 505 | 516 | |
| 506 | 517 | self.owner:changeUpdates({{type = "advAFWear", field = slot, value = id}}) | ... | ... |
src/adv/AdvMap.lua
| ... | ... | @@ -271,7 +271,11 @@ createMap = function(self, mapId, isEnter, isNewRelay) |
| 271 | 271 | --入口 |
| 272 | 272 | randomFunc[AdvEventType.In] = function()end |
| 273 | 273 | --出口 |
| 274 | - randomFunc[AdvEventType.Out] = function() end | |
| 274 | + randomFunc[AdvEventType.Out] = function() | |
| 275 | + if not self.adv:isEndless() and isNewRelay then | |
| 276 | + return false | |
| 277 | + end | |
| 278 | + end | |
| 275 | 279 | --中继点出口 |
| 276 | 280 | randomFunc[AdvEventType.Exit] = function() |
| 277 | 281 | if not self.adv.isRelay or isEnter then return false end | ... | ... |