Exemplo n.º 1
0
    /// <summary>
    /// S发送背包栏物品位置同步到C
    /// </summary>
    /// <param name="dataBuffer"></param>
    CommandCallbackType ContainerSyncHandle(byte[] dataBuffer, int socketId)
    {
        Package package = PackageHelper.ParseReceiveData(dataBuffer);

        SMsgContainerCSCHead sMsgContainerCSCHead = SMsgContainerCSCHead.ParsePackage(package);

        List <SSyncContainerGoods_SC> sSyncContainerGoods_SCs = new List <SSyncContainerGoods_SC>();
        int headerLength = Marshal.SizeOf(sMsgContainerCSCHead);
        int singleLength = Marshal.SizeOf(typeof(SSyncContainerGoods_SC)) - headerLength;
        int offset       = headerLength;

        //TraceUtil.Log("headerLength:" + headerLength + "  singleLength:" + singleLength);
        //TraceUtil.Log("BufferLength:" + dataBuffer.Length + "  dwSysGoodsNum:" + sMsgContainerCSCHead.dwSysGoodsNum);
        for (int i = 0; i < sMsgContainerCSCHead.dwSysGoodsNum; i++)
        {
            sSyncContainerGoods_SCs.Add(SSyncContainerGoods_SC.ParsePackage(package.Data, offset, sMsgContainerCSCHead));
            offset += singleLength;
        }
        //TraceUtil.Log("收到背包栏物品位置同步消息:" + sSyncContainerGoods_SCs.Count + " 约定个数:" + sMsgContainerCSCHead.dwSysGoodsNum);
        //sSyncContainerGoods_SCs.ApplyAllItem(P=>TraceUtil.Log(P.nPlace+","+P.byNum));
        UI.MainUI.ContainerInfomanager.Instance.SetContainerGoodsPosition(sSyncContainerGoods_SCs);
        //TraceUtil.Log("Set 完成");
        return(CommandCallbackType.Continue);
    }