def sendIgnoredsList(self, player, tribulleID):
     p = ByteArray()
     p.writeInt(tribulleID)
     p.writeShort(len(player.ignoredsList))
     for ignored in player.ignoredsList:
         p.writeUTF(ignored)
     self.sendTribullePacket(player, 47, p.toByteArray())
    def sendFriendsList(self, player):
        p = ByteArray()
        if player.marriage in self.users.players:
            marriage = self.users.players[player.marriage]
            p.writeBytes(self.getPlayerOnlineData(player, marriage))
        elif self.users.checkPlayerNameExist(player.marriage):
            name, tag = player.marriage.split("#")
            pool = self.server.database.execute(
                "SELECT * FROM users WHERE playerName = %s AND playerTag = %s",
                (name, tag))
            results = self.server.database.fetchone(pool)
            p.writeBytes(self.getPlayerDBData(player, results))
        else:
            p.writeBytes(self.getPlayerNoData())

        p.writeShort(len(player.friendsList))
        for friend in player.friendsList:
            if friend in self.users.players:
                f = self.users.players[friend]
                p.writeBytes(self.getPlayerOnlineData(player, f))
            elif self.users.checkPlayerNameExist(friend):
                name, tag = friend.split("#")
                pool = self.server.database.execute(
                    "SELECT * FROM users WHERE playerName = %s AND playerTag = %s",
                    (name, tag))
                results = self.server.database.fetchone(pool)
                p.writeBytes(self.getPlayerDBData(player, results))
            else:
                p.writeBytes(self.getPlayerNoData())

        self.sendTribullePacket(player, 34, p.toByteArray())
Esempio n. 3
0
 def sendNewConsumable(self, player, consumable, count):
     player.playerConsumables[consumable] = count
     packet = ByteArray()
     packet.writeByte(0)
     packet.writeUnsignedShort(consumable)
     packet.writeUnsignedShort(count)
     self.users.sendPacket(player.channel, [100, 67], packet.toByteArray())
 def sendChatQuem(self, player, tribulleID, chatName):
     quem = self.server.chats[
         chatName] if chatName in self.server.chats else []
     p = ByteArray().writeInt(tribulleID).writeByte(
         len(quem) > 0).writeShort(len(quem))
     for playerName in quem:
         p.writeUTF(playerName)
     self.sendTribullePacket(player, 59, p.toByteArray())
	def parse(users, channel, packet, packetID):
		player = channel.player
		room = player.room

		if room.isMusic:
			p = ByteArray().writeShort(len(room.musicList))
			for playerName, data in room.musicList.items():
				p.writeUTF(playerName)
				p.writeUTF(data["items"][0]["snippet"]["title"])
			users.sendPacket(channel, [5, 73], p.toByteArray())
Esempio n. 6
0
	def parse(users, channel, packet, packetID):
		mode = packet.readByte()

		if mode == 0:
			mode = 1

		channel.player.roomsListMode = mode

		packet2 = ByteArray()
		packet2.writeByte(len(users.server.rooms.roomsType))
		for _type in users.server.rooms.roomsType:
			packet2.writeByte(_type)

		packet2.writeByte(mode)

		name = {9: "racing", 1: "", 10: "defilante", 2: "bootcamp", 8: "survivor", 3: "vanilla", 11: "music", 16: "village", 18: "minigame"}[mode]
		packet2.writeByte(1)
		packet2.writeUnsignedByte(channel.player.langueID)
		packet2.writeUTF("{} {}".format(users.server.config["name"], name))
		packet2.writeUTF(str(users.server.rooms.getPlayersCountForMode(mode)))
		packet2.writeUTF("mjj")
		packet2.writeUTF("1")

		for roomName, room in users.server.rooms.rooms.items():
			if room.roomType == mode:
				if not room.roomName[:1].lower() in ["*", "\x03"] or room.isPublic:
					if room.roomName[:2].lower() == channel.player.langue.lower() or room.isPublic:
						packet2.writeByte(0)
						packet2.writeUnsignedByte(users.server.langues.getLangueByName(room.roomName[:2]))
						packet2.writeUTF(roomName if room.isPublic else roomName[3:])
						packet2.writeUnsignedShort(users.server.rooms.getPlayersCount(room))
						packet2.writeUnsignedByte(0 if not room.isLimitedPlayers else room.maxPlayers)
						packet2.writeBoolean(room.isFuncorp)

		if mode == 8:
			if not "{}-quarentine1".format(channel.player.langue.lower()) in users.server.rooms.rooms:
				packet2.writeByte(0)
				packet2.writeUnsignedByte(users.server.langues.getLangueByName(channel.player.langue.lower()))
				packet2.writeUTF("quarentine1")
				packet2.writeUnsignedShort(0)
				packet2.writeUnsignedByte(0)
				packet2.writeBoolean(False)

		if mode == 9:
			if not "{}-fastracing1".format(channel.player.langue.lower()) in users.server.rooms.rooms:
				packet2.writeByte(0)
				packet2.writeUnsignedByte(users.server.langues.getLangueByName(channel.player.langue.lower()))
				packet2.writeUTF("fastracing1")
				packet2.writeUnsignedShort(0)
				packet2.writeUnsignedByte(0)
				packet2.writeBoolean(False)

		users.sendPacket(channel, [26, 35], packet2.toByteArray())
