#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package Script.Player.GMTExec.CrossPK # # @todo:ÉèÖÿç·þPKÍæ¼ÒÊý¾Ý # @author hxp # @date 2023-02-16 # @version 1.0 # # ÏêϸÃèÊö: ÉèÖÿç·þPKÍæ¼ÒÊý¾Ý # #------------------------------------------------------------------------------- #"""Version = 2023-02-16 18:30""" #------------------------------------------------------------------------------- def runMyTest(exec_locals): ''' ÔËÐÐÃüÁÊý @param exec_locals: GY_Query_GMTExecfile Ä£¿éÖÐµÄ DoLogic º¯Êý locals() import ÆäËûÄ£¿éÐèҪдÔڴ˺¯ÊýÀ²»È»ÎÞ·¨ÒýÓõ½ ''' import GameWorld import CrossRealmPlayer import PlayerCrossRealmPK import PlayerControl import ShareDefine import ChConfig orderId = exec_locals["orderId"] cmdInfo = exec_locals["cmdInfo"] curPlayer = exec_locals["curPlayer"] resultDict = exec_locals["resultDict"] # ½¨Òé¶¼½øÐиüнá¹û×Öµä¼Ç¼Ïêϸ´¦ÀíÐÅÏ¢£¬GY_Query_GMTExecfile Ä£¿é»áͳһдÈëÁ÷Ïò # ÒÔÏÂΪÏêϸ´¦ÀíÂß¼­ # ============================ ÅäÖÃÐÅÏ¢ ============================ '''ÉèÖúóÐèÒª¼ì²éÊý¾ÝÊÇ·ñÕýȷͬ²½µ½¿ç·þ·þÎñÆ÷ 1. ºǫ́·µ»ØÈç¹ûÓйؼü×Ö "errorMsg":"OK"£¬´ú±í±¾·þÉèÖóɹ¦£» Èç¹û errorMsg ÊÇÆäËûÐÅÏ¢£¬´ú±í±¾·þ¾ÍÒѾ­ÉèÖÃʧ°ÜÁË£¬±ÈÈçÎÞÈü¼¾ÐÅÏ¢»òÈü¼¾ÒѽáÊøÊÇÎÞ·¨Ö´ÐÐÃüÁîµÄ£» 2. ºǫ́³É¹¦´ú±í±¾·þÊý¾ÝÒѳɹ¦ÉèÖã¬ÐèÒªÔÙ¼ì²éÊÇ·ñ³É¹¦Í¬²½¿ç·þ·þÎñÆ÷£»Ö±½Ó¿´°ñµ¥£¬Èç¹ûÒѾ­¸üÐÂÖ¤Ã÷ͬ²½³É¹¦£» 3. Èç¹ûû¿´µ½°ñµ¥¸üУ¬¼ì²é¿ç·þ·þÎñÆ÷ÈÕÖ¾£¬ËÑË÷ GMSetCrossPK, ¿´ÊÇ·ñÓÐÏà¹Ø´íÎóÈÕÖ¾£» 4. Ò²¿ÉÒÔÖ±½Ó¿´¿ç·þÁ÷Ïò CrossPK_GMSet_xxx.txt£¬¿´ÊÇ·ñÓÐÏà¹ØÉèÖÃÁ÷Ïò¼Ç¼£¬Óеϰ´ú±í³É¹¦£» ×¢£ºÈç¹û¿ç·þÊý¾ÝûÓгɹ¦Í¬²½£¬ÔòÐèÒªºóÌ¨ÖØ¸´Ö´ÐÐÃüÁîÖ±µ½³É¹¦ ''' danLV = 20 # ¶ÎλµÈ¼¶£¬ÐèÓëËùÉèÖõĻý·ÖËùÊô¶ÎλƥÅ䣬²Î¿¼ K.¿ç·þ¾º¼¼³¡¶Îλ±í pkScore = 32000 # »ý·Ö cWinCount = 50 # Á¬Ê¤ # ================================================================= zoneID = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKZoneID) seasonID = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonID) seasonState = GameWorld.GetGameWorld().GetGameWorldDictByKey(ShareDefine.Def_Notify_WorldKey_CrossPKSeasonState) errorMsg = "OK" if not zoneID or not seasonID or seasonState == 2: errorMsg = "zone season or state error." else: PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CrossPK_DanLV, danLV) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CrossPK_TotalScore, pkScore) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CrossPK_CWinCount, cWinCount) if cWinCount > 0: PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_CrossPK_CLoseCount, 0) # ÇëÇó²éѯ¿ç·þ·þÎñÆ÷ playerInfoDict = {"accID":curPlayer.GetAccID(), "playerID":curPlayer.GetPlayerID(), "playerName":CrossRealmPlayer.GetCrossPlayerName(curPlayer), "playerJob":curPlayer.GetJob(), "face":curPlayer.GetFace(), "facePic":curPlayer.GetFacePic(), "fightPower":PlayerControl.GetFightPower(curPlayer), "realmLV":curPlayer.GetOfficialRank(), "ondayScore":curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CrossPK_OnDayScore), "pkScore":pkScore, "danLV":danLV, "cWinCount":cWinCount, } resultDict.update({"PlayerInfo":playerInfoDict}) dataMsg = {"ZoneID":zoneID, "SeasonID":seasonID, "GMSetCrossPK":1, "PlayerInfo":playerInfoDict} GameWorld.SendMsgToCrossServer(ShareDefine.ClientServerMsg_PKBillboard, dataMsg) PlayerCrossRealmPK.SyncCrossRealmPKPlayerInfo(curPlayer) GameWorld.Log("This is MameServer GMT_Execfile run %s. orderId=%s" % (cmdInfo, orderId), curPlayer.GetPlayerID()) resultDict.update({"zoneID":zoneID, "seasonID":seasonID, "seasonState":seasonState, "errorMsg":errorMsg}) return exec_locals = locals() if exec_locals.get("cmdInfo"): runMyTest(exec_locals)