예제 #1
0
	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") #アカウント認証結果
예제 #2
0
	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") #アカウント認証結果
예제 #3
0
	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()
예제 #4
0
 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()