hxp
5 天以前 dc0b92c1e2fe9f3d24c183b325dad54d088735c1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.MainLevel
#
# @todo:Ö÷Ï߹ؿ¨
# @author hxp
# @date 2025-07-02
# @version 1.0
#
# ÏêϸÃèÊö: Ö÷Ï߹ؿ¨
#
#-------------------------------------------------------------------------------
#"""Version = 2025-07-02 17:30"""
#-------------------------------------------------------------------------------
 
import GameWorld
import PlayerControl
import IpyGameDataPY
import GameLogic_MainLevel
 
def OnExec(curPlayer, gmList):
    
    if not gmList:
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÖ÷Ïß: MainLevel 0")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÖ÷Ïß: MainLevel Õ½ڠ¹Ø¿¨ ²¨")
        GameWorld.DebugAnswer(curPlayer, "²âÊÔµôÂä: MainLevel d »÷ɱÊý")
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÕ½Àû: MainLevel b 0")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÕ½Àû: MainLevel b Õ½ÀûÆ·ID ÒѵôÂä¸öÊý")
        return
    
    value = gmList[0]
    
    if value == "d":
        killCnt = gmList[1] if len(gmList) > 1 else 1
        GameLogic_MainLevel.GMTestKillDrop(curPlayer, killCnt)
        return
    
    if value == "b":
        itemID = gmList[1] if len(gmList) > 1 else 1
        dropTotal = gmList[2] if len(gmList) > 2 else 1
        if not itemID:
            GameLogic_MainLevel.ResetBootyDropToday(curPlayer)
            return
        bootyItemIDList = GameLogic_MainLevel.GetBootyItemIDList()
        if itemID not in bootyItemIDList:
            GameWorld.DebugAnswer(curPlayer, "Õ½ÀûÆ·ID(%s) not in %s" % (itemID, bootyItemIDList))
            return
        GameLogic_MainLevel.SetBootyDropToday(curPlayer, itemID, dropTotal)
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÕ½ÀûÆ·(%s)½ñÈÕµôÂä: %s" % (itemID, dropTotal))
        return
    
    if value <= 0:
        nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, 1, 1, 1)
        passValue = PlayerControl.SetMainLevelPassInfo(curPlayer, 0, 0, 0)
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÖ÷Ïß:now=%s,pass=%s" % (nowValue, passValue))
        return
    
    chapterID = value
    levelNum = gmList[1] if len(gmList) > 1 else 1
    wave = gmList[2] if len(gmList) > 2 else 1
    
    levelIpyData = IpyGameDataPY.GetIpyGameData("MainLevel", chapterID, levelNum)
    if not levelIpyData:
        GameWorld.DebugAnswer(curPlayer, "Õ½ڹؿ¨²»´æÔÚ: Õ¹Ø=%s-%s" % (chapterID, levelNum))
        return
    
    # ±¾¹Ø¿¨×î´ó²¨Êý£¬ÔÝʱ֧³Ö×î´ó6²¨
    waveMax = 10
    while waveMax >= 1 and (not hasattr(levelIpyData, "GetWaveLineupIDList%s" % waveMax) or not getattr(levelIpyData, "GetWaveLineupIDList%s" % waveMax)()):
        waveMax -= 1
    if wave > waveMax:
        wave = waveMax
        
    nowValue = PlayerControl.SetMainLevelNowInfo(curPlayer, chapterID, levelNum, wave)
    passValue = PlayerControl.SetMainLevelPassInfo(curPlayer, chapterID, levelNum, wave)
    GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÖ÷Ïß:Õ¹Ø=%s-%s,²¨=%s,%s,%s" % (chapterID, levelNum, wave, nowValue, passValue))
    return