#!/usr/bin/python
|
# -*- coding: GBK -*-
|
#-------------------------------------------------------------------------------
|
#
|
#-------------------------------------------------------------------------------
|
#
|
##@package Commands.SetMergePKInfo
|
#
|
# @todo:ÉèÖÿç·þPK»ý·Ö
|
# @author hxp
|
# @date 2015-10-26
|
# @version 1.3
|
#
|
# @change: "2015-11-05 12:00" hxp Ôö¼Ó¿ÉÉèÖõ±Ç°Á¬Ê¤³¡Êý
|
# @change: "2015-11-19 20:00" hxp Èç¹ûûÔÚ¿ç·þÖܰñÉÏ£¬ÔòÌí¼ÓÒ»Ìõмͼ
|
# @change: "2016-12-20 17:30" hxp Âß¼ÐÞ¸Ä
|
# ÏêϸÃèÊö: ÉèÖÿç·þPK»ý·Ö; ²ÎÊý[»ý·Ö, pk´ÎÊý, ʤÀû´ÎÊý, µ±Ç°Á¬Ê¤, ×î´óÁ¬Ê¤]
|
#
|
#---------------------------------------------------------------------
|
#"""Version = 2016-12-20 17:30"""
|
#---------------------------------------------------------------------
|
|
import GameWorld
|
import GameWorldMergePK
|
import PlayerBillboard
|
import ShareDefine
|
|
# µ¼Èë
|
#------------------------------------------------------------------------------
|
|
## Ö´ÐÐÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param cmdList ²ÎÊýÁбí
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnExec(curPlayer, cmdList):
|
tick = GameWorld.GetGameWorld().GetTick()
|
cmdList.extend(OnGetMergeParam(curPlayer))
|
__DoSetMergePKScore(curPlayer, cmdList, tick)
|
return
|
|
## ·¢Ë͵½¿ç·þ·þÎñÆ÷µÄÀ©Õ¹²ÎÊýÁбí
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @return None
|
# @remarks
|
def OnGetMergeParam(curPlayer):
|
GameWorld.DebugAnswer(curPlayer, "SetMergePKInfo [°ñµ¥ÀàÐÍ, »ý·Ö, pk´ÎÊý, ʤÀû´ÎÊý, µ±Ç°Á¬Ê¤, ×î´óÁ¬Ê¤], ²ÎÊýÑ¡Ìî!")
|
GameWorld.DebugAnswer(curPlayer, "°ñµ¥ÀàÐÍ: µ±ÈÕ-91, Èü¼¾-92")
|
GameWorld.DebugAnswer(curPlayer, "SetMergePKInfo 0 ¿ÉÖØÖÃËùÓаñµ¥")
|
return [curPlayer.GetPlayerID(), curPlayer.GetName(), curPlayer.GetJob(), curPlayer.GetFightPower()]
|
|
## ¿ç·þ·þÎñÆ÷Ö´ÐÐÂß¼
|
# @param curPlayer µ±Ç°Íæ¼Ò
|
# @param cmdList ²ÎÊý
|
# @return None
|
# @remarks º¯ÊýÏêϸ˵Ã÷.
|
def OnMergeServerExec(cmdList, tick):
|
__DoSetMergePKScore(None, cmdList, tick)
|
return
|
|
def __DoSetMergePKScore(curPlayer, cmdList, tick):
|
GameWorld.Log("GMÃüÁîÉèÖÿç·þPKÐÅÏ¢£º cmdList=%s" % str(cmdList))
|
playerID, playerName, job, fightPower = cmdList[-4:]
|
cmdList = cmdList[:-4]
|
|
if len(cmdList) > 0 and cmdList[0] == "0":
|
PlayerBillboard.ClearBillboardByIndex(ShareDefine.Def_BT_MergePKDay)
|
PlayerBillboard.ClearBillboardByIndex(ShareDefine.Def_BT_MergePKWeek)
|
GameWorldMergePK.__SyncBillboardToClientServer(True, tick)
|
return
|
|
#°ñµ¥ÀàÐÍ, »ý·Ö, pk´ÎÊý, ʤÀû´ÎÊý, µ±Ç°Á¬Ê¤, ×î´óÁ¬Ê¤
|
if not cmdList:
|
return
|
bbType = GameWorld.ToIntDef(cmdList[0])
|
if bbType not in [ShareDefine.Def_BT_MergePKDay, ShareDefine.Def_BT_MergePKWeek]:
|
return
|
cmdList = cmdList[1:]
|
addScore = GameWorld.ToIntDef(cmdList[0]) if len(cmdList) > 0 else None
|
pkCnt = GameWorld.ToIntDef(cmdList[1]) if len(cmdList) > 1 else None
|
winCnt = GameWorld.ToIntDef(cmdList[2]) if len(cmdList) > 2 else None
|
cWinCnt = GameWorld.ToIntDef(cmdList[3]) if len(cmdList) > 3 else None
|
maxCWinCnt = GameWorld.ToIntDef(cmdList[4]) if len(cmdList) > 4 else None
|
|
billBoard, bbData = GameWorldMergePK.GetMatchPlayerBillboardData(bbType, playerID, True)
|
if not billBoard or not bbData:
|
return
|
|
GameWorldMergePK.SetBBPlayerID(bbData, playerID)
|
GameWorldMergePK.SetBBPlayerName(bbData, playerName)
|
GameWorldMergePK.SetBBPlayerJob(bbData, job)
|
GameWorldMergePK.SetBBFightPower(bbData, fightPower)
|
if addScore != None:
|
GameWorldMergePK.SetBBMergePKScore(bbData, addScore)
|
if pkCnt != None:
|
GameWorldMergePK.SetBBMergePKCnt(bbData, pkCnt)
|
if winCnt != None:
|
GameWorldMergePK.SetBBMergePKWinCnt(bbData, winCnt)
|
if cWinCnt != None:
|
GameWorldMergePK.SetBBMergePKCWinCnt(bbData, cWinCnt)
|
if maxCWinCnt != None:
|
GameWorldMergePK.SetBBMergePKMaxCWinCnt(bbData, maxCWinCnt)
|
|
billBoard.Sort()
|
|
GameWorldMergePK.__SyncBillboardToClientServer(True, tick)
|
|
return
|
|
|
|