#!/usr/bin/python # -*- coding: GBK -*- #------------------------------------------------------------------------------- # ##@package GM.Commands.Lianqi # # @todo:Á¶Æ÷»î¶¯ # @author hxp # @date 2025-01-09 # @version 1.0 # # ÏêϸÃèÊö: Á¶Æ÷»î¶¯ # #------------------------------------------------------------------------------- #"""Version = 2025-01-09 17:30""" #------------------------------------------------------------------------------- import GameWorld import PlayerControl import PlayerZhanling import PlayerActLianqi import IpyGameDataPY import ChConfig #--------------------------------------------------------------------- #Âß¼­ÊµÏÖ ## GMÃüÁîÖ´ÐÐÈë¿Ú # @param curPlayer µ±Ç°Íæ¼Ò # @param msgList ²ÎÊýÁбí # @return None # @remarks º¯ÊýÏêϸ˵Ã÷. def OnExec(curPlayer, msgList): if not msgList: GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÁ¶Æ÷Êý¾Ý: Lianqi 0") GameWorld.DebugAnswer(curPlayer, "ÖØÐ¿ªÊ¼ÓÎÏ·: Lianqi 1") GameWorld.DebugAnswer(curPlayer, "ÉèÖø¨ÖúµÀ¾ß: Lianqi w IDË÷Òý ÒÑÓôÎÊý") GameWorld.DebugAnswer(curPlayer, "ÉèÖõ±Ç°ÌåÁ¦: Lianqi e ÌåÁ¦Öµ") GameWorld.DebugAnswer(curPlayer, "ÉèÖõ±Ç°»ý·Ö: Lianqi s »ý·Ö") GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÍø¸ñµÈ¼¶: Lianqi g ÐÐ ÁÐ µÈ¼¶") GameWorld.DebugAnswer(curPlayer, "Êä³öÆåÅÌÊý¾Ý: Lianqi p") GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÆåÅÌÊý¾Ý: Lianqi c ÐÐÁеȼ¶1 ...") GameWorld.DebugAnswer(curPlayer, "ÆåÅÌÐÐÁдÓÐÐ0~3ÁÐ0~3¿ªÊ¼×Ü16¸ñ£¬²»×ãµÄֵĬÈÏ0") return if not curPlayer.NomalDictGetProperty(ChConfig.Def_PDict_CA_LianqiID): GameWorld.DebugAnswer(curPlayer, "Á¶Æ÷·Ç»î¶¯ÖÐ") return value1 = msgList[0] if value1 == 0: PlayerZhanling.ResetZhanling(curPlayer, PlayerZhanling.ZhanlingType_Lianqi) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LianqiScore, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LianqiScoreHighest, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LianqiLVAwardMax, 0) PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LianqiLVAwardState, 0) PlayerActLianqi.SetLianqiEnergy(curPlayer, IpyGameDataPY.GetFuncCfg("LianqiSet", 1)) PlayerActLianqi.ReStartGame(curPlayer, isNotify=False) GameWorld.DebugAnswer(curPlayer, "ÖØÖÃÁ¶Æ÷OK!") elif value1 == 1: PlayerActLianqi.ReStartGame(curPlayer, isNotify=False) GameWorld.DebugAnswer(curPlayer, "ÖØÐ¿ªÊ¼Á¶Æ÷OK!") elif value1 == "e": energy = msgList[1] if len(msgList) > 1 else 0 updEnergy = PlayerActLianqi.SetLianqiEnergy(curPlayer, energy) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÌåÁ¦: %s" % updEnergy) elif value1 == "s": score = msgList[1] if len(msgList) > 1 else 0 updScore = PlayerActLianqi.SetLianqiScore(curPlayer, score) GameWorld.DebugAnswer(curPlayer, "ÉèÖûý·Ö: %s" % updScore) elif value1 == "g": r = msgList[1] if len(msgList) > 1 else 0 c = msgList[2] if len(msgList) > 2 else 0 lv = msgList[3] if len(msgList) > 3 else 0 gridDataList = PlayerActLianqi.GetGridDataList(curPlayer) rcLV = PlayerActLianqi.GetGridLV(r, c, gridDataList) if rcLV == None: GameWorld.DebugAnswer(curPlayer, "¸ÃÐÐÁв»´æÔÚ!ÐÐ:%s,ÁÐ:%s" % (r, c)) return lv = min(lv, PlayerActLianqi.Def_MaxLV) gridDataList[r][c] = lv PlayerActLianqi.SaveGridData(curPlayer, gridDataList) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÐÐ:%s,ÁÐ:%s,µÈ¼¶:%s" % (r, c, lv)) __PrintGrid(curPlayer) elif value1 == "p": __PrintGrid(curPlayer) elif value1 == "c": rcvList = msgList[1:] gridMax = PlayerActLianqi.Def_Size *PlayerActLianqi.Def_Size if len(rcvList) < gridMax: rcvList += [0] * (gridMax - len(rcvList)) gridDataList = PlayerActLianqi.GetGridDataList(curPlayer) for r in range(PlayerActLianqi.Def_Size): for c in range(PlayerActLianqi.Def_Size): lv = rcvList.pop(0) gridDataList[r][c] = min(lv, PlayerActLianqi.Def_MaxLV) PlayerActLianqi.SaveGridData(curPlayer, gridDataList) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÆåÅÌOK!") __PrintGrid(curPlayer) elif value1 == "w": idIndex = msgList[1] if len(msgList) > 1 else 0 usedCnt = msgList[2] if len(msgList) > 2 else 0 itemIDList = IpyGameDataPY.GetFuncEvalCfg("LianqiUseItem", 1) if idIndex < 0 or idIndex >= len(itemIDList): GameWorld.DebugAnswer(curPlayer, "·Ç¸¨ÖúµÀ¾ßIDË÷Òý:%s,%s" % (idIndex, range(len(itemIDList)))) return itemID = itemIDList[idIndex] PlayerControl.NomalDictSetProperty(curPlayer, ChConfig.Def_PDict_LianqiItemUse % itemID, usedCnt) GameWorld.DebugAnswer(curPlayer, "ÉèÖÃÎïÆ·ID:%s,ʹÓôÎÊý:%s" % (itemID, usedCnt)) PlayerActLianqi.Sync_LianqiPlayerInfo(curPlayer) return def __PrintGrid(curPlayer): gridDataList = PlayerActLianqi.GetGridDataList(curPlayer) for rowData in gridDataList: rowStr = "" for lv in rowData: if rowStr: rowStr += ", " if lv < 10: rowStr += " " rowStr += str(lv) GameWorld.DebugAnswer(curPlayer, "[%s]" % rowStr) return