From f1c2ac9588321aad9e075c1440b52eb155b8ba18 Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 29 十一月 2024 11:37:24 +0800 Subject: [PATCH] 10263 【越南】【英文】后端支持NPC仿真实玩家战斗和快速战斗 --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py | 42 +++++++++++++++++++++++------------------- 1 files changed, 23 insertions(+), 19 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py index 366d49c..c0e21fd 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerGuaji.py @@ -58,6 +58,10 @@ ## 挂机定时处理收益 if GameWorld.IsCrossServer(): return + + if curPlayer.GetRealPlayerID() != 0: + return + if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_Guaji): return @@ -89,7 +93,7 @@ curAwardSeconds = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GuajiAwardSeconds) maxSeconds = GetGuajiSecondsMax(curPlayer) if curAwardSeconds >= maxSeconds: - GameWorld.DebugLog("挂机收益时长已达上限: curAwardSeconds=%s >= %s" % (curAwardSeconds, maxSeconds), playerID) + #GameWorld.DebugLog("挂机收益时长已达上限: curAwardSeconds=%s >= %s" % (curAwardSeconds, maxSeconds), playerID) return awardSeconds = min(maxSeconds - curAwardSeconds, awardSeconds) @@ -100,7 +104,7 @@ updAwardSeconds = curAwardSeconds + awardSeconds PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiAwardSeconds, updAwardSeconds) - GameWorld.DebugLog("保存挂机累计收益: curAwardSeconds=%s,updAwardSeconds=%s,maxSeconds=%s" % (curAwardSeconds, updAwardSeconds, maxSeconds), playerID) + #GameWorld.DebugLog("保存挂机累计收益: curAwardSeconds=%s,updAwardSeconds=%s,maxSeconds=%s" % (curAwardSeconds, updAwardSeconds, maxSeconds), playerID) # 经验 exp = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GuajiExpPoint) * ChConfig.Def_PerPointValue \ @@ -109,7 +113,7 @@ updExp = exp % ChConfig.Def_PerPointValue PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiExpPoint, updExpPoint) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiExp, updExp) - GameWorld.DebugLog(" 累计经验: %s亿%s" % (updExpPoint, updExp), playerID) + #GameWorld.DebugLog(" 累计经验: %s亿%s" % (updExpPoint, updExp), playerID) # 货币 for moneyType, addValue in giveMoneyDict.items(): @@ -120,7 +124,7 @@ updMoney = min(moneyValue + addValue, ChConfig.Def_UpperLimit_DWord) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiMoneyType % saveNum, moneyType) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiMoneyValue % saveNum, updMoney) - GameWorld.DebugLog(" 累计货币: moneyType=%s,updMoney=%s,saveNum=%s" % (moneyType, updMoney, saveNum), playerID) + #GameWorld.DebugLog(" 累计货币: moneyType=%s,updMoney=%s,saveNum=%s" % (moneyType, updMoney, saveNum), playerID) # 物品 for itemID, addCount in giveItemDict.items(): @@ -131,7 +135,7 @@ updCount = min(curCount + addCount, ChConfig.Def_UpperLimit_DWord) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiItemID % saveNum, itemID) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiItemCount % saveNum, updCount) - GameWorld.DebugLog(" 累计物品: itemID=%s,updCount=%s,saveNum=%s" % (itemID, updCount, saveNum), playerID) + #GameWorld.DebugLog(" 累计物品: itemID=%s,updCount=%s,saveNum=%s" % (itemID, updCount, saveNum), playerID) Sync_GuajiAward(curPlayer) return True @@ -199,15 +203,15 @@ lvIpyData = PlayerControl.GetPlayerLVIpyData(reLV) reExp = lvIpyData.GetReExp() if lvIpyData else 0 worldLV = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_WorldAverageLv) - GameWorld.DebugLog("计算挂机收益: awardSeconds=%s,useUnsecond=%s,reLV=%s,reExp=%s,worldLV=%s" - % (awardSeconds, useUnsecond, reLV, reExp, worldLV), playerID) + #GameWorld.DebugLog("计算挂机收益: awardSeconds=%s,useUnsecond=%s,reLV=%s,reExp=%s,worldLV=%s" + # % (awardSeconds, useUnsecond, reLV, reExp, worldLV), playerID) # 经验 expRate = GetGuajiExpRate(curPlayer) secondBaseExp = int(eval(FormulaControl.GetCompileFormula("GuajiExp", IpyGameDataPY.GetFuncCfg("GuajiAward", 1)))) secondExp = int(secondBaseExp * expRate / float(ChConfig.Def_MaxRateValue)) addExp = awardSeconds * secondExp - GameWorld.DebugLog(" 每秒经验: %s, addExp=%s,secondBaseExp=%s,expRate=%s" % (secondExp, addExp, secondBaseExp, expRate), playerID) + #GameWorld.DebugLog(" 每秒经验: %s, addExp=%s,secondBaseExp=%s,expRate=%s" % (secondExp, addExp, secondBaseExp, expRate), playerID) # 每秒产出货币 moneyDict = {} @@ -216,7 +220,7 @@ secondMoney = int(eval(FormulaControl.GetCompileFormula("GuajiMoney_%s" % moneyType, formula))) moneyValue = awardSeconds * secondMoney moneyDict[moneyType] = moneyValue - GameWorld.DebugLog(" 每秒货币: moneyType=%s,secondMoney=%s,moneyValue=%s" % (moneyType, secondMoney, moneyValue), playerID) + #GameWorld.DebugLog(" 每秒货币: moneyType=%s,secondMoney=%s,moneyValue=%s" % (moneyType, secondMoney, moneyValue), playerID) # 每x秒产出1货币 perMoneyTimeFromulaDict = IpyGameDataPY.GetFuncEvalCfg("GuajiAward", 3, {}) # 每x秒获得1个货币公式 {货币类型:"x秒公式", ...} @@ -227,13 +231,13 @@ oneMoneyNeedSeconds = int(eval(FormulaControl.GetCompileFormula("GuajiMoney_%s" % moneyType, formula))) moneyValue = moneyAwardSeconds / oneMoneyNeedSeconds moneyDict[moneyType] = moneyValue - GameWorld.DebugLog(" 每X秒货币: moneyType=%s,oneMoneyNeedSeconds=%s,moneyValue=%s,moneyAwardSeconds=%s" - % (moneyType, oneMoneyNeedSeconds, moneyValue, moneyAwardSeconds), playerID) + #GameWorld.DebugLog(" 每X秒货币: moneyType=%s,oneMoneyNeedSeconds=%s,moneyValue=%s,moneyAwardSeconds=%s" + # % (moneyType, oneMoneyNeedSeconds, moneyValue, moneyAwardSeconds), playerID) if useUnsecond: unSeconds = moneyAwardSeconds % oneMoneyNeedSeconds PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiMoneyUnSeconds % moneyType, unSeconds) - GameWorld.DebugLog(" moneyType=%s,unSeconds=%s" % (moneyType, unSeconds), playerID) + #GameWorld.DebugLog(" moneyType=%s,unSeconds=%s" % (moneyType, unSeconds), playerID) # 物品 giveItemSecondsSet = IpyGameDataPY.GetFuncCfg("GuajiAward", 4) # 每x秒获得一次随机物品机会 @@ -243,12 +247,12 @@ itemAwardSeconds += curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GuajiItemUnSeconds) itemAwardTimes = itemAwardSeconds / giveItemSecondsSet # 给物品次数 - GameWorld.DebugLog(" 给物品次数: %s, itemAwardSeconds=%s,giveItemSecondsSet=%s" % (itemAwardTimes, itemAwardSeconds, giveItemSecondsSet), playerID) + #GameWorld.DebugLog(" 给物品次数: %s, itemAwardSeconds=%s,giveItemSecondsSet=%s" % (itemAwardTimes, itemAwardSeconds, giveItemSecondsSet), playerID) if useUnsecond: unSeconds = itemAwardSeconds % giveItemSecondsSet PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GuajiItemUnSeconds, unSeconds) - GameWorld.DebugLog(" 给物品未处理秒数=%s" % unSeconds, playerID) + #GameWorld.DebugLog(" 给物品未处理秒数=%s" % unSeconds, playerID) lvList = lvItemRateDict.keys() lvList.sort() @@ -262,7 +266,7 @@ dropCountTotal = 0 itemDict = {} maxRate = itemRateList[-1][0] - GameWorld.DebugLog(" itemRateList=%s,maxRate=%s" % (itemRateList, maxRate), playerID) + #GameWorld.DebugLog(" itemRateList=%s,maxRate=%s" % (itemRateList, maxRate), playerID) if itemAwardTimes > 100: # 超过x次的,先进行批量处理 preRate = 0 for rateInfo in itemRateList: @@ -277,8 +281,8 @@ if GameWorld.CanHappen(rateEx, maxRate): dropCount += 1 dropCountTotal += dropCount # 产出是是空物品也要算执行掉落次数 - GameWorld.DebugLog(" 挂机物品: itemInfo=%s,curRate=%s,totalRate=%s,rateEx=%s,dropCount=%s,dropCountTotal=%s" - % (itemInfo, curRate, totalRate, rateEx, dropCount, dropCountTotal), playerID) + #GameWorld.DebugLog(" 挂机物品: itemInfo=%s,curRate=%s,totalRate=%s,rateEx=%s,dropCount=%s,dropCountTotal=%s" + # % (itemInfo, curRate, totalRate, rateEx, dropCount, dropCountTotal), playerID) if not dropCount: continue @@ -288,7 +292,7 @@ itemDict[itemID] = itemDict.get(itemID, 0) + itemCount * dropCount awardTimesEx = itemAwardTimes - dropCountTotal - GameWorld.DebugLog(" awardTimesEx=%s" % awardTimesEx, playerID) + #GameWorld.DebugLog(" awardTimesEx=%s" % awardTimesEx, playerID) if awardTimesEx > 0: for _ in range(awardTimesEx): itemInfo = GameWorld.GetResultByRandomList(itemRateList) @@ -307,7 +311,7 @@ for itemID, dropCount in giveGarbageItemList.items(): itemDict[itemID] = itemDict.get(itemID, 0) + dropCount - GameWorld.DebugLog(" itemDict=%s" % (itemDict), playerID) + #GameWorld.DebugLog(" itemDict=%s" % (itemDict), playerID) return addExp, moneyDict, itemDict def GetGuajiExpRate(curPlayer): -- Gitblit v1.8.0