hxp
2024-11-25 878fef04122d1feaa0f42c429f364659931bc379
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.FamilyWar
#
# @todo:ÏÉÃËÁªÈü
# @author hxp
# @date 2018-01-12
# @version 1.0
#
# ÏêϸÃèÊö: ÏÉÃËÁªÈü
#
#-------------------------------------------------------------------------------
#"""Version = 2018-01-12 15:00"""
#-------------------------------------------------------------------------------
import GameWorld
import GameWorldFamilyWar
import PlayerUniversalGameRec
import ShareDefine
import ChConfig
 
 
# µ¼Èë
#------------------------------------------------------------------------------ 
 
## Ö´ÐÐÂß¼­
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param cmdList ²ÎÊýÁбí
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def OnExec(curPlayer, cmdList):
    if not cmdList:
        GameWorld.DebugAnswer(curPlayer, "FamilyWar ×´Ì¬(²Î¿¼¸±±¾×´Ì¬Ê±¼ä±í)")
        GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÏÉÃËÁªÈü: FamilyWar 0 ÖØÖÃÍõÕßÏÉÃË(¿ÉÑ¡)")
        GameWorld.DebugAnswer(curPlayer, "¿ªÊ¼Ê×ÂÖ±ÈÈü: FamilyWar 1 ÖØÖÃÍõÕßÏÉÃË(¿ÉÑ¡)")
        GameWorld.DebugAnswer(curPlayer, "¿ªÊ¼´ÎÂÖ±ÈÈü: FamilyWar 2")
        return
    state = cmdList[0]
    if state == 0:
        isDelRec = cmdList[1] if len(cmdList) > 1 else False
        GameWorld.DebugAnswer(curPlayer, "GMÖØÖÃÏÉÃËÁªÈü!isDelRec=%s" % isDelRec)
        GameWorldFamilyWar.DoFamilyWarReset(isDelRec)
        return
    
    if state in [GameWorldFamilyWar.FamilyWarState_FirstRoundGroup, 
                 GameWorldFamilyWar.FamilyWarState_FirstRoundBattle,
                 GameWorldFamilyWar.FamilyWarState_FirstRoundOver,
                 GameWorldFamilyWar.FamilyWarState_SecondRoundGroup,
                 GameWorldFamilyWar.FamilyWarState_SecondRoundBattle,
                 GameWorldFamilyWar.FamilyWarState_SecondRoundOver,
                 GameWorldFamilyWar.FamilyWarState_NextWeekGroupRank,
                 ]:
        isDelRec = cmdList[1] if len(cmdList) > 1 else False
        if state == GameWorldFamilyWar.FamilyWarState_FirstRoundGroup:
            GameWorldFamilyWar.DoFamilyWarReset(isDelRec)
            
        GameWorldFamilyWar.OnFamilyWarStateChange(state)
        PlayerUniversalGameRec.SendUniversalGameRecInfo(None, ShareDefine.Def_UniversalGameRecType_FamilyWarBattle)
        
        if state in [GameWorldFamilyWar.FamilyWarState_FirstRoundBattle, GameWorldFamilyWar.FamilyWarState_SecondRoundBattle]:
            GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FBCanEnter % ChConfig.Def_FBMapID_FamilyWar, 1)
        
        if isDelRec and state == GameWorldFamilyWar.FamilyWarState_FirstRoundGroup:
            PlayerUniversalGameRec.SendUniversalGameRecInfo(None, ShareDefine.Def_UniversalGameRecType_FamilyWarChampion)
        GameWorld.DebugAnswer(curPlayer, "Ö´ÐÐÏÉÃËÁªÈü״̬³É¹¦£¡state=%s" % state)
        return
    
    if state == 1:
        isDelRec = cmdList[1] if len(cmdList) > 1 else False
        GameWorldFamilyWar.DoFamilyWarReset(isDelRec)
        GameWorldFamilyWar.OnFamilyWarStateChange(GameWorldFamilyWar.FamilyWarState_FirstRoundGroup)
        GameWorldFamilyWar.OnFamilyWarStateChange(GameWorldFamilyWar.FamilyWarState_FirstRoundBattle)
        GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FBCanEnter % ChConfig.Def_FBMapID_FamilyWar, 1)
        PlayerUniversalGameRec.SendUniversalGameRecInfo(None, ShareDefine.Def_UniversalGameRecType_FamilyWarBattle)
        if isDelRec:
            PlayerUniversalGameRec.SendUniversalGameRecInfo(None, ShareDefine.Def_UniversalGameRecType_FamilyWarChampion)
        return
    
    if state == 2:
        GameWorldFamilyWar.OnFamilyWarStateChange(GameWorldFamilyWar.FamilyWarState_SecondRoundGroup)
        GameWorldFamilyWar.OnFamilyWarStateChange(GameWorldFamilyWar.FamilyWarState_SecondRoundBattle)
        GameWorld.SendMapServerMsgEx(ShareDefine.Def_Notify_WorldKey_FBCanEnter % ChConfig.Def_FBMapID_FamilyWar, 1)
        PlayerUniversalGameRec.SendUniversalGameRecInfo(None, ShareDefine.Def_UniversalGameRecType_FamilyWarBattle)
        return
    
    GameWorldFamilyWar.OnFamilyWarStateChange(cmdList[0])
    return