Показать сообщение отдельно
Старый 20.07.2013, 18:24   #3
Amaru
MaNGOS Dev
 
Регистрация: 16.01.2011
Сообщений: 262
Сказал(а) спасибо: 57
Поблагодарили 73 раз(а) в 59 сообщениях
Amaru На верном пути
По умолчанию

Клиент 4.3.4?

Код:
enum ArchaeologyBranches
{
    ARCHAEOLOGY_BRANCH_DWARF        = 1,
    ARCHAEOLOGY_BRANCH_DRAENEI      = 2,
    ARCHAEOLOGY_BRANCH_FOSSIL       = 3,
    ARCHAEOLOGY_BRANCH_NIGHT_ELF    = 4,
    ARCHAEOLOGY_BRANCH_NERUBIAN     = 5,
    ARCHAEOLOGY_BRANCH_ORC          = 6,
    ARCHAEOLOGY_BRANCH_TOLVIR       = 7,
    ARCHAEOLOGY_BRANCH_TROLL        = 8,
    ARCHAEOLOGY_BRANCH_VRYKUL       = 27,
    ARCHAEOLOGY_BRANCH_OTHER        = 29,
};

struct ResearchBranchEntry
{
    uint32      ID;                                         // 0
    DBCString   name;                                       // 1
    //uint32    FieldID;                                    // 2
    uint32      currency;                                   // 3
    //char*     icon;                                       // 4
    uint32      specItemId;                                 // 5
};

struct ResearchProjectEntry
{
    uint32      ID;                                         // 0
    DBCString   name;                                       // 1
    DBCString   description;                                // 2
    uint32      rare;                                       // 3
    uint32      branchId;                                   // 4
    uint32      spellId;                                    // 5
    uint32      Complexity;                                 // 6
    //char*     iconPath;                                   // 7
    uint32      req_currency_amt;                           // 8

    bool IsVaid() const
    {
        return branchId != ARCHAEOLOGY_BRANCH_OTHER;
    }
};

struct ResearchSiteEntry
{
    uint32 ID;                                              // 0
    uint32 mapId;                                           // 1
    uint32 POIid;                                           // 2
    DBCString areaName;                                     // 3
    //uint32 flags;                                         // 4 all entries have same flags

    bool IsValid() const
    {
        return ID != 140 && // template
            ID != 142 &&    // template
            ID != 161 &&    // template
            ID != 471 &&    // vashj'ir
            ID != 473 &&    // vashj'ir
            ID != 475;      // vashj'ir
    }
};
PLAYER_FIELD_RESEARCHING_1 - сюда кладутся текущие исследуемые проекты, значение - ID из ResearchProject.dbc, размер - 2 байта. Размер 4 * 8 = 32 байта, т.е. 16 проектов, но реально используется только 9 - количество используемых бранчей из ResearchBranch.dbc, отображает прокты в интерфейсе

PLAYER_FIELD_RESERACH_SITE_1 - места текущих раскопок, 2 байта, значение из ResearchSite.dbc. Длина 32 байта, все используются. Отображает на карте точки.

CMSG_REQUEST_RESEARCH_HISTORY - 0x3306
пустой пакет

SMSG_RESEARCH_SETUP_HISTORY - 0x10B6
ответ сервера на предыдущий опкод, содержит информацию о завершенных исследованиях - количество каждого из собранных артифактов и дату последней сборки

SMSG_RESEARCH_COMPLETE - 0x35A6
три 4-байтовых числа, одно из них - бранч, остальные - неизвестно
Amaru вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Dubstep (21.07.2013)