|
|
@@ -715,9 +715,9 @@ local function BattleLogic_SetAddFreeMopupNum(human, nValue)
|
|
|
print("[BattleLogic_SetAddFreeMopupNum] 消耗的额外次数 nValue = "..nValue)
|
|
|
human.db.mopupAddFreeCnt = human.db.mopupAddFreeCnt + nValue
|
|
|
|
|
|
- if 0 > human.db.mopupAddFreeCnt then
|
|
|
- human.db.mopupAddFreeCnt = 0
|
|
|
- end
|
|
|
+ -- if 0 > human.db.mopupAddFreeCnt then
|
|
|
+ -- human.db.mopupAddFreeCnt = 0
|
|
|
+ -- end
|
|
|
end
|
|
|
|
|
|
function getBattleRoleList(nBattleType, worldMapId)
|
|
|
@@ -1399,7 +1399,9 @@ function query(human)
|
|
|
end
|
|
|
|
|
|
-- 判断额外增加的扫荡次数
|
|
|
- if 0 < BattleLogic_GetAddFreeMopupNum(human) and 0 == msgRet.canMopup then
|
|
|
+ --秘宝增加免费扫荡次数
|
|
|
+ local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
|
|
|
+ if 0 < (BattleLogic_GetAddFreeMopupNum(human) + talismanAdd_dailyFeeCnt) and 0 == msgRet.canMopup then
|
|
|
msgRet.canMopup = 1
|
|
|
end
|
|
|
|
|
|
@@ -1876,7 +1878,11 @@ function calcBattleExpOut(human, now)
|
|
|
local vipJinAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER8) or 0) / 100
|
|
|
local vipGreenExpAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER9) or 0) / 100
|
|
|
local vipQingbaoAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER19) or 0) / 100
|
|
|
- local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
+
|
|
|
+ --秘宝方面的加成
|
|
|
+ local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
+ local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
|
|
|
+
|
|
|
local exp = nowNodeConfig.hangExp
|
|
|
local jinbi = nowNodeConfig.hangJinbi
|
|
|
local greenExp = nowNodeConfig.hangGreenExp
|
|
|
@@ -1885,7 +1891,9 @@ function calcBattleExpOut(human, now)
|
|
|
tBattleOut.jinbi = tBattleOut.jinbi + math.floor(outCnt * jinbi *(1 + vipJinAdd))
|
|
|
tBattleOut.greenExp = tBattleOut.greenExp + math.floor(outCnt * greenExp *(1 + vipGreenExpAdd))
|
|
|
tBattleOut.qingbao = tBattleOut.qingbao + math.floor(outCnt * qingbao *(1 + vipQingbaoAdd))
|
|
|
- tBattleOut.qingbao = tBattleOut.qingbao + math.ceil(tBattleOut.qingbao * talismanAdd)
|
|
|
+
|
|
|
+ tBattleOut.qingbao = tBattleOut.qingbao + math.ceil(tBattleOut.qingbao * talismanAdd_qb)
|
|
|
+ tBattleOut.greenExp = tBattleOut.greenExp + math.ceil(tBattleOut.greenExp * talismanAdd_hero_exp)
|
|
|
end
|
|
|
|
|
|
-- 根据时间计算道具产出
|
|
|
@@ -2028,7 +2036,8 @@ function calcBattleItemOut(human, now,isDiamond)
|
|
|
tBattleOut.itemTs2 = now
|
|
|
end
|
|
|
|
|
|
- local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
+ local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
+
|
|
|
local nodeConfig = tBattleNodeConfig.node[guajiID]
|
|
|
local items = getItemOutsByTime(nodeConfig, sec)
|
|
|
for itemID, itemCnt in pairs(items) do
|
|
|
@@ -2043,8 +2052,8 @@ function calcBattleItemOut(human, now,isDiamond)
|
|
|
else
|
|
|
tBattleOut.items = tBattleOut.items or { }
|
|
|
tBattleOut.items[itemID] = tBattleOut.items[itemID] or 0
|
|
|
- if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
|
|
|
- itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
|
|
|
+ if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
|
|
|
+ itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
|
|
|
end
|
|
|
tBattleOut.items[itemID] = tBattleOut.items[itemID] + itemCnt
|
|
|
end
|
|
|
@@ -2666,7 +2675,10 @@ function mopupQuery(human)
|
|
|
local dropCnt = 0
|
|
|
|
|
|
--秘宝加成
|
|
|
- local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
+ local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
+ local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
|
|
|
+ local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
+ local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
|
|
|
|
|
|
-- ABS掉落活动显示到第一个
|
|
|
dropCnt = DropExchangeLogic.getDropItemSaoQuery(human, msgRet, dropCnt)
|
|
|
@@ -2678,8 +2690,8 @@ function mopupQuery(human)
|
|
|
local tempConfig = dropConfig.dropRule[i]
|
|
|
local itemID = tempConfig[1]
|
|
|
local itemCnt = 1
|
|
|
- if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
|
|
|
- itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
|
|
|
+ if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
|
|
|
+ itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
|
|
|
end
|
|
|
Grid.makeItem(msgRet.item[dropCnt], itemID, itemCnt)
|
|
|
end
|
|
|
@@ -2691,8 +2703,8 @@ function mopupQuery(human)
|
|
|
local tempConfig = dropConfig.dropRule3[i]
|
|
|
local itemID = tempConfig[1]
|
|
|
local itemCnt = 1
|
|
|
- if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
|
|
|
- itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
|
|
|
+ if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
|
|
|
+ itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
|
|
|
end
|
|
|
Grid.makeItem(msgRet.item[dropCnt], itemID, itemCnt)
|
|
|
end
|
|
|
@@ -2702,6 +2714,9 @@ function mopupQuery(human)
|
|
|
msgRet.name = mapConfig.name
|
|
|
msgRet.item[0] = dropCnt
|
|
|
local nNowAddFreeCnt = BattleLogic_GetAddFreeMopupNum(human)
|
|
|
+ nNowAddFreeCnt = nNowAddFreeCnt + talismanAdd_dailyFeeCnt
|
|
|
+
|
|
|
+
|
|
|
if TequanShopLogic.isActiveMopup(human) then
|
|
|
msgRet.leftCnt = BATTLE_MOPUP_CNT_VIP - human.db.mopupDoCnt
|
|
|
else
|
|
|
@@ -2713,6 +2728,7 @@ function mopupQuery(human)
|
|
|
|
|
|
-- 增加额外次数
|
|
|
msgRet.leftCnt = msgRet.leftCnt + nNowAddFreeCnt
|
|
|
+ msgRet.leftCnt = math.max(msgRet.leftCnt, 0)
|
|
|
|
|
|
-- local mupopExcel = BattleExcel.mupop[nextDoCnt]
|
|
|
local mupopExcel = tBattleConfig.mupop[nextDoCnt]
|
|
|
@@ -2737,13 +2753,15 @@ function mopupQuery(human)
|
|
|
msgRet.need = 0
|
|
|
end
|
|
|
|
|
|
- talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
msgRet.vip = TequanShopLogic.isActiveMopup(human) and 1 or 0
|
|
|
msgRet.nowCnt = human.db.mopupDoCnt
|
|
|
msgRet.exp = nodeConfig.hangExp
|
|
|
msgRet.jinbi = nodeConfig.hangJinbi
|
|
|
- msgRet.greenExp = nodeConfig.hangGreenExp
|
|
|
- msgRet.qingbao = nodeConfig.hangQingbao + math.ceil(nodeConfig.hangQingbao * talismanAdd)
|
|
|
+ --msgRet.greenExp = nodeConfig.hangGreenExp
|
|
|
+
|
|
|
+ msgRet.greenExp = nodeConfig.hangGreenExp + math.ceil(nodeConfig.hangGreenExp * talismanAdd_hero_exp)
|
|
|
+ msgRet.qingbao = nodeConfig.hangQingbao + math.ceil(nodeConfig.hangQingbao * talismanAdd_qb)
|
|
|
+
|
|
|
print("[mopupQuery] nowCnt = "..msgRet.nowCnt.." leftCnt = "..msgRet.leftCnt.." nNowAddFreeCnt = "..nNowAddFreeCnt)
|
|
|
Msg.send(msgRet, human.fd)
|
|
|
end
|
|
|
@@ -2767,7 +2785,10 @@ function mopupFight(human)
|
|
|
nextDoCnt = nextDoCnt >= EliteDefine.BATTLE_MOPUP_MAX_LEN and EliteDefine.BATTLE_MOPUP_MAX_LEN or nextDoCnt
|
|
|
-- local mupopExcel = BattleExcel.mupop[nextDoCnt]
|
|
|
local mupopExcel = tBattleConfig.mupop[nextDoCnt]
|
|
|
+
|
|
|
+ local talismanAdd_dailyFeeCnt = TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_SD_FREE_CNT) or 0
|
|
|
local nNowAddFreeCnt = BattleLogic_GetAddFreeMopupNum(human)
|
|
|
+ nNowAddFreeCnt = nNowAddFreeCnt + talismanAdd_dailyFeeCnt
|
|
|
|
|
|
if not mupopExcel then
|
|
|
return Broadcast.sendErr(human, Lang.BATTLE_MOPUP_CNT_OVER)
|
|
|
@@ -2796,10 +2817,6 @@ function mopupFight(human)
|
|
|
end
|
|
|
end
|
|
|
|
|
|
- if not ObjHuman.checkRMB(human, need) then
|
|
|
- return
|
|
|
- end
|
|
|
-
|
|
|
local bUseAddFree = false
|
|
|
if need <= 0 and bUseFree == true then
|
|
|
human.db.mopupFreeCnt = human.db.mopupFreeCnt + 1
|
|
|
@@ -2811,7 +2828,12 @@ function mopupFight(human)
|
|
|
end
|
|
|
end
|
|
|
|
|
|
- ObjHuman.decZuanshi(human, - need, "battleMopup")
|
|
|
+ if need > 0 then
|
|
|
+ if not ObjHuman.checkRMB(human, need) then
|
|
|
+ return
|
|
|
+ end
|
|
|
+ ObjHuman.decZuanshi(human, - need, "battleMopup")
|
|
|
+ end
|
|
|
|
|
|
human.db.mopupDoCnt = bUseAddFree == true and human.db.mopupDoCnt or human.db.mopupDoCnt + 1
|
|
|
|
|
|
@@ -2829,7 +2851,12 @@ function mopupFight(human)
|
|
|
local vipJinAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER8) or 0) / 100
|
|
|
local vipGreenExpAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER9) or 0) / 100
|
|
|
local vipQingbaoAdd =(VipLogic.getPowerArgs(human, VipLogic.VIP_POWER19) or 0) / 100
|
|
|
- local talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
+
|
|
|
+ --秘宝加成
|
|
|
+ local talismanAdd_qb = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_QB) or 0) / 100
|
|
|
+ local talismanAdd_hero_exp = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_HERO_EXP) or 0) / 100
|
|
|
+ local talismanAdd_zs = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
+
|
|
|
local exp = config.hangExp * 120
|
|
|
local jinbi = config.hangJinbi * 120
|
|
|
local greenExp = config.hangGreenExp * 120
|
|
|
@@ -2838,7 +2865,9 @@ function mopupFight(human)
|
|
|
local addJinbi = math.floor(jinbi *(1 + vipJinAdd))
|
|
|
local addGreenExp = math.floor(greenExp *(1 + vipGreenExpAdd))
|
|
|
local addQingbao = math.floor(qingbao *(1 + vipQingbaoAdd))
|
|
|
- addQingbao = addQingbao + math.ceil(addQingbao * talismanAdd)
|
|
|
+
|
|
|
+ addQingbao = addQingbao + math.ceil(addQingbao * talismanAdd_qb)
|
|
|
+ addGreenExp = addGreenExp + math.ceil(addGreenExp * talismanAdd_hero_exp)
|
|
|
|
|
|
local time = 7200
|
|
|
local itemTable = getItemOutsByTime(config, time)
|
|
|
@@ -2862,16 +2891,14 @@ function mopupFight(human)
|
|
|
itemTable[ItemDefine.ITEM_QINGBAO_ID] = itemTable[ItemDefine.ITEM_QINGBAO_ID] + addQingbao
|
|
|
msgRet.item[0] = 0
|
|
|
|
|
|
- --秘宝
|
|
|
- talismanAdd = (TalismanLogic.getTalismanAdd(human, TalismanLogic.OTHER_EFFECT_TBL.GJ_ZS) or 0) / 100
|
|
|
-- 双倍日
|
|
|
local double = RoleSystemLogic.isDouble(human, RoleSystemDefine.ROLE_SYS_ID_1101)
|
|
|
local rewardCnt = double and 2 or 1
|
|
|
for itemID, itemCnt in pairs(itemTable) do
|
|
|
itemCnt = itemCnt * rewardCnt
|
|
|
|
|
|
- if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd > 0 then
|
|
|
- itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd)
|
|
|
+ if itemID == ItemDefine.ITEM_ZUANSHI_ID and talismanAdd_zs > 0 then
|
|
|
+ itemCnt = itemCnt + math.ceil(itemCnt * talismanAdd_zs)
|
|
|
end
|
|
|
|
|
|
if not ItemDefine.isEquip(itemID) then
|