Commit 3c0ea5fb7070be0765111105354d334ffb613176
1 parent
f871be67
抽英雄
Showing
6 changed files
with
219 additions
and
147 deletions
Show diff stats
src/GlobalVar.lua
| ... | ... | @@ -134,6 +134,9 @@ TimeReset = { |
| 134 | 134 | DailyBattle2 = 14, -- 特殊-每日副本(贴纸) |
| 135 | 135 | DailyBattle1 = 15, -- 特殊-每日副本(装备) |
| 136 | 136 | DailyBattle3 = 16, -- 特殊-每日副本(时钟箱) |
| 137 | + DrawType1 = 17, -- 变异 抽卡加成 | |
| 138 | + DrawType2 = 18, -- 通常 抽卡加成 | |
| 139 | + DrawType3 = 19, -- 魔法 抽卡加成 | |
| 137 | 140 | } |
| 138 | 141 | |
| 139 | 142 | GuideStep = { | ... | ... |
src/actions/HeroAction.lua
| ... | ... | @@ -233,7 +233,7 @@ function _M.commentHeroRpc(agent, data) |
| 233 | 233 | result.status = 1 |
| 234 | 234 | else |
| 235 | 235 | local commentKey = getCommentKey(heroType) |
| 236 | - local SERV = string.format(".chatd%d", math.random(1, 5)) | |
| 236 | + local SERV = string.format(".chated%d", math.random(1, 5)) | |
| 237 | 237 | local legal, mod = skynet.call(SERV, "lua", "check", content) |
| 238 | 238 | if not legal then |
| 239 | 239 | content = mod or "" |
| ... | ... | @@ -668,208 +668,258 @@ function _M.getResetRewardRpc(agent, data) |
| 668 | 668 | end |
| 669 | 669 | |
| 670 | 670 | |
| 671 | -local function randomDrawCondition(pool, condition) | |
| 672 | - local value = {} | |
| 673 | - for idx, field in ipairs(condition) do | |
| 674 | - local lpool = {} | |
| 675 | - local curIdx = 1 | |
| 676 | - while pool[field .. "_" .. curIdx] do | |
| 677 | - table.insert(lpool, {pool[field .. "_" .. curIdx]}) | |
| 678 | - curIdx = curIdx + 1 | |
| 679 | - end | |
| 680 | - if next(lpool) then | |
| 681 | - value[idx] = math.randWeight(lpool, 1) | |
| 682 | - end | |
| 683 | - end | |
| 684 | - return value | |
| 685 | -end | |
| 686 | - | |
| 687 | - | |
| 688 | -local function fillDrawPool(curPool, resultPool, isNeedFunc) | |
| 689 | - for itemId, oneData in pairs(csvdb["build_poolCsv"]) do | |
| 690 | - if oneData["pool_" .. curPool] and oneData["pool_" .. curPool] ~= "" then | |
| 691 | - local itemData = csvdb["itemCsv"][itemId] | |
| 692 | - if itemData and isNeedFunc(itemData) then | |
| 693 | - for _, one in ipairs(oneData["pool_" .. curPool]:toTableArray(true)) do | |
| 694 | - table.insert(resultPool, {itemId, one[1], one[2]}) -- itemId, count, 概率 | |
| 695 | - end | |
| 696 | - end | |
| 697 | - end | |
| 698 | - end | |
| 699 | -end | |
| 700 | 671 | |
| 701 | 672 | function _M.drawHeroRpc(agent, data) |
| 702 | 673 | local role = agent.role |
| 703 | 674 | local msg = MsgPack.unpack(data) |
| 704 | 675 | |
| 705 | 676 | if not role:isFuncUnlock(FuncUnlock.GetHero) then return end |
| 706 | - local pool = msg.pool -- 1 2 3 | |
| 677 | + local btype = msg.pool -- 1 2 3 4 | |
| 707 | 678 | local drawType = msg.type -- 1 单抽 2 十连 |
| 708 | 679 | |
| 709 | - local buildTypeData = csvdb["build_typeCsv"][pool] | |
| 680 | + local buildTypeData = csvdb["build_typeCsv"][btype] | |
| 710 | 681 | if not buildTypeData then return 1 end |
| 711 | 682 | |
| 712 | - local costs = {{"draw_card", "draw_coin"}, {"draw10_card", "draw10_coin"}} -- 抽取消耗 | |
| 713 | 683 | local drawCount = {1, 10} -- 抽取次数 |
| 684 | + if not drawCount[drawType] then return 2 end | |
| 714 | 685 | |
| 715 | - local costT = costs[drawType] | |
| 716 | - if not costT then return 2 end | |
| 717 | - local cost = buildTypeData[costT[1]]:toNumMap() | |
| 718 | - if not role:checkItemEnough(cost) then | |
| 719 | - cost = buildTypeData[costT[2]]:toNumMap() | |
| 720 | - if not role:checkItemEnough(cost) then | |
| 721 | - return 3 | |
| 686 | + local newerDraw | |
| 687 | + if btype == 4 then | |
| 688 | + newerDraw = role:getProperty("newerDraw") | |
| 689 | + if math.illegalNum(globalCsv.draw_newer[2] - (newerDraw[1] or 0), drawCount[drawType], globalCsv.draw_newer[2]) then return 11 end | |
| 690 | + end | |
| 691 | + | |
| 692 | + local cost = {} | |
| 693 | + local lastCount = drawCount[drawType] | |
| 694 | + for _, costType in ipairs({"draw_card", "draw_coin"}) do | |
| 695 | + if buildTypeData[costType] ~= "" then | |
| 696 | + local curCost = buildTypeData[costType]:toArray(true, "=") | |
| 697 | + local hadCount = role:getItemCount(curCost[1]) | |
| 698 | + local curCount = math.floor(hadCount / curCost[2]) | |
| 699 | + if curCount >= lastCount then | |
| 700 | + cost[curCost[1]] = curCost[2] * lastCount | |
| 701 | + lastCount = 0 | |
| 702 | + break | |
| 703 | + elseif curCount > 0 then | |
| 704 | + cost[curCost[1]] = curCost[2] * curCount | |
| 705 | + lastCount = lastCount - curCount | |
| 706 | + end | |
| 722 | 707 | end |
| 723 | 708 | end |
| 709 | + if lastCount > 0 then -- 钱不够 | |
| 710 | + return 3 | |
| 711 | + end | |
| 724 | 712 | |
| 725 | - -- 开始抽 | |
| 726 | - local rateTypes = {"unitRate", "fragmentRate", "itemRate"} | |
| 713 | + -- pool 固定的 | |
| 714 | + local poolEnum = { | |
| 715 | + [1] = { | |
| 716 | + [1] = 1, | |
| 717 | + [2] = 2, | |
| 718 | + [3] = 3, | |
| 719 | + }, | |
| 720 | + [2] = 10, | |
| 721 | + [3] = 11, | |
| 722 | + [4] = 12, | |
| 723 | + } | |
| 727 | 724 | |
| 728 | - local typePool = {} | |
| 729 | - for _, rateType in ipairs(rateTypes) do | |
| 730 | - table.insert(typePool, {buildTypeData[rateType]}) | |
| 725 | + -- 抽取的池子 | |
| 726 | + local pool = poolEnum[btype] | |
| 727 | + if btype == 1 then | |
| 728 | + -- 超级卡池子 每周轮换 有活动覆盖之 | |
| 729 | + --TODO 活动判断 | |
| 730 | + if false then | |
| 731 | + else | |
| 732 | + for idx, poolId in pairs(pool) do | |
| 733 | + if role:isTimeResetOpen(TimeReset["DrawType" .. idx]) then | |
| 734 | + pool = poolId | |
| 735 | + break | |
| 736 | + end | |
| 737 | + end | |
| 738 | + if type(pool) ~= "number" then | |
| 739 | + pool = -1 | |
| 740 | + end | |
| 741 | + end | |
| 731 | 742 | end |
| 743 | + local unitPool = csvdb["build_unitCsv"][pool] | |
| 744 | + if not unitPool then return 4 end | |
| 732 | 745 | |
| 746 | + -- 开始抽 | |
| 733 | 747 | local resultPool = {} |
| 748 | + local function fillDrawPool(fixRare, fixCamp, ssrUp) | |
| 749 | + local condition = {"rare", "camp"} | |
| 750 | + local values = {fixRare, fixCamp} | |
| 751 | + | |
| 752 | + for idx, field in ipairs(condition) do | |
| 753 | + if not values[idx] then | |
| 754 | + local lpool = {} | |
| 755 | + local curIdx = 1 | |
| 756 | + while unitPool[field .. "_" .. curIdx] do | |
| 757 | + lpool[curIdx] = {unitPool[field .. "_" .. curIdx]} | |
| 758 | + curIdx = curIdx + 1 | |
| 759 | + end | |
| 734 | 760 | |
| 735 | - local fillPoolFunc = { | |
| 736 | - unitRate = function(fixRare, fixCamp, fixJob) | |
| 737 | - local condition = {"rare", "camp", "job"} | |
| 738 | - local values = randomDrawCondition(csvdb["build_unitCsv"][pool], condition) | |
| 739 | - values[1] = fixRare or values[1] | |
| 740 | - values[2] = fixCamp or values[2] | |
| 741 | - values[3] = fixJob or values[3] | |
| 742 | - fillDrawPool(pool, resultPool, function(itemData) | |
| 743 | - if itemData.type ~= ItemType.Hero then return end | |
| 744 | - local heroData = csvdb["unitCsv"][itemData.id - ItemStartId.Hero] | |
| 745 | - if not heroData then return end | |
| 746 | - for idx, field in ipairs(condition) do | |
| 747 | - if heroData[field] ~= values[idx] then return end | |
| 761 | + -- 稀有度 ssr up | |
| 762 | + if field == "rare" then | |
| 763 | + local all = 0 | |
| 764 | + for _, weight in pairs(lpool) do | |
| 765 | + all = all + weight[1] | |
| 766 | + end | |
| 767 | + | |
| 768 | + lpool[4][1] = lpool[4][1] + (ssrUp or 0) * all | |
| 748 | 769 | end |
| 749 | - return true | |
| 750 | - end) | |
| 751 | - end, | |
| 752 | - fragmentRate = function(fixRare, fixCamp, fixJob) | |
| 753 | - local condition = {"rare", "camp", "job"} | |
| 754 | - local values = randomDrawCondition(csvdb["build_fragmentCsv"][pool], condition) | |
| 755 | - values[1] = fixRare or values[1] | |
| 756 | - values[2] = fixCamp or values[2] | |
| 757 | - values[3] = fixJob or values[3] | |
| 758 | - fillDrawPool(pool, resultPool, function(itemData) | |
| 759 | - if itemData.type ~= ItemType.HeroFragment then return end | |
| 760 | - local heroData = csvdb["unitCsv"][itemData.id] | |
| 761 | - if not heroData then return end | |
| 762 | - for idx, field in ipairs(condition) do | |
| 763 | - if heroData[field] ~= values[idx] then return end | |
| 770 | + | |
| 771 | + if next(lpool) then | |
| 772 | + values[idx] = math.randWeight(lpool, 1) | |
| 764 | 773 | end |
| 765 | - return true | |
| 766 | - end) | |
| 767 | - end, | |
| 768 | - itemRate = function() | |
| 769 | - fillDrawPool(pool, resultPool, function(itemData) | |
| 770 | - if itemData.type == ItemType.HeroFragment or itemData.type == ItemType.Hero then return end | |
| 771 | - return true | |
| 772 | - end) | |
| 773 | - end, | |
| 774 | - } | |
| 774 | + end | |
| 775 | + end | |
| 775 | 776 | |
| 776 | - role:costItems(cost, {log = {desc = "drawHero", short1 = pool}}) | |
| 777 | - local floorHeroCount = role:getProperty("floorHero")[pool] or 0 | |
| 777 | + for itemId, oneData in pairs(csvdb["build_poolCsv"]) do | |
| 778 | + if oneData["pool_" .. pool] and oneData["pool_" .. pool] ~= "" then | |
| 779 | + local itemData = csvdb["itemCsv"][itemId] | |
| 780 | + while itemData do | |
| 781 | + if itemData.type ~= ItemType.Hero then break end | |
| 782 | + local heroData = csvdb["unitCsv"][itemData.id - ItemStartId.Hero] | |
| 783 | + if not heroData then break end | |
| 784 | + local ok = true | |
| 785 | + for idx, field in ipairs(condition) do | |
| 786 | + if heroData[field] ~= values[idx] then ok = false break end | |
| 787 | + end | |
| 788 | + if not ok then break end | |
| 789 | + resultPool[itemId] = {oneData["pool_" .. pool]} -- itemId, count, 概率 | |
| 790 | + break | |
| 791 | + end | |
| 792 | + end | |
| 793 | + end | |
| 794 | + end | |
| 795 | + | |
| 796 | + role:costItems(cost, {log = {desc = "drawHero", short1 = btype, int1 = pool}}) | |
| 797 | + | |
| 798 | + local draw_floor_back_counts = globalCsv.draw_floor_back_counts[btype] | |
| 799 | + local draw_ssr_up_count_rate = globalCsv.draw_ssr_up_count_rate[btype] | |
| 800 | + local floorHeroCount = role:getProperty("floorHero")[btype] or 0 | |
| 801 | + local ssrUpCount = role:getProperty("ssrUp")[btype] or 0 | |
| 802 | + | |
| 803 | + local newerDrawCount, newerHadSSR | |
| 804 | + if btype == 4 then | |
| 805 | + newerDrawCount = newerDraw[1] or 0 | |
| 806 | + newerHadSSR = newerDraw[2] or 0 | |
| 807 | + end | |
| 778 | 808 | |
| 779 | 809 | local ssrCount = 0 |
| 780 | 810 | local reward = {} |
| 781 | 811 | for i = 1, drawCount[drawType] do |
| 782 | 812 | floorHeroCount = floorHeroCount + 1 |
| 813 | + if btype == 4 then | |
| 814 | + newerDrawCount = newerDrawCount + 1 | |
| 815 | + end | |
| 783 | 816 | |
| 784 | 817 | resultPool = {} |
| 785 | - local isFloorBack = globalCsv.draw_floor_back_counts[pool] and floorHeroCount >= globalCsv.draw_floor_back_counts[pool] | |
| 786 | - while not next(resultPool) do | |
| 787 | - local rateType | |
| 818 | + local isFloorBack = draw_floor_back_counts and floorHeroCount >= draw_floor_back_counts | |
| 819 | + local isNewerSSR = btype == 4 and (newerHadSSR == 0 and newerDrawCount >= globalCsv.draw_newer[1]) or false | |
| 788 | 820 | |
| 789 | - if isFloorBack then | |
| 790 | - rateType = 1 --保底英雄 | |
| 791 | - else | |
| 792 | - rateType = math.randWeight(typePool, 1) | |
| 793 | - end | |
| 794 | - if not fillPoolFunc[rateTypes[rateType]] then return 4 end | |
| 795 | - if isFloorBack then | |
| 796 | - fillPoolFunc[rateTypes[rateType]](3) -- 保底 sr 【郑斌】明确 | |
| 821 | + local ssrUp = 0 | |
| 822 | + if draw_ssr_up_count_rate then | |
| 823 | + ssrUp = math.floor(ssrUpCount / draw_ssr_up_count_rate[1]) * draw_ssr_up_count_rate[2] / 100 | |
| 824 | + end | |
| 825 | + while not next(resultPool) do | |
| 826 | + if isNewerSSR then | |
| 827 | + fillDrawPool(4) -- 新手保底的 ssr | |
| 828 | + elseif isFloorBack then | |
| 829 | + fillDrawPool(3) -- 保底 sr 【郑斌】明确 | |
| 797 | 830 | else |
| 798 | - fillPoolFunc[rateTypes[rateType]]() | |
| 831 | + fillDrawPool(nil, nil, ssrUp) | |
| 799 | 832 | end |
| 800 | 833 | end |
| 801 | 834 | |
| 802 | - local idx = math.randWeight(resultPool, 3) | |
| 803 | - local temp = resultPool[idx] | |
| 804 | - local itemData = csvdb["itemCsv"][temp[1]] | |
| 835 | + local itemId = math.randWeight(resultPool, 1) | |
| 836 | + local itemData = csvdb["itemCsv"][itemId] | |
| 805 | 837 | |
| 806 | - if itemData.type == ItemType.Hero then | |
| 807 | - if itemData.quality == 4 then | |
| 808 | - ssrCount = ssrCount + 1 | |
| 809 | - elseif itemData.quality == 3 then | |
| 810 | - floorHeroCount = 0 | |
| 838 | + if itemData.quality == 4 then | |
| 839 | + ssrCount = ssrCount + 1 | |
| 840 | + ssrUpCount = 0 | |
| 841 | + | |
| 842 | + if btype == 4 then | |
| 843 | + newerHadSSR = newerHadSSR + 1 | |
| 811 | 844 | end |
| 845 | + elseif itemData.quality == 3 then | |
| 846 | + floorHeroCount = 0 | |
| 847 | + ssrUpCount = ssrUpCount + 1 | |
| 848 | + else | |
| 849 | + ssrUpCount = ssrUpCount + 1 | |
| 812 | 850 | end |
| 813 | 851 | |
| 814 | - if itemData.type == ItemType.Hero and role:isHaveHero(itemData.id - ItemStartId.Hero) then | |
| 852 | + if role:isHaveHero(itemData.id - ItemStartId.Hero) then | |
| 815 | 853 | local fragId = itemData.id - ItemStartId.Hero |
| 816 | 854 | local heroData = csvdb["unitCsv"][fragId] |
| 817 | - local count = globalCsv.draw_unit_tofragment[heroData.rare] * temp[2] | |
| 818 | - role:award({[fragId] = count}, {log = {desc = "drawHero", short1 = pool}}) | |
| 819 | - table.insert(reward, {id = fragId, count = count, from = temp[1], fcount = temp[2]}) | |
| 855 | + local count = globalCsv.draw_unit_tofragment[heroData.rare] | |
| 856 | + role:award({[fragId] = count}, {log = {desc = "drawHero", short1 = btype, int1 = pool}}) | |
| 857 | + table.insert(reward, {id = fragId, count = count, from = itemId, fcount = 1}) | |
| 820 | 858 | else |
| 821 | - role:award({[temp[1]] = temp[2]}, {log = {desc = "drawHero", short1 = pool}}) | |
| 822 | - table.insert(reward, {id = temp[1], count = temp[2]}) | |
| 859 | + role:award({[itemId] = 1}, {log = {desc = "drawHero", short1 = btype, int1 = pool}}) | |
| 860 | + table.insert(reward, {id = itemId, count = 1}) | |
| 823 | 861 | end |
| 824 | 862 | end |
| 825 | 863 | |
| 826 | - if globalCsv.draw_floor_back_counts[pool] then | |
| 864 | + if draw_floor_back_counts then | |
| 827 | 865 | local floorHero = role:getProperty("floorHero") |
| 828 | 866 | floorHero[pool] = floorHeroCount |
| 829 | - role:updateProperty({field = "floorHero", value = floorHero}) | |
| 867 | + role:setProperty("floorHero", floorHero) | |
| 868 | + end | |
| 869 | + | |
| 870 | + if draw_ssr_up_count_rate then | |
| 871 | + local ssrUp = role:getProperty("ssrUp") | |
| 872 | + ssrUp[pool] = ssrUpCount | |
| 873 | + role:setProperty("ssrUp", ssrUp) | |
| 830 | 874 | end |
| 831 | 875 | |
| 832 | - if pool == 1 then | |
| 833 | - local repayHero = role:getProperty("repayHero") | |
| 834 | - repayHero = math.min(globalCsv.draw_super_repay_count, repayHero + drawCount[drawType]) | |
| 835 | - role:updateProperty({field = "repayHero", value = repayHero}) | |
| 876 | + if btype == 4 then | |
| 877 | + newerDraw[1] = newerDrawCount | |
| 878 | + newerDraw[2] = newerHadSSR | |
| 879 | + role:updateProperty({field = "newerDraw", value = newerDraw}) | |
| 836 | 880 | end |
| 837 | 881 | |
| 882 | + -- if pool == 1 then | |
| 883 | + -- local repayHero = role:getProperty("repayHero") | |
| 884 | + -- repayHero = math.min(globalCsv.draw_super_repay_count, repayHero + drawCount[drawType]) | |
| 885 | + -- role:updateProperty({field = "repayHero", value = repayHero}) | |
| 886 | + -- end | |
| 887 | + | |
| 838 | 888 | role:checkTaskEnter("DrawHero", {pool = pool, count = drawCount[drawType]}) |
| 839 | 889 | if ssrCount > 0 then |
| 840 | 890 | role:checkTaskEnter("DrawSSR", {count = ssrCount}) |
| 841 | 891 | end |
| 842 | - role:log("hero_action", {desc = "drawHero", short1 = pool, int1 = drawCount[drawType]}) | |
| 892 | + role:log("hero_action", {desc = "drawHero", short1 = btype, int1 = drawCount[drawType], int2 = pool}) | |
| 843 | 893 | SendPacket(actionCodes.Hero_drawHeroRpc, MsgPack.pack({reward = reward})) -- 这个 reward 是数组 |
| 844 | 894 | return true |
| 845 | 895 | end |
| 846 | 896 | |
| 847 | -function _M.repayHeroRpc(agent, data) | |
| 848 | - local role = agent.role | |
| 849 | - | |
| 850 | - local repayHero = role:getProperty("repayHero") | |
| 851 | - if repayHero < globalCsv.draw_super_repay_count then | |
| 852 | - return | |
| 853 | - end | |
| 897 | +-- function _M.repayHeroRpc(agent, data) | |
| 898 | +-- local role = agent.role | |
| 854 | 899 | |
| 855 | - role:updateProperty({field = "repayHero", value = 0}) | |
| 856 | - local id = math.randWeight(csvdb["build_giftCsv"], "pool_1") | |
| 900 | +-- local repayHero = role:getProperty("repayHero") | |
| 901 | +-- if repayHero < globalCsv.draw_super_repay_count then | |
| 902 | +-- return | |
| 903 | +-- end | |
| 857 | 904 | |
| 858 | - local reward = {} | |
| 859 | - local itemData = csvdb["itemCsv"][id] | |
| 860 | - if itemData.type == ItemType.Hero and role:isHaveHero(itemData.id - ItemStartId.Hero) then | |
| 861 | - local fragId = itemData.id - ItemStartId.Hero | |
| 862 | - local heroData = csvdb["unitCsv"][fragId] | |
| 863 | - local count = globalCsv.draw_unit_tofragment[heroData.rare] | |
| 864 | - role:award({[fragId] = count}, {log = {desc = "heroRepay"}}) | |
| 865 | - reward = {id = fragId, count = count, from = id, fcount = 1} | |
| 866 | - else | |
| 867 | - role:award({[id] = 1}, {log = {desc = "heroRepay"}}) | |
| 868 | - reward = {id = id, count = 1} | |
| 869 | - end | |
| 870 | - role:log("hero_action", {desc = "heroRepay"}) | |
| 871 | - SendPacket(actionCodes.Hero_repayHeroRpc, MsgPack.pack({reward = reward})) | |
| 872 | - return true | |
| 873 | -end | |
| 905 | +-- role:updateProperty({field = "repayHero", value = 0}) | |
| 906 | +-- local id = math.randWeight(csvdb["build_giftCsv"], "pool_1") | |
| 907 | + | |
| 908 | +-- local reward = {} | |
| 909 | +-- local itemData = csvdb["itemCsv"][id] | |
| 910 | +-- if itemData.type == ItemType.Hero and role:isHaveHero(itemData.id - ItemStartId.Hero) then | |
| 911 | +-- local fragId = itemData.id - ItemStartId.Hero | |
| 912 | +-- local heroData = csvdb["unitCsv"][fragId] | |
| 913 | +-- local count = globalCsv.draw_unit_tofragment[heroData.rare] | |
| 914 | +-- role:award({[fragId] = count}, {log = {desc = "heroRepay"}}) | |
| 915 | +-- reward = {id = fragId, count = count, from = id, fcount = 1} | |
| 916 | +-- else | |
| 917 | +-- role:award({[id] = 1}, {log = {desc = "heroRepay"}}) | |
| 918 | +-- reward = {id = id, count = 1} | |
| 919 | +-- end | |
| 920 | +-- role:log("hero_action", {desc = "heroRepay"}) | |
| 921 | +-- SendPacket(actionCodes.Hero_repayHeroRpc, MsgPack.pack({reward = reward})) | |
| 922 | +-- return true | |
| 923 | +-- end | |
| 874 | 924 | |
| 875 | 925 | return _M |
| 876 | 926 | \ No newline at end of file | ... | ... |
src/agent.lua
| ... | ... | @@ -325,6 +325,15 @@ skynet.start(function() |
| 325 | 325 | end |
| 326 | 326 | end) |
| 327 | 327 | |
| 328 | + skynet.info_func(function() | |
| 329 | + local info = {} | |
| 330 | + info.ip = agentInfo.ip | |
| 331 | + if agentInfo.role then | |
| 332 | + info.roldId = agentInfo.role:getProperty("id") | |
| 333 | + end | |
| 334 | + return info | |
| 335 | + end) | |
| 336 | + | |
| 328 | 337 | redisd = skynet.localname(".redis") |
| 329 | 338 | if tonumber(skynet.getenv "logd") == 1 then |
| 330 | 339 | logd = skynet.localname(".log") | ... | ... |
src/models/Role.lua
| ... | ... | @@ -144,8 +144,10 @@ Role.schema = { |
| 144 | 144 | |
| 145 | 145 | emailSync = {"number", 0}, -- 已经同步到的邮件Id |
| 146 | 146 | |
| 147 | - repayHero = {"number", 0}, -- 超级招募 回馈 | |
| 147 | + -- repayHero = {"number", 0}, -- 超级招募 回馈 | |
| 148 | 148 | floorHero = {"table", {}}, -- 招募保底 -- {[poolId] = count} |
| 149 | + ssrUp = {"table", {}}, -- ssr up -- {[poolId] = count} | |
| 150 | + newerDraw = {"table", {}}, -- 新手池子 {N, 1} 抽了多少次, 是否出了ssr | |
| 149 | 151 | } |
| 150 | 152 | |
| 151 | 153 | |
| ... | ... | @@ -349,8 +351,8 @@ function Role:data() |
| 349 | 351 | dinerS = self:getProperty("dinerS"), |
| 350 | 352 | |
| 351 | 353 | rmbC = self:getProperty("rmbC"), |
| 352 | - repayHero = self:getProperty("repayHero"), | |
| 353 | - floorHero = self:getProperty("floorHero"), | |
| 354 | + -- repayHero = self:getProperty("repayHero"), | |
| 355 | + newerDraw = self:getProperty("newerDraw"), | |
| 354 | 356 | } |
| 355 | 357 | end |
| 356 | 358 | ... | ... |
src/models/RolePlugin.lua
| ... | ... | @@ -401,10 +401,18 @@ function RolePlugin.bind(Role) |
| 401 | 401 | |
| 402 | 402 | redisproxy:sadd(string.format(R_HEROS, roleId), heroId) |
| 403 | 403 | |
| 404 | + local wakeL = 1 | |
| 405 | + if unitData.rare == 3 then | |
| 406 | + wakeL = 2 | |
| 407 | + elseif unitData.rare == 4 then | |
| 408 | + wakeL = 3 | |
| 409 | + end | |
| 410 | + | |
| 404 | 411 | local heroInfo = { |
| 405 | 412 | key = string.format(R_HERO, roleId, heroId), |
| 406 | 413 | id = heroId, |
| 407 | 414 | type= heroType, |
| 415 | + wakeL = wakeL, | |
| 408 | 416 | } |
| 409 | 417 | |
| 410 | 418 | local newHero = require("models.Hero").new(heroInfo) | ... | ... |
src/services/watchdog.lua
| ... | ... | @@ -51,7 +51,7 @@ local use_logd = tonumber(skynet.getenv "logd") |
| 51 | 51 | -- @desc: agent状态定时检测 |
| 52 | 52 | function check_agent_status() |
| 53 | 53 | pcall(agent_ctrl.check_agent_status, agent_ctrl) |
| 54 | - skynet.timeout(1, check_agent_status) | |
| 54 | + skynet.timeout(100, check_agent_status) | |
| 55 | 55 | end |
| 56 | 56 | |
| 57 | 57 | -- 创建world以及union channel 用于广播 | ... | ... |