hxp
2025-06-03 4cdd576855c6e22d986ece4b18f7c80d82cefe38
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
#!/usr/bin/python
# -*- coding: GBK -*-
 
##@package PlayerRequest
# ÇëÇóÂß¼­´¦Àí
#
# @author Mark
# @date 2010-4-28
# @version 1.0
#
# ÐÞ¸Äʱ¼ä ÐÞ¸ÄÈË ÐÞ¸ÄÄÚÈÝ
# VER = "2010-05-12 18:30" zhengyang Ìí¼Ó×¢ÊÍ
#
# Ä£¿éÏêϸ˵Ã÷
#---------------------------------------------------------------------
import GameWorld
import ChConfig
#---------------------------------------------------------------------
 
#---------------------------------------------------------------------
## ÅжÏÍæ¼ÒÊÇ·ñÓÐÏàͬµÄÇëÇó 
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param curTagPlayer Ä¿±êÍæ¼Ò
#  @param requestType ÇëÇóÀàÐÍ
#  @return True or False
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def CheckRequest(curPlayer,curTagPlayer,requestType):
    if curTagPlayer == None:
        return False
    
    curTagPlayerID = curTagPlayer.GetPlayerID()
    #Íæ¼ÒÇëÇó´ÎÊý
    requestCount = curPlayer.GetRequestCount()
    for i in range(0,requestCount):
        requestID = curPlayer.GetRequestID(i)
        type = curPlayer.GetRequestType(i)
        if requestID == curTagPlayerID and type == requestType:
            #GameWorld.Log("curTagID = %dÇëÇó¼ì²éͨ¹ý"%requestID)
            return True
        
    GameWorld.Log("Ë«·½ÇëÇóID²»Í¬»ò×é¶ÓÀàÐͲ»ÕýÈ·" , curPlayer.GetPlayerID(), curTagPlayerID)
    #GameWorld.Log("ÇëÇóʧ°Ü")
    return False
 
## Ë¢ÐÂÍæ¼ÒÇëÇó
#  @param curPlayer µ±Ç°Íæ¼Ò
#  @param tick µ±Ç°Ê±¼ä
#  @return None
#  @remarks º¯ÊýÏêϸ˵Ã÷.
def ProcessPlayerRequest(curPlayer, tick):
    if tick - curPlayer.GetTickByType(ChConfig.TYPE_Player_Tick_PlayerRequest) <= ChConfig.TYPE_Player_Tick_Time[ChConfig.TYPE_Player_Tick_PlayerRequest]:
        #ûÓе½Ë¢Ð¼ä¸ô
        return
    
    curPlayer.SetTickByType(ChConfig.TYPE_Player_Tick_PlayerRequest, tick)
    
    #µ¥Î»Ê±¼äË¢ÐÂÒ»´Î
    #Íæ¼ÒÇëÇó´ÎÊý
    requestCount = curPlayer.GetRequestCount()
    curIndex = 0
    while curIndex < requestCount:  
        #»ñµÃÇëÇó¿ªÊ¼Ê±¼ä
        requestTick = curPlayer.GetRequestTick(curIndex)
        if requestTick == 0:
            curIndex += 1
            continue
        
        #»ñµÃÇëÇó×î´óʱ¼ä
        requestMaxTick = curPlayer.GetRequestMaxTick(curIndex)
        if (tick - requestTick) < requestMaxTick:
            curIndex += 1
            continue
        
        curPlayer.DeleteRequest(curIndex)
        #GameWorld.Log("ÇëÇóÏìÓ¦ = %s³¬Ê±,״̬ÒÑÇå³ý"%(curIndex) , curPlayer.GetPlayerID())
        requestCount = curPlayer.GetRequestCount()
    
    return