SchultzGames
Para tirar dúvidas, crie um tópico especifico na área "Dúvidas em Geral" e aguarde ser respondido. Evite comentar em tópicos não relacionados a sua dúvida Very Happy
TÓPICOS RECENTES:
Tópico:
Postado em:
Postado por:
Script não detecta certos comandos como "Input" e "GetKeyDown"
Ajuda com scripts de inimigo e player'' interação de zumbi e player''
Alguem me recomenda uma versao estavel e atualizada da unity :C
[TUTORIAL] Unity 5 - Sistema Completo de PORTAS E CHAVES
[TUTORIAL] Camera orbital para android (TOUCH)
[DÚVIDA] SITE DE MODELOS 3D PARA USO GRATUITO
Marcos Elias Proton Bus Simulator AJUDA COM SISTEMA DE MAPA CONTÍNUO
[Alpha Android] - Night Hunter DevLog - Action RPG (Baixe e avalie por favor!)
PESSOAL PRA VOCÊS OQUE TEM QUE TER EM UM JOGO DE SOBREVIVENCIA?
[TUTORIAL] C# .NET | Visual Studio - conexão com banco de dados MySQL
Procurar um Índice em uma lista
COMO FAZER UM SISTEMA DE VIAGEM IGUAL (No Man's Sky)
Gerador de mesh procedual
[TUTORIAL] Script de arma automatica
Nova atualização do meu rpg De açao Opinioes
[TUTORIAL] Sistema de escolha de personagens
[____TÓPICO LIVRE____] FALE O QUE QUISER (Parte 2)
Como puxar várias animações ao mesmo tempo
[TUTORIAL] C# .NET | Launcher simples que acessa um site.
[TUTORIAL] - Como fazer download da OBB do jogo, in-game! (Android)
Bug Unity ?
Variavel UI
Bugs na textura
Duvida com Transform.position
Apk Google Play
[DICA] - Traduzir o assistente de downloads do "Google Play OBB Downloader"
Duvidas sobre programação em C#
Problema ao renderizar dois lado de uma malha (blender)
como reconhecer a ''face'' de uma mesh da agua
Como coloco video do youtube
Novo jogo survival sendo feito por mim
Queda de FPS unity 5
[TUTORIAL] - 8 Dicas de otimização para mobile (Tópico 2) (Android)
[TUTORIAL] Como criar suas texturas Normal Map, Displacement Map e Bump Map (Photoshop)
MS Vehicles Free em vídeo de melhores assets
[DIVULGAÇÃO]Avaliem Meu Jogo Na Play Store!
Estudo Game da Carro Mobile
[TUTORIAL] C# .NET| Instalar Cargas de trabalho/Componentes Individuais no Visual Studio
Instanciar objetos na mão do Player
[____EFICIÊNCIA DO FÓRUM____]
[TUTORIAL] Aprenda a programar em C# des do começo :D
[TUTORIAL] ENVIAR A OPINIÃO DO SEU JOGADOR, PARA UM SERVIDOR
[TUTORIAL] Objeto flutuar como se estivesse no espaço ou na água
[DESENVOLVEDORES MOBILE] - NOVA AREA DO FÓRUM DEDICADA AO MOBILE! (Android e iOS)
[DESENVOLVIMENTO C# .NET] - NOVA AREA DO FÓRUM DEDICADA AO C# .NET!
Versão Unity
Como fazer um FAQ?
Desativar Terrain
[RESOLVIDO] PLAYER ANDAR MAIS DEVAGAR AO APERTAR SHIFT
[Tutorial]Movimento simples para objetos filiados ao FPSController da Unity por código.
[Resolvido] Como animar a camera do FPSController da unity ? sem dar bug...
Tiro sistema dano
Duvida em Disparo em jogo de Fps.
Divulgaçao de Battle of Worlds
[duvida] Easy Roads
Sistema de corrida
[DÚVIDA] TOCAR ANIMAÇÕES EM SEU TEMPO CORRETO
(DUVIDA)PlayerPrefs
[____ADMINISTRAÇÃO____] Alterações IMPORTANTES no fórum.
[TUTORIAL] Como fazer porta malas do carro abrir atravez de um botão? Clica aq e veja
[____APOIE O FÓRUM E O CANAL E GANHE RECOMPENSAS____]
gravidade está agindo de forma estranha em objetos diferentes
[ASSET] 2D Terrain Creator para Unity 3D
Como resolver
[DÚVIDA] SISTEMA DE CARGAS
Banco de dados Mysql e PHP?
duvida coletar itens e mudar de fase
Vagas na equipe do BR Bus
[TUTORIAL] Inteligência artificial, inimigo e AIPoints
[TUTORIAL] Luz Principal,Luz de Freio,Piscas para Carro,Moto,Caminhão,Ônibus,Etc...
Como fazer inventário estilo minecraft?
Jogo de Moto no Unity 3D
MonoDevelop não esta abrindo.
[DEVLOG] Projeto - Girl Blade
DUVIDA INIMIGO ZOMBIE
Busco Equipes !
[Votação] - Avalie o Remake do cenario do meu jogo!
Como faço para detectar Swipe em dois dedos simultaneamente?
Fighters for honor(Jogo da segunda guerra mundial)
[RESOLVIDO] Erro No Script error CS0019: Operator `==' cannot be applied to operands
Dúvidas Script
Alguem sabe me Dizer porque Minha Unity ads está assim ? :(
[TUTORIAL] FAZENDO UM SITE PROFISSIONAL COMPLETO PARA SEU JOGO GRATIS
Movimento Duelist of the roses
Simulador que estou criando :)
Formação de Equipe Battle of Worlds
3D, Player gruda na parede
Projeto B
[TUTORIAL] Script de pulo para jogos 3D em geral (Unity - C#)
[TUTORIAL] Unity 2017 - Cores aleatórias em um material
[TUTORIAL] Camera orbital com zoom (scroll)
Atirando com uma arma
problemas com rb.velocity e gravidade
Arquivo de download Unity
Problemas com iluminação em tempo de execução
Iniciar o jogo com a mesma quantidade de vida em que foi fechado
Trocar Roupas
Como acessar variável de um script usando outro script (Entre e entenda).
[Resolvido]Como faz pra ativar um "objeto" depois de um tempo
Hoje à(s) 7:34 pm
Hoje à(s) 7:32 pm
Hoje à(s) 7:31 pm
Hoje à(s) 7:29 pm
Hoje à(s) 7:19 pm
Hoje à(s) 7:05 pm
Hoje à(s) 6:50 pm
Hoje à(s) 6:20 pm
Hoje à(s) 6:04 pm
Hoje à(s) 5:42 pm
Hoje à(s) 5:40 pm
Hoje à(s) 3:56 pm
Hoje à(s) 10:25 am
Hoje à(s) 8:01 am
Hoje à(s) 7:35 am
Ontem à(s) 11:48 pm
Ontem à(s) 11:48 pm
Ontem à(s) 11:42 pm
Ontem à(s) 7:32 pm
Ontem à(s) 7:26 pm
Ontem à(s) 7:07 pm
Ontem à(s) 6:36 pm
Ontem à(s) 6:30 pm
Ontem à(s) 6:20 pm
Ontem à(s) 4:45 pm
Ontem à(s) 4:43 pm
Ontem à(s) 4:36 pm
Ontem à(s) 4:26 pm
Ontem à(s) 4:20 pm
Ontem à(s) 3:14 pm
Ontem à(s) 2:50 pm
Ontem à(s) 1:45 pm
Ontem à(s) 10:03 am
Ontem à(s) 9:07 am
Ontem à(s) 1:41 am
Qua Jul 19, 2017 11:42 pm
Qua Jul 19, 2017 10:31 pm
Qua Jul 19, 2017 10:12 pm
Qua Jul 19, 2017 9:40 pm
Qua Jul 19, 2017 7:26 pm
Qua Jul 19, 2017 6:28 pm
Qua Jul 19, 2017 6:14 pm
Qua Jul 19, 2017 5:48 pm
Qua Jul 19, 2017 2:26 pm
Qua Jul 19, 2017 2:21 pm
Qua Jul 19, 2017 11:49 am
Qua Jul 19, 2017 6:04 am
Ter Jul 18, 2017 9:38 pm
Ter Jul 18, 2017 9:31 pm
Ter Jul 18, 2017 9:03 pm
Ter Jul 18, 2017 8:56 pm
Ter Jul 18, 2017 8:37 pm
Ter Jul 18, 2017 8:25 pm
Ter Jul 18, 2017 6:13 pm
Ter Jul 18, 2017 5:17 pm
Ter Jul 18, 2017 5:09 pm
Ter Jul 18, 2017 4:55 pm
Ter Jul 18, 2017 1:40 pm
Ter Jul 18, 2017 1:16 pm
Ter Jul 18, 2017 12:54 pm
Ter Jul 18, 2017 11:45 am
Ter Jul 18, 2017 11:43 am
Ter Jul 18, 2017 9:54 am
Ter Jul 18, 2017 9:27 am
Ter Jul 18, 2017 6:17 am
Ter Jul 18, 2017 5:37 am
Seg Jul 17, 2017 11:17 pm
Seg Jul 17, 2017 10:43 pm
Seg Jul 17, 2017 10:37 pm
Seg Jul 17, 2017 7:32 pm
Seg Jul 17, 2017 7:24 pm
Seg Jul 17, 2017 5:52 pm
Seg Jul 17, 2017 4:19 pm
Seg Jul 17, 2017 4:13 pm
Seg Jul 17, 2017 3:42 pm
Seg Jul 17, 2017 7:13 am
Seg Jul 17, 2017 6:55 am
Seg Jul 17, 2017 5:53 am
Seg Jul 17, 2017 5:46 am
Dom Jul 16, 2017 10:37 pm
Dom Jul 16, 2017 7:58 pm
Dom Jul 16, 2017 6:07 pm
Dom Jul 16, 2017 2:34 pm
Dom Jul 16, 2017 2:19 pm
Dom Jul 16, 2017 2:05 pm
Dom Jul 16, 2017 1:46 pm
Dom Jul 16, 2017 9:12 am
Dom Jul 16, 2017 6:24 am
Dom Jul 16, 2017 6:22 am
Dom Jul 16, 2017 6:19 am
Dom Jul 16, 2017 5:08 am
Dom Jul 16, 2017 1:47 am
Dom Jul 16, 2017 1:35 am
Sab Jul 15, 2017 8:34 pm
Sab Jul 15, 2017 8:25 pm
Sab Jul 15, 2017 8:12 pm
Sab Jul 15, 2017 5:47 pm
Sab Jul 15, 2017 4:36 pm
Sab Jul 15, 2017 2:54 pm
arthearthutr
Robinsandi
Gabriel César O
EricKlaus
Gabriel César O
Gabriel César O
tom ramber
xXGianlucksXx
marcos4503
weslleyFx
weslleyFx
ManoTrevor
Madness
Gabriel César O
dstaroski
PauloFR
MarcosSchultz
ffabim
Mateus2583
ubroly
sidney1234
marcos4503
marcos4503
zZAndersonZz
marcos4503
marcos4503
poyser
hetrodo_gamer
Extreme Craft
ffabim
zMicael
Yagogomes
Édipo
Madness
Madness
marcos4503
Gabriel César O
PauloFR
Dom3000
PauloFR
Callyde Jr
Callyde Jr
ManoTrevor
marcos4503
marcos4503
Weverton Borges da Silva
marcos4503
PauloFR
Gabriel César O
PauloFR
PauloFR
Bruno
Duarte
Dom3000
Gabriel César O
Valakinhas
Gabriel César O
Zecandy
MarcosSchultz
Gabriel César O
dstaroski
dstaroski
Gabriel César O
arthearthutr
Gabriel César O
Callyde Jr
kalel013
Kelvyn_Feitosa
Diego Felix
Gabriel César O
Gabriel César O
Gabriel César O
dstaroski
dstaroski
Diego Felix
thzin
thzin
Gabriel César O
Gabriel César O
DenisKth
michelly
marcos4503
Callyde Jr
bitgames
Extreme Craft
Dom3000
Valakinhas
Mic4el
Gabriel César O
Gabriel César O
Gabriel César O
Ruan Cardoso
Ruan Cardoso
Callyde Jr
hetrodo_gamer
fabiano.leonidio@gmail.co
thzin
Callyde Jr
ffabim

Sistema de inventario (2D?)

Ver o tópico anterior Ver o tópico seguinte Ir em baixo

DÚVIDA Sistema de inventario (2D?)

Mensagem por willianroma em Qui Ago 04, 2016 5:45 pm

(Creio que não tenha muita diferença do inventario de um jogo 3D pro 2D mas, vai saber né)
Pretendo fazer um inventario para meu jogo e gostaria de saber se tem algum tutorial explicando como posso fazer, é muito complexo fazer um inventario ou da pra fazer um sem muito conhecimento ?

willianroma
Avançado
Avançado

PONTOS : 507
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por NOME-ALEATORIO em Qui Ago 04, 2016 6:02 pm

E Quase Mesma Coisa De Fazer em 3d
avatar
NOME-ALEATORIO
Avançado
Avançado

Masculino PONTOS : 899
REPUTAÇÃO : 23
Idade : 13
Áreas de atuação : Programador Profissional Em ...
Iniciante Profissional Em TUDO
Respeito as regras :

Ver perfil do usuário https://www.youtube.com/channel/UCGdN6l99rIhtQL84CsmvrKQ

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por RenanMSV em Qui Ago 04, 2016 6:26 pm

complexo
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1795
REPUTAÇÃO : 325
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por weslleyFx em Qui Ago 04, 2016 6:38 pm

sem muito conhecimento e quase impossível mais se você sabe raciocinar com programação orientada a objeto você vai conseguir

o mais complicado talvez seja salvar os dados mais isso e o de menos

você precisa fazer classe para o slot classe para o inventario classe para item classe para player e ir gerando classes a partir das classes existentes usando o polimorfismo
e o mais importante lógica porque as classe de forma direta ou indireta vão ficar ligados um com outro 

e se envolver multiplayer ai fica mais complexo
avatar
weslleyFx
Moderador

Masculino PONTOS : 2558
REPUTAÇÃO : 560
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por MarcosSchultz em Sab Ago 06, 2016 12:34 am

Então, inventário é a ovelha negra dos tutoriais... Eh a coisa mais chata e complexa de se fazer, pois meio que tem que ser feito especificamente para o seu projeto, e é interessante utilizar banco de dados.

É um dos poucos assuntos que eu não pretendo trazer em tutorial por que é extremamente difícil eu fazer um sistema e ele se adaptar ao seu jogo de maneira correta sem gerar uma penca de problemas.
avatar
MarcosSchultz
Administrador

Masculino PONTOS : 9251
REPUTAÇÃO : 1548
Idade : 20
Áreas de atuação : Administrador do fórum
Respeito as regras :

Ver perfil do usuário http://www.schultzgames.com

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por artplayer em Sab Ago 06, 2016 9:12 pm

Bem, eu acho que encontrei uma maneira "menos complexa" de fazer meus inventários. ( Online ).

Basicamente eu tenho um conjunto de classes php que já tratam tudo (Adição, remoção, armazenamento...).

E eu simplesmente chamo a página com os parâmetros ( id do jogador, item, oque fazer com o item... ) e depois retorno um json e trato de volta no C#. É mais complexo de explicar do que fazer.


Como eu trabalho com servidor autoritário, o meu apache está configurado pra aceitar conexões somente do servidor, assim não corro o risco de manipulações indesejadas. 

Eu estou bem no meio de um projeto e pretendo UM DIA colocar isso no github pra facilitar a vida da galera.
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 983
REPUTAÇÃO : 211
Idade : 33
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por GameDeveloper56 em Qui Ago 11, 2016 1:42 am

Galera, não acho que fazer inventário seja tanto problema. Em quase todos os meus projetos eu crio um sistema desses. Encontrei uma forma simples, porém talvez não a mais correta, que é criar uma lista que armazene os meus objetos.

A lista seria algo assim: 
Código:
using UnityEngine;
using System.Collections.Generic;
using System;

public class Inventario : MonoBehaviour {

    public List<Itens> itens;

}

[Serializable]
public class Itens
{
    public string NomeDoItem; // na verdade, eu geralmente nao utilizo o nome do item, mas sim um ENUM que vai diferenciar um tipo de item do outro.
    public int Quantidade;
}

A partir disso, só precisamos criar funções para adicionar objetos a esta lista.

O real problema chega na hora de salvar, pois se não usarmos banco de dados, tudo isso deve ser gravado com playerprefs.

Uma forma que eu utilizo é salvar valor por valor (por isso disse que talvez não fosse a mais correta), salvando o item em diferentes partes, seguidas do index do item na lista para poder resgatar esse valor futuramente. Outra coisa interessante, é guardar também o número de itens que foram salvos para poder pegar todos os valores sem se preocupar com limite de inventário.

Um exemplo bem básico: 
Código:
using UnityEngine;
using System.Collections.Generic;
using System;

public class Inventario : MonoBehaviour {

    public List<Item> itens;


    void SalvarItens ()
    {
        int indexItens = 0;

        while (indexItens < itens.Count)
        {
            PlayerPrefs.SetString("NomeItem" + indexItens.ToString(), itens[indexItens].NomeDoItem);
            PlayerPrefs.SetInt("Quantidade" + indexItens.ToString(), itens[indexItens].Quantidade);
            PlayerPrefs.SetInt("NumeroDeItensSalvos", indexItens + 1);                             // salvar a quantidade de itens que foram salvos
            indexItens++;
        }
        PlayerPrefs.Save();
    }

    void ResgatarItens ()
    {
        itens.Clear();

        int numeroDeItens = PlayerPrefs.GetInt("NumeroDeItensSalvos");
        int indexItens = 0;

        while (numeroDeItens > indexItens)
        {
            itens.Add(new Item());
            itens[indexItens].NomeDoItem = PlayerPrefs.GetString("NomeItem" + indexItens.ToString());
            itens[indexItens].Quantidade = PlayerPrefs.GetInt("Quantidade" + indexItens.ToString());
            indexItens++;
        }
    }
}

[Serializable]
public class Item
{
    public string NomeDoItem;
    public int Quantidade;
}



Tenho que admitir que é trabalhoso, mas não difícil.
avatar
GameDeveloper56
Membro
Membro

Masculino PONTOS : 584
REPUTAÇÃO : 11
Idade : 19
Áreas de atuação : Programação em C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por RenanMSV em Qui Ago 11, 2016 4:48 am

Tudo bem, é algo simples. Mas isso é só a ponta do iceberg. Ainda tem o sistema de interação com ele, interação com itens... tem gente que chega aqui no forum pedindo um inventário multiplayer ... ai vc ainda terá que criar todo o sistema ant bug, fraude, e de interação entre players, npcs. Por isso não basta apenas salvar itens, é preciso criar um sistema gigante e complexo que vai envolver praticamente todas as areas do jogo.
A não ser que o jogo não use inventario pra quase nada, e só pra salvar 3 itens.
avatar
RenanMSV
Instrutor

Masculino PONTOS : 1795
REPUTAÇÃO : 325
Áreas de atuação : Programação em C#, PHP. SQL, JavaScript (Web)
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por artplayer em Qui Ago 11, 2016 7:15 am

Concordo com o meu chará Renan.
Não acho complicado, mas é muito particular e meio que impossível você ter uma coisa genérica.
Até sistema de interação e antifraude  a resposta de como fazer sempre será: Depende!
avatar
artplayer
ProgramadorMaster

Masculino PONTOS : 983
REPUTAÇÃO : 211
Idade : 33
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por willianroma em Qui Ago 11, 2016 2:36 pm

blz, pelo que vi é basicamente complexo de fazer um sistema de inventario, mas gostaria de saber onde vcs aprenderam a fazer, foi buscando pela net? tem algo na net que me ajuda a entender como posso fazer um futuramente ?

willianroma
Avançado
Avançado

PONTOS : 507
REPUTAÇÃO : 0
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

DÚVIDA Re: Sistema de inventario (2D?)

Mensagem por weslleyFx em Qui Ago 11, 2016 3:09 pm

não tem muito o que fazer a não ser estudar o básico e ir pro avançado
a sim você pode implementar sua própria lógica eu já fiz um sistema de inventario a um tempo vou mostra o script do slot se vc entender ele você esta apto a fazer um inventario

ele esta incompleto falta fazer algumas funçõese e remover algumas gambiarras

Código:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
using UnityEngine.EventSystems;
using Items;

public class Slot : MonoBehaviour, IDragHandler, IEndDragHandler, IBeginDragHandler, IPointerClickHandler
{

    #region VARIAVEIS

    public Image iconItem;
    public Text amountItem;

    public Image dragIconItem;

    public Slider durabilitySlider;

    public bool UseTypeToRestriction;
    public ITEM_TYPE restrictionType;

    protected bool currentSlotIsEmpty = true;
    protected bool canDrag = false;
    protected ItemBase currentItemInSlot;
    protected Slot nextSlot = null;

    #endregion

    protected void Start()
    {
        canDrag = false;
    }
    
    protected void Update()
    {
        currentSlotIsEmpty = currentItemInSlot == null ? true : false;

        if (!currentSlotIsEmpty)
        {
            ItemValues();
            iconItem.sprite = currentItemInSlot.iconItem;
            iconItem.enabled = true;
        }
        else
        {
            amountItem.enabled = false;
            iconItem.enabled = false;
            durabilitySlider.gameObject.SetActive(false);
        }
    }
    
    protected void ItemValues()
    {
        if (currentItemInSlot.itemType == ITEM_TYPE.CONSUMABLES)
        {
            ConsumableItemBehaviour consumableItemBehaviour = currentItemInSlot.GetComponent<ConsumableItemBehaviour>();

            if (consumableItemBehaviour.typeComsumable == TYPE_CONSUMABLE.DRINK)
            {
                amountItem.enabled = true;
                float amount = consumableItemBehaviour.amount;
                amountItem.text = string.Format("{0}ML", amount);
            }
        }
        else if (currentItemInSlot.itemType == ITEM_TYPE.CLOTHING || currentItemInSlot.itemType == ITEM_TYPE.WEAPONS)
        {
            durabilitySlider.gameObject.SetActive(true);
            amountItem.enabled = false;
        }
        else
        {
            amountItem.text = string.Format("x{0}", currentItemInSlot.amountItem);
        }
    }

    #region Events

    public virtual void OnPointerClick(PointerEventData eventData)
    {

    }

    public virtual void OnBeginDrag(PointerEventData eventData)
    {
        if (currentItemInSlot == null)
            return;
        
        dragIconItem.sprite = currentItemInSlot.iconItem;
        dragIconItem.enabled = true;
        canDrag = true;
    }

    public virtual void OnDrag(PointerEventData eventData)
    {
        if (!canDrag)
            return;

        Vector2 mousePosition = eventData.position;
        dragIconItem.transform.position = mousePosition;
    }

    public virtual void OnEndDrag(PointerEventData eventData)
    {
        if (!canDrag)
            return;

        if (eventData.pointerEnter != null)
        {
            nextSlot = eventData.pointerEnter.GetComponent<Slot>();
        }

        if (nextSlot != null)
        {
            if (nextSlot.IsEmpty())
            {
                ChangeToSlot(nextSlot);
            }
            else
            {
                if (nextSlot.GetItemInSlot().Stackable)
                {
                    if (currentItemInSlot.idItem == nextSlot.GetItemInSlot().idItem)
                    {
                        CopyToSlot(nextSlot);
                    }
                }
            }
            nextSlot = null;
        }

        canDrag = false;
        dragIconItem.enabled = false;
    }
    #endregion

    #region Actions

    protected void ChangeToSlot(Slot slot)
    {
        if (slot.UseTypeToRestriction)
        {
            if (slot.restrictionType == currentItemInSlot.itemType)
            {
                RemoveItem(currentItemInSlot);
                slot.ChangeItem(currentItemInSlot);
                currentItemInSlot = null;
            }
        }
        else
        {


            if (slot.restrictionItem())
            {
                ClothingBase clotthing = currentItemInSlot.GetComponent<ClothingBase>();

                if (clotthing.clothingType != CLOTHING_TYPE.BACKPACK)
                {
                    slot.ChangeItem(currentItemInSlot);
                    currentItemInSlot = null;
                }
            }
            else
            {
                RemoveItem(currentItemInSlot);
                slot.ChangeItem(currentItemInSlot);
                currentItemInSlot = null;
            }
        }
    }

    protected void CopyToSlot(Slot slot)
    {
        if (slot != this)
        {
            if (currentItemInSlot.itemType == ITEM_TYPE.CONSUMABLES)
            {
                ConsumableItemBehaviour consumableItemBehaviour = currentItemInSlot.GetComponent<ConsumableItemBehaviour>();

                if (consumableItemBehaviour.typeComsumable == TYPE_CONSUMABLE.DRINK)
                {
                    ConsumableItemBehaviour slotconsumableItemBehaviour = slot.GetItemInSlot().GetComponent<ConsumableItemBehaviour>();

                    consumableItemBehaviour.amount -= slotconsumableItemBehaviour.Replace(consumableItemBehaviour.amount);
                }
            }
            else
            {
                int amountItem = (currentItemInSlot.amountItem + slot.GetItemInSlot().amountItem);
                if (amountItem > 250)
                    return;

                slot.GetItemInSlot().amountItem += currentItemInSlot.amountItem;
                currentItemInSlot = null;
            }
        }
    }

    public void AddItemInSlot(ItemBase item)
    {
        if (currentItemInSlot == null)
        {
            currentItemInSlot = item;
            iconItem.enabled = true;
            amountItem.enabled = true;
            currentSlotIsEmpty = false;

            ItemValues();
            iconItem.sprite = item.iconItem;
        }
    }

    public void ChangeItem(ItemBase item)
    {
        if (currentItemInSlot == null)
        {
            currentItemInSlot = item;
        }

        PutItem(item);
    }

    #endregion

    #region Other

    public void IsStacking(ItemBase item)
    {
        currentItemInSlot.amountItem += item.amountItem;
        ItemValues();
    }

    public virtual bool restrictionItem()
    {
        return false;
    }

    public bool IsEmpty()
    {
        return currentSlotIsEmpty;
    }

    public ItemBase GetItemInSlot()
    {
        return currentItemInSlot;
    }

    public void ResetSlot()
    {
        currentItemInSlot = null;
        amountItem.enabled = false;
        iconItem.enabled = false;
        durabilitySlider.gameObject.SetActive(false);
    }

    #endregion

    #region PutEndRemoveItem

    public virtual void ApplyActionItem(ItemBase item)
    {

    }

    public virtual void RemoveActionItem(ItemBase item)
    {

    }

    #endregion
}
avatar
weslleyFx
Moderador

Masculino PONTOS : 2558
REPUTAÇÃO : 560
Idade : 19
Áreas de atuação : C#
Respeito as regras :

Ver perfil do usuário

Voltar ao Topo Ir em baixo

Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo

- Tópicos similares

 
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum