Inventário Fácil Usando um Array

2

Index

Tagged

Attached Files

The following files have been attached to this tutorial:

.capx

Stats

3,153 visits, 4,771 views

Tools

License

This tutorial is licensed under CC BY 4.0. Please refer to the license text if you wish to reuse, share or remix the content contained within this tutorial.

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
  • 0 Comments

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