Esempio n. 7
0
	def openMissions(self, player):
		packet = ByteArray()
		packet.writeUnsignedByte(len(list(player.missions)))
		for id, values in player.missions.items():
			packet.writeUnsignedShort(id)
			packet.writeUnsignedByte(values[0])
			packet.writeUnsignedShort(values[1])
			packet.writeUnsignedShort(values[2])
			packet.writeUnsignedShort(values[3])
			packet.writeUnsignedShort(0)
			packet.writeBoolean(False)
		self.users.sendPacket(player.channel, [144, 3], packet.toByteArray())
Esempio n. 8
0
 def sendShamanLook(self, player):
     p = ByteArray()
     count = 0
     for item in player.shamanLook.split(","):
         realItem = int(item.split("_")[0]) if "_" in item else int(item)
         if realItem != 0:
             p.writeShort(realItem)
             count += 1
     self.users.sendPacket(
         player.channel, [20, 24],
         ByteArray().writeShort(count).writeBytes(
             p.toByteArray()).toByteArray())
    def joinTribulle(self, player):
        self.users.sendPacket(player.channel, [60, 4],
                              ByteArray().writeBoolean(True).toByteArray())

        p = ByteArray().writeByte(player.gender).writeInt(player.playerID)

        if player.marriage in self.users.players:
            marriage = self.users.players[player.marriage]
            p.writeBytes(self.getPlayerOnlineData(player, marriage))
        elif self.users.checkPlayerNameExist(player.marriage):
            name, tag = player.marriage.split("#")
            pool = self.server.database.execute(
                "SELECT * FROM users WHERE playerName = %s AND playerTag = %s",
                (name, tag))
            results = self.server.database.fetchone(pool)
            p.writeBytes(self.getPlayerDBData(player, results))
        else:
            p.writeBytes(self.getPlayerNoData())

        p.writeShort(len(player.friendsList))
        for friend in player.friendsList:
            if friend in self.users.players:
                f = self.users.players[friend]
                p.writeBytes(self.getPlayerOnlineData(player, f))
            elif self.users.checkPlayerNameExist(friend):
                name, tag = friend.split("#")
                pool = self.server.database.execute(
                    "SELECT * FROM users WHERE playerName = %s AND playerTag = %s",
                    (name, tag))
                results = self.server.database.fetchone(pool)
                p.writeBytes(self.getPlayerDBData(player, results))
            else:
                p.writeBytes(self.getPlayerNoData())

        p.writeShort(len(player.ignoredsList))
        for ignored in player.ignoredsList:
            p.writeUTF(ignored)

        if player.tribe != None:
            p.writeUTF(self.session.tribe.tribeName).writeInt(
                self.session.tribe.tribeID).writeUTF(
                    self.session.tribe.tribeMessage).writeInt(
                        self.session.tribe.tribeHouse).writeUTF(
                            self.session.tribe.tribeRanks).writeInt(
                                self.session.user["tribe_rank"])
        else:
            p.writeUTF("").writeInt(0).writeUTF("").writeInt(0).writeUTF(
                "").writeInt(0)

        self.sendTribullePacket(player, 3, p.toByteArray())

        for friend in self.getFriendsClass(player):
            self.server.tribulle.sendFriendConnected(player, friend)
