#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.PlayerMirror # # @todo:´´½¨Íæ¼Ò¾µÏñ½øÐÐÕ½¶· # @author hxp # @date 2024-10-17 # @version 1.0 # # ÏêϸÃèÊö: ´´½¨Íæ¼Ò¾µÏñ, ¿¼ÂǵØÍ¼ÈËÂúÎÊÌ⣬py¿ÉÒÔ×ö¸öÔ¤ÅУ¬¿Éµ÷ÕûµØÍ¼ÅäÖõÄÈËÊýÉÏÏÞ # #------------------------------------------------------------------------------- #"""Version = 2024-10-17 15:00""" #------------------------------------------------------------------------------- import GameWorld import MirrorAttack import ChConfig ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param paramList ²ÎÊýÁбí [Íæ¼ÒID] # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, paramList): if not paramList: GameWorld.DebugAnswer(curPlayer, "-------------------%s" % GameWorld.GetCurrentDataTimeStr()) GameWorld.DebugAnswer(curPlayer, "ºǫ́ս¶·: PlayerMirror s [Íæ¼ÒID1 ID2 ...]") GameWorld.DebugAnswer(curPlayer, "ÇÐͼս¶·: PlayerMirror m [¹¦ÄܵØÍ¼ID Ïß· Ä¿±êID]") GameWorld.DebugAnswer(curPlayer, "Ìø¹ýÕ½¶·: PlayerMirror q") GameWorld.DebugAnswer(curPlayer, "¸üоµÏñ: PlayerMirror 5") GameWorld.DebugAnswer(curPlayer, "¼Ó¼ÙÊý¾Ý: PlayerMirror a ¸öÊý [ÆðʼID Õ½Á¦ Çø·þID Ä£°ækey]") GameWorld.DebugAnswer(curPlayer, "ɾ¼ÙÊý¾Ý: PlayerMirror d") #GameWorld.DebugAnswer(curPlayer, "µ¼ÈëÊý¾Ý: PlayerMirror i Ä£°ækeyÕ˺Å") #GameWorld.DebugAnswer(curPlayer, "Êä³öÊý¾Ý: PlayerMirror p [ÆðʼË÷Òý ¸öÊý ]") GameWorld.DebugAnswer(curPlayer, "¶à¶Ô¶àÕóÓª·ÖÅäIDΪǰºóǰºó¼´AABB") GameWorld.DebugAnswer(curPlayer, "ºǫ́ս¶·Ê±IDÕóÓª·ÖÅäΪ[AABB]") GameWorld.DebugAnswer(curPlayer, "ÇÐͼս¶·Ê±IDÕóÓª·ÖÅäΪ[×Ô¼ºABB]") GameWorld.DebugAnswer(curPlayer, "Íæ¼ÒID²»ÌîʱĬÈÏ×Ô¼º¸ú×Ô¼º´ò") GameWorld.DebugAnswer(curPlayer, "Ä£°ækey:ÔÚdb/TestPackDataÎļþ¼ÐÏÂ") return tick = GameWorld.GetGameWorld().GetTick() playerID = curPlayer.GetPlayerID() value1 = paramList[0] if value1 == "s": mapID = ChConfig.Def_FBMapID_MirrorBattle lineID = 0 mirrorIDList = paramList[1:] if not mirrorIDList: mirrorIDList = [playerID, playerID] elif len(mirrorIDList) == 1: mirrorIDList = [playerID] + mirrorIDList reqPlayer = curPlayer if mirrorIDList[0] == playerID else None # µÚÒ»¸öIDÊÇÍæ¼ÒIDʱ´ú±íÊôÓÚÍæ¼Ò·¢ÆðµÄºǫ́ս¶· requestID = playerID if curPlayer else GameWorld.GetGameWorld().GetTick() factionIDListA, factionIDListB = [], [] while mirrorIDList: factionIDListA.append(mirrorIDList.pop(0)) if mirrorIDList: factionIDListB.append(mirrorIDList.pop(-1)) factionPlayerList = [factionIDListA, factionIDListB] if MirrorAttack.OnRequestCreateMirrorBattle(mapID, lineID, requestID, factionPlayerList, True, reqPlayer): GameWorld.DebugAnswer(curPlayer, "ºǫ́ս¶·: %s VS %s" % (factionIDListA, factionIDListB)) else: GameWorld.DebugAnswer(curPlayer, "ºǫ́ս¶·Ê§°Ü: %s VS %s" % (factionIDListA, factionIDListB)) elif value1 == "m": mapID = paramList[1] if len(paramList) > 1 else ChConfig.Def_FBMapID_MirrorBattle lineID = paramList[2] if len(paramList) > 2 else 0 mirrorIDList = [playerID] + paramList[3:] if len(mirrorIDList) < 2: mirrorIDList.append(playerID) # ĬÈϺÍ×Ô¼º´ò requestID = playerID factionIDListA, factionIDListB = [], [] while mirrorIDList: factionIDListA.append(mirrorIDList.pop(0)) if mirrorIDList: factionIDListB.append(mirrorIDList.pop(-1)) factionPlayerList = [factionIDListA, factionIDListB] reqOK = MirrorAttack.OnRequestCreateMirrorBattle(mapID, lineID, requestID, factionPlayerList, False, curPlayer, True) GameWorld.DebugAnswer(curPlayer, "ÇÐͼս¶·: %s VS %s, %s" % (factionIDListA, factionIDListB, reqOK)) elif value1 == "q": battle = MirrorAttack.GetMirrorBattle(curPlayer) if battle: if not MirrorAttack.DoMirrorBattleQuick(battle.battleID, isClick=True): GameWorld.DebugAnswer(curPlayer, "ÎÞ·¨Ö´ÐпìËÙÕ½¶·£¬Ïê¼ûµØÍ¼ÈÕÖ¾!") return elif value1 == 5: #tick = GameWorld.GetGameWorld().GetTick() #PlayerViewCacheTube.UpdateGameServerPlayerCache(curPlayer, tick, forcePackData=True) GameWorld.DebugAnswer(curPlayer, "ÒѸüÐÂ×îоµÏñ»º´æ!") elif value1 in ["a", "d", "p"]: return True return