xdh
2018-11-19 76aaa2bc9a47e1896638740312affe1ec61f2334
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
#!/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