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
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#!/usr/bin/python
# -*- coding: GBK -*-
#
#
##@package AILoginIn
# @todo: ×Ô¶¯×é¶Ó£¬¼Ó°ï»á£¬¼ÓºÃÓÑ
#
# @author:whx
# @date 2012-01-13 15:30
# @version 1.0
 
# ¼òҪ˵Ã÷ ×Ô¶¯×é¶Ó£¬¼Ó°ï»á£¬¼ÓºÃÓÑ
# ÏêϸÃèÊö None
 
import base64
from AI.AIBase import *
from Protocol.PacketsSend import tagCJoinFriendAnswer
from Protocol.PacketsSend import tagCTeamReq
from Protocol.PacketsSend import tagAskJoinFamilyReply
import logging
import datetime
import time
 
from Robot.PlayerData import PlayerData
 
VER = "2012-01-13 15:30"
 
 
## µÇ½µÄʱºò¿ªÆô
#
# ¼Ì³ÐAIBase
class AIAutoAnswer(AIBase):
    
    ## ËùÓÐAI±ØÐë²ÉÓÃÕâÖй̶¨µÄ³õʼ»¯Ô­ÐÍ£¬ÒÔ±ãAIMgr×Ô¶¯¼ÓÔØ
    #  @param None : None
    #  @return bool
    #  @remarks ´ËAI²»ÐèÒªÖÜÆÚÐÔ±»µ÷Óã¬ËùÒÔÉèÖÃΪ²»ÆôÓÃTimer
    def __init__(self, robot):
        #´ËAI²»ÐèÒªÖÜÆÚÐÔ±»µ÷Óã¬ËùÒÔÉèÖÃΪ²»ÆôÓÃTimer
        AIBase.__init__(self, robot, 0, False, False)
        self.SetActive(True)
        self.MapID = 0
 
    
    ## ÏòAIMgr×¢²áÏûÏ¢»Øµ÷º¯Êý
    #  @param None : None
    #  @return bool
    #  @remarks 
    def _RegisterPacket(self, aiMgr):
        #ÊÇ·ñ¼ÓΪºÃÓÑ
        aiMgr.RegNetMsg(0x1101, self.AskJoinFriend, True)
        #ÊÇ·ñ×é¶Ó
        aiMgr.RegNetMsg(0x0901, self.OnInviteTeam, True)
        #ÊÇ·ñ¼ÓÈë°ï»á
        aiMgr.RegNetMsg(0x0F04, self.OnInviteFamily, True)
        
    
    ## ÊÇ·ñ¼ÓΪºÃÓÑ
    #  @param packData : ·â°ü¶ÔÏó
    #  @return None
    #  @remarks None
    def AskJoinFriend(self, packData):
        
        queryName = packData.LeaderName  # ÑûÇëÈ˵ÄÃû×Ö
        queryID = packData.LeaderID  # ÑûÇëÈ˵ÄID
        
        self.SendPackJoinFriend(queryID)
        
        return
    
    
    ## ÊÇ·ñ×é¶Ó
    #  @param packData : ·â°ü¶ÔÏó
    #  @return None
    #  @remarks None
    def OnInviteTeam(self, packData):
        headerName = packData.Name  # ÑûÇëÈ˵ÄÃû×Ö
        headerID = packData.LeaderID  # ÑûÇëÈ˵ÄID
        teamType = packData.TeamType  # ×é¶ÓÀàÐÍ£¨1£ºÆÕͨ×é¶Ó£»2£ºÈÙÓþ×é¶Ó£©
        
        #·¢°ü½ÓÊÜ×é¶Ó
        self.SendPackJoinTeam(headerID, teamType)
        
        return
    
    
    ## ÊÇ·ñ¼ÓÈë°ï»á
    #  @param packData : ·â°ü¶ÔÏó
    #  @return None
    #  @remarks None
    def OnInviteFamily(self, packData):
        shaikhName = packData.LeaderName  # ÑûÇëÈ˵ÄÃû×Ö
        shaikhID = packData.LeaderID  # ÑûÇëÈ˵ÄID
        familyName = packData.FamilyName  # ¼Ò×åÃû
        familyID = packData.FamilyID  # ¼Ò×åID
        
        #·¢°ü½ÓÊܼÓÈë°ï»á
        self.SendPackJoinFamily(shaikhID)
        
        return
        
    
    ## ·¢°ü½ÓÊܼÓÈë°ï»á
    #  @param tagId : Ä¿±êid
    #  @return None
    #  @remarks None
    def SendPackJoinFamily(self, tagId):
        joinFamily = tagAskJoinFamilyReply()
        joinFamily.TagPlayerID = tagId
        joinFamily.IsOK = 1
        
        self.robot.Send(joinFamily)
        
        
    ## ·¢°ü½ÓÊÜ×é¶Ó
    #  @param tagId : Ä¿±êid
    #  @return None
    #  @remarks None
    def SendPackJoinTeam(self, tagId, teamType):
        joinTeam = tagCTeamReq()
        joinTeam.PlayerID = tagId
        joinTeam.TeamType = teamType  # ÆÕͨ×é¶Ó
        joinTeam.Type = 1  # ½ÓÊÜÆÕͨ×é¶ÓÑûÇë
        
        self.robot.Send(joinTeam)
    
    
    ## ·¢°ü½ÓÊܼÓΪºÃÓÑ
    #  @param tagId : Ä¿±êid
    #  @return None
    #  @remarks None
    def SendPackJoinFriend(self, tagId):
        joinFriend = tagCJoinFriendAnswer()
        joinFriend.Clear()
        joinFriend.TagID = tagId
        joinFriend.Answer = 1  # ½ÓÊܼÓΪºÃÓÑ
        self.robot.Send(joinFriend)