def run(self): while self.m_bConnected: try: sData = self.m_oSocket.recv(1024 * 1024) if sData: print(sData) if sData == "CloseConnect": self.Disconnected("Client Close Connect") return dData = json.loads(sData) account = dData['account'] password = dData['password'] #print(account),password if "score" in dData: print("sava score") score = dData['score'] time = dData['time'] pubglobalmanager.CallManagerFunc( defines.DEMO, "SaveScore", self.m_ID, account, score, time) else: print("login") pubglobalmanager.CallManagerFunc( defines.DEMO, "Login", self.m_ID, account, password) except: self.Disconnected("recvfail") return try: self.Recv(sData) except: pubdefines.PythonError("recvfail2")
def QueryLoginMsg(self, dData): sSql = self.GetLoginQuerySql() resultList = pubglobalmanager.CallManagerFunc( defines.DBCTRL_MANAGER_NAME, "Query", sSql) if resultList: for item in resultList: if dData["id"] == item[0]: if dData["password"] == item[1]: return {"action": "canLogin"} else: return {"action": "cannotLogin"} sSql = self.GetLoginCreateSql(dData) pubglobalmanager.CallManagerFunc(defines.DBCTRL_MANAGER_NAME, "ExecSql", sSql) return {"action": "newLogin"}
def Call_Out(oFunc, iDelay, sKey): if not iDelay: pubdefines.FormatPrint("回调时间不能为0") return if not oFunc: return pubglobalmanager.CallManagerFunc(defines.TIME_CONTRL_MANAGER, "Register", oFunc, iDelay, sKey)
def Load(self): sSql = self.GetQuerySql() resultList = pubglobalmanager.CallManagerFunc(defines.DBCTRL_MANAGER_NAME, "Query", sSql) if resultList: sData = resultList[0][0] self.m_Data = marshal.loads(sData) return True return False
def AddUser(self): _sql = "insert into user values('%s', '%s')" % (self.username, self.password) res = pubglobalmanager.CallManagerFunc('dbctrl', 'ExecSql', _sql) if res == 0: return True else: return False
def CheckLogin(self): _sql = "select password from user where username='******'" % self.username res = pubglobalmanager.CallManagerFunc('dbctrl', 'Query', _sql) if res: #判断用户名是否存在,不存在则新建一个 if (res[0][0] == self.password): #判断密码是否正确 return True else: return False else: return self.AddUser()
def GetRank(self): result = [] rankinfo = {} _sql = "select * from rank order by score desc limit %s" % self.count res = pubglobalmanager.CallManagerFunc('dbctrl', 'Query', _sql) if res: for _res in res: rankinfo = {'username': _res[1], 'score': _res[2]} result.append(rankinfo) return result
def GetRankMsg(self): sSql = self.GetRListQuerySql() resultList = pubglobalmanager.CallManagerFunc( defines.DBCTRL_MANAGER_NAME, "Query", sSql) dataList = [] for item in resultList: data = {} data["name"] = item[0] data["score"] = item[1] dataList.append(data) return {"data": dataList}
def OnLoginCommand(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "UserLogin", oClient, dData)
def SetLoginMsg(self, dData): sSql = self.GetLoginCreateSql(dData) pubglobalmanager.CallManagerFunc(defines.DBCTRL_MANAGER_NAME, "ExecSql", sSql)
def Remove_Call_Out(sKey): pubglobalmanager.CallManagerFunc(defines.TIME_CONTRL_MANAGER, "UnRegister", sKey)
def OnLogin(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "Login", oClient, dData)
def Stop(): pubglobalmanager.CallManagerFunc(defines.TIME_CONTRL_MANAGER, "Stop")
def OnCommand3(oClient, dData): if dData["actionType"] == "updateGame": pubglobalmanager.CallManagerFunc("tetris", "updateStage", oClient, dData)
def Submit(self, username, score): _sql = "insert into rank values(DEFAULT,'%s', %s)" % (username, score) pubglobalmanager.CallManagerFunc('dbctrl', 'ExecSql', _sql)
def OnCommand(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "CalPos", oClient, dData)
def Save(self): sSql = self.GetUpdateSql() pubglobalmanager.CallManagerFunc(defines.DBCTRL_MANAGER_NAME, "ExecSql", sSql)
def OnSetRListCommand(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "SetRankingList", oClient, dData)
def OnGetRankList(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "GetRankList", oClient, dData)
def OnSubmitScore(oClient, dData): pubglobalmanager.CallManagerFunc("demo", "SubmitScore", oClient, dData)
def AddRankMsg(self, dData): sSql = self.GetRListCreateSql(dData) pubglobalmanager.CallManagerFunc(defines.DBCTRL_MANAGER_NAME, "ExecSql", sSql)
def Record(): pubglobalmanager.CallManagerFunc("tetris", "NewItem")
def Record(): pubglobalmanager.CallManagerFunc("demo", "NewItem")
def OnCommand(oClient, dData): if dData["actionType"] == "left" or dData[ "actionType"] == "right" or dData["actionType"] == "down": pubglobalmanager.CallManagerFunc("tetris", "CalMove", oClient, dData) elif dData["actionType"] == "rotate": pubglobalmanager.CallManagerFunc("tetris", "CalRotate", oClient, dData)
def Disconnected(self, sReason): pubglobalmanager.CallManagerFunc(defines.SOCKET_MANAGER, "Disconnected", self.m_ID, sReason)
def OnCommand2(oClient, dData): if dData["actionType"] == "initGame": print "initGame" pubglobalmanager.CallManagerFunc("tetris", "initGame", oClient, dData)