hxp
2022-02-21 0c27822ef5e6c67782ed143a4ff03ecfbdfda1fb
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
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#!/usr/bin/python
# -*- coding: GBK -*-
#-------------------------------------------------------------------------------
#
##@package GM.Commands.CrossBattle
#
# @todo:¿ç·þÕ½³¡
# @author hxp
# @date 2022-01-06
# @version 1.0
#
# ÏêϸÃèÊö: ¿ç·þÕ½³¡
#
#-------------------------------------------------------------------------------
#"""Version = 2022-01-06 20:30"""
#-------------------------------------------------------------------------------
 
import GameWorld
import GameLogic_CrossBattlefield
import ShareDefine
import ChConfig
import FBCommon
 
 
## Âß¼­ÊµÏÖ
#  @param curPlayer
#  @param cmdList ²ÎÊýÁбí
#  @return None
def OnExec(curPlayer, cmdList):
    
    if not cmdList:
        GameWorld.DebugAnswer(curPlayer, "--------------------------------")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÍæ¼Ò»ý·Ö: CrossBattle 1 ×Ü»ý·Ö [¿ÉÑ¡Íæ¼ÒID]")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÍæ¼Ò»÷ɱ: CrossBattle 2 »÷ɱÊý [¿ÉÑ¡Íæ¼ÒID]")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÍæ¼Ò¹±Ï×: CrossBattle 3 ¹±Ï×¶È [¿ÉÑ¡Íæ¼ÒID]")
        GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÕóÓª»ý·Ö: CrossBattle 4 ×Ü»ý·Ö [¿ÉÑ¡ÕóÓªID]")
        GameWorld.DebugAnswer(curPlayer, "ÖØÐÂËæ»ú´ó½±: CrossBattle 5")
        GameWorld.DebugAnswer(curPlayer, "¸´»îÕóÓªÊØÎÀ: CrossBattle 6")
        GameWorld.DebugAnswer(curPlayer, "¿ÉÑ¡Íæ¼Ò/ÕóÓªIDûÌîÔòĬÈÏ×ÔÉí")
        return
    
    tick = GameWorld.GetGameWorld().GetTick()
    playerID = curPlayer.GetPlayerID()
    mapID = FBCommon.GetRecordMapID(GameWorld.GetMap().GetMapID())
    value1 = cmdList[0]
    if value1 in [1, 2, 3, 4, 5, 6] and not GameWorld.IsCrossServer() or mapID != ChConfig.Def_FBMapID_CrossBattlefield:
        GameWorld.DebugAnswer(curPlayer, "¸ÃÃüÁîÐèÔÚ¿ç·þÕ½³¡Ê¹ÓÃCrossServer·¢ËÍ")
        return
        
    # ÉèÖÃÍæ¼Ò»ý·Ö
    if value1 == 1:
        setScore = cmdList[1] if len(cmdList) > 1 else 1
        tagPlayerID = cmdList[2] if len(cmdList) > 2 else playerID
        battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(tagPlayerID)
        battleObj.addPlayerScore(curPlayer, setScore - battleObj.score)
        GameWorld.DebugAnswer(curPlayer, "Íæ¼Ò(%s)»ý·Ö: %s" % (tagPlayerID, battleObj.score))
        FBCommon.NotifyCopyMapPlayerFBHelp(tick, GameLogic_CrossBattlefield.DoFBHelp, 0, GameLogic_CrossBattlefield.refreshCrossBattlefield) # ´¥·¢Ë¢ÐÂFBHelp
        return
    
    # ÉèÖÃÍæ¼Ò»÷ɱ
    if value1 == 2:
        setCount = cmdList[1] if len(cmdList) > 1 else 1
        tagPlayerID = cmdList[2] if len(cmdList) > 2 else playerID
        battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(tagPlayerID)
        battleObj.addKillCount(setCount - battleObj.killCount)
        GameWorld.DebugAnswer(curPlayer, "Íæ¼Ò(%s)»÷ɱÊý: %s, Á¬É±Êý: %s" % (tagPlayerID, battleObj.killCount, battleObj.continueKillCount))
        FBCommon.NotifyCopyMapPlayerFBHelp(tick, GameLogic_CrossBattlefield.DoFBHelp, 0, GameLogic_CrossBattlefield.refreshCrossBattlefield) # ´¥·¢Ë¢ÐÂFBHelp
        return
    
    # ÉèÖÃÍæ¼Ò¹±Ï×¶È
    if value1 == 3:
        setProgress = cmdList[1] if len(cmdList) > 1 else 1
        tagPlayerID = cmdList[2] if len(cmdList) > 2 else playerID
        battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(tagPlayerID)
        battleObj.addSuperItemContribution(setProgress - battleObj.superItemContribution)
        GameWorld.DebugAnswer(curPlayer, "Íæ¼Ò(%s)¹±Ï×¶È: %s" % (tagPlayerID, battleObj.superItemContribution))
        FBCommon.NotifyCopyMapPlayerFBHelp(tick, GameLogic_CrossBattlefield.DoFBHelp, 0, GameLogic_CrossBattlefield.refreshCrossBattlefield) # ´¥·¢Ë¢ÐÂFBHelp
        return
    
    # ÉèÖÃÕóÓª»ý·Ö
    if value1 == 4:
        setScore = cmdList[1] if len(cmdList) > 1 else 1
        tagFaction = cmdList[2] if len(cmdList) > 2 else 0
        if not tagFaction or tagFaction not in ShareDefine.CampTypeList:
            battleObj = GameLogic_CrossBattlefield.GetBattlePlayerObj(playerID)
            tagFaction = battleObj.faction
        factionObj = GameLogic_CrossBattlefield.GetBattleFactionObj(tagFaction)
        factionObj.addFactionScore(setScore - factionObj.score)
        GameWorld.DebugAnswer(curPlayer, "ÕóÓª(%s)»ý·Ö: %s" % (tagFaction, factionObj.score))
        FBCommon.NotifyCopyMapPlayerFBHelp(tick, GameLogic_CrossBattlefield.DoFBHelp, 0, GameLogic_CrossBattlefield.refreshCrossBattlefield) # ´¥·¢Ë¢ÐÂFBHelp
        return
    
    # ÖØÖôó½±ÐÅÏ¢
    if value1 == 5:
        worldObj = GameLogic_CrossBattlefield.GetBattleWorld()
        worldObj.RandSuperTask()
        GameWorld.DebugAnswer(curPlayer, "ÖØÐÂËæ»ú´ó½±OK! %s" % worldObj.superItemInfo)
        FBCommon.NotifyCopyMapPlayerFBHelp(tick, GameLogic_CrossBattlefield.DoFBHelp, 0, GameLogic_CrossBattlefield.refreshCrossBattlefield) # ´¥·¢Ë¢ÐÂFBHelp
        return
    
    # ¸´»îÕóÓªÊØÎÀ
    if value1 == 6:
        rebornNPCIDList = GameLogic_CrossBattlefield.rebornGurad()
        GameWorld.DebugAnswer(curPlayer, "¸´»îÕóÓªÊØÎÀ! %s" % rebornNPCIDList)
        return
    
    return