Inventário Fácil Usando um Array

Index

Tagged

Attached Files

The following files have been attached to this tutorial:

.capx

inventory.capx

Download now 179 KB

Stats

1,113 visits, 1,204 views

Tools

Programando o Inventário

Deixe os slots e textos prontos

A primeira coisa que nós precisamos criar são funções para atualizar os objetos invSlot e slotAmt. Isso pode ser feito com um simples looping que irá configurar cada invSlot com a ID do respectivo slot, e configurar slotAmt com a quantidade desse item nesse slot.

Recolhendo itens

Parâmetros

Param0 é a ID do item a ser adicionado no inventário.

Param1 (opcional) é a quantidade do item a ser adicionado. Se esta checagem não for atendida, o padrão será 1.

Variáveis

foundSlot - Usado para acompanhar se outro slot contendo o mesmo item foi encontrado ou não.

emptySlot - Guarda o slotID do primeiro slot vazio encontrado.

amountToAdd - Quantidade de itens que serão adicionados no inventário.

Eventos

Evento 8 - Reinicia as variáveis.

Eventos 9-10 - Checa se somente 1 parâmetro passou. Se sim, padronize amountToAdd para 1. Senão, configure ele para Param1.

Evento 11 - Olhe através de cada elemento X com um looping na array do inventário. Não se preocupe em prosseguir se um slot já foi encontrado.

(Observe que dentro deste loop, o slot atual será igual arr_inventory.CurX e o item ID atual será arr_inventory.CurValue)

Evento 12 - Se a ID do item no slot atual for 0, isto significa que ele está vazio. Se um emptySlot não foi encontrado ainda (nós queremos o primeiro empty slot, não o último) guarde o slot atual em emptySlot.

Evento 13 - Se o ID de um item no slot atual é igual ao ID do item que estamos adicionando (Param0) nós configuraremos foundSlot para corresponder ao slot atual, adicionando amountToAdd na quantidade atual do item no slot, e finalmente chamar a função UpdateInventory.

Evento 14 - Primeiro identificaremos se o slot atual é o último slot na array do inventário. Se sim, tenha certeza de que um slot combinável não foi encontrado e um slot vazio existe. Então o primeiro slot vazio (emptySlot) pode ser configurado com a ID do item a ser adicionado, e a quantidade nesse slot pode ser atualizado para amountToAdd. Então chame a função UpdateInventory.

Descartando itens

Parâmetros

Param0 é o slotID de onde iremos remover o item.

Param1 é a quantidade de itens a serem removidos.

Variáveis

itemsRemoved - A quantidade de itens que foram removidos de um slot (no caso de Param1 ser maior que o número de itens atualmente guardados)

Eventos

Event o18 - Primeiro configure itemsRemoved para min(Current Slot Amount, Param1), isto irá pegar o menor valor entre dois números para prevenir a remoção de mais itens que o existente no slot atual. Então remova a quantidade do slot que atendeu à Param0.

Evento 19 - Se este slot agora for vazio, configure o ID do slot para 0 para representar um slot vazio. Configurando a quantidade nesse slot não é totalmente necessariamente, só teremos isto aqui como uma checagem de segurança.

Evento 20 - Finalmente, chame a função UpdateInventory e retorne itemsRemoved. Retornando a variável não é necessário a não ser que você precise dela em algum outro lugar (ex. descartando aqueles itens no chão).

Outros detalhes

Para adicionar/remover itens do inventário nós simplesmente chamamos estas duas funções quando spr_groundItem or spr_invSlot forem clicados.

E isto é tudo que você precisa!

.CAPX

inventory.capx

Download now 179 KB
  • 0 Comments

  • Order by
Want to leave a comment? Login or Register an account!