| | |
| | | import PlayerLVAward
|
| | | import PlayerGoldGift
|
| | | import PlayerSignDay
|
| | | import MixServerCampaign
|
| | | import PlayerPet
|
| | | import PlayerPrestigeSys
|
| | | import PlayerFamily
|
| | |
| | | import PlayerAttrFruit
|
| | | import PlayerSuccess
|
| | | import PlayerDienstgrad
|
| | | import PlayerMixLoginDayAward
|
| | | import PlayerFreeGoods
|
| | | import PlayerRecover
|
| | | import GameLogic_IceLode
|
| | |
| | | # 开服活动奖励信息
|
| | | OpenServerCampaign.OnOpenServerCampaignLogin(curPlayer)
|
| | | #
|
| | | # # 通知合服奖励领取状态
|
| | | # PlayerMixLoginDayAward.OnLoginNotifyMixLoginDayAward(curPlayer)
|
| | | # |
| | | # # 通知合服奖励
|
| | | # MixServerCampaign.OnMixServerCampaignLogin(curPlayer)
|
| | | # |
| | | # # 节日登陆奖励
|
| | | # PlayerFestivalLogin.OnLoginFestivalLogin(curPlayer)
|
| | |
|
| | |
| | |
|
| | | # 同步排行榜
|
| | | PlayerBillboard.UpdBillboardOnMixServerFirstLogin(curPlayer, lastMixServerDay)
|
| | | |
| | | # 其他
|
| | | # ...
|
| | | # 重置登录奖励领取状态
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MixLoginDayState, 0)
|
| | | PlayerMixLoginDayAward.NotifyPlayerAwardState(curPlayer)
|
| | | |
| | | # 重置各合服活动数据
|
| | | for campaignType in ShareDefine.Def_MixCampaign_Type_List:
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MixServerCampaign_AwardRecord \
|
| | | % campaignType, 0, ChConfig.Def_PDictType_OpenServerCampaign)
|
| | | PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_MixServerCampaign_RecordData \
|
| | | % campaignType, 0, ChConfig.Def_PDictType_OpenServerCampaign)
|
| | |
|
| | |
|
| | | # 重置玩家改名次数
|
| | | UpdatePlayerName.ResetChangeNameCnt(curPlayer)
|
| | |
| | | sendMsg = str(familyIDList)
|
| | | curPlayer.GameServer_QueryPlayerByID(ChConfig.queryType_RequestIsFamily, curPlayer.GetID(),
|
| | | 'RequestIsFamily', sendMsg, len(sendMsg))
|
| | | return
|
| | |
|
| | |
|
| | | #===============================================================================
|
| | | #// AF 02 合服活动奖励 #tagCMMixCampaignAward
|
| | | #
|
| | | #struct tagCMMixCampaignAward
|
| | | #
|
| | | #{
|
| | | # tagHead Head;
|
| | | # BYTE Type; //0-查询;1-领取
|
| | | # DWORD CampaignType; //奖励类型
|
| | | # BYTE Index; //奖励位,领取时用
|
| | | #};
|
| | | #===============================================================================
|
| | | ## 合服活动奖励
|
| | | # @param index: 玩家索引
|
| | | # @param clientData: 封包结构体
|
| | | # @param tick: 时间戳
|
| | | # @return: |
| | | def GiveMixServerCampaignAward(index, clientData, tick):
|
| | | curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index)
|
| | | |
| | | campaignType = clientData.CampaignType
|
| | | queryType = clientData.Type
|
| | | awardIndex = clientData.Index # 奖励位
|
| | |
|
| | | GameWorld.DebugLog("GiveMixServerCampaignAward campaignType=%s,queryType=%s,awardIndex=%s" |
| | | % (campaignType, queryType, awardIndex))
|
| | | if queryType == ShareDefine.Def_MSCGameServerQuery_MailAward:
|
| | | GameWorld.DebugLog(" 客户端不可发领取合服邮件奖励类型")
|
| | | return
|
| | | |
| | | isMix = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_IsMixServer)
|
| | | if not isMix:
|
| | | GameWorld.ErrLog(" 当前非合服状态!")
|
| | | return |
| | | |
| | | if campaignType not in ShareDefine.Def_MixCampaign_Type_List:
|
| | | GameWorld.ErrLog(" 合服活动类型错误campaignType=%s error! not define" % campaignType)
|
| | | return
|
| | | |
| | | # 如果直接在MapServer中处理,则返回
|
| | | if MixServerCampaign.DoMixServerCampaignOnMapServer(curPlayer, campaignType, queryType, awardIndex):
|
| | | return
|
| | | |
| | | awardRecord = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MixServerCampaign_AwardRecord \
|
| | | % campaignType, 0, ChConfig.Def_PDictType_OpenServerCampaign)
|
| | | awardState = GameWorld.GetDataByDigitPlace(awardRecord, awardIndex)
|
| | | |
| | | if awardState == MixServerCampaign.Def_AwardState_Got:
|
| | | if queryType == ShareDefine.Def_MSCGameServerQuery_QueryAward:
|
| | | recordData = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_MixServerCampaign_RecordData \
|
| | | % campaignType, 0, ChConfig.Def_PDictType_OpenServerCampaign)
|
| | | MixServerCampaign.Sync_MixServerCampaignAward(curPlayer, campaignType, awardState, recordData)
|
| | | GameWorld.DebugLog(" 已经领取过该奖励...")
|
| | | return
|
| | |
|
| | | #领奖的需要等待GameServer回包以后才处理下一个封包
|
| | | if queryType != ShareDefine.Def_MSCGameServerQuery_QueryAward:
|
| | | if curPlayer.GetDictByKey(ChConfig.Def_PlayerKey_QueryMixServerAwardState) == 1:
|
| | | GameWorld.DebugLog(" 已经在查询中...")
|
| | | return
|
| | | |
| | | curPlayer.SetDict(ChConfig.Def_PlayerKey_QueryMixServerAwardState, 1)
|
| | | |
| | | familyID = curPlayer.GetFamilyID()
|
| | | |
| | | #[请求类型, 活动类型, 领取索引, 家族ID]
|
| | | msgList = [queryType, campaignType, awardIndex, familyID]
|
| | | |
| | | GameWorld.GetPlayerManager().GameServer_QueryPlayerResult(curPlayer.GetID(), 0, 0, 'MixServerCampaignAward', \
|
| | | '%s' % (msgList), len(str(msgList)))
|
| | |
|
| | | GameWorld.DebugLog(" msgList=%s" % str(msgList))
|
| | | return
|
| | |
|
| | | #===============================================================================
|