Esempio n. 10
0
	def parse(users, channel, packet, packetID):
		if len(users.server.cache.captchaCaches) >= 100:
			letter = random.choice(list(users.server.cache.captchaCaches))
			img = users.server.cache.captchaCaches[letter]
		else:
			letter, img = users.server.captcha.getCaptcha(4)
			users.server.cache.captchaCaches[letter] = img

		channel.player.captcha = letter.upper()

		width, height = img.size
		pixelsCount = 0

		pixels = ByteArray()
		p2 = ByteArray()
		p2.writeByte(0)
		p2.writeShort(width)
		p2.writeShort(height)

		for row in range(height):
			for col in range(width):
				pix = img.getpixel((col, row))
				pixels.writeUnsignedByte(pix[0])
				pixels.writeUnsignedByte(pix[1])
				pixels.writeUnsignedByte(pix[2])
				pixels.writeUnsignedByte(0)
				pixelsCount += 1

		p2.writeShort(pixelsCount)
		p2.writeBytes(pixels.toByteArray())

		zlibCompress = zlib.compress(p2.toByteArray())

		p3 = ByteArray()
		p3.writeInt(len(zlibCompress))
		p3.writeBytes(zlibCompress)

		users.sendPacket(channel, [26, 20], p3.toByteArray())
Esempio n. 11
0
    def useConsumable(self, player, consumable):
        if consumable in list(player.playerConsumables):
            player.playerConsumables[consumable] -= 1
            if player.playerConsumables[consumable] < 1:
                del player.playerConsumables[consumable]
                self.updateInventory(player, consumable, 0)
            else:
                self.updateInventory(player, consumable,
                                     player.playerConsumables[consumable])

            packet = ByteArray()
            packet.writeInt(player.playerCode)
            packet.writeUnsignedShort(consumable)
            self.server.rooms.sendAll(player.room, [31, 3],
                                      packet.toByteArray())
Esempio n. 12
0
 def getShamanItemCustom(self, player, code):
     item = player.shamanItems
     for item in player.shamanItems:
         if "_" in item:
             itemSplited = item.split("_")
             custom = (itemSplited[1]
                       if len(itemSplited) >= 2 else "").split("+")
             custom = list(filter(str, custom))
             if int(itemSplited[0]) == code:
                 p = ByteArray().writeByte(len(custom))
                 x = 0
                 while x < len(custom):
                     p.writeInt(int(custom[x], 16))
                     x += 1
                 return p.toByteArray()
     return b"\x00"
Esempio n. 13
0
 def sendChatLog(self, player, player2):
     packet = ByteArray()
     packet.writeUTF(self.server.users.parsePlayerName(player2))
     packet.writeByte(len(list(player2.chatLog["room"])))
     for message in player2.chatLog["room"]:
         packet.writeUTF(message)
         packet.writeUTF("")
     packet.writeByte(len(list(player2.chatLog["whisper"])))
     for playerName, messages in player2.chatLog["whisper"].items():
         packet.writeUTF(playerName)
         packet.writeByte(len(messages))
         for message in messages:
             packet.writeUTF(message)
             packet.writeUTF("")
     self.server.users.sendPacket(player.channel, [25, 10],
                                  packet.toByteArray())
Esempio n. 14
0
 def sendLookChange(self, player):
     p = ByteArray()
     look = player.playerLook.split(";")
     p.writeShort(int(look[0]))
     for item in look[1].split(","):
         if "_" in item:
             itemSplited = item.split("_")
             realItem = itemSplited[0]
             custom = itemSplited[1] if len(itemSplited) >= 2 else ""
             realCustom = [] if custom == "" else custom.split("+")
             p.writeInt(int(realItem)).writeByte(len(realCustom))
             for cust in realCustom:
                 p.writeInt(int(cust, 16))
         else:
             p.writeInt(int(item)).writeByte(0)
     p.writeInt(int(player.mouseColor, 16))
     self.users.sendPacket(player.channel, [20, 17], p.toByteArray())
Esempio n. 15
0
 def openInventory(self, player):
     packet = ByteArray()
     packet.writeShort(len(list(player.playerConsumables)))
     for id, count in player.playerConsumables.items():
         packet.writeShort(id)
         packet.writeUnsignedByte(250 if count > 250 else count)
         packet.writeUnsignedByte(0)
         packet.writeBoolean(True)
         packet.writeBoolean(True)
         packet.writeBoolean(True)
         packet.writeBoolean(True)
         packet.writeBoolean(True)
         packet.writeBoolean(False)
         packet.writeBoolean(False)
         packet.writeUnsignedByte(
             player.equipedConsumables.index(id) +
             1 if id in player.equipedConsumables else 0)
     self.users.sendPacket(player.channel, [31, 1], packet.toByteArray())
