boa tarde \o/
Voltei aqui para falar de inventario (de novo) kk
Não liguem por eu ser noob por favor kkk
Eu consegui fazer um obj_inventario com o que eu tenho aprendido aqui no forum, mas me veio a ideia maluca de combinar itens no meu jogo haha
A minha ideia foi simples. Criar um inventario a parte, onde eu posso enviar os item e quando estes puderem ser combinados iria aparecer a opção de combinar e o novo item seria criado
Exemplo: item_A + item_B = item_C
Então usei o mesmo codigo para criar um novo inventario que chamei de "obj_combinar"
Eu consigo transportar itens do obj_inventario para o obj_combinar sem problemas, mas eu descobri que não consigo fazer uma relação entre os itens que estão lá :(
Quero dizer, pesquisei varias formas, testei varias maneiras, mas cada slot é independente e não conversa com o outro.
Assim, não da para saber se tem item_A, item_B ou item_C no inventario para poder ser combinado
Esse é o codigo dos 2 scripts usados para fazer o inventario que eu estou usando e que quero adaptar para fazer um obj_combinar
Código: Selecionar todos
///scr_criar_slots
//maximo por slot
max_slot = argument1;
//---------------------
var spr atual;
atual = 1;
spr = sprite_index;
sprite_index = spr_slot;
for(Y = 0 Y < ceil( sqrt( slots)* sprite_height) Y += sprite_height){
for(X = 0 X < floor( sqrt( slots)* sprite_height) X += sprite_width){
//criar slots-----------------
if(atual <= slots){
slot[atual] = instance_create(x + X, y + Y,obj_slot);
slot[atual].item = 0;
slot[atual].quantidade = 0;
slot[atual].X = X;
slot[atual].Y = Y;
slot[atual].pai = id;
//---------------------
atual += 1;
}
}
}
///scr_item
var slot; slot = 1;
while(slot <= instance_number(obj_slot)){
if(obj_inventario.slot[slot].quantidade < obj_inventario.max_slot
and obj_inventario.slot[slot].item = argument0)
or
(obj_inventario.slot[slot].quantidade = 0)
{
obj_inventario.slot[slot].item = argument0;
obj_inventario.slot[slot].quantidade += 1;
instance_destroy();
exit
}
else
{
slot += 1;
}
}
Outros códigos importantes:
Código: Selecionar todos
// no evento draw do obj_slot
image_index = item;
x=pai.x + X;
y=pai.y + Y;
draw_sprite (sprite_index,image_index,x,y);
draw_test(x+20,y+20,quantidade);
//colisão do jogador com o item
scr_item(1) // adiciona o item 1 no inventario. cada item tem um numero que muda a sprite no slot
//como os itens são utilizados
if (slot_ID.quantidade >0){
if (slot_ID.item=1){
slot_ID.quantidade -=1;} /// aqui tambem é onde é posto o efeito que o item tratar no jogador.
}
//item enviado para os slots de combinação
scr_combinar_itens(1) // ao selecionar a opção 'combinar' nas opçoes. diminui a quantidade do item no inventario comum e acrescenta para o obj_combinar, e vice e versa caso use a opçõa voltar
Eu não sei se dá para fazer um sistema de combinação de itens a partir daqui ou se é melhor eu encontra algum outro codigo especifico para isso.
Alguem poderia me dar uma luz? ou indicar a direção certa?
obs: Editei a publicação colocando um gif do inventario para ficar mais fácil de entender o que estou tentando fazer =)
Tambem acrescentei outros codigos para exemplificar como as coisas funcionam
Se tudo der certo logo disponibilizarei a engine desse sistema combinando cores :D