Exemple #1
0
def smsg_char_login(data):
    netlog.info("SMSG_CHAR_LOGIN {}".format(data))

    char_slot = -1
    for c in data.chars:
        if c.name == server.char_name:
            char_slot = c.slot
            mapserv.player_money = c.money
            mapserv.player_stats[stats.EXP]          = c.exp
            mapserv.player_stats[stats.MONEY]        = c.money
            mapserv.player_stats[stats.JOB]          = c.job
            mapserv.player_stats[stats.CHAR_POINTS]  = c.charpoints
            mapserv.player_stats[stats.HP]           = c.hp
            mapserv.player_stats[stats.MAX_HP]       = c.max_hp
            mapserv.player_stats[stats.MP]           = c.mp
            mapserv.player_stats[stats.MAX_MP]       = c.max_mp
            mapserv.player_stats[stats.WALK_SPEED]   = c.speed
            mapserv.player_stats[stats.LEVEL]        = c.level
            mapserv.player_stats[stats.SKILL_POINTS] = c.skillpoints
            break
    if char_slot < 0:
        netlog.error("CharName {} not found".format(server.char_name))
        server.close()
    else:
        cmsg_char_select(char_slot)
Exemple #2
0
    def read(self, n=-1):
        data = ''
        if n < 0:
            data = self.read_buffer
            self.read_buffer = ''
        else:
            tries = 0
            while len(self.read_buffer) < n:
                try:
                    self.read_buffer += self.recv(n - len(self.read_buffer))
                except socket.error as e:
                    tries += 1
                    if tries < 10:
                        netlog.error("socket.error %s", e)
                        time.sleep(0.2)
                    else:
                        raise

            data = self.read_buffer[:n]
            self.read_buffer = self.read_buffer[n:]

        if netlog.isEnabledFor(DEBUG):
            netlog.debug("read  " + ":".join("{:02x}".format(ord(c))
                                             for c in data))
        return data
Exemple #3
0
def smsg_char_login(data):
    netlog.info("SMSG_CHAR_LOGIN {}".format(data))

    char_slot = -1
    for c in data.chars:
        if c.name == server.char_name:
            char_slot = c.slot
            mapserv.player_money = c.money
            mapserv.player_stats[stats.EXP] = c.exp
            mapserv.player_stats[stats.MONEY] = c.money
            mapserv.player_stats[stats.JOB] = c.job
            mapserv.player_stats[stats.CHAR_POINTS] = c.charpoints
            mapserv.player_stats[stats.HP] = c.hp
            mapserv.player_stats[stats.MAX_HP] = c.max_hp
            mapserv.player_stats[stats.MP] = c.mp
            mapserv.player_stats[stats.MAX_MP] = c.max_mp
            mapserv.player_stats[stats.WALK_SPEED] = c.speed
            mapserv.player_stats[stats.LEVEL] = c.level
            mapserv.player_stats[stats.SKILL_POINTS] = c.skillpoints
            break
    if char_slot < 0:
        err_msg = "CharName {} not found".format(server.char_name)
        netlog.error(err_msg)
        server.close()
        raise Exception(err_msg)
    else:
        cmsg_char_select(char_slot)
Exemple #4
0
def smsg_connection_problem(data):
    error_codes = {
        0 : "Authentification failed",
        1 : "No servers available",
        2 : "Account already in use",
        3 : "Speed hack detected",
        8 : "Duplicated login",
    }
    msg = error_codes.get(data.code, 'code ' + str(data.code))
    netlog.error("SMSG_CONNECTION_PROBLEM %d", data.code)
    raise Exception(msg)
Exemple #5
0
def smsg_login_error(data):
    error_codes = {
        0: "Unregistered ID",
        1: "Wrong password",
        2: "Account expired",
        3: "Rejected from server",
        4: "Permban",
        5: "Client too old",
        6: "Temporary ban until {}".format(data.date),
        7: "Server overpopulated",
        9: "Username already taken",
        10: "Wrong name",
        11: "Incurrect email",
        99: "Username permanently erased" }

    netlog.error("SMSG_LOGIN_ERROR {}".format(
        error_codes.get(data.code, "Unknown error")))

    server.close()
Exemple #6
0
    def read(self, n=-1):
        data = ''
        if n < 0:
            data = self.read_buffer
            self.read_buffer = ''
        else:
            while len(self.read_buffer) < n:
                try:
                    self.read_buffer += self.recv(n - len(self.read_buffer))
                except socket.error as e:
                    netlog.error("socket.error %s", e)
                    break
            data = self.read_buffer[:n]
            self.read_buffer = self.read_buffer[n:]

        if netlog.isEnabledFor(DEBUG):
            netlog.debug("read  " + ":".join("{:02x}".format(ord(c))
                                             for c in data))
        return data
Exemple #7
0
def smsg_login_error(data):
    error_codes = {
        0: "Unregistered ID",
        1: "Wrong password",
        2: "Account expired",
        3: "Rejected from server",
        4: "Permban",
        5: "Client too old",
        6: "Temporary ban until {}".format(data.date),
        7: "Server overpopulated",
        9: "Username already taken",
        10: "Wrong name",
        11: "Incurrect email",
        99: "Username permanently erased"
    }

    netlog.error("SMSG_LOGIN_ERROR {}".format(
        error_codes.get(data.code, "Unknown error")))

    server.close()
Exemple #8
0
def smsg_char_login_error(data):
    netlog.error("SMSG_CHAR_LOGIN_ERROR (code={})".format(data.code))
    server.close()
Exemple #9
0
def smsg_char_login_error(data):
    err_msg = "SMSG_CHAR_LOGIN_ERROR (code={})".format(data.code)
    netlog.error(err_msg)
    server.close()
    raise Exception(err_msg)
Exemple #10
0
def smsg_connection_problem(data):
    error_codes = {
        2 : "Account already in use"
    }
    msg = error_codes.get(data.code, str(data.code))
    netlog.error("SMSG_CONNECTION_PROBLEM {}".format(msg))