Esempio n. 16
0
    def parse(users, channel, packet, packetID):
        player = channel.player

        chatID = packet.readByte()
        message = String.filtreChatString(packet.readUTF())

        k = ByteArray().writeByte(chatID).writeUTF(
            users.parsePlayerName(player)).writeUTF(message).writeBoolean(
                False).writeBoolean(False).writeByte(0)
        for player2 in users.players.values():
            if chatID == 0 and player.privLevel >= 5:
                users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 1 and player.privLevel >= 5:
                users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 2 and player.privLevel >= 3:
                if player2.privLevel >= 3 and player2.langueID == player.langueID:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 3 and player.privLevel >= 5:
                if player2.privLevel >= 5 and player2.langueID == player.langueID:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 4 and player.privLevel >= 5:
                if player2.privLevel >= 5:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 5 and player.privLevel >= 3:
                if player2.privLevel >= 3:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 7 and player.isMapcrew:
                if player2.isMapcrew and player2.langueID == player.langueID:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 8 and player.isLuacrew:
                if player2.isLuacrew and player2.langueID == player.langueID:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            elif chatID == 9 and player.isFuncorp:
                if player2.isFuncorp and player2.langueID == player.langueID:
                    users.sendPacket(player2.channel, [6, 10], k.toByteArray())
            else:
                break
    def parse(users, channel, packet, packetID):
        codePartie = packet.readInt()
        droiteEnCours = packet.readBoolean()
        gaucheEnCours = packet.readBoolean()
        px = packet.readInt()
        py = packet.readInt()
        vx = packet.readUnsignedShort()
        vy = packet.readUnsignedShort()
        jump = packet.readBoolean()
        jump_img = packet.readByte()
        portal = packet.readByte()
        isAngle = packet.bytesAvailable()
        angle = packet.readUnsignedShort() if isAngle else -1
        vel_angle = packet.readUnsignedShort() if isAngle else -1
        loc1 = packet.readBoolean() if isAngle else False
        player = channel.player
        room = player.room
        if codePartie == room.lastCodePartie:
            if droiteEnCours or gaucheEnCours:
                player.isMovingRight = droiteEnCours
                player.isMovingLeft = gaucheEnCours

                if player.isAfk:
                    player.isAfk = False
                    player.lastAfkTime = users.server.getTime()

                player.posX = px * 800 / 2700
                player.posY = py * 800 / 2700
                player.velX = vx
                player.velY = vy
                player.isJumping = jump

            packet2 = ByteArray().writeInt(
                player.playerCode).writeInt(codePartie).writeBoolean(
                    droiteEnCours).writeBoolean(gaucheEnCours).writeInt(
                        px).writeInt(py).writeUnsignedShort(
                            vx).writeUnsignedShort(vy).writeBoolean(
                                jump).writeByte(jump_img).writeByte(portal)
            if isAngle:
                packet2.writeUnsignedShort(angle).writeUnsignedShort(
                    vel_angle).writeBoolean(loc1)
            users.server.rooms.sendAllOthers(channel.player, room, [4, 4],
                                             packet2.toByteArray())
Esempio n. 18
0
    def parse(users, channel, packet, packetID):
        player = channel.player
        room = player.room

        roundCode = packet.readInt()
        if roundCode == room.lastCodePartie and room.rooms.getPlayersCount(
                room) >= 2:
            packet2 = ByteArray()
            while packet.bytesAvailable():
                packet2.writeShort(packet.readShort())
                code = packet.readShort()
                packet2.writeShort(code).writeBytes(
                    packet.readBytes(14) if code != -1 else b"")
                if code != -1:
                    packet2.writeBoolean(True)

                if ((((room.roundTime + room.addTime) * 1000) +
                     (room.gameStartTimeMillis - int(users.server.getTime())))
                        > 5000):
                    room.rooms.sendAllOthers(player, room, [4, 3],
                                             packet2.toByteArray())
