def do_001f(self, data_io): #認証情報 username = io_unpack_str(data_io) password_sha1 = io_unpack_raw(data_io)[:40] general.log("[login]", "login", username, password_sha1) for user in users.get_user_list(): with user.lock: if user.name != username: continue user_password_sha1 = hashlib.sha1( "".join((str(unpack_unsigned_int(self.word_front)), user.password, str(unpack_unsigned_int(self.word_back)), ))).hexdigest() if user_password_sha1 != password_sha1: self.send("0020", user, "wloginfaild") #アカウント認証結果 return if user.wlogin_client: user.wreset_login() self.send("0020", user, "wisonline") #アカウント認証結果 return user.wreset_login() user.wlogin_client = self self.user = user self.send("0020", user, "wloginsucess") #アカウント認証結果 self.send("0028", user) #4キャラクターの基本属性 self.send("0029", user) #4キャラクターの装備 break else: self.send("0020", user, "wloginfaild") #アカウント認証結果
def do_001f(self, data_io): #認証情報 username = io_unpack_str(data_io) password_sha1 = io_unpack_raw(data_io)[:40] general.log("[login]", "login", username, password_sha1) for user in users.get_user_list(): with user.lock: if user.name != username: continue user_password_sha1 = hashlib.sha1( "".join((str(unpack_unsigned_int(self.word_front)), user.password, str(unpack_unsigned_int(self.word_back)), ))).hexdigest() if user_password_sha1 != password_sha1: self.send("0020", user, "loginfaild") #アカウント認証結果 return if user.login_client: user.reset_login() self.send("0020", user, "isonline") #アカウント認証結果 return user.reset_login() user.login_client = self self.user = user self.send("0020", user, "loginsucess") #アカウント認証結果 self.send("0028", user) #4キャラクターの基本属性 self.send("0029", user) #4キャラクターの装備 break else: self.send("0020", user, "loginfaild") #アカウント認証結果
def do_0010(self, data_io): #マップサーバーに認証情報の送信 username = io_unpack_str(data_io) password_sha1 = io_unpack_raw(data_io)[:40] general.log("[ map ]", "login", username, password_sha1) for user in users.get_user_list(): with user.lock: if user.name != username: continue user_password_sha1 = hashlib.sha1( "".join((str(unpack_unsigned_int(self.word_front)), user.password, str(unpack_unsigned_int(self.word_back)), ))).hexdigest() if user_password_sha1 != password_sha1: self.stop() return user.reset_map() user.map_client = self self.user = user self.send("0011") #認証結果(マップサーバーに認証情報の送信(s0010)に対する応答) break else: self.stop()
def do_0010(self, data_io): #マップサーバーに認証情報の送信 username = io_unpack_str(data_io) password_sha1 = io_unpack_raw(data_io)[:40] general.log("[ map ]", "login", username, password_sha1) for user in users.get_user_list(): with user.lock: if user.name != username: continue user_password_sha1 = hashlib.sha1("".join(( str(unpack_unsigned_int(self.word_front)), user.password, str(unpack_unsigned_int(self.word_back)), ))).hexdigest() if user_password_sha1 != password_sha1: self.stop() return user.reset_map() user.map_client = self self.user = user self.send("0011") #認証結果(マップサーバーに認証情報の送信(s0010)に対する応答) break else: self.stop()