Commit 2a5428655f723ce363ee74534eadf20878d1a3df

Authored by liuzujun
1 parent a04fb7d7

齿轮、经验 奖励投放逻辑调整

src/actions/HangAction.lua
@@ -22,7 +22,8 @@ local function checkReward(role) @@ -22,7 +22,8 @@ local function checkReward(role)
22 return false 22 return false
23 end 23 end
24 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId] 24 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId]
25 - local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId] 25 + --local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
  26 + local expCarbonData = hangInfo.expData or {}
26 local nowCoinTime = math.min(skynet.timex(), hangInfo.endCoinTime or 0) 27 local nowCoinTime = math.min(skynet.timex(), hangInfo.endCoinTime or 0)
27 local nowItemTime = math.min(skynet.timex(), hangInfo.endItemTime or 0) 28 local nowItemTime = math.min(skynet.timex(), hangInfo.endItemTime or 0)
28 29
@@ -42,9 +43,9 @@ local function checkReward(role) @@ -42,9 +43,9 @@ local function checkReward(role)
42 43
43 local items = role:getProperty("hangBag") 44 local items = role:getProperty("hangBag")
44 coinCount = (coinCount + coinDoubleCount) * expCoef 45 coinCount = (coinCount + coinDoubleCount) * expCoef
45 - items[ItemId.Gold] = math.floor((items[ItemId.Gold] or 0) + coinCount * expCarbonData.money)  
46 - items[ItemId.Exp] = math.floor((items[ItemId.Exp] or 0) + coinCount * expCarbonData.exp)  
47 - items[ItemId.PlayerExp] = math.floor((items[ItemId.PlayerExp] or 0) + coinCount * expCarbonData.playerExp) 46 + items[ItemId.Gold] = math.floor((items[ItemId.Gold] or 0) + coinCount * (expCarbonData.money or 0))
  47 + items[ItemId.Exp] = math.floor((items[ItemId.Exp] or 0) + coinCount * (expCarbonData.exp or 0))
  48 + items[ItemId.PlayerExp] = math.floor((items[ItemId.PlayerExp] or 0) + (coinCount * expCarbonData.playerExp or 0))
48 49
49 local pool = {} 50 local pool = {}
50 for _, temp in pairs(carbonData.item:toArray()) do 51 for _, temp in pairs(carbonData.item:toArray()) do
@@ -144,7 +145,7 @@ function _M.startRpc( agent, data ) @@ -144,7 +145,7 @@ function _M.startRpc( agent, data )
144 local hangInfo = role:getProperty("hangInfo") 145 local hangInfo = role:getProperty("hangInfo")
145 local isNew = not hangInfo.carbonId 146 local isNew = not hangInfo.carbonId
146 hangInfo.carbonId = carbonId 147 hangInfo.carbonId = carbonId
147 - hangInfo.expCarbonId = isNew and carbonId or hangInfo.expCarbonId 148 + --hangInfo.expCarbonId = isNew and carbonId or hangInfo.expCarbonId
148 local nowTime = skynet.timex() 149 local nowTime = skynet.timex()
149 if isNew then 150 if isNew then
150 hangInfo.coinTime = nowTime 151 hangInfo.coinTime = nowTime
@@ -279,15 +280,25 @@ function _M.endBattleRpc(agent, data) @@ -279,15 +280,25 @@ function _M.endBattleRpc(agent, data)
279 local nextCarbonId = role:getNextCarbonId(carbonId) 280 local nextCarbonId = role:getNextCarbonId(carbonId)
280 -- 设置挂机关卡 281 -- 设置挂机关卡
281 if isWin then --and (hangInfo.carbonId or 0) < nextCarbonId then 282 if isWin then --and (hangInfo.carbonId or 0) < nextCarbonId then
282 - if not hangInfo.expCarbonId then  
283 - hangInfo.expCarbonId = carbonId  
284 - else  
285 - local oldCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]  
286 - local newCarbonData = csvdb["idle_battleCsv"][carbonId]  
287 - if oldCarbonData.money < newCarbonData.money then  
288 - hangInfo.expCarbonId = carbonId  
289 - end 283 + local newCarbonData = csvdb["idle_battleCsv"][carbonId]
  284 + if newCarbonData then
  285 + local expData = hangInfo.expData or {}
  286 + expData.exp = (expData.exp or 0) + newCarbonData.exp
  287 + expData.money = (expData.money or 0) + newCarbonData.money
  288 + expData.playerExp = (expData.playerExp or 0) + newCarbonData.playerExp
  289 + hangInfo.expData = expData
290 end 290 end
  291 +
  292 + --if not hangInfo.expCarbonId then
  293 + -- hangInfo.expCarbonId = carbonId
  294 + --else
  295 + -- local oldCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
  296 + -- local newCarbonData = csvdb["idle_battleCsv"][carbonId]
  297 + -- if oldCarbonData.money < newCarbonData.money then
  298 + -- hangInfo.expCarbonId = carbonId
  299 + -- end
  300 + --end
  301 +