Esempio n. 19
0
 def sendShopList(self, player):
     p = ByteArray().writeInt(player.shopCheeses).writeInt(
         player.shopFraises).writeUTF(player.playerLook).writeInt(
             len(player.shopItems))
     for item in player.shopItems:
         if "_" in item:
             itemSplited = item.split("_")
             realItem = itemSplited[0]
             custom = itemSplited[1] if len(itemSplited) >= 2 else ""
             realCustom = [] if custom == "" else custom.split("+")
             p.writeByte(len(realCustom) + 1).writeInt(int(realItem))
             for cust in realCustom:
                 p.writeInt(int(cust, 16))
         else:
             p.writeByte(0).writeInt(int(item))
     p.writeInt(0).writeByte(0).writeShort(len(player.clothes))
     for clothe in player.clothes:
         clotheSplited = clothe.split("/")
         p.writeUTF(clotheSplited[1] + ";" + clotheSplited[2] + ";" +
                    clotheSplited[3])
     p.writeShort(len(player.shamanItems))
     for item in player.shamanItems:
         if "_" in item:
             itemSplited = item.split("_")
             realItem = itemSplited[0]
             custom = itemSplited[1] if len(itemSplited) >= 2 else ""
             realCustom = [] if custom == "" else custom.split("+")
             p.writeShort(int(realItem)).writeBoolean(
                 item in player.shamanLook.split(",")).writeByte(
                     len(realCustom) + 1)
             for cust in realCustom:
                 p.writeInt(int(cust, 16))
         else:
             p.writeShort(int(item)).writeBoolean(
                 item in player.shamanLook.split(",")).writeByte(0)
     p.writeShort(0)
     self.users.sendPacket(player.channel, [8, 20], p.toByteArray())
Esempio n. 20
0
    def sendShamanItems(self, player):
        p = ByteArray()

        shamanItems = player.shamanItems
        p.writeShort(len(shamanItems))

        for item in shamanItems:
            if "_" in item:
                itemSplited = item.split("_")
                realItem = itemSplited[0]
                custom = itemSplited[1] if len(itemSplited) >= 2 else ""
                realCustom = [] if custom == "" else custom.split("+")
                p.writeShort(int(realItem)).writeBoolean(
                    item in player.shamanLook.split(",")).writeByte(
                        len(realCustom) + 1)
                x = 0
                while x < len(realCustom):
                    p.writeInt(int(realCustom[x], 16))
                    x += 1
            else:
                p.writeShort(int(item)).writeBoolean(
                    item in player.shamanLook.split(",")).writeByte(0)

        self.users.sendPacket(player.channel, [20, 27], p.toByteArray())
Esempio n. 21
0
    def openModoPwet(self, player):
        reports = 0
        totalReports = len(self.reports["names"])
        count = 0

        bannedList = {}
        deletedList = {}
        disconnectList = []

        p = ByteArray()

        while reports < totalReports:
            playerName = self.reports["names"][reports]
            reports += 1

            if player.modoPwetLangue == "ALL" or self.reports[playerName][
                    "langue"] == player.modoPwetLangue.upper():
                count += 1
                if count >= 255:
                    break

                p.writeUnsignedByte(count)
                p.writeShort(reports)
                p.writeUTF(self.reports[playerName]["langue"].upper())
                p.writeUTF(playerName)
                roomName = self.getPlayerRoomName(playerName)
                p.writeUTF(roomName)
                mods = self.getModsRoom(roomName)
                p.writeByte(len(mods))
                for mod in mods:
                    p.writeUTF(mod)
                p.writeInt(self.getProfileCheeseCount(playerName))

                reporters = 0
                totalReporters = len(self.reports[playerName]["types"])
                p.writeByte(totalReporters)

                while reporters < totalReporters:
                    reporters += 1
                    p.writeUTF(
                        self.reports[playerName]["reporters"][reporters - 1])
                    p.writeShort(
                        self.getProfileCheeseCount(
                            self.reports[playerName]["reporters"][reporters -
                                                                  1]))
                    p.writeUTF(self.reports[playerName]["comments"][reporters -
                                                                    1])
                    p.writeByte(self.reports[playerName]["types"][reporters -
                                                                  1])
                    p.writeShort(reporters)

                p.writeBoolean(playerName in list(self.server.mutes))
                if playerName in list(self.server.mutes):
                    mute = self.server.mutes[playerName]
                    p.writeUTF(mute["by"])
                    p.writeShort(self.server.getHoursDiff(mute["time"]))
                    p.writeUTF(mute["reason"])

                if self.reports[playerName]["status"] == "banned":
                    x = {}
                    x["banhours"] = self.reports[playerName]["banhours"]
                    x["banreason"] = self.reports[playerName]["banreason"]
                    x["bannedby"] = self.reports[playerName]["bannedby"]
                    bannedList[playerName] = x

                if self.reports[playerName]["status"] == "deleted":
                    x = {}
                    x["deletedby"] = self.reports[playerName]["deletedby"]
                    deletedList[playerName] = x

                if self.reports[playerName]["status"] == "disconnected":
                    disconnectList.append(playerName)

            self.server.users.sendPacket(
                player.channel, [25, 2],
                ByteArray().writeUnsignedByte(count).writeBytes(
                    p.toByteArray()).toByteArray())

            for user in disconnectList:
                self.changeReportStatusDisconnect(player, user)

            for user in deletedList.keys():
                self.changeReportStatusDeleted(player, user,
                                               deletedList[user]["deletedby"])

            for user in bannedList.keys():
                self.changeReportStatusBanned(player, user,
                                              bannedList[user]["banhours"],
                                              bannedList[user]["banreason"],
                                              bannedList[user]["bannedby"])
