ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py
@@ -34,7 +34,7 @@
FamilyPartyFB_QuestionTick = 'FamilyPartyFB_QuestionTick%s' #当前题出题时间
FamilyPartyFB_AnswerTick = 'FamilyPartyFB_AnswerTick%s' #答对时间
AnswerState = 2 #开始答题活动状态
## 玩家登录
#  @param None
#  @return None
@@ -55,7 +55,7 @@
    #刚登录的或刚进仙盟的补发最近的题目
    gameWorld = GameWorld.GetGameWorld()
    state = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty)
    if state != 1:
    if state != AnswerState:
        return
    curFamilyid = curPlayer.GetFamilyID()
    if not curFamilyid:
@@ -66,7 +66,7 @@
    PlayerControl.NotifyCode(curPlayer, 'Party_Topic', [questionID])
    return
def FamilyPartyStateChange(state):
def FamilyPartyStateChange(state, beforeState=0):
    #活动状态变更
    if state == 1:
@@ -81,8 +81,8 @@
            familyID = family.GetID()
            gameWorld.SetDict(FamilyPartyFB_QuestionID % familyID, 0)
            gameWorld.SetDict(FamilyPartyFB_AnswerTick % familyID, 0)
        GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyPartyInfo, [])
    if state == 0:
        #活动结算 前3名仙盟、答题王
        GameWorld.Log(" 仙盟宴会结算 g_familyAnswerDict=%s, g_familyPartyTopInfo=%s"%(PyGameData.g_familyAnswerDict, PyGameData.g_familyPartyTopInfo))
@@ -101,7 +101,9 @@
                if not family:
                    continue
                PlayerFamilyRedPacket.CreatNewFamilyRedPacket(family, family.GetLeaderID(), redPackID)
        PlayerControl.WorldNotify(0, 'Party_TopThree', topfamilyNameList)
        if beforeState == AnswerState:
            PlayerControl.WorldNotify(0, 'Party_TopThree', topfamilyNameList)
        
        if PyGameData.g_familyPartyTopInfo:
@@ -149,7 +151,7 @@
    #开始出题
    gameWorld = GameWorld.GetGameWorld()
    state = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty)
    if state != 1:
    if state != AnswerState:
        return
    allQuestionIDList = IpyGameDataPY.GetConfigEx('AllQuestionID')
    ipyMgr = IpyGameDataPY.IPY_Data()
@@ -206,7 +208,7 @@
    gameWorld = GameWorld.GetGameWorld()
    state = gameWorld.GetDictByKey(ShareDefine.Def_Notify_WorldKey_FBFuncState % ChConfig.Def_FBMapID_FamilyParty)
    if state != 1:
    if state != AnswerState:
        return
    
    curFamilyid = curPlayer.GetFamilyID()
@@ -241,14 +243,21 @@
        playerName = curPlayer.GetName()
        gameWorld.SetDict(FamilyPartyFB_QuestionID%curFamilyid, 0)
        gameWorld.SetDict(FamilyPartyFB_AnswerTick%curFamilyid, tick)
        PlayerControl.FamilyNotify(curFamilyid, 'Party_Answer', [playerName])
        if curFamilyid in PyGameData.g_familyAnswerDict:
            PyGameData.g_familyAnswerDict[curFamilyid][0] +=1
            PyGameData.g_familyAnswerDict[curFamilyid][1] = tick
        else:
            familyName = PlayerFamily.GetFamilyName_ByID(curFamilyid)
            PyGameData.g_familyAnswerDict[curFamilyid] = [1, tick, familyName]
        rightCountAward = IpyGameDataPY.GetFuncEvalCfg("PartyReward", 5)
        if rightCountAward and len(rightCountAward) == 2:
            perRightCount, addFamilyActivity = rightCountAward
            if PyGameData.g_familyAnswerDict[curFamilyid][0] % perRightCount == 0:
                PlayerControl.FamilyNotify(curFamilyid, "Contribution1", [perRightCount, addFamilyActivity])
                GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FamilyPartyAddFamilyActivity, [ChConfig.Def_FBMapID_FamilyParty, curFamilyid, addFamilyActivity])
        PyGameData.g_partyheroAnswerDict[playerID] = PyGameData.g_partyheroAnswerDict.get(playerID, 0) + 1
        
        if PyGameData.g_familyPartyTopInfo: