hxp
2019-07-31 fb86600c411e628bdf36461783c21c84a8e285c5
8187 【后端】【主干】优化仙盟宴会体验
6个文件已修改
67 ■■■■■ 已修改文件
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/CoreServerGroup/GameServer/Script/Player/PlayerFamilyParty.py
@@ -250,7 +250,14 @@
        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:
ServerPython/CoreServerGroup/GameServer/Script/ShareDefine.py
@@ -167,6 +167,7 @@
Def_Notify_WorldKey_FamilyBossOpenCount = "FamilyBossOpenCount"  # 仙盟boss开启次数
Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo"  # 仙盟宴会数据
Def_Notify_WorldKey_FamilyPartyAddFamilyActivity = "FamilyPartyAddFamilyActivity"  # 仙盟宴会地图成员增加仙盟活跃令
Def_Notify_WorldKey_AddFamilyAuctionItem = "AddFamilyAuctionItem"  # 添加仙盟拍品
Def_Notify_WorldKey_AddSystemAuctionItem = "AddSystemAuctionItem"  # 添加系统拍品
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/GameLogic_FamilyParty.py
@@ -14,7 +14,8 @@
# 详细描述: 战盟盛宴
#
#---------------------------------------------------------------------
"""Version = 2018-04-16 17:20"""
#"""Version = 2018-04-16 17:20"""
#---------------------------------------------------------------------
import ShareDefine
import FBCommon
import ChConfig
@@ -32,6 +33,7 @@
import ItemCommon
import ItemControler
import Item_AddLV
import PlayerTalk
#当前副本地图的状态
(
@@ -48,6 +50,8 @@
FBPlayerDict_TotalPoint = 'XMYH_TotalPoint%s'  # 获得的总仙盟贡献值
FBPlayerDict_HasCollect = 'XMYH_HasCollect%s'  # 是否已采集
FBPlayerDict_HasSit = 'XMYH_HasSit%s'  # 是否已传功
FBPlayerDict_TagPlayerID = 'XMYH_TagPlayerID%s'  # 邀请传功目标玩家ID
FBPlayerDict_HelpCount = 'XMYH_HelpCount%s'  # 已经帮助传功次数
g_familyMapPlayerIDDict = {}#{lineid:[playerid,..]}
def OnFBPlayerOnDay(curPlayer):
@@ -170,6 +174,8 @@
        gameWorld.SetGameWorldDict(FBPlayerDict_TotalPoint % playerID, 0)
        gameWorld.SetGameWorldDict(FBPlayerDict_HasCollect % playerID, 0)
        gameWorld.SetGameWorldDict(FBPlayerDict_HasSit % playerID, 0)
        gameWorld.SetGameWorldDict(FBPlayerDict_TagPlayerID % playerID, 0)
        gameWorld.SetGameWorldDict(FBPlayerDict_HelpCount % playerID, 0)
        
        FBCommon.ClearAreaRewardRecord(playerID)
        
@@ -441,8 +447,8 @@
    gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, newTotalExp/ChConfig.Def_PerPointValue)
    
    
    GameWorld.DebugLog("OnGetExp() addExp=%s,updTotalExp=%s"
                       % (addExp, newTotalExp), playerID)
    #GameWorld.DebugLog("OnGetExp() addExp=%s,updTotalExp=%s"
    #                   % (addExp, newTotalExp), playerID)
    
    return
##玩家退出副本
@@ -490,6 +496,7 @@
            GameWorld.DebugLog('邀请%s打坐,该玩家不在副本里' % tagPlayerID, playerID)
            PlayerControl.NotifyCode(curPlayer, 'PartySitFail')
            return
        gameWorld.SetGameWorldDict(FBPlayerDict_TagPlayerID % playerID, tagPlayerID)
        curPlayer.StopMove()
        curPlayer.Sit()
