Commit 1e9cb2175c957835edee85f963055b21acf27e77
1 parent
55f80701
服务器记录控制引导过程
Showing
7 changed files
with
88 additions
and
22 deletions
Show diff stats
src/actions/AdvAction.lua
@@ -450,6 +450,10 @@ function _M.useItemRpc(agent, data) | @@ -450,6 +450,10 @@ function _M.useItemRpc(agent, data) | ||
450 | adv:backUse({[itemId] = count}) | 450 | adv:backUse({[itemId] = count}) |
451 | end | 451 | end |
452 | 452 | ||
453 | + if itemId == 5020 then | ||
454 | + role:finishGuide(53) | ||
455 | + end | ||
456 | + | ||
453 | adv:checkAchievement(adv.AchievType.UseItem, count, itemId) | 457 | adv:checkAchievement(adv.AchievType.UseItem, count, itemId) |
454 | adv:log({desc = "useItem", int1 = itemId, int2 = count}) | 458 | adv:log({desc = "useItem", int1 = itemId, int2 = count}) |
455 | 459 | ||
@@ -499,6 +503,8 @@ function _M.usePotionRpc(agent, data) | @@ -499,6 +503,8 @@ function _M.usePotionRpc(agent, data) | ||
499 | adv:saveDB() | 503 | adv:saveDB() |
500 | role:checkTaskEnter("AdvUsePotion") | 504 | role:checkTaskEnter("AdvUsePotion") |
501 | 505 | ||
506 | + role:finishGuide(61) | ||
507 | + | ||
502 | SendPacket(actionCodes.Adv_usePotionRpc, MsgPack.pack({events = adv:popBackEvents()})) | 508 | SendPacket(actionCodes.Adv_usePotionRpc, MsgPack.pack({events = adv:popBackEvents()})) |
503 | return true | 509 | return true |
504 | end | 510 | end |
@@ -516,6 +522,8 @@ function _M.chooseArtifactRpc(agent, data) | @@ -516,6 +522,8 @@ function _M.chooseArtifactRpc(agent, data) | ||
516 | local status = adv:chooseArtifact(msg.idx) | 522 | local status = adv:chooseArtifact(msg.idx) |
517 | if not status then return 4 end | 523 | if not status then return 4 end |
518 | adv:saveDB() | 524 | adv:saveDB() |
525 | + | ||
526 | + role:finishGuide(54) | ||
519 | 527 | ||
520 | SendPacket(actionCodes.Adv_chooseArtifactRpc, '') | 528 | SendPacket(actionCodes.Adv_chooseArtifactRpc, '') |
521 | return true | 529 | return true |
@@ -539,6 +547,8 @@ function _M.wearArtifactRpc(agent, data) | @@ -539,6 +547,8 @@ function _M.wearArtifactRpc(agent, data) | ||
539 | if not status then return 3 end | 547 | if not status then return 3 end |
540 | adv:saveDB() | 548 | adv:saveDB() |
541 | 549 | ||
550 | + role:finishGuide(55) | ||
551 | + | ||
542 | SendPacket(actionCodes.Adv_wearArtifactRpc, '') | 552 | SendPacket(actionCodes.Adv_wearArtifactRpc, '') |
543 | return true | 553 | return true |
544 | end | 554 | end |
@@ -568,6 +578,7 @@ function _M.upArtifactRpc(agent, data) | @@ -568,6 +578,7 @@ function _M.upArtifactRpc(agent, data) | ||
568 | else | 578 | else |
569 | adv:updateAchievement() | 579 | adv:updateAchievement() |
570 | end | 580 | end |
581 | + | ||
571 | SendPacket(actionCodes.Adv_upArtifactRpc, '') | 582 | SendPacket(actionCodes.Adv_upArtifactRpc, '') |
572 | return true | 583 | return true |
573 | end | 584 | end |
@@ -577,7 +588,9 @@ function _M.exitAdvRpc(agent, data) | @@ -577,7 +588,9 @@ function _M.exitAdvRpc(agent, data) | ||
577 | local role = agent.role | 588 | local role = agent.role |
578 | -- local msg = MsgPack.unpack(data) | 589 | -- local msg = MsgPack.unpack(data) |
579 | if not isCanContinue(role) then return end | 590 | if not isCanContinue(role) then return end |
580 | - | 591 | + if not role:checkOverGuide(57) then |
592 | + role:saveGuide(57,1,true) | ||
593 | + end | ||
581 | local adv = role:getAdvData() | 594 | local adv = role:getAdvData() |
582 | adv:log({desc = "exit"}) | 595 | adv:log({desc = "exit"}) |
583 | local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标 | 596 | local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标 |
@@ -638,6 +651,19 @@ function _M.endBattleRpc(agent, data) | @@ -638,6 +651,19 @@ function _M.endBattleRpc(agent, data) | ||
638 | if enemy.monsterId ~= monsterId or enemy.roomId ~= roomId or enemy.blockId ~= blockId then return end | 651 | if enemy.monsterId ~= monsterId or enemy.roomId ~= roomId or enemy.blockId ~= blockId then return end |
639 | adv.__battleCache = nil | 652 | adv.__battleCache = nil |
640 | 653 | ||
654 | + -- 打完野猪怪 | ||
655 | + role:finishGuide(52) | ||
656 | + -- 调理剂使用引导(生命药剂) | ||
657 | + if not role:checkOverGuide(61) then | ||
658 | + local potionBag = role:getProperty("potionBag") | ||
659 | + local own = potionBag[10] or 0 | ||
660 | + if own > 0 then | ||
661 | + -- 造假 | ||
662 | + player.hp = player.hp * 0.8 | ||
663 | + role:saveGuide(61,1,true) | ||
664 | + end | ||
665 | + end | ||
666 | + | ||
641 | adv:log({desc = "endBattle"}) | 667 | adv:log({desc = "endBattle"}) |
642 | local status = adv:clickBlock(roomId, blockId, {player = player, bySkill = bySkill}) | 668 | local status = adv:clickBlock(roomId, blockId, {player = player, bySkill = bySkill}) |
643 | 669 | ||
@@ -720,7 +746,7 @@ function _M.wheelSurfRpc(agent, data) | @@ -720,7 +746,7 @@ function _M.wheelSurfRpc(agent, data) | ||
720 | table.insert(backReward, gift) | 746 | table.insert(backReward, gift) |
721 | end | 747 | end |
722 | role:award(reward, {log = {desc = "advWheelSurf", int1 = ptype}}) | 748 | role:award(reward, {log = {desc = "advWheelSurf", int1 = ptype}}) |
723 | - | 749 | + role:finishGuide(58) |
724 | role:checkTaskEnter("AdvDraw", {count = count, ptype = ptype}) | 750 | role:checkTaskEnter("AdvDraw", {count = count, ptype = ptype}) |
725 | role:log("adv_action", {desc = "advWheelSurf", int1 = ptype, int2 = count}) | 751 | role:log("adv_action", {desc = "advWheelSurf", int1 = ptype, int2 = count}) |
726 | 752 | ||
@@ -775,7 +801,7 @@ function _M.finishAchievRpc(agent, data) | @@ -775,7 +801,7 @@ function _M.finishAchievRpc(agent, data) | ||
775 | if not status then return end | 801 | if not status then return end |
776 | adv:updateAchievement() | 802 | adv:updateAchievement() |
777 | role:log("adv_action", {desc = "finishAchiev", short1 = ctype, int1 = chapterId, int2 = taskId}) | 803 | role:log("adv_action", {desc = "finishAchiev", short1 = ctype, int1 = chapterId, int2 = taskId}) |
778 | - | 804 | + role:finishGuide(57) |
779 | SendPacket(actionCodes.Adv_finishAchievRpc, MsgPack.pack(role:packReward(reward, change))) | 805 | SendPacket(actionCodes.Adv_finishAchievRpc, MsgPack.pack(role:packReward(reward, change))) |
780 | return true | 806 | return true |
781 | end | 807 | end |
src/actions/DinerAction.lua
@@ -104,7 +104,7 @@ function _M.addSellRpc( agent, data ) | @@ -104,7 +104,7 @@ function _M.addSellRpc( agent, data ) | ||
104 | if change then | 104 | if change then |
105 | role.dinerData:updateProperty({field = "customer", value = customer}) | 105 | role.dinerData:updateProperty({field = "customer", value = customer}) |
106 | end | 106 | end |
107 | - | 107 | + role:finishGuide(28) |
108 | role:log("diner_action", {desc = "addSell", int1 = dish, int2 = count}) | 108 | role:log("diner_action", {desc = "addSell", int1 = dish, int2 = count}) |
109 | 109 | ||
110 | role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) | 110 | role.dinerData:updateProperty({field = "sells", value = json.encode(sells)}) |
@@ -407,7 +407,7 @@ function _M.talentUpRpc( agent, data ) | @@ -407,7 +407,7 @@ function _M.talentUpRpc( agent, data ) | ||
407 | -- end | 407 | -- end |
408 | 408 | ||
409 | role:checkTaskEnter("DinerTalentUp", {type = talentData.effect:toArray(true,"=")[1], level = dishLevel + 1}) | 409 | role:checkTaskEnter("DinerTalentUp", {type = talentData.effect:toArray(true,"=")[1], level = dishLevel + 1}) |
410 | - | 410 | + role:finishGuide(27) |
411 | role:log("diner_action", {desc = "talentUp", int1 = dish, int2 = dishLevel + 1}) | 411 | role:log("diner_action", {desc = "talentUp", int1 = dish, int2 = dishLevel + 1}) |
412 | 412 | ||
413 | SendPacket(actionCodes.Diner_talentUpRpc, '') | 413 | SendPacket(actionCodes.Diner_talentUpRpc, '') |
@@ -612,7 +612,7 @@ function _M.refreshTaskRpc( agent, data ) | @@ -612,7 +612,7 @@ function _M.refreshTaskRpc( agent, data ) | ||
612 | end | 612 | end |
613 | 613 | ||
614 | role:log("diner_action", {desc = "reTask"}) | 614 | role:log("diner_action", {desc = "reTask"}) |
615 | - | 615 | + role:finishGuide(41) |
616 | role.dinerData:updateProperty({field = "order", value = json.encode(orders)}) | 616 | role.dinerData:updateProperty({field = "order", value = json.encode(orders)}) |
617 | 617 | ||
618 | SendPacket(actionCodes.Diner_refreshTaskRpc, '') | 618 | SendPacket(actionCodes.Diner_refreshTaskRpc, '') |
@@ -653,7 +653,7 @@ function _M.addWantFoodRpc(agent , data) | @@ -653,7 +653,7 @@ function _M.addWantFoodRpc(agent , data) | ||
653 | end | 653 | end |
654 | 654 | ||
655 | role:log("diner_action", {desc = "wantFood"}) | 655 | role:log("diner_action", {desc = "wantFood"}) |
656 | - | 656 | + role:finishGuide(36) |
657 | role.dinerData:updateProperty({field = "gfood", value = gfood}) | 657 | role.dinerData:updateProperty({field = "gfood", value = gfood}) |
658 | 658 | ||
659 | SendPacket(actionCodes.Diner_addWantFoodRpc, '') | 659 | SendPacket(actionCodes.Diner_addWantFoodRpc, '') |
src/actions/HangAction.lua
@@ -247,6 +247,23 @@ function _M.endBattleRpc(agent, data) | @@ -247,6 +247,23 @@ function _M.endBattleRpc(agent, data) | ||
247 | local team = role:getProperty("pvpTC") | 247 | local team = role:getProperty("pvpTC") |
248 | role:log("hang_action", {desc = "hangBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = carbonId, int2 = role:getProperty("hangTBV"), cint1 = role:getHerosCamp(team.heros)}) | 248 | role:log("hang_action", {desc = "hangBattle", short1 = msg.starNum > 0 and 1 or 0, int1 = carbonId, int2 = role:getProperty("hangTBV"), cint1 = role:getHerosCamp(team.heros)}) |
249 | 249 | ||
250 | + -- 引导 | ||
251 | + if carbonId == 10101 then | ||
252 | + role:finishGuide(5) | ||
253 | + elseif carbonId == 10102 then | ||
254 | + role:finishGuide(8) | ||
255 | + elseif carbonId == 10103 then | ||
256 | + role:finishGuide(9) | ||
257 | + elseif carbonId == 10220 then | ||
258 | + role:finishGuide(22) | ||
259 | + end | ||
260 | + for _, guideData in pairs(csvdb["guide_unlockCsv"]) do | ||
261 | + if guideData.type == 3 and guideData.carbonId == carbonId then | ||
262 | + role:saveGuide(guideData.guideId,1,true) | ||
263 | + break | ||
264 | + end | ||
265 | + end | ||
266 | + | ||
250 | SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({ | 267 | SendPacket(actionCodes.Hang_endBattleRpc, MsgPack.pack({ |
251 | starNum = msg.starNum, | 268 | starNum = msg.starNum, |
252 | reward = reward, | 269 | reward = reward, |
src/actions/HeroAction.lua
@@ -32,6 +32,10 @@ function _M.levelUpRpc( agent, data ) | @@ -32,6 +32,10 @@ function _M.levelUpRpc( agent, data ) | ||
32 | 32 | ||
33 | hero:log({desc = "levelUp", int1 = hero:getProperty("level")}) | 33 | hero:log({desc = "levelUp", int1 = hero:getProperty("level")}) |
34 | 34 | ||
35 | + if hero:getProperty("type") == 103 then | ||
36 | + role:finishGuide(7) | ||
37 | + end | ||
38 | + | ||
35 | role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")}) | 39 | role:checkTaskEnter("HeroLevelUp", {level = hero:getProperty("level")}) |
36 | SendPacket(actionCodes.Hero_levelUpRpc, '') | 40 | SendPacket(actionCodes.Hero_levelUpRpc, '') |
37 | return true | 41 | return true |
@@ -523,6 +527,8 @@ function _M.referEquipsRpc(agent, data) | @@ -523,6 +527,8 @@ function _M.referEquipsRpc(agent, data) | ||
523 | -- 更新角色 | 527 | -- 更新角色 |
524 | hero:updateProperty({field = "equip", value = curEquip}) | 528 | hero:updateProperty({field = "equip", value = curEquip}) |
525 | 529 | ||
530 | + role:finishGuide(23) | ||
531 | + | ||
526 | SendPacket(actionCodes.Hero_referEquipsRpc, "") | 532 | SendPacket(actionCodes.Hero_referEquipsRpc, "") |
527 | return true | 533 | return true |
528 | end | 534 | end |
@@ -688,7 +694,6 @@ function _M.unuse_drawHeroRpc(agent, data) | @@ -688,7 +694,6 @@ function _M.unuse_drawHeroRpc(agent, data) | ||
688 | if not role:isFuncUnlock(FuncUnlock.GetHero) then return end | 694 | if not role:isFuncUnlock(FuncUnlock.GetHero) then return end |
689 | local btype = msg.pool -- 1 2 3 4 | 695 | local btype = msg.pool -- 1 2 3 4 |
690 | local drawType = msg.type -- 1 单抽 2 十连 | 696 | local drawType = msg.type -- 1 单抽 2 十连 |
691 | - local guide = msg.guide -- 是否是引导抽的 | ||
692 | 697 | ||
693 | local buildTypeData = csvdb["build_typeCsv"][btype] | 698 | local buildTypeData = csvdb["build_typeCsv"][btype] |
694 | if not buildTypeData then return 1 end | 699 | if not buildTypeData then return 1 end |
@@ -829,6 +834,12 @@ function _M.unuse_drawHeroRpc(agent, data) | @@ -829,6 +834,12 @@ function _M.unuse_drawHeroRpc(agent, data) | ||
829 | newerHadSSR = newerDraw[2] or 0 | 834 | newerHadSSR = newerDraw[2] or 0 |
830 | end | 835 | end |
831 | 836 | ||
837 | + local guideHero | ||
838 | + local funcGuide = role:getProperty("funcGuide") | ||
839 | + if funcGuide:getv(11001,0) == 1 and funcGuide:getv(12001,0) == 0 then | ||
840 | + guideHero = 613 | ||
841 | + end | ||
842 | + | ||
832 | local ssrCount = 0 | 843 | local ssrCount = 0 |
833 | local reward = {} | 844 | local reward = {} |
834 | for i = 1, drawCount[drawType] do | 845 | for i = 1, drawCount[drawType] do |
@@ -858,7 +869,11 @@ function _M.unuse_drawHeroRpc(agent, data) | @@ -858,7 +869,11 @@ function _M.unuse_drawHeroRpc(agent, data) | ||
858 | end | 869 | end |
859 | 870 | ||
860 | -- 引导必送 613 丝路德 | 871 | -- 引导必送 613 丝路德 |
861 | - local itemId = guide and 613 or math.randWeight(resultPool, 1) | 872 | + local itemId = math.randWeight(resultPool, 1) |
873 | + if guideHero then | ||
874 | + itemId = guideHero | ||
875 | + guideHero = nil | ||
876 | + end | ||
862 | local itemData = csvdb["itemCsv"][itemId] | 877 | local itemData = csvdb["itemCsv"][itemId] |
863 | if itemData.quality == 4 then | 878 | if itemData.quality == 4 then |
864 | ssrCount = ssrCount + 1 | 879 | ssrCount = ssrCount + 1 |
@@ -910,6 +925,8 @@ function _M.unuse_drawHeroRpc(agent, data) | @@ -910,6 +925,8 @@ function _M.unuse_drawHeroRpc(agent, data) | ||
910 | -- role:updateProperty({field = "repayHero", value = repayHero}) | 925 | -- role:updateProperty({field = "repayHero", value = repayHero}) |
911 | -- end | 926 | -- end |
912 | 927 | ||
928 | + role:finishGuide(11) | ||
929 | + | ||
913 | role:checkTaskEnter("DrawHero", {pool = btype, count = drawCount[drawType]}) | 930 | role:checkTaskEnter("DrawHero", {pool = btype, count = drawCount[drawType]}) |
914 | if ssrCount > 0 then | 931 | if ssrCount > 0 then |
915 | role:checkTaskEnter("DrawSSR", {count = ssrCount}) | 932 | role:checkTaskEnter("DrawSSR", {count = ssrCount}) |
src/actions/RoleAction.lua
@@ -1031,6 +1031,9 @@ function _M.guideRpc(agent, data) | @@ -1031,6 +1031,9 @@ function _M.guideRpc(agent, data) | ||
1031 | 1031 | ||
1032 | role:saveGuide(master, slave) | 1032 | role:saveGuide(master, slave) |
1033 | funcGuide = funcGuide:setv(master * 1000 + slave, 1) | 1033 | funcGuide = funcGuide:setv(master * 1000 + slave, 1) |
1034 | + if funcGuide:getv(master * 1000,0) == 0 then | ||
1035 | + funcGuide = funcGuide:setv(master * 1000, 1) | ||
1036 | + end | ||
1034 | role:updateProperty({field = "funcGuide", value = funcGuide}) | 1037 | role:updateProperty({field = "funcGuide", value = funcGuide}) |
1035 | role:log("onGuidePoint", {guild_type = 0, guild_id = master, guild_point = slave, guild_pass = 0}) | 1038 | role:log("onGuidePoint", {guild_type = 0, guild_id = master, guild_point = slave, guild_pass = 0}) |
1036 | elseif cmdType == 2 then | 1039 | elseif cmdType == 2 then |
src/adv/Adv.lua
@@ -1357,6 +1357,10 @@ local function clickDrop(self, room, block, params) | @@ -1357,6 +1357,10 @@ local function clickDrop(self, room, block, params) | ||
1357 | 1357 | ||
1358 | local reward = self:award({[block.event.item[1]] = block.event.item[2]}, {log = {desc = "clickDrop"}}) | 1358 | local reward = self:award({[block.event.item[1]] = block.event.item[2]}, {log = {desc = "clickDrop"}}) |
1359 | -- local reward = self:award({[5801] = 1}) | 1359 | -- local reward = self:award({[5801] = 1}) |
1360 | + -- 获取绷带的引导 | ||
1361 | + if block.event.item[1] == 5020 and not self.owner:checkOverGuide(53,2) then | ||
1362 | + self.owner:saveGuide(53,2) | ||
1363 | + end | ||
1360 | block:clear() | 1364 | block:clear() |
1361 | self:backReward(reward, {roomId = room.roomId, blockId = block.blockId}) | 1365 | self:backReward(reward, {roomId = room.roomId, blockId = block.blockId}) |
1362 | return true | 1366 | return true |
src/models/RolePlugin.lua
@@ -1418,15 +1418,6 @@ function RolePlugin.bind(Role) | @@ -1418,15 +1418,6 @@ function RolePlugin.bind(Role) | ||
1418 | return RANK_ADV[idx] | 1418 | return RANK_ADV[idx] |
1419 | end | 1419 | end |
1420 | 1420 | ||
1421 | - -- 是否需要进行引导 | ||
1422 | - function Role:checkOverGuide(guideId) | ||
1423 | - local funcGuide = self:getProperty("funcGuide") | ||
1424 | - if funcGuide:getv(guideId, 0) > 0 then | ||
1425 | - return true | ||
1426 | - end | ||
1427 | - return false | ||
1428 | - end | ||
1429 | - | ||
1430 | -- 消除指定tag 红点 | 1421 | -- 消除指定tag 红点 |
1431 | function Role:clearRedPTag(tag) | 1422 | function Role:clearRedPTag(tag) |
1432 | local redp = self:getProperty("redp") | 1423 | local redp = self:getProperty("redp") |
@@ -1567,16 +1558,24 @@ function RolePlugin.bind(Role) | @@ -1567,16 +1558,24 @@ function RolePlugin.bind(Role) | ||
1567 | self.sendMailFlag = true | 1558 | self.sendMailFlag = true |
1568 | end | 1559 | end |
1569 | 1560 | ||
1561 | + -- 是否需要进行引导 | ||
1562 | + function Role:checkOverGuide(guideId,slave) | ||
1563 | + local funcGuide = self:getProperty("funcGuide") | ||
1564 | + if funcGuide:getv(guideId * 1000 + (slave or 0), 0) > 0 then | ||
1565 | + return true | ||
1566 | + end | ||
1567 | + return false | ||
1568 | + end | ||
1569 | + | ||
1570 | -- 保存引导步骤 | 1570 | -- 保存引导步骤 |
1571 | - function Role:saveGuide(master,slave) | 1571 | + function Role:saveGuide(master,slave,force) |
1572 | local newerGuide = self:getProperty("newerGuide") | 1572 | local newerGuide = self:getProperty("newerGuide") |
1573 | local guide = newerGuide:toArray(true,"=") | 1573 | local guide = newerGuide:toArray(true,"=") |
1574 | local sMaster, sSlave = guide[1], guide[2] | 1574 | local sMaster, sSlave = guide[1], guide[2] |
1575 | 1575 | ||
1576 | - if master < sMaster and slave < sSlave then return end | 1576 | + if not force and master < sMaster then return end |
1577 | + if not force and master <= sMaster and slave < sSlave then return end | ||
1577 | 1578 | ||
1578 | - local guideCsv = csvdb["guide_mainCsv"] | ||
1579 | - if not guideCsv[master] or not guideCsv[master][slave] then return end | ||
1580 | self:log("guide", {desc = "guide_new",int1 = master*1000+slave}) | 1579 | self:log("guide", {desc = "guide_new",int1 = master*1000+slave}) |
1581 | 1580 | ||
1582 | newerGuide = string.format("%d=%d",master,slave) | 1581 | newerGuide = string.format("%d=%d",master,slave) |