Esempio n. 22
0
 def parse(users, channel, packet, packetID):
     server = channel.server
     player = channel.player
     p = ByteArray()
     p.writeInt(player.shopCheeses)
     p.writeInt(player.shopFraises)
     p.writeUTF(player.playerLook)
     p.writeInt(len(player.shopItems))
     for item in player.shopItems:
         if "_" in item:
             itemSplited = item.split("_")
             realItem = itemSplited[0]
             custom = itemSplited[1] if len(itemSplited) >= 2 else ""
             realCustom = [] if custom == "" else custom.split("+")
             p.writeByte(len(realCustom) + 1)
             p.writeInt(int(realItem))
             for cust in realCustom:
                 p.writeInt(int(cust, 16))
         else:
             p.writeByte(0)
             p.writeInt(int(item))
     p.writeInt(len(server.shopList["mouse"]))
     for shop in server.shopList["mouse"]:
         s = shop.split(",")
         p.writeUnsignedShort(int(s[0]))
         p.writeUnsignedShort(int(s[1]))
         p.writeByte(int(s[2]))
         p.writeBoolean(int(s[3]))
         p.writeByte(int(s[4]))
         p.writeInt(int(s[5]))
         p.writeInt(int(s[6]))
         p.writeUnsignedShort(0)
     p.writeByte(0)
     p.writeShort(len(player.clothes))
     for clothe in player.clothes:
         clotheSplited = clothe.split("/")
         p.writeUTF(clotheSplited[1] + ";" + clotheSplited[2] + ";" +
                    clotheSplited[3])
     p.writeShort(len(player.shamanItems))
     for item in player.shamanItems:
         if "_" in item:
             itemSplited = item.split("_")
             realItem = itemSplited[0]
             custom = itemSplited[1] if len(itemSplited) >= 2 else ""
             realCustom = [] if custom == "" else custom.split("+")
             p.writeShort(int(realItem))
             p.writeBoolean(item in player.shamanLook.split(","))
             p.writeByte(len(realCustom) + 1)
             for cust in realCustom:
                 p.writeInt(int(cust, 16))
         else:
             p.writeShort(int(item))
             p.writeBoolean(item in player.shamanLook.split(","))
             p.writeByte(0)
     p.writeShort(len(server.shopList["shaman"]))
     for shop in server.shopList["shaman"]:
         s = shop.split(",")
         p.writeInt(int(s[0]))
         p.writeByte(int(s[1]))
         p.writeBoolean(int(s[2]))
         p.writeByte(int(s[3]))
         p.writeInt(int(s[4]))
         p.writeShort(int(s[5]))
     users.sendPacket(channel, [8, 20], p.toByteArray())
Esempio n. 23
0
 def updateInventory(self, player, consumable, count):
     packet = ByteArray()
     packet.writeUnsignedShort(consumable)
     packet.writeUnsignedByte(250 if count > 250 else count)
     self.users.sendPacket(player.channel, [31, 2], packet.toByteArray())