コード例 #1
0
    public void OnSendBattleSummary(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            ConnectionManager.Instance.SendACK(SendBattleSummary, true);

            UpdateInforResponseData updateData = (msg as BattleEndResponse).updateData;

            if (updateData != null)
            {
                PlayerInfo.Instance.ApplyPlayerPropChanges(updateData.playerPropsList.ToArray());

                PlayerInfo.Instance.PlayerInventory.ApplyItemCountChanges(updateData.itemCountOps);
            }

            updateData.Broadcast();

            StartBattleSummary();
        }
        else
        {
            //show error only
            UIMessageBoxManager.Instance.ShowErrorMessageBox(msg.errorCode, null);

            Debug.LogError("Error passing server check.");
        }
    }
コード例 #2
0
    private void OnEquipTattoo(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            TattooEquipResponse myMsg = msg as TattooEquipResponse;

            //if current slot is not empty, move the item into inventory
            if (PlayerInfo.Instance.playerTattoos.tattooDict.ContainsKey(SelectedPart))
            {
                ItemInventory oldItem = PlayerInfo.Instance.playerTattoos.tattooDict[SelectedPart];

                PlayerInfo.Instance.PlayerInventory.AddItemInventory(oldItem);
            }

            UpdateInforResponseData updateData = myMsg.updateData;

            updateData.Broadcast();

            //remove the item from inventory. It may not be there, but call removeItem in any case.
            PlayerInfo.Instance.PlayerInventory.RemoveItem(_focusItem.inventoryItem);

            UIMessageBoxManager.Instance.ShowMessageBox(Localization.instance.Get("IDS_TATTOO_ALREADYEQUIPPED"), null, MB_TYPE.MB_OK, null);

            _uiTattoo.RefreshMainPanel();
            this.Initialize(_selectedPart, _uiTattoo);
        }
        else
        {
            UIMessageBoxManager.Instance.ShowMessageBox(Utils.GetErrorIDS(msg.errorCode), null, MB_TYPE.MB_OK, null);
        }
    }
コード例 #3
0
 public override void Decode(BinaryReader reader)
 {
     errorCode = reader.ReadInt16();
     if (Succeeded)
     {
         UpdateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
     }
 }
コード例 #4
0
 public override void Decode(BinaryReader reader)
 {
     errorCode = reader.ReadInt16();
     if (Succeeded)
     {
         Operation  = (InventoryMenuItemOperationType)reader.ReadByte();
         updateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
     }
 }
コード例 #5
0
    public override void Decode(BinaryReader reader)
    {
        errorCode = reader.ReadInt16();

        if (errorCode == 0)
        {
            response   = ReadString(reader);
            UpdateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
        }
    }
コード例 #6
0
 public override void Decode(BinaryReader reader)
 {
     errorCode = reader.ReadInt16();
     if (Succeeded)
     {
         Operation  = (MailOperation)reader.ReadByte();
         MailId     = reader.ReadInt32();
         UpdateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
     }
 }
コード例 #7
0
    public override void Decode(BinaryReader reader)
    {
        InJoyDebugBase.DebugCommandResponse(this, ref reader);
        errorCode = reader.ReadInt16();

        if (errorCode == 0)
        {
            updateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
        }
    }
コード例 #8
0
 public override void Decode(BinaryReader reader)
 {
     errorCode = reader.ReadInt16();
     if (Succeeded)
     {
         UpdateExchangeData            = new StoreSCExchangeData();
         UpdateExchangeData.Type       = reader.ReadByte();
         UpdateExchangeData.Count      = reader.ReadByte();
         UpdateExchangeData.CountMax   = reader.ReadByte();
         UpdateExchangeData.SC         = reader.ReadInt32();
         UpdateExchangeData.CoseHC     = reader.ReadInt32();
         UpdateExchangeData.ExpireTime = reader.ReadInt32();
         UpdateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
     }
 }