291 --local cfg = csvdb["idle_battleCsv"][nextCarbonId] 302 --local cfg = csvdb["idle_battleCsv"][nextCarbonId]
292 --if cfg then 303 --if cfg then
293 -- hangInfo.bossTime = skynet.timex() + cfg.idle_time 304 -- hangInfo.bossTime = skynet.timex() + cfg.idle_time
@@ -418,7 +429,8 @@ function _M.quickRpc(agent , data) @@ -418,7 +429,8 @@ function _M.quickRpc(agent , data)
418 local hangInfo = role:getProperty("hangInfo") 429 local hangInfo = role:getProperty("hangInfo")
419 if not hangInfo.carbonId then return end 430 if not hangInfo.carbonId then return end
420 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId] 431 local carbonData = csvdb["idle_battleCsv"][hangInfo.carbonId]
421 - local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId] 432 + --local expCarbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
  433 + local expCarbonData = hangInfo.expData or {}
422 434
423 local curCount = role.dailyData:getProperty("hangQC") + 1 435 local curCount = role.dailyData:getProperty("hangQC") + 1
424 local costs = globalCsv.idle_quickproduce_cost:toArray(true, "=") 436 local costs = globalCsv.idle_quickproduce_cost:toArray(true, "=")
@@ -435,9 +447,9 @@ function _M.quickRpc(agent , data) @@ -435,9 +447,9 @@ function _M.quickRpc(agent , data)
435 447
436 local coinCount = math.floor(time / globalCsv.idle_money_produce_cd) 448 local coinCount = math.floor(time / globalCsv.idle_money_produce_cd)
437 local itemCount = math.floor(time / globalCsv.idle_item_produce_cd) 449 local itemCount = math.floor(time / globalCsv.idle_item_produce_cd)
438 - reward[ItemId.Gold] = math.floor((reward[ItemId.Gold] or 0) + coinCount * expCarbonData.money)  
439 - reward[ItemId.Exp] = math.floor((reward[ItemId.Exp] or 0) + coinCount * expCarbonData.exp)  
440 - reward[ItemId.PlayerExp] = math.floor((reward[ItemId.PlayerExp] or 0) + coinCount * expCarbonData.playerExp) 450 + reward[ItemId.Gold] = math.floor((reward[ItemId.Gold] or 0) + coinCount * (expCarbonData.money or 0))
  451 + reward[ItemId.Exp] = math.floor((reward[ItemId.Exp] or 0) + coinCount * (expCarbonData.exp or 0))
  452 + reward[ItemId.PlayerExp] = math.floor((reward[ItemId.PlayerExp] or 0) + coinCount * (expCarbonData.playerExp or 0))
