Skip to content

0xA003 FRAMEWORK_MSG_CERTIFICATION_ACK.md

DummkopfOfHachtenduden edited this page Oct 26, 2023 · 2 revisions
1   byte   result
if(result)
{
    //Module
    1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag    //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        1   byte    module.ID
        64  string  module.Name    
    }

    //Content
    1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag    //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        1   byte    content.ID
        64  string  content.Name    
    }

    //Divison
    1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag    //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        1   byte    divison.ID    
        32  string  divison.Name
        256 string  divison.DBConfig
        2   ushort  divison.GlobalMgrID    //RUNTIME
    }

    //Farm
    1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte   iteratorFlag    //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        1   byte    farm.ID
        1   byte    farm.DivisonID    
        32  string  farm.Name
        256 string  farm.DBConfig
    }

    //FarmContent
    1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        1   byte    farmContent.FarmID
        1   byte    farmContent.ContentID
        4   uint    farmContent.pFarm       // Farm*
    }

    //Shard
    1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        2   ushort  shard.ID
        1   byte    shard.FarmID
        1   byte    shard.ContentID
        32  string  shard.Name
        256 string  shard.DBConfig          //Shard connection string
        256 string  shard.LogDBConfig       //Log connection string
        2   ushort  shard.MaxUser
        2   ushort  shard.ShardManagerID
        4   uint    shard.pFarm             // Farm*
        1   byte    shard.IsOperating       // 
        2   ushort  shard.CCU               // concurrent players
    }

    //ServerMachine
    1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        4   uint    serverMachine.ID
        1   byte    serverMachine.DivisonID
        32  string  serverMachine.Name
        16  string  serverMachine.PublicIP
        16  string  serverMachine.PrivateIP
        2   ushort  serverMachine.MachineMgrID
    }

    //ServerBody
    1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte   iteratorFlag        //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        2   ushort  serverBody.ID
        1   byte    serverBody.DivisionID
        1   byte    serverBody.FarmID
        2   ushort  serverBody.ShardID
        4   uint    serverBody.MachineID
        2   byte    serverBody.ModuleID
        1   byte    serverBody.ModuleType
        2   ushort  serverBody.CertifierID
        2   ushort  serverBody.BindPort
        4   uint    serverBody.State
        4   uint    serverBody.pModule      // Module*
        4   uint    serverBody.pMachine     // ServerMachine*
        4   uint    serverBody.pDivsion     // Division*
        4   uint    serverBody.pFarm        // Farm*
        4   uint    serverBody.pShard       // Shard*
    }

    //ServerCord
    1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
    while(true)
    {
        1   byte    iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
        if(iteratorFlag == 2)
            break;

        4   uint   serverCord.ID
        2   ushort serverCord.ChildID
        2   ushort serverCord.ParentID
        1   byte   serverCord.BindType
        4   uint   serverCord.State
        4   uint   serverCord.SessionID
    }

    1   byte   hasSecurityDesc
    if(hasSecurityDesc)
    {
        //_SecurityDescriptionGroups
        1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
        while(true)
        {
            1   byte    iteratorFlag           //ITERATOR_NEXT = 1, ITERATOR_END = 2
            if(iteratorFlag == 2)
                break;
    
                1       byte    group.ID        //_SecurityDescriptionGroups.nID
                32      string  group.Name      //_SecurityDescriptionGroups.szName
                256     string  group.Desc      //_SecurityDescriptionGroups.szDesc    
            }
    
        //_SecurityDescriptions
        1   byte    iteratorFlag       //ITERATOR_BEGIN = 0
        while(true)
        {
            1   byte    iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
            if(iteratorFlag == 2)
                break;
    
                4   uint    desc.ID         //_SecurityDescriptions.nID
                64  string  desc.Name       //_SecurityDescriptions.szName
                256 string  desc.Desc       //_SecurityDescriptions.szDesc    
            }
    
        //_SecurityDescriptionGroupAssigns
        1   byte    iteratorFlag           //ITERATOR_BEGIN = 0
        while(true)
        {
            1    byte   iteratorFlag       //ITERATOR_NEXT = 1, ITERATOR_END = 2
            if(iteratorFlag == 2)
                break;

                1   byte    desc.GroupID    //_SecurityDescriptionGroupAssigns.nGroupID    
                4   uint    desc.DescID     //_SecurityDescriptionGroupAssigns.nDescriptionID    
            }    
        }
}

Related pages

Clone this wiki locally