#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
##@package GM.Commands.BillboardDataCross
|
#
|
# @todo:¿ç·þ°ñµ¥Êý¾Ý
|
# @author hxp
|
# @date 2021-01-13
|
# @version 1.0
|
#
|
# ÏêϸÃèÊö: ¿ç·þ°ñµ¥Êý¾Ý
|
#
|
#-------------------------------------------------------------------------------
|
#"""Version = 2021-01-13 17:00"""
|
#-------------------------------------------------------------------------------
|
|
import GameWorld
|
import ShareDefine
|
import PyDataManager
|
import CrossBillboard
|
|
def __Help(curPlayer, errInfo=""):
|
GameWorld.DebugAnswer(curPlayer, "---------- %s" % GameWorld.GetCurrentDataTimeStr())
|
if errInfo:
|
GameWorld.DebugAnswer(curPlayer, errInfo)
|
GameWorld.DebugAnswer(curPlayer, "ÐÂÔö¿ç·þ°ñµ¥¼ÙÊý¾Ý: BillboardDataCross ÀàÐÍ ·Ö×éÖµ1 ·Ö×éÖµ2 ÌõÊý ±È½ÏÖµ1 ¿ÉÑ¡²ÎÊý(±È½ÏÖµ2 ³£¹æÖµ1~5)")
|
GameWorld.DebugAnswer(curPlayer, "ɾ³ý¿ç·þ°ñµ¥¼ÙÊý¾Ý: BillboardDataCross ÀàÐÍ ·Ö×éÖµ1 ·Ö×éÖµ2")
|
GameWorld.DebugAnswer(curPlayer, "ÔËÓª»î¶¯°ñÀàÐÍ:150-³äÖµ(·Ö×éÖµ1ÅäÖÃID)")
|
GameWorld.DebugAnswer(curPlayer, "ÔËÓª»î¶¯°ñÀàÐÍ:158-bossƾ֤,160-ƾ֤ÏÉÃË,162-ÏÉÏ»,163-¹Å±¦,164-Æï³è")
|
GameWorld.DebugAnswer(curPlayer, "¹ÅÉñÕ½³¡°ñÀàÐÍ:151-²ÎÓë°ñ,152-ÕÙ¼¯°ñ,153-»ý·Ö°ñ")
|
GameWorld.DebugAnswer(curPlayer, "Öð¹Íò½ç°ñÀàÐÍ:156-µ¥³¡°ñ,157-Öܰñ")
|
GameWorld.DebugAnswer(curPlayer, "¿ç·þ¾º¼¼³¡°ñµ¥:165,·Ö×éÖµ1-·ÖÇø,·Ö×éÖµ2-Èü¼¾,value2-¶Îλ")
|
GameWorld.DebugAnswer(curPlayer, "×¢:Èç¹ûûÓÐÌØÊâ˵Ã÷£¬·Ö×éÖµ1Ϊ·ÖÇøID,·Ö×é2Ϊ0")
|
return
|
|
## Ö´ÐÐÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param gmList []
|
# @return None
|
def OnExec(curPlayer, gmList):
|
|
paramLen = len(gmList)
|
if paramLen < 3:
|
__Help(curPlayer)
|
return
|
|
billboardType = gmList[0]
|
if billboardType not in ShareDefine.CrossBillboardTypeList:
|
__Help(curPlayer, "°ñµ¥ÀàÐͲ»´æÔÚ!")
|
return
|
|
GameWorld.DebugAnswer(curPlayer, "·¢ËÍÍê±Ï£¬Ö´Ðнá¹û²é¿´¿ç·þ·þÎñÆ÷!")
|
return
|
|
def OnGetMergeParam(curPlayer):
|
## ¿ç·þÃüÁî¶îÍâ²ÎÊý
|
return []
|
|
def OnMergeServerExec(gmList, tick):
|
## ¿ç·þÖ´ÐÐÃüÁî
|
|
paramLen = len(gmList)
|
if paramLen < 3:
|
return
|
|
billboardType = gmList[0]
|
groupValue1 = gmList[1]
|
groupValue2 = gmList[2]
|
|
billboardMgr = PyDataManager.GetCrossBillboardManager()
|
billboardObj = billboardMgr.GetCrossBillboard(billboardType, groupValue1, groupValue2)
|
|
curDataCount = billboardObj.GetCount()
|
maxDataCount = billboardObj.GetMaxCount()
|
|
# Çå³ý°ñµ¥¼ÙÊý¾Ý
|
if paramLen == 3:
|
billboardObj.ClearData()
|
GameWorld.Log("ɾ³ý¿ç·þ°ñµ¥(%s-%s-%s): %s Ìõ" % (billboardType, groupValue1, groupValue2, curDataCount))
|
return
|
|
count = gmList[3] if len(gmList) > 3 else 0
|
cmpValue1 = gmList[4] if len(gmList) > 4 else 0
|
cmpValue2 = gmList[5] if len(gmList) > 5 else 0
|
value1 = gmList[6] if len(gmList) > 6 else 0
|
value2 = gmList[7] if len(gmList) > 7 else 0
|
value3 = gmList[8] if len(gmList) > 8 else 0
|
value4 = gmList[9] if len(gmList) > 9 else 0
|
value5 = gmList[10] if len(gmList) > 10 else 0
|
|
id2 = 0
|
type2 = 0
|
name2 = ""
|
cmpValue3 = 0
|
|
count = min(count, maxDataCount - curDataCount)
|
FakeName = "¼ÙÃû×Ö".decode(ShareDefine.Def_Game_Character_Encoding).encode(GameWorld.GetCharacterEncoding())
|
|
for i in xrange(count):
|
dataPlayerID = 1000 + curDataCount + 1 + i
|
dataPlayerName = "%s%s" % (FakeName, dataPlayerID)
|
dataCmpValue1 = max(0, cmpValue1 - i)
|
dataCmpValue2 = max(0, cmpValue2 - i)
|
|
dataID = dataPlayerID
|
name1 = dataPlayerName
|
cmpValue = dataCmpValue1
|
cmpValue2 = dataCmpValue2
|
CrossBillboard.UpdCrossBillboard(billboardType, groupValue1, dataID, name1, name2, type2, value1, value2,
|
cmpValue, cmpValue2, cmpValue3, groupValue2, id2,
|
value3=value3, value4=value4, value5=value5)
|
|
GameWorld.Log("²åÈëÐé¼Ù°ñµ¥(%s-%s-%s): %s Ìõ" % (billboardType, groupValue1, groupValue2, count))
|
return
|
|
|