| | |
| | | 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
|
| | |
|
| | |
| | | for i in xrange(ipyMgr.GetQuestionBankCount()):
|
| | | ipyData = ipyMgr.GetQuestionBankByIndex(i)
|
| | | questionID = ipyData.GetID()
|
| | | try:
|
| | | eval(ipyData.GetAnswer())
|
| | | except:
|
| | | GameWorld.ErrLog("答题题库答案异常,不处理! questionID=%s,answer=%s" % (questionID, ipyData.GetAnswer()))
|
| | | continue
|
| | | allQuestionIDList.append(questionID)
|
| | | IpyGameDataPY.SetConfigEx('AllQuestionID', allQuestionIDList)
|
| | | GameWorld.Log("加载仙盟宴会答题题库ID! %s" % str(allQuestionIDList))
|
| | | if not allQuestionIDList:
|
| | | GameWorld.ErrLog('仙盟宴会题库没有题目!')
|
| | | return
|
| | |
| | | ipyData = IpyGameDataPY.GetIpyGameData('QuestionBank', lastQuestionID)
|
| | | if ipyData:
|
| | | answer = ipyData.GetAnswer()
|
| | | answer = answer.replace('[', '')
|
| | | answer = answer.replace(']', '')
|
| | | #不能用replace, 可能导致替换错误, 如 ['望廬山瀑布'] 为 "['\xcd\xfb\x8f]\xc9\xbd\xc6\xd9\xb2\xbc']" 中间有个 ] 替换会导致乱码
|
| | | #answer = answer.replace('[', '')
|
| | | #answer = answer.replace(']', '')
|
| | | answer = answer.strip()
|
| | | if answer.startswith("[") and answer.endswith("]"):
|
| | | answer = answer[1:-1]
|
| | | 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)
|
| | |
| | | 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
|