hxp
2024-12-10 752de87a70503c2be26eae7ab554b0c3caa2efc0
ServerPython/ZoneServerGroup/map1_8G/MapServer/MapServerData/Script/GM/Commands/RealmLVUP.py
@@ -17,6 +17,10 @@
import GameWorld
import PlayerPrestigeSys
import IpyGameDataPY
import PlayerControl
import PlayerGubao
import ChConfig
## 逻辑实现
@@ -24,10 +28,59 @@
#  @param cmdList 参数列表
#  @return None
def OnExec(curPlayer, cmdList):
    isOK = PlayerPrestigeSys.DoRealmLVUpLogic(curPlayer)
    curRealmLV = curPlayer.GetOfficialRank()
    if isOK:
        GameWorld.DebugAnswer(curPlayer, "提升境界成功!GetOfficialRank=%s" % curRealmLV)
    else:
        GameWorld.DebugAnswer(curPlayer, "提升境界失败!GetOfficialRank=%s" % curRealmLV)
    if not cmdList:
        GameWorld.DebugAnswer(curPlayer, "------------ %s" % GameWorld.GetCurrentDataTimeStr())
        GameWorld.DebugAnswer(curPlayer, "重置境界阶级: RealmLVUP 0 [重置改版标记]")
        GameWorld.DebugAnswer(curPlayer, "执行境界升阶: RealmLVUP 1 [次数]")
        GameWorld.DebugAnswer(curPlayer, "设置境界任务: RealmLVUP t 任务ID 进度值")
        GameWorld.DebugAnswer(curPlayer, "注:可设置进度的任务类型:%s" % PlayerPrestigeSys.NeedTaskValueTypeList)
        GameWorld.DebugAnswer(curPlayer, "设置境界塔层: RealmTower")
        GameWorld.DebugAnswer(curPlayer, "设置天星塔层: SetSkyTower")
        GameWorld.DebugAnswer(curPlayer, "设置境界等级: SetOfficalRank 境界等级")
        GameWorld.DebugAnswer(curPlayer, "注:直接设置境界等级不会触发境界其他额外效果")
        return
    value = cmdList[0]
    if value == 0:
        reVersionState = cmdList[1] if len(cmdList) > 1 else 0
        curPlayer.SetOfficialRank(0)
        curPlayer.SetFreePoint(0)
        GameWorld.DebugAnswer(curPlayer, "重置境界!")
        GameWorld.DebugAnswer(curPlayer, "重置灵根点!")
        effType = PlayerGubao.GubaoEffType_RealmLVAddLinggen
        ipyDataMgr = IpyGameDataPY.IPY_Data()
        for index in range(ipyDataMgr.GetGubaoCount()):
            ipyData = ipyDataMgr.GetGubaoByIndex(index)
            gubaoID = ipyData.GetGubaoID()
            addFreePointAlready = curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType))
            if not addFreePointAlready:
                continue
            GameWorld.DebugAnswer(curPlayer, "重置古宝(%s)效果(%s)增加灵根点:%s" % (gubaoID, effType, addFreePointAlready))
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_GubaoItemEffValue % (gubaoID, effType), 0)
            PlayerGubao.Sync_GubaoItemEffInfo(curPlayer, gubaoID, effType, force=True)
        GameWorld.DebugAnswer(curPlayer, "重置境界OK")
        if reVersionState:
            PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmVersionState, 0)
            GameWorld.DebugAnswer(curPlayer, "重置改版标记,重登会执行重置境界逻辑!")
        return
    if value == 1:
        doCount = cmdList[1] if len(cmdList) > 1 else 1
        okCnt = 0
        for _ in range(doCount):
            if PlayerPrestigeSys.DoRealmLVUpLogic(curPlayer):
                okCnt += 1
            else:
                break
        curRealmLV = curPlayer.GetOfficialRank()
        if okCnt:
            GameWorld.DebugAnswer(curPlayer, "提升境界成功!GetOfficialRank=%s" % curRealmLV)
        else:
            GameWorld.DebugAnswer(curPlayer, "提升境界失败!GetOfficialRank=%s" % curRealmLV)
    elif value == "t":
        taskID = cmdList[1] if len(cmdList) > 1 else 0
        taskValue = cmdList[2] if len(cmdList) > 2 else 0
        PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_RealmTaskValue % taskID, taskValue)
        PlayerPrestigeSys.SyncRealmFBState(curPlayer, taskIDList=[taskID])
        GameWorld.DebugAnswer(curPlayer, "设置任务ID:%s,进度值:%s" % (taskID, taskValue))
    return