예제 #1
0
        void OnDecorateItem(Client peer, C_Item_DecorateItem_0x0405 msg)
        {
            Singleton._log.InfoFormat("C_Item_DecorateItem_0x0405" + ", client={0}, type={1}, id={2}",
                                      peer._accountName, msg._itemType, msg._itemId);
            var rs = Singleton._sqlServer.DecorateItem(peer._accountName, msg._itemType, msg._isDecorate, msg._itemId);

            if (rs != 0)
            {
                Singleton._log.Info("OnDecorateItem" + ", rs=" + rs);
                return;
            }

            var p = Singleton._sqlServer.GetPlayerData(peer._accountName);
            var a = Singleton._sqlServer.GetAssetData(peer._accountName);

            if (a == null)
            {
                Singleton._log.Info("OnDecorateItem p == null");
                return;
            }
            Singleton._log.Info("S_Item_DecorateItem_0x0405" + ", client=" + peer._accountName);
            int[] inUseIds = null;
            int[] ownedIds = null;
            switch (msg._itemType)
            {
            case 0:
                inUseIds = p._blockIdsInUse;
                ownedIds = a._blocks;
                break;

            case 1:
                inUseIds = new int[1] {
                    p._blockBoardIdInUse
                };
                ownedIds = a._blockBoards;
                break;

            case 2:
                inUseIds = new int[1] {
                    p._boardIdInUse
                };
                ownedIds = a._boards;
                break;

            case 3:
                inUseIds = new int[1] {
                    p._personIdInUse
                };
                ownedIds = a._persons;
                break;

            default:
                Singleton._log.InfoFormat("DecorateItem 找不到对应类型 type={0}! ", msg._itemType);
                break;
            }
            Send(peer, new S_Item_DecorateItem_0x0405
            {
                _itemType = msg._itemType, _itemIds = ownedIds, _itemIdInUse = inUseIds
            });
        }
예제 #2
0
    public void EquipItem(int itemType, int itemId, bool isDecorate, Action <int[], int[]> action)
    {
        Debug.Log("[C_Item_DecorateItem_0x0405]");
        _onEquipItem = action;
        var data = new C_Item_DecorateItem_0x0405();

        data._itemType   = itemType;
        data._itemId     = itemId;
        data._isDecorate = isDecorate;
        Singleton._serverCallback.AddCallback <S_Item_DecorateItem_0x0405>(OnEquipItem);
        Singleton._messageManager.Send(data);
    }