9684 【越南】坐骑幻化支持时效性(时效幻化激活状态变更同步变更原幻化激活状态)
1个文件已修改
20 ■■■■ 已修改文件
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/Player/PlayerHorse.py
@@ -178,6 +178,7 @@
    if not ipyData:
        return
    
    activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
    updSkinEndTime = 0
    validTime = ipyData.GetSkinValidTime()
    if validTime:
@@ -188,7 +189,6 @@
        else:
            updSkinEndTime = skinEndTime + validTime
    else:
        activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
        if activateState & pow(2, activateID):
            GameWorld.DebugLog("该坐骑已幻化!activateState=%s,activateID=%s" % (activateState, activateID))
            return
@@ -205,20 +205,22 @@
    if validTime:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinEndTime % activateID, updSkinEndTime)
        GameWorld.DebugLog("坐骑幻化时效 activateID=%s,updSkinEndTime=%s(%s)" % (activateID, updSkinEndTime, GameWorld.ChangeTimeNumToStr(updSkinEndTime)), playerID)
    else:
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, activateState|pow(2, activateID))
        
    #时效及非时效该状态均设置激活
    updActivateState = activateState|pow(2, activateID)
    PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, updActivateState)
    playerEquip = curPlayer.GetItemManager().GetPack(IPY_GameWorld.rptEquip)
    itemRideHorse = playerEquip.GetAt(Def_HorseEquipIndex)
    #无指定道具
    if itemRideHorse.IsEmpty():
        DoChangeHorse(curPlayer, 2, activateID, tick)
        
    Sync_HorseClassData(curPlayer)
    if validTime:
        SyncHorseSkinTimeInfo(curPlayer, activateID)
    else:
        Sync_HorseClassData(curPlayer)
    GameWorld.Log("坐骑激活成功!activateID=%s,updSkinEndTime=%s" % (activateID, updSkinEndTime), playerID)
    GameWorld.Log("坐骑激活成功!activateID=%s,activateState=%s,updActivateState=%s,updSkinEndTime=%s"
                  % (activateID, activateState, updActivateState, updSkinEndTime), playerID)
    
    # 刷属性,更新排行榜
    RefreshHorseAttr(curPlayer)
@@ -339,6 +341,12 @@
            addItemList = []
            paramList = [skinItemID]
            PlayerControl.SendMailByKey("HorseSkinInvalidNotify", [playerID], addItemList, paramList)
            activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)
            updActivateState = GameWorld.SetBitValue(activateState, skinID, 0)
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_HorserSkinPlusState, updActivateState)
            GameWorld.Log("坐骑幻化过期更新状态! skinID=%s,activateState=%s,updActivateState=%s" % (skinID, activateState, updActivateState), playerID)
            Sync_HorseClassData(curPlayer)
            return False
    else:
        activateState = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_HorserSkinPlusState)