ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py
@@ -121,24 +121,31 @@ PlayerControl.WorldNotify(0, 'Party_TopPlayer', [topHeroName]) #给参与奖励 joinReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward') answerRWItemReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward2', 1) for playerID, ansRightCount in PyGameData.g_partyheroAnswerDict.items(): if answerRWItemReward and len(answerRWItemReward) == 2: ansTotalCount = len(PyGameData.g_familyAnswerPlayerIDDict.get(playerID, [])) ansWrongCount = max(0, ansTotalCount - ansRightCount) isAuctionItem = False rightRewardEx, wrongRewardEx = [], [] rightItemID, wrongItemID = answerRWItemReward if rightItemID and ansRightCount: rightRewardEx = [(rightItemID, ansRightCount, isAuctionItem)] if wrongItemID and ansWrongCount: wrongRewardEx = [(wrongItemID, ansWrongCount, isAuctionItem)] curJoinReward = joinReward + rightRewardEx + wrongRewardEx else: curJoinReward = joinReward joinPlayerIDList = PyGameData.g_partyheroAnswerDict.keys() if joinPlayerIDList: joinReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward') if joinReward: PlayerCompensation.SendMailByKey('FamilyParty', [playerID], curJoinReward) PlayerCompensation.SendMailByKey('FamilyParty', joinPlayerIDList, joinReward) #修改为答完题直接给每题奖励 # joinReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward') # answerRWItemReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward2', 1) # for playerID, ansRightCount in PyGameData.g_partyheroAnswerDict.items(): # if answerRWItemReward and len(answerRWItemReward) == 2: # ansTotalCount = len(PyGameData.g_familyAnswerPlayerIDDict.get(playerID, [])) # ansWrongCount = max(0, ansTotalCount - ansRightCount) # isAuctionItem = False # rightRewardEx, wrongRewardEx = [], [] # rightItemID, wrongItemID = answerRWItemReward # if rightItemID and ansRightCount: # rightRewardEx = [(rightItemID, ansRightCount, isAuctionItem)] # if wrongItemID and ansWrongCount: # wrongRewardEx = [(wrongItemID, ansWrongCount, isAuctionItem)] # curJoinReward = joinReward + rightRewardEx + wrongRewardEx # else: # curJoinReward = joinReward # if joinReward: # PlayerCompensation.SendMailByKey('FamilyParty', [playerID], curJoinReward) return @@ -196,6 +203,15 @@ answer = answer.replace('[', '') answer = answer.replace(']', '') PlayerControl.FamilyNotify(familyID, 'Party_Correct', [maxSecond, GameWorld.GbkToCode(answer)]) for index in xrange(family.GetCount()): member = family.GetAt(index) memPlayer = member.GetPlayer() if memPlayer and memPlayer.GetMapID() == ChConfig.Def_FBMapID_FamilyParty: rightPlayerID = 0 answerInfo = str([rightPlayerID]) memPlayer.MapServer_QueryPlayerResult(0, 0, "FamilyPartyAnswer", answerInfo, len(answerInfo)) break else: continue answerTick = gameWorld.GetDictByKey(FamilyPartyFB_AnswerTick % familyID) @@ -294,7 +310,8 @@ PyGameData.g_familyPartyTopInfo = [playerID, playerName] msgList = [__GetFamilyAnswerRankList(), PyGameData.g_familyPartyTopInfo[1], PyGameData.g_partyheroAnswerDict[PyGameData.g_familyPartyTopInfo[0]]] GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyPartyInfo, msgList) #通知玩家可获得贡献 curPlayer.MapServer_QueryPlayerResult(0, 0, "FamilyPartyAnswer", '', 0) #通知答题结果 answerInfo = str([playerID]) curPlayer.MapServer_QueryPlayerResult(0, 0, "FamilyPartyAnswer", answerInfo, len(answerInfo)) return ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerUniversalGameRec.py
@@ -144,7 +144,7 @@ curPlayer = GameWorld.GetPlayerManager().GetPlayerByIndex(index) viewType = clientData.ViewType # 查看记录的类型 if viewType not in [ShareDefine.Def_UniversalGameRecType_FamilyWarChampion]: if viewType not in [ShareDefine.Def_UniversalGameRecType_FamilyWarChampion, ShareDefine.Def_UniversalGameRecType_BossFirstKill]: if not GameWorld.RefurbishPlayerTick(curPlayer, ChConfig.TYPE_Player_Tick_Def_ViewUniversalGameRec, tick): #间隔未到 return ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -187,18 +187,40 @@ return def FamilyPartyAnswerRight(curPlayer): def FamilyPartyAnswerRight(curPlayer, answerInfo): #回答正确,给奖励 rightPlayerID = answerInfo[0] #给本题答题奖励,本地图中的家族成员才给 answerRWItemReward = IpyGameDataPY.GetFuncEvalCfg('PartyReward2', 1) rightItemID, wrongItemID = answerRWItemReward playerManager = GameWorld.GetMapCopyPlayerManager() for index in xrange(playerManager.GetPlayerCount()): player = playerManager.GetPlayerByIndex(index) if not player: continue if player.GetFamilyID() != curPlayer.GetFamilyID(): continue if player.GetPlayerID() == rightPlayerID: giveItemID = rightItemID else: giveItemID = wrongItemID itemCount, isAuctionItem = 1, False ItemControler.GivePlayerItem(player, giveItemID, itemCount, isAuctionItem, [IPY_GameWorld.rptItem]) if curPlayer.GetPlayerID() != rightPlayerID: return addPoint, addExp = IpyGameDataPY.GetFuncEvalCfg('PartyReward', 2) #仙盟贡献度 PlayerFamily.AddPlayerFamilyActiveValue(curPlayer, addPoint, True, ShareDefine.Def_AddFAVReason_FamilyParty, True) #答题经验更新 PlayerControl.PlayerControl(curPlayer).AddExp(addExp, ShareDefine.Def_ViewExpType_SysEx) PlayerControl.FamilyNotify(curPlayer.GetFamilyID(), 'Party_Answer', [curPlayer.GetName()]) PlayerControl.FamilyNotify(curPlayer.GetFamilyID(), 'Party_Answer', [curPlayer.GetName(), rightItemID]) curAnswerCnt = curPlayer.NomalDictGetProperty(ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, curAnswerCnt + 1) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_Player_Dict_FamilyPartyAnswerCnt, curAnswerCnt + 1) if GameWorld.GetMap().GetMapID() == ChConfig.Def_FBMapID_FamilyParty: DoFBHelp(curPlayer, 0) return ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/RemoteQuery/GY_Query_FamilyPartyAnswer.py
@@ -15,7 +15,6 @@ #"""Version = 2016-08-12 21:00""" #--------------------------------------------------------------------- import GameWorld import IPY_GameWorld import GameLogic_FamilyParty #--------------------------------------------------------------------- @@ -37,8 +36,9 @@ # @return None def DoResult(curPlayer, callFunName, funResult, tick): playerID = curPlayer.GetPlayerID() answerInfo = eval(funResult) GameWorld.DebugLog("GY_Query_FamilyPartyAnswer funResult=%s" % funResult, playerID) GameLogic_FamilyParty.FamilyPartyAnswerRight(curPlayer) GameLogic_FamilyParty.FamilyPartyAnswerRight(curPlayer, answerInfo) return