コード例 #9
0
    public override void Decode(BinaryReader reader)
    {
        errorCode = reader.ReadInt16();

        if (errorCode == 0)
        {
            skillData = new SkillData();

            skillData.skillID = ReadString(reader);

            skillData.level = reader.ReadByte();

            updateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
        }
    }
コード例 #10
0
    public override void Decode(BinaryReader reader)
    {
        errorCode = reader.ReadInt16();

        if (errorCode == 0)
        {
            questIDList = new List <int>();
            int count = reader.ReadByte();

            for (int i = 0; i < count; i++)
            {
                questIDList.Add(reader.ReadInt32());
            }

            updateData = UpdateInforResponseHandler.Instance.UpdateOperation(reader);
        }
    }
コード例 #11
0
    void OnTakePotion(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            UpdateInforResponseData updateData = (msg as BattleUseReviveResponse).updateData;

            if (updateData != null)
            {
                PlayerInfo.Instance.PlayerInventory.ApplyItemCountChanges(updateData.itemCountOps);
            }
        }
        else
        {
            //remember this, to fail this battle
            LevelManager.Singleton.IsCheat = true;

            Debug.LogError("Cheat on taking potions! Error: " + msg.errorCode);
        }
    }
コード例 #12
0
    private void OnReplaceTattoo(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            TattooEquipResponse myMsg = msg as TattooEquipResponse;

            UpdateInforResponseData updateData = myMsg.updateData;

            updateData.Broadcast();

            UIMessageBoxManager.Instance.ShowMessageBox(Localization.instance.Get("IDS_TATTOO_ALREADYEQUIPPED"), null, MB_TYPE.MB_OK, null);

            _uiTattooMain.RefreshMainPanel();
        }
        else
        {
            UIMessageBoxManager.Instance.ShowMessageBox(Utils.GetErrorIDS(msg.errorCode), null, MB_TYPE.MB_OK, null);
        }
    }
コード例 #13
0
    private void OnMakeTattoo(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            TattooRecipeResponse myMsg = msg as TattooRecipeResponse;

            UpdateInforResponseData updateData = myMsg.updateData;

            updateData.Broadcast();

            DisplayRecipeInfo();

            UIMessageBoxManager.Instance.ShowMessageBox(Localization.instance.Get("IDS_MESSAGE_TATTOO_FUSIONSUCCESSFUL"), null, MB_TYPE.MB_OK, null);
        }
        else
        {
            //remember this, to fail this battle
            UIMessageBoxManager.Instance.ShowMessageBox(Utils.GetErrorIDS(msg.errorCode), null, MB_TYPE.MB_OK, null);
        }
    }
コード例 #14
0
    private void OnDisenchant(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            TattooRecipeResponse myMsg = msg as TattooRecipeResponse;

            UpdateInforResponseData updateData = myMsg.updateData;

            updateData.Broadcast();

            this.OnDisable();

            this.OnEnable();

            UIMessageBoxManager.Instance.ShowMessageBox(Localization.instance.Get("IDS_BUTTON_TATTOO_DISENCHANTITEMLIST"), null, MB_TYPE.MB_OK_WITH_ITEMS, null, updateData.itemUpdateList);
        }
        else
        {
            UIMessageBoxManager.Instance.ShowErrorMessageBox(msg.errorCode, "Tattoo");
        }
    }
コード例 #15
0
    private void OnRemoveTattoo(FaustComm.NetResponse msg)
    {
        if (msg.Succeeded)
        {
            TattooEquipResponse myMsg = msg as TattooEquipResponse;

            UpdateInforResponseData updateData = myMsg.updateData;

            updateData.Broadcast();

            //manually add to inventory
            PlayerInfo.Instance.PlayerInventory.AddItemInventory(_slot.item);

            UIMessageBoxManager.Instance.ShowMessageBox(Localization.instance.Get("IDS_BUTTON_TATTOO_REMOVE"), null, MB_TYPE.MB_OK, OnMsgboxCallback);
        }
        else
        {
            //remember this, to fail this battle
            UIMessageBoxManager.Instance.ShowMessageBox(Utils.GetErrorIDS(msg.errorCode), null, MB_TYPE.MB_OK, null);
        }
    }
