ServerPython/CoreServerGroup/GameServer/Script/GM/Commands/SetRedPacket.py
@@ -21,6 +21,7 @@ import PlayerFamilyRedPacket import ChPyNetSendPack import NetPackCommon import ShareDefine ## GM命令执行入口 @@ -31,11 +32,12 @@ def OnExec(curPlayer, paramList): GameWorld.DebugLog("执行GameServer->SetRedPacket: %s" % paramList) if not paramList: # GameWorld.DebugAnswer(curPlayer, "清除所有类型红包:SetRedPacket 0") # GameWorld.DebugAnswer(curPlayer, "清除指定类型红包:SetRedPacket 0 类型A 类型B ...") # GameWorld.DebugAnswer(curPlayer, "发送全服系统红包:SetRedPacket 36 红包编号 个数") # GameWorld.DebugAnswer(curPlayer, "全服系统红包编号:126~130") # GameWorld.DebugAnswer(curPlayer, "红包类型:36-全服红包;33-节日成就") # GameWorld.DebugAnswer(curPlayer, "---------------------------") # GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0") # GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...") # GameWorld.DebugAnswer(curPlayer, "发指定红包:SetRedPacket 1 红包编号 个数") # GameWorld.DebugAnswer(curPlayer, "设置抢红包:SetRedPacket 2 红包功能 可抢数 已抢额度") # GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包") return paramA = paramList[0] @@ -75,20 +77,27 @@ continue NetPackCommon.SendFakePack(curPlayer, sendPack) elif paramA == 36: elif paramA == 1: redPackID = paramList[1] if len(paramList) > 1 else 0 sendCount = paramList[2] if len(paramList) > 2 else 0 sendCount = min(100, sendCount) canSendRedPacketIDList = range(126, 130 + 1) + [] if redPackID not in canSendRedPacketIDList or not sendCount: GameWorld.DebugAnswer(curPlayer, "发送全服系统红包参数错误!") ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPackID) if not ipyData: return getType = ipyData.GetGetType() wayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getType) if wayType == ShareDefine.RedPackWayType_Family: return openTime = ipyData.GetPacketOpenTime() # 如果有指定发放时间的 if openTime: sendCount = 1 for _ in xrange(sendCount): PlayerFamilyRedPacket.CreateSystemRedPacket(redPackID) GameWorld.DebugAnswer(curPlayer, "成功发送红包编号:%s 共:%s个" % (redPackID, sendCount)) else: GameWorld.DebugAnswer(curPlayer, "红包命令参数错误!") return def __ResetSendState(delTypeList): ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyRedPacket.py
@@ -449,6 +449,14 @@ RandTodayServerSystemRedPacketSendTime() return def GetRedPackGetWayType(getWay): ## 获取红包getWay所属红包分类 getWayTypeDict = IpyGameDataPY.GetFuncEvalCfg("RedPacketClassify", 1, {}) for getWayType, getWayList in getWayTypeDict.items(): if getWay in getWayList: return getWayType return ShareDefine.RedPackWayType_Family def CheckDelRedpacketData(): ## 检查红包删除红包,5分钟一次: 1-删除过期红包,2-删除已全部抢完的红包 @@ -961,7 +969,8 @@ PlayerDBGSEvent.SetDBGSTrig_ByKey(DBKey_RedPacketSend % redPackID, 1) GameWorld.DebugLog("定时发放的红包,设置已发放! redPackID=%s" % redPackID) if getType == ShareDefine.RedPackType_Server: getWayType = GetRedPackGetWayType(getType) if getWayType == ShareDefine.RedPackWayType_Server: isAnonymous = 1 job = 0 @@ -987,11 +996,7 @@ family = GameWorld.GetFamilyManager().FindFamily(familyID) if not family: return #packetCnt = min(packetCnt, family.GetCount()) # if getType != 0: # commonCntLimit = IpyGameDataPY.GetFuncCfg('FamilyRedPacketCnt') # packetCnt = max(packetCnt, commonCntLimit) if outputNum < packetCnt: GameWorld.DebugLog(" 生成新仙盟红包 红包额度不能低该红包个数!outputNum=%s,redCnt=%s" % (outputNum, packetCnt)) return @@ -1063,21 +1068,14 @@ #֪ͨ OnChangeRedPacketState(family, redPacketObj, None) if getType == ShareDefine.RedPackType_OpenServer: if not PlayerDBGSEvent.GetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OSRedPacket): PlayerControl.WorldNotify(0, 'OpenRedBag2', [playerName, data, outputNum]) PlayerDBGSEvent.SetDBGSTrig_ByKey(PlayerDBGSEvent.Def_OSRedPacket, 1) elif data in IpyGameDataPY.GetFuncEvalCfg('OSRSuccess'): PlayerControl.WorldNotify(0, 'OpenRedBag3', [playerName, data, outputNum]) if not familyID: #大于200额度的红包 getTypeRainDict = IpyGameDataPY.GetFuncEvalCfg('OpenServerRedPacketRain', 2, {}) if str(getType) in getTypeRainDict: PlayerControl.WorldNotify(0, getTypeRainDict[str(getType)]) elif outputNum >= IpyGameDataPY.GetFuncCfg('OpenServerRedPacketRain') \ and getType not in [ShareDefine.RedPackType_Server]: PlayerControl.WorldNotify(0, 'OSRedpackSfx', [getType]) elif outputNum >= IpyGameDataPY.GetFuncCfg('OpenServerRedPacketRain'): PlayerControl.WorldNotify(0, 'OSRedpackSfx', [getType]) return redPacketObj @@ -1187,9 +1185,10 @@ GameWorld.ErrLog("领取的红包类型不一致,无法领取! reqGetWay=%s,getWay=%s" % (reqGetWay, getWay)) return if getWay in [ShareDefine.RedPackType_OpenServer, ShareDefine.RedPackType_Server]: getWayType = GetRedPackGetWayType(getWay) if getWayType == ShareDefine.RedPackWayType_Server: getNumformula = IpyGameDataPY.GetFuncCompileCfg('OpenRedRacketOutNum') elif getWay in ShareDefine.FeastRedPackType: elif getWayType == ShareDefine.RedPackWayType_Feast: getNumformula = IpyGameDataPY.GetFuncCompileCfg('FeastRedPacket', 2) else: getNumformula = IpyGameDataPY.GetFuncCompileCfg('FamilyRedRacketOutNum') ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -1933,5 +1933,7 @@ RedPackType_FeastSucc = 33 # 节日成就红包 RedPackType_Server = 36 # 全服红包 # 节日红包类型 FeastRedPackType = [RedPackType_FeastSysBig, RedPackType_FeastSysSmall, RedPackType_FeastSucc] # 红包类型分类定义 RedPackWayType_Family = "1" # 仙盟红包 RedPackWayType_Server = "2" # 全服红包 RedPackWayType_Feast = "3" # 节日红包 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/SetRedPacket.py
@@ -22,6 +22,16 @@ import IpyGameDataPY import PlayerSuccess import ChConfig import ShareDefine def __Help(curPlayer): GameWorld.DebugAnswer(curPlayer, "---------------------------") GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0") GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...") GameWorld.DebugAnswer(curPlayer, "发指定红包:SetRedPacket 1 红包编号 个数") GameWorld.DebugAnswer(curPlayer, "设置抢红包:SetRedPacket 2 红包功能 可抢数 已抢额度") GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包") return ## GM命令执行入口 # @param curPlayer 当前玩家 @@ -30,39 +40,44 @@ # @remarks 函数详细说明. def OnExec(curPlayer, paramList): if not paramList: GameWorld.DebugAnswer(curPlayer, "---------------------------") GameWorld.DebugAnswer(curPlayer, "清所有红包:SetRedPacket 0") GameWorld.DebugAnswer(curPlayer, "清指定红包:SetRedPacket 0 类型A 类型B ...") GameWorld.DebugAnswer(curPlayer, "发全服红包:SetRedPacket 36 红包编号 个数") GameWorld.DebugAnswer(curPlayer, "类型:36-全服红包;33-节日成就") GameWorld.DebugAnswer(curPlayer, "全服红包编号:126~130") GameWorld.DebugAnswer(curPlayer, "设置红包:SetRedPacket 功能 可抢数 已抢额度") GameWorld.DebugAnswer(curPlayer, "红包功能:1-开服红包;2-节日红包") __Help(curPlayer) return sendGameServer = False isSendGameServer = False paramA = paramList[0] # 重置所有红包数据 if paramA == 0: sendGameServer = True isSendGameServer = True __DOResetSuccRedPack(curPlayer) __DoResetRedPackFunc(curPlayer, 1, None, 0) __DoResetRedPackFunc(curPlayer, 2, None, 0) elif paramA in [1, 2]: if len(paramList) == 3: redPackFuncType, grabCount, grabMoney = paramList __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) # 发指定红包 elif paramA == 1 and len(paramList) > 1: redPacketID = paramList[1] ipyData = IpyGameDataPY.GetIpyGameData('FamilyRedPack', redPacketID) if not ipyData: GameWorld.DebugAnswer(curPlayer, "不存在该红包! %s" % redPacketID) return else: sendGameServer = True getType = ipyData.GetGetType() if not getType: return getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getType) if getWayType == ShareDefine.RedPackWayType_Family or getType == ShareDefine.RedPackType_FeastSucc: if not PlayerFamilyRedPacket.CreatRedPacketByID(curPlayer, redPacketID): GameWorld.DebugAnswer(curPlayer, "###发送红包失败,详见地图日志! %s" % redPacketID) return isSendGameServer = True if sendGameServer: paramStr = "" for param in paramList: paramStr += " %s" % param curPlayer.GameServer_GMCmd("SetRedPacket%s" % paramStr) # 发送到GameServer清除红包 return # 设置抢红包 elif paramA == 2 and len(paramList) == 4: redPackFuncType, grabCount, grabMoney = paramList[1:] __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney) return else: return return isSendGameServer def __DOResetSuccRedPack(curPlayer): ## 重置红包成就发放记录,不重置进度 @@ -91,11 +106,7 @@ def __DoResetRedPackFunc(curPlayer, redPackFuncType, grabCount, grabMoney): if redPackFuncType == 1: if not isinstance(grabCount, int): grabCount = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCount) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, grabMoney) PlayerFamilyRedPacket.NotifyOSRedPacket(curPlayer) pass elif redPackFuncType == 2: if not isinstance(grabCount, int): grabCount = IpyGameDataPY.GetFuncCfg('FeastRedPacket', 1) ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerFamilyRedPacket.py
@@ -25,7 +25,6 @@ import ShareDefine import CommFunc import time #--------------------------------------------------------------------- ( @@ -39,7 +38,6 @@ ## 玩家登录 def OnPlayerLogin(curPlayer): __NotifyGoldLimt(curPlayer) NotifyOSRedPacket(curPlayer) return ## OnDay处理 @@ -48,18 +46,22 @@ def RedPacketOnDay(curPlayer, onEventType): if onEventType == ShareDefine.Def_OnEventType: #发钻石红包额度重置 PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ServerRedPacketGrabCnt, 0) __NotifyGoldLimt(curPlayer) if curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FamilyRedPacketGoldLimit): PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0) __NotifyGoldLimt(curPlayer) elif onEventType == ShareDefine.Def_OnEventTypeEx: oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg') openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) if openServerDay < oscDay: grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0) sendCnt = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 5) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, grabCnt+sendCnt) NotifyOSRedPacket(curPlayer) pass return def GetRedPackGetWayType(getWay): ## 获取红包getWay所属红包分类 getWayTypeDict = IpyGameDataPY.GetFuncEvalCfg("RedPacketClassify", 1, {}) for getWayType, getWayList in getWayTypeDict.items(): if getWay in getWayList: return getWayType return ShareDefine.RedPackWayType_Family def OnPlayerRecharge(curPlayer, orderCoin): ## 玩家充值 @@ -110,20 +112,14 @@ getType = ipyData.GetGetType() if not getType: return if getType == ShareDefine.RedPackType_OpenServer: oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg') openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) if openServerDay >= oscDay: GameWorld.DebugLog(' 发开服红包,活动已过,不可发送!') return isFamilyRedPacket = False elif getType == ShareDefine.RedPackType_FeastSucc: isFamilyRedPacket = False getWayType = GetRedPackGetWayType(getType) if getWayType == ShareDefine.RedPackWayType_Feast: if not PlayerFeastRedPacket.GetFeastRedPacketState(): GameWorld.DebugLog(' 非节日红包活动中,不可发送!') return isFamilyRedPacket = False elif getType == ShareDefine.RedPackType_Server: isFamilyRedPacket = False elif getWayType == ShareDefine.RedPackWayType_Server: pass else: if not curPlayer.GetFamilyID(): #没家族 先存起来,等进仙盟时再补发 @@ -131,8 +127,7 @@ return isFamilyRedPacket = True __DoCreatRedPacket(curPlayer, getType, ipyData.GetMoneyType(), ipyData.GetMoneyNum(), ipyData.GetPacketCnt(), state, wishInfo, data, isFamilyRedPacket) return return __DoCreatRedPacket(curPlayer, getType, ipyData.GetMoneyType(), ipyData.GetMoneyNum(), ipyData.GetPacketCnt(), state, wishInfo, data, isFamilyRedPacket) ## 生成红包,注意外部不可直接调用该函数 def __DoCreatRedPacket(curPlayer, getType, moneyType=2, awardNum=100, packetCnt=10, state=State_NoSend, wishInfo='', data=0, isFamilyRedPacket=True): @@ -160,18 +155,12 @@ PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_FamilyRedPacketGoldLimit, goldLimit + awardNum) #֪ͨ __NotifyGoldLimt(curPlayer) # else: # commonCntLimit = IpyGameDataPY.GetFuncCfg('FamilyRedPacketCnt') # if packetCnt < commonCntLimit: # GameWorld.DebugLog(' 发普通仙盟红包,数量不能少于%s!' % commonCntLimit, playerID) # return #通知Gameserver生成红包 msg = str([playerID, getType, packetCnt, moneyType, awardNum, wishInfo, state, data, isFamilyRedPacket]) GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "MapServer_CreatRedPacket", msg, len(msg)) GameWorld.DebugLog(' 通知Gameserver生成红包 msg=%s' % msg) return return True #// A6 08 发家族红包 #tagCMSendFamilyRedPacket # @@ -204,32 +193,14 @@ GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, "SendFamilyRedPacket", msg, len(msg)) return ## 通知抢红包钻石额度 def __NotifyGoldLimt(curPlayer): packData = ChPyNetSendPack.tagMCFamilyRedPacketGoldLimit() packData.Clear() packData.HasSendGold = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_FamilyRedPacketGoldLimit, 0) packData.ServerGrabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ServerRedPacketGrabCnt) packData.ServerGrabCnt = 0 NetPackCommon.SendFakePack(curPlayer, packData) return ## 通知抢红包次数 def NotifyOSRedPacket(curPlayer): packData = ChPyNetSendPack.tagMCOpenServerRedPacketInfo() packData.Clear() packData.MoneyNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketGrabMoney, 0) packData.GrabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0) startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketStartTime, 0) if not startTime: createRoleTime = curPlayer.GetCreateRoleTime() startTime = GameWorld.ChangeTimeStrToNum(createRoleTime) packData.StartTime = startTime NetPackCommon.SendFakePack(curPlayer, packData) return #// AB 12 抢红包 #tagCMGrabFamilyRedPacket # @@ -243,12 +214,8 @@ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) redPacketID = clientData.RedPaketID reqGetWay = clientData.GetWay if reqGetWay == ShareDefine.RedPackType_OpenServer: canGrabCnt = GetOSCanGrabCnt(curPlayer) elif reqGetWay == ShareDefine.RedPackType_FeastSucc: if reqGetWay == ShareDefine.RedPackType_FeastSucc: canGrabCnt = PlayerFeastRedPacket.GetFeastSuccRedPacketCanGrabCnt(curPlayer) elif reqGetWay == ShareDefine.RedPackType_Server: canGrabCnt = GetServerRedPackCanGrabCnt(curPlayer) else: canGrabCnt = -1 msg = str([redPacketID, reqGetWay, canGrabCnt]) @@ -256,104 +223,6 @@ GameWorld.DebugLog(' 抢红包 redPacketID=%s,getWay=%s,canGrabCnt=%s' % (redPacketID, reqGetWay, canGrabCnt)) return def GetOSCanGrabCnt(curPlayer): #获取开服红包可抢次数 # oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg') # openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) # if openServerDay >= oscDay: # return 0 #curGrabCnt = return curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0) # createRoleTime = curPlayer.GetCreateRoleTime() # createRoleTimeNum = GameWorld.ChangeTimeStrToNum(createRoleTime) # curTime = int(time.time()) # rangeTime = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 3) # initCnt = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 2) # return (curTime - createRoleTimeNum)/rangeTime + initCnt - curGrabCnt def GrabOSRedPacketResult(curPlayer, moneyNum, isSelf): ##抢开服红包结果 grabNum = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketGrabMoney, 0) newGrabNum = grabNum+moneyNum PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketGrabMoney, newGrabNum) #广播 needSysOSRAllMoneyList = IpyGameDataPY.GetFuncEvalCfg('OSRAllMoneySys') lastIndex = -1 newIndex = -1 for i, num in enumerate(needSysOSRAllMoneyList): if grabNum >= num: lastIndex = i if newGrabNum >= num: newIndex = i if newIndex != -1 and newIndex > lastIndex: PlayerControl.WorldNotify(0, 'OpenRedBag1', [curPlayer.GetName(), newGrabNum]) if not isSelf: #抢自己的红包不扣次数 grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, max(0, grabCnt-1)) # if grabCnt == IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 4): # PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketStartTime, int(time.time())) #֪ͨ NotifyOSRedPacket(curPlayer) return def GetServerRedPackCanGrabCnt(curPlayer): #获取全服红包可抢次数 # @return: -1为不限 vipLVMaxGrabCntDict = IpyGameDataPY.GetFuncEvalCfg("RechargeRedPacket", 3, {}) vipLVList = [int(vipStr) for vipStr in vipLVMaxGrabCntDict.keys()] vipLVList.sort() for vipLV in vipLVList: if curPlayer.GetVIPLv() <= vipLV: maxGrabCnt = vipLVMaxGrabCntDict[str(vipLV)] if not maxGrabCnt: return -1 todayGrabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ServerRedPacketGrabCnt) return max(0, maxGrabCnt - todayGrabCnt) return 0 def GrabServerRedPacketResult(curPlayer, moneyNum, isSelf): ##抢全服红包结果 if isSelf: return grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_ServerRedPacketGrabCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_ServerRedPacketGrabCnt, grabCnt + 1) __NotifyGoldLimt(curPlayer) return def ProcessOSRedPacket(curPlayer, tick): return #开服红包恢复次数 if not GameWorld.SetPlayerTickTime(curPlayer, ChConfig.TYPE_Player_Tick_OSRedPacket, tick): return oscDay = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg') openServerDay = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_ServerDay) if openServerDay >= oscDay: return grabCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketCanGrabCnt, 0) limitCnt = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 4) if grabCnt >= limitCnt: return startTime = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_OSRedPacketStartTime, 0) if not startTime: newCnt = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 2) createRoleTime = curPlayer.GetCreateRoleTime() curTime = GameWorld.ChangeTimeStrToNum(createRoleTime) else: curTime = int(time.time()) passTime = curTime - startTime rangeTime = IpyGameDataPY.GetFuncCfg('OpenServerRedPacketCfg', 3) addCnt = passTime / rangeTime if addCnt <= 0:#防止测试调时间导致异常 return newCnt = min(limitCnt, grabCnt+addCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketCanGrabCnt, newCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_OSRedPacketStartTime, curTime) NotifyOSRedPacket(curPlayer) return ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerState.py
@@ -1267,8 +1267,6 @@ AttackCommon.ProcessMaliciousAttackPlayer(curPlayer, tick) #成就 PlayerSuccess.FinishDelayAddSuccessProgress(curPlayer, tick, False) #开服红包处理 #PlayerFamilyRedPacket.ProcessOSRedPacket(curPlayer, tick) #限时抢购 PlayerFlashSale.ProcessFlashSaleMail(curPlayer, tick) #地图经验 ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_GrabFamilyRedPacketResult.py
@@ -50,11 +50,10 @@ #GameWorld.DebugLog("GY_Query_GrabFamilyRedPacketResult moneyType=%s, moneyNum=%s, getWay=%s, isSelf=%s" % (moneyType, moneyNum, getWay, isSelf)) if moneyNum: PlayerControl.GiveMoney(curPlayer, moneyType, moneyNum, ChConfig.Def_GiveMoney_RedPacket) if getWay == ShareDefine.RedPackType_OpenServer: PlayerFamilyRedPacket.GrabOSRedPacketResult(curPlayer, moneyNum, isSelf) elif getWay in ShareDefine.FeastRedPackType: getWayType = PlayerFamilyRedPacket.GetRedPackGetWayType(getWay) if getWayType == ShareDefine.RedPackWayType_Feast: PlayerFeastRedPacket.GrabFeastRedPacketResult(curPlayer, moneyNum, getWay, isSelf) elif getWay == ShareDefine.RedPackType_Server: elif getWayType == ShareDefine.RedPackWayType_Server: PlayerFamilyRedPacket.GrabServerRedPacketResult(curPlayer, moneyNum, isSelf) return ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -1933,5 +1933,7 @@ RedPackType_FeastSucc = 33 # 节日成就红包 RedPackType_Server = 36 # 全服红包 # 节日红包类型 FeastRedPackType = [RedPackType_FeastSysBig, RedPackType_FeastSysSmall, RedPackType_FeastSucc] # 红包类型分类定义 RedPackWayType_Family = "1" # 仙盟红包 RedPackWayType_Server = "2" # 全服红包 RedPackWayType_Feast = "3" # 节日红包