Тема: PKT v3.0 Viewer
Показать сообщение отдельно
Старый 21.05.2011, 09:00   #102
Йоха
Умный
 
Регистрация: 02.07.2010
Сообщений: 434
Сказал(а) спасибо: 27
Поблагодарили 73 раз(а) в 45 сообщениях
Йоха Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Minimajack Посмотреть сообщение
smsg_char_enum
Вот набросал парсер этого пакета для билда 14007, там правда в середине пакета какие-то мзменения ... в отличие от того кода что приводил TOM_RUS в своей теме ...

Код:
  function smsg_enum_char()
  count = packet.read8()
  output.println("Character count : "..count)
  output.println(" ")
  for i = 1, count do
    guid = packet.readguid()
    name = packet.readstring()
    race = packet.read8()
    class = packet.read8()
    gender = packet.read8()
    skin = packet.read8()
    face = packet.read8()
    hair_style = packet.read8()
    hair_color = packet.read8()
    facial_hair = packet.read8()
    level = packet.read8()

    output.println("name = "..name..", guid = "..guid)
    output.println(t_race[race]..", "..t_class[class]..", "..t_gender[gender + 1]..", "..level.." lvl")
    output.println(" ")

    zone = packet.read32()
    map = packet.read32()
    x = packet.readfloat()
    y = packet.readfloat()
    z = packet.readfloat()
    guildid = packet.read32()
    flags = packet.read8()
    cflags = packet.read8()
	unk1 = packet.read8()
    first_login = packet.read8()
    pet_id = packet.read32()
    pet_level = packet.read32()
    pet_family = packet.read32()
  
    for j = 1, INVENTORY_SLOT_BAG_END do
      item_display_id = packet.read32()
	  item_type = packet.read8()
	  item_enchant = packet.read32()
    end
  end
end
И небходимо в начале файла parsers.lua объявить следующие таблицы:
Код:
local INVENTORY_SLOT_BAG_END = 24
local t_gender = {"male", "female"}
local t_class = {"warrior", "paladin", "hunter", "4", "5", "6", "7", "priest", "warlock", "10"}
local t_race = {"human", "2", "dwarf", "night elf", "5", "6", "gnome", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "vorgen"}
Я их полностью не заполнял, а то только те значения которые для моих чаров нужны

Получается такой вывод:
Код:
Character count : 5
----------------------------------------------
name = Йохансон, guid = 2C863A0200000007
human, warrior, male, 85lvl
-
name = Мегагнумка, guid = EE88520200000007
gnome, warlock, female, 85lvl
-
name = Хеалбот, guid = F388520200000007
dwarf, paladin, male, 85lvl
-
name = Йоханс, guid = C8A95C0200000007
night elf, hunter, male, 78lvl
-
name = Йоханссон, guid = A2D7A20300000007
vorgen, priest, male, 7lvl
Йоха вне форума   Ответить с цитированием