コード例 #16
0
    public UpdateInforResponseData UpdateOperation(BinaryReader reader)
    {
        List <PlayerProp>                playerPropsList  = new List <PlayerProp>();
        List <ItemInventory>             newItemsList     = new List <ItemInventory>();
        List <ItemMoveVo>                itemMoveOps      = new List <ItemMoveVo>();
        List <ItemCountVo>               itemCountOps     = new List <ItemCountVo>();
        List <ItemAttributeUpdateVoList> itemAttributeOps = new List <ItemAttributeUpdateVoList>();
        List <TattooEquipVo>             tattooOpList     = new List <TattooEquipVo>();
        List <ItemInventory>             updateItemList   = new List <ItemInventory>();

        //parse and save first,update later.
        int changeCount = reader.ReadInt16();

        for (int index = 0; index < changeCount; index++)
        {
            UpdateKey uk = (UpdateKey)reader.ReadByte();
            switch (uk)
            {
            case UpdateKey.RoleProp:    //section 1
                int propmask = reader.ReadInt32();
                for (int key = 0; key < 32; key++)
                {
                    if ((propmask & (1 << key)) != 0)
                    {
                        playerPropsList.Add(new PlayerProp((PlayerPropKey)key, reader.ReadInt32()));
                    }
                }
                break;

            case UpdateKey.RolePropBattle:    //section 2
                int propmaskBattle = reader.ReadInt32();
                for (int key = 0; key < 32; key++)
                {
                    if ((propmaskBattle & (1 << key)) != 0)
                    {
                        playerPropsList.Add(new PlayerProp((PlayerPropKey)key + 32, reader.ReadInt32()));
                    }
                }
                break;

            case UpdateKey.ItemMove:
                itemMoveOps.Add(new ItemMoveVo(reader.ReadInt64(),
                                               (ItemMoveType)reader.ReadByte()));
                break;

            case UpdateKey.ItemCount:
                ItemCountVo iv = new ItemCountVo(reader.ReadInt64(), reader.ReadInt16());
                itemCountOps.Add(iv);

                if (iv.ItemCount > 0)
                {
                    ItemInventory ii = PlayerInfo.Instance.PlayerInventory.GetItem(iv.ItemGuid);
                    updateItemList.Add(ii);
                }
                break;

            case UpdateKey.ItemNew:
                ItemInventory itemInventory = new ItemInventory();
                itemInventory.Parse(reader);
                itemInventory.IsNew = true;
                newItemsList.Add(itemInventory);

                updateItemList.Add(itemInventory);
                break;

            case UpdateKey.ItemPropUpdate:
                Int64 itemGUID = reader.ReadInt64();
                List <ItemAttributeUpdateVo> list = new List <ItemAttributeUpdateVo>();
                byte changeAttributesCount        = reader.ReadByte();
                for (int i = 0; i < changeAttributesCount; i++)
                {
                    list.Add(new ItemAttributeUpdateVo((FC_EQUIP_EXTEND_ATTRIBUTE)reader.ReadInt32(), reader.ReadInt32()));
                }
                itemAttributeOps.Add(new ItemAttributeUpdateVoList(itemGUID, list.ToArray()));
                break;

            case UpdateKey.Tattoo:
                EnumTattooPart part = (EnumTattooPart)reader.ReadByte();

                long itemGUID2 = reader.ReadInt64();

                byte op = reader.ReadByte();

                tattooOpList.Add(new TattooEquipVo(itemGUID2, part, op));

                break;
            }
        }

        UpdateInforResponseData data = new UpdateInforResponseData();

        data.itemCountOps     = itemCountOps;
        data.itemMoveOps      = itemMoveOps;
        data.newItemsList     = newItemsList;
        data.playerPropsList  = playerPropsList;
        data.itemAttributeOps = itemAttributeOps;
        data.tattooOpList     = tattooOpList;
        data.itemUpdateList   = updateItemList;
        return(data);
    }