441 453
442 local pool = {} 454 local pool = {}
443 for _, temp in pairs(carbonData.item:toArray()) do 455 for _, temp in pairs(carbonData.item:toArray()) do
src/actions/RoleAction.lua
@@ -756,18 +756,14 @@ function _M.openSpeedUpBoxRpc(agent, data) @@ -756,18 +756,14 @@ function _M.openSpeedUpBoxRpc(agent, data)
756 756
757 if useType == 1 then -- 挂机齿轮 757 if useType == 1 then -- 挂机齿轮
758 local hangInfo = role:getProperty("hangInfo") 758 local hangInfo = role:getProperty("hangInfo")
759 - if not hangInfo.expCarbonId then  
760 - return 2  
761 - end  
762 - local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]  
763 - reward[ItemId.Gold] = (reward[ItemId.Gold] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * carbonData.money * count 759 + local expData = hangInfo.expData or {}
  760 + --local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
  761 + reward[ItemId.Gold] = (reward[ItemId.Gold] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * (expData.money or 0) * count
764 elseif useType == 2 then -- 挂机经验 762 elseif useType == 2 then -- 挂机经验
765 local hangInfo = role:getProperty("hangInfo") 763 local hangInfo = role:getProperty("hangInfo")
766 - if not hangInfo.expCarbonId then  
767 - return 3  
768 - end  
769 - local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]  
770 - reward[ItemId.Exp] = (reward[ItemId.Exp] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * carbonData.exp * count 764 + local expData = hangInfo.expData or {}
  765 + --local carbonData = csvdb["idle_battleCsv"][hangInfo.expCarbonId]
  766 + reward[ItemId.Exp] = (reward[ItemId.Exp] or 0) + math.floor(time / globalCsv.idle_money_produce_cd) * (expData.exp or 0) * count
771 elseif useType == 3 then -- 食材商人收入 767 elseif useType == 3 then -- 食材商人收入
772 local buildType = 6 768 local buildType = 6
773 local level = role.dinerData:getProperty("buildL"):getv(buildType, 1) 769 local level = role.dinerData:getProperty("buildL"):getv(buildType, 1)
src/actions/SeaportAction.lua
@@ -203,8 +203,8 @@ function _M.taskRpc(agent, data) @@ -203,8 +203,8 @@ function _M.taskRpc(agent, data)
203 end 203 end
204 204
205 local carbonCsv = csvdb["idle_battleCsv"] 205 local carbonCsv = csvdb["idle_battleCsv"]
206 - local expCarbonId = role:getProperty("hangInfo").expCarbonId  
207 - if not carbonCsv[expCarbonId] then return 7 end 206 + local expData = role:getProperty("hangInfo").expData or {}
  207 + --if not carbonCsv[expCarbonId] then return 7 end
208 208
209 local totalCoef = 0 209 local totalCoef = 0
210 for _, heroId in ipairs(collect.team:toArray(true,"=")) do 210 for _, heroId in ipairs(collect.team:toArray(true,"=")) do
@@ -222,8 +222,8 @@ function _M.taskRpc(agent, data) @@ -222,8 +222,8 @@ function _M.taskRpc(agent, data)
222 bigSuccess = true 222 bigSuccess = true
223 end 223 end
224 224
225 - local money = math.ceil(carbonCsv[expCarbonId].money / 5 * data.time * data.money_clear)  
226 - local exp = math.ceil(carbonCsv[expCarbonId].exp / 5 * data.time * data.exp_clear) 225 + local money = math.ceil((expData.money or 0) / 5 * data.time * data.money_clear)
  226 + local exp = math.ceil((expData.exp or 0) / 5 * data.time * data.exp_clear)
227 local itemReward = data.item_clear_special:toNumMap() 227 local itemReward = data.item_clear_special:toNumMap()
228 itemReward[ItemId.Gold] = (itemReward[ItemId.Gold] or 0) + money 228 itemReward[ItemId.Gold] = (itemReward[ItemId.Gold] or 0) + money
229 itemReward[ItemId.Exp] = (itemReward[ItemId.Exp] or 0) + exp 229 itemReward[ItemId.Exp] = (itemReward[ItemId.Exp] or 0) + exp
1 -Subproject commit 9a02ff3040615ea6f1eae4ed857b20ab35ea39f1 1 +Subproject commit 00e1022c3cd5edb6487933d1c839a7d186c0ecc4
src/models/RolePlugin.lua
@@ -1409,7 +1409,7 @@ function RolePlugin.bind(Role) @@ -1409,7 +1409,7 @@ function RolePlugin.bind(Role)
1409 end 1409 end
1410 1410
1411 local carbonCsv = csvdb["idle_battleCsv"] 1411 local carbonCsv = csvdb["idle_battleCsv"]
1412 - local expCarbonId = self:getProperty("hangInfo").expCarbonId 1412 + local expData = self:getProperty("hangInfo").expData or {}
1413 local taskCsv = csvdb["seaport_taskCsv"] 1413 local taskCsv = csvdb["seaport_taskCsv"]
1414 local endTime = openTime0 + 86400 * 2 1414 local endTime = openTime0 + 86400 * 2
1415 local reward = {} 1415 local reward = {}
@@ -1422,7 +1422,7 @@ function RolePlugin.bind(Role) @@ -1422,7 +1422,7 @@ function RolePlugin.bind(Role)
1422 local teams = collect[slot].team 1422 local teams = collect[slot].team
1423 local time = collect[slot].time 1423 local time = collect[slot].time
1424 if time + data.time <= endTime then 1424 if time + data.time <= endTime then
1425 - if not carbonCsv[expCarbonId] then break end 1425 + --if not carbonCsv[expCarbonId] then break end
1426 1426
1427 local totalCoef = 0 1427 local totalCoef = 0
1428 for _, heroId in ipairs(teams:toArray(true,"=")) do 1428 for _, heroId in ipairs(teams:toArray(true,"=")) do
@@ -1439,8 +1439,8 @@ function RolePlugin.bind(Role) @@ -1439,8 +1439,8 @@ function RolePlugin.bind(Role)
1439 bigSuccess = true 1439 bigSuccess = true
1440 end 1440 end
1441 1441
1442 - local money = math.ceil(carbonCsv[expCarbonId].money / 5 * data.time * data.money_clear)  
1443 - local exp = math.ceil(carbonCsv[expCarbonId].exp / 5 * data.time * data.exp_clear) 1442 + local money = math.ceil((expData.money or 0) / 5 * data.time * data.money_clear)
  1443 + local exp = math.ceil((expData.exp or 0) / 5 * data.time * data.exp_clear)
1444 local itemReward = data.item_clear_special:toNumMap() 1444 local itemReward = data.item_clear_special:toNumMap()
1445 itemReward[ItemId.Gold] = (itemReward[ItemId.Gold] or 0) + money 1445 itemReward[ItemId.Gold] = (itemReward[ItemId.Gold] or 0) + money
1446 itemReward[ItemId.Exp] = (itemReward[ItemId.Exp] or 0) + exp 1446 itemReward[ItemId.Exp] = (itemReward[ItemId.Exp] or 0) + exp