#        if not gameWorld.GetGameWorldDictByKey(FBPlayerDict_HasSit % tagPlayerID):
@@ -535,5 +542,34 @@
        gameWorld.SetGameWorldDict(FBPlayerDict_TotalExpPoint % playerID, newTotalExp/ChConfig.Def_PerPointValue)
        
    gameWorld.SetGameWorldDict(FBPlayerDict_HasSit % playerID, 1)
    #帮助传功奖励
    helpSitActivityAward = IpyGameDataPY.GetFuncEvalCfg('FamilyPartySitAward', 3)
    if helpSitActivityAward and len(helpSitActivityAward) == 2:
        helpFamilyActivity, maxHelpAwardCount = helpSitActivityAward
        helpThanks = IpyGameDataPY.GetFuncCfg('FamilyPartySitAward', 4) % (helpFamilyActivity, maxHelpAwardCount)
        sitThanks = helpThanks.decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding())
        tagPlayerID = gameWorld.GetGameWorldDictByKey(FBPlayerDict_TagPlayerID % playerID)
        PlayerTalk.TalkPrivateByID(curPlayer, tagPlayerID, sitThanks)
        tagPlayer = GameWorld.GetMapCopyPlayerManager().FindPlayerByID(tagPlayerID)
        if tagPlayer:
            helpCount = gameWorld.GetGameWorldDictByKey(FBPlayerDict_HelpCount % tagPlayerID) + 1
            gameWorld.SetGameWorldDict(FBPlayerDict_HelpCount % tagPlayerID, helpCount)
            GameWorld.DebugLog("帮助传功奖励: sitPlayerID=%s,tagPlayerID=%s,helpCount=%s" % (playerID, tagPlayerID, helpCount))
            if helpCount <= maxHelpAwardCount:
                PlayerControl.GiveMoney(tagPlayer, ShareDefine.TYPE_Price_FamilyActivity, helpFamilyActivity)
    GameWorld.DebugLog('    传功结束,giveLV=%s, giveExp=%s, worldlv=%s' % (giveLV, giveExp, worldlv))
    return True
def DoAddFamilyMemberFamilyActivity(familyID, addFamilyActivity):
    playerManager = GameWorld.GetPlayerManager()
    for index in xrange(playerManager.GetPlayerCount()):
        curPlayer = playerManager.GetPlayerByIndex(index)
        if not curPlayer:
            continue
        if curPlayer.GetFamilyID() != familyID:
            continue
        PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_FamilyActivity, addFamilyActivity)
        GameWorld.DebugLog("增加本仙盟成员答题活跃令, playerID=%s,addFamilyActivity=%s" % (curPlayer.GetPlayerID(), addFamilyActivity))
    return
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerEventCounter.py
@@ -1283,6 +1283,12 @@
                PyGameData.g_familyPartyInfo = eval(msgValue)
            return
        
        if key == ShareDefine.Def_Notify_WorldKey_FamilyPartyAddFamilyActivity:
            mapID, familyID, addFamilyActivity = eval(msgValue)
            if GameWorld.GetMap().GetMapID() == mapID:
                GameLogic_FamilyParty.DoAddFamilyMemberFamilyActivity(familyID, addFamilyActivity)
            return
        if key == ShareDefine.Def_Notify_WorldKey_AddFamilyAuctionItem:
            mapID, familyAuctionItemDict = eval(msgValue)
            if GameWorld.GetMap().GetMapID() == mapID:
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerTalk.py
@@ -215,6 +215,14 @@
    curPlayer.ChatMiByID(sendPack.GetTalkType(), sendPack.GetPlayerID(), content, 0, extras)
    return
def TalkPrivateByID(curPlayer, tagPlayerID, content):
    #私聊 0为默认 1为1对1聊天
    talkType = 1
    extras = GetTalkExtraValue(curPlayer)
    curPlayer.ChatMiByID(talkType, tagPlayerID, content, 0, extras)
    return
## 私聊频道(封包参数)
#  @param index 玩家索引
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/ShareDefine.py
@@ -167,6 +167,7 @@
Def_Notify_WorldKey_FamilyBossOpenCount = "FamilyBossOpenCount"  # 仙盟boss开启次数
Def_Notify_WorldKey_FamilyPartyInfo = "FamilyPartyInfo"  # 仙盟宴会数据
Def_Notify_WorldKey_FamilyPartyAddFamilyActivity = "FamilyPartyAddFamilyActivity"  # 仙盟宴会地图成员增加仙盟活跃令
Def_Notify_WorldKey_AddFamilyAuctionItem = "AddFamilyAuctionItem"  # 添加仙盟拍品
Def_Notify_WorldKey_AddSystemAuctionItem = "AddSystemAuctionItem"  # 添加系统拍品