From eddda540e947bcc6483b1c89b3e42b81a337f77e Mon Sep 17 00:00:00 2001 From: hxp <ale99527@vip.qq.com> Date: 星期五, 23 十月 2020 15:28:52 +0800 Subject: [PATCH] 4834 【主干】【长尾】【BT】GM补偿邮件重复;(当非单服邮件时GUID相同则不允许重复插入;当指定单服邮件批量发送补偿指令时,每个服重新生成GUID插入邮件) --- ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py | 57 +++++++++++++++++++++++++++++++++------------------------ 1 files changed, 33 insertions(+), 24 deletions(-) diff --git a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py index 248ab4f..a03dbba 100644 --- a/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py +++ b/ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Event/EventSrc/Operate_PlayerBuyZhenQi.py @@ -30,6 +30,9 @@ import PlayerBossReborn import PlayerFairyCeremony import PlayerNewFairyCeremony +import PlayerActLogin +import PlayerWeekParty +import EventShell #------------------------------------------------------------------------------ #获取金币祈愿奖励 @@ -47,7 +50,7 @@ #祈愿类型列表 -TotalPrayList = [ChConfig.VIPPrivilege_MoneyPray,ChConfig.VIPPrivilege_ExpPray] +TotalPrayList = [ChConfig.VIPPrivilege_MoneyPray, ChConfig.VIPPrivilege_ExpPray] #struct tagCMBuySomething @@ -67,7 +70,7 @@ buyType = clientData.Type #购买的类型 #祈愿类型错误,不处理 if buyType not in TotalPrayList: - GameWorld.DebugLog("祈愿类型错误---buyType:%s"%buyType ) + GameWorld.DebugLog("祈愿类型错误---buyType:%s" % buyType) return if buyType == ChConfig.VIPPrivilege_MoneyPray: if not GameFuncComm.GetFuncCanUse(curPlayer, ShareDefine.GameFuncID_RefineMoney): @@ -79,11 +82,11 @@ return totalCnt = PlayerVip.GetPrivilegeValue(curPlayer, buyType) - curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%buyType) - cnt = curCnt+1 #参数用 + curCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % buyType) + cnt = curCnt + 1 #参数用 #金币祈愿 if buyType == ChConfig.VIPPrivilege_MoneyPray: - historyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType) + historyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType) #判断免费祈愿CD时间 needTime = __GetFreeCD(curPlayer) if needTime: @@ -106,23 +109,24 @@ GameWorld.DebugLog("仙玉不足!costGold=%s" % needGold) return if not isCostItem: #用物品不增加次数 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%buyType, curCnt + 1) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % buyType, curCnt + 1) else: curTime = int(time.time()) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FreePrayTime, curTime) - - preCnt, fixMoney =IpyGameDataPY.GetFuncEvalCfg('MoneyPray', 4) - GameWorld.DebugLog('11111fixMoney=%s,historyCnt=%s,preCnt=%s'%(fixMoney,historyCnt,preCnt)) - if fixMoney and historyCnt< preCnt: + + preCnt, fixMoney = IpyGameDataPY.GetFuncEvalCfg("MoneyPray", 4) + GameWorld.DebugLog('11111fixMoney=%s,historyCnt=%s,preCnt=%s' % (fixMoney, historyCnt, preCnt)) + if fixMoney and historyCnt < preCnt: addMoney = fixMoney #更新历史次数(特殊收益次数达到后不再更新) - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType, historyCnt+1) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType, historyCnt + 1) else: addMoney = GetMoneyPrayAward() addDataDict = {ChConfig.Def_Give_Reason_SonKey:"MoneyPray"} - PlayerControl.GiveMoney(curPlayer, IPY_GameWorld.TYPE_Price_Silver_Money, addMoney, - ChConfig.Def_GiveMoney_Pray, addDataDict, False) - PlayerControl.NotifyCode(curPlayer, 'MoneyPray_HowMuch', [addMoney]) + #20190917 by hxp 祈愿金币改为绑玉 + giveMoneyType = IPY_GameWorld.TYPE_Price_Gold_Paper + PlayerControl.GiveMoney(curPlayer, giveMoneyType, addMoney, ChConfig.Def_GiveMoney_Pray, addDataDict, False) + PlayerControl.NotifyCode(curPlayer, 'MoneyPray_HowMuch', [addMoney, giveMoneyType]) PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_MoneyPray, 1) #经验祈愿 @@ -146,7 +150,7 @@ else: infoDict = {ChConfig.Def_Cost_Reason_SonKey:buyType} needGold = eval(GetExpPrayCost()) - GameWorld.DebugLog("需要仙玉--needGold--%s"%needGold ) + GameWorld.DebugLog("需要仙玉--needGold--%s" % needGold) if not PlayerControl.PayMoney(curPlayer, IPY_GameWorld.TYPE_Price_Gold_Money, needGold, ChConfig.Def_Cost_Pray, infoDict): GameWorld.DebugLog("仙玉不足!costGold=%s" % needGold) return @@ -157,16 +161,21 @@ PlayerControl.PlayerControl(curPlayer).AddExp(addExp) PlayerControl.NotifyCode(curPlayer, 'ExpPray_HowMuch', [addExp]) if not isCostItem: #用物品不增加次数 - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%buyType, curCnt + 1) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % buyType, curCnt + 1) PlayerBossReborn.AddBossRebornActionCnt(curPlayer, ChConfig.Def_BRAct_ExpPray, 1) else: return + EventShell.EventRespons_Pray(curPlayer, buyType) #成就 PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_Pray, 1, [buyType]) + PlayerSuccess.DoAddSuccessProgress(curPlayer, ShareDefine.SuccType_FeastRedPack_Pray, 1) + # 每日活动 PlayerActivity.AddDailyActionFinishCnt(curPlayer, ShareDefine.DailyActionID_Pray) PlayerFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1) PlayerNewFairyCeremony.AddFCPartyActionCnt(curPlayer, ChConfig.Def_PPAct_Pray, 1) + PlayerActLogin.AddLoginAwardActionCnt(curPlayer, ChConfig.Def_LoginAct_Pray, 1) + PlayerWeekParty.AddWeekPartyActionCnt(curPlayer, ChConfig.Def_WPAct_Pray, 1) Sync_NotifyDataChange(curPlayer, [buyType]) return @@ -176,7 +185,7 @@ curTime = int(time.time()) passTime = curTime - lastTime cdTime = IpyGameDataPY.GetFuncCfg("MoneyPray", 3) - needTime = max(0,cdTime - passTime) + needTime = max(0, cdTime - passTime) return needTime ## OnDay操作,通知客户端,购买次数变了 @@ -185,10 +194,10 @@ def PlayerOnDay(curPlayer): needSyncList = [] for prayType in TotalPrayList: - hasPrayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%prayType) + hasPrayCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % prayType) if not hasPrayCnt: continue - PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt%prayType, 0) + PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_HasPrayCnt % prayType, 0) needSyncList.append(prayType) Sync_NotifyDataChange(curPlayer, needSyncList) return @@ -197,7 +206,7 @@ ## 通知客户端,购买次数变了 # @param curPlayer: 玩家实例 # @return None -def Sync_NotifyDataChange(curPlayer, prayType = []): +def Sync_NotifyDataChange(curPlayer, prayType=[]): if prayType == []: prayList = TotalPrayList else: @@ -206,13 +215,13 @@ for buyType in prayList: subPack = ChPyNetSendPack.tagMCSingleBuySomethingInfo() subPack.Type = buyType - subPack.BuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt%buyType) - subPack.HistoryBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt%buyType) + subPack.BuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HasPrayCnt % buyType) + subPack.HistoryBuyCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_HistoryPrayCnt % buyType) if buyType == ChConfig.VIPPrivilege_MoneyPray: subPack.LastFreeTime = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FreePrayTime) pack.Infos.append(subPack) - GameWorld.DebugLog("通知祈愿次数--buyType:%s--BuyCnt:%s--LastFreeTime%s" % (subPack.Type,subPack.BuyCnt,subPack.LastFreeTime)) + GameWorld.DebugLog("通知祈愿次数--buyType:%s--BuyCnt:%s--LastFreeTime%s" % (subPack.Type, subPack.BuyCnt, subPack.LastFreeTime)) pack.Cnt = len(pack.Infos) NetPackCommon.SendFakePack(curPlayer, pack) @@ -223,4 +232,4 @@ def DoPlayerLogin(curPlayer): Sync_NotifyDataChange(curPlayer) return - \ No newline at end of file + -- Gitblit v1.8.0