hxp
2018-12-04 5d7c40ddd0f7a7589f5dd2e7835de8094f63d803
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GameWorldLogic/FBProcess/FBHelpBattle.py
@@ -34,17 +34,31 @@
import IPY_GameWorld
import PlayerActivity
import time
def DoPlayerOnDay(curPlayer):
    checkInInfo = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HelpBattleCheckInCount)
    checkInCount = checkInInfo / 10 # 累计登记
    todayIsCheckIn = checkInInfo % 10 # 今天是否已登记
    if todayIsCheckIn:
        checkInInfo = (checkInCount + 1) * 10 + 0
        checkInInfo = checkInCount * 10 + 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleCheckInCount, checkInInfo)
        SyncCheckInState(curPlayer, 0, False)
    
    # 重置每日已获得仙缘币
    PlayerControl.SetTodayXianyuanCoin(curPlayer, 0)
    ondaySetXianyuanCoin = 0
    ondayLoginSetXianyuanCoin = curPlayer.GetDictByKey(ChConfig.Def_PDict_TodayXianyuanCoinOnLogin)
    if ondayLoginSetXianyuanCoin:
        # 这里做时间比较,预防玩家登录后就没有再切换地图,再次在该地图过天会导致设置值错误问题
        loginAddCoinTime = curPlayer.GetDictByKey(ChConfig.Def_PDict_LoginAddTodayXianyuanCoinTime)
        if GameWorld.CheckTimeIsSameServerDayEx(loginAddCoinTime):
            ondaySetXianyuanCoin = ondayLoginSetXianyuanCoin
            GameWorld.DebugLog("玩家过天时,登录增加仙缘币有值,仍然是同一天,仙缘币重置为登录时增加的仙缘币!ondayLoginSetXianyuanCoin=%s" % ondayLoginSetXianyuanCoin)
        else:
            GameWorld.DebugLog("玩家过天时,登录增加仙缘币有值,但是不是同一天了,仙缘币重置为0!")
    PlayerControl.SetTodayXianyuanCoin(curPlayer, ondaySetXianyuanCoin)
    GameWorld.DebugLog("玩家过天设置今日已获得仙缘币: ondaySetXianyuanCoin=%s,ondayLoginSetXianyuanCoin=%s"
                       % (ondaySetXianyuanCoin, ondayLoginSetXianyuanCoin))
    return
def DoPlayerLogin(curPlayer):
@@ -382,7 +396,7 @@
def __OnHelpBattleRecord(curPlayer, msgList, tick):
    ## 助战记录同步
    cmd, helpRecordList = msgList
    cmd, helpRecordList, isLogin = msgList
    playerID = curPlayer.GetPlayerID()
    GameWorld.DebugLog("__OnHelpBattleRecord %s,helpRecordList=%s" % (cmd, helpRecordList), playerID)
    
@@ -420,12 +434,16 @@
    NetPackCommon.SendFakePack(curPlayer, recordPack)
    
    addDataDict = {"HelpList":drList}
    GameWorld.DebugLog("    addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s,totalHelpCount=%s"
                       % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay, totalHelpCount), playerID)
    GameWorld.DebugLog("    addXianyuanCoinTotal=%s,addXianyuanCoinTotalTotay=%s,totalHelpCount=%s,isLogin=%s"
                       % (addXianyuanCoinTotal, addXianyuanCoinTotalTotay, totalHelpCount, isLogin), playerID)
    PlayerControl.GiveMoney(curPlayer, ShareDefine.TYPE_Price_XianyuanCoin, addXianyuanCoinTotal, addDataDict=addDataDict, isSysHint=False)
    if addXianyuanCoinTotalTotay:
        PlayerControl.AddTodayXianyuanCoin(curPlayer, addXianyuanCoinTotalTotay)
        if isLogin:
            curPlayer.SetDict(ChConfig.Def_PDict_TodayXianyuanCoinOnLogin, addXianyuanCoinTotalTotay)
            curPlayer.SetDict(ChConfig.Def_PDict_LoginAddTodayXianyuanCoinTime, int(time.time()))
            GameWorld.Log("    登录时今日助战信息: addXianyuanCoinTotalTotay=%s" % (addXianyuanCoinTotalTotay), playerID)
    # 更新总助战次数,更新排行榜
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HelpBattleTotalCount, totalHelpCount)
    if totalHelpCount >= IpyGameDataPY.GetFuncCfg("HelpBattleRefresh", 4):
@@ -478,8 +496,12 @@
    
    fbType = GameWorld.GetMap().GetMapFBType()
    if fbType == IPY_GameWorld.fbtSingle:
        gameFB = GameWorld.GetGameFB()
        helpBattlePlayerDict = PyGameData.g_fbHelpBattlePlayerDict.get(playerID, {})
        for helpPlayerInfoDict in helpBattlePlayerDict.values():
        for helpPlayerID, helpPlayerInfoDict in helpBattlePlayerDict.items():
            objID = gameFB.GetGameFBDictByKey(ChConfig.Def_FB_HelpBattleFBObjID % helpPlayerID)
            if not objID:
                continue
            relation = helpPlayerInfoDict.get("Relation", 0)
            if not relation:
                continue