#!/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
|
|
|