Ir para conteúdo

[Skript] "format slot" e suas limitações...


danielzinh

Posts Recomendados

_______________________________________

Olá. Muitos skripters iniciantes se apegaram ao famoso format slot por ser simples, mas hoje vou te mostrar que isso é algo que pode te prejudicar.

_______________________________________

Contexto e Introdução

o format slot por si nem deveria existir no Skript, vamos aos motivos:

Ele é limitado

[!] Possui bugs de duplicação de inventário [!]

Você só pode executar expressões utilizando um comando pronto ou Functions

- Já possui bloqueador de coleta (não permite pegar o item do menu) e isso limita para certos códigos

[!] Pode causar bugs como o item não ir pro menu e sim pro seu inventário [!]

_______________________________________

Solução dos seus Problemas

No lugar de format slot use set slot, além de ser muito mais fácil de se usar, é o jeito certo e mais customizavel pros seus códigos.

 

Um exemplo de código com set slot:

command /menu:
	trigger:
		open chest with 3 rows named "Menu" to player
		wait 1 tick
		set slot 10 of player's current inventory to grass block

on inventory click:
	if name of player's current inventory is "Menu":
		broadcast "&cVocê clicou em um item do menu!"

Expressões e Syntax

Uso correto: set slot %slot% of %inventory% to %item%

Exemplo: set slot 10 of player's current inventory to grass block

___________________________

Esclarecimentos

player's current inventory - Menu atual do jogador (se não houver, será o inventário)

player's inventory - Inventário do jogador

Então não usem player's inventory caso queiram inserir o item no menu! pois usando isso, ele irá pro inventário. Sempre use player's current inventory.

_______________________________________

name of player's current inventory - Nome do menu atual, no exemplo acima, será "Menu"

clicked slot - Slot em que você clicou (NÃO RECOMENDADO - O slot clicado pode ser tanto do inventário como do menu, podendo causar um conflito caso queira pegar o slot só do menu.)

clicked item e name of clicked item - Exibe o item, e exibe o nome do item respectivamente.

clicked type - Tipo de clique (Se você clicou com o botão direito, esquerdo, com shift, sem shift, etc)

clicked inventory - Diz se o inventário clicado foi o do player ou não.

_______________________________________

Sabendo disso...

Vamos a um exemplo mais complexo, se você estiver querendo aprender, recomendo que estude esse código:

command /menu:
	trigger:
		open chest with 3 rows named "Menu" to player
		wait 1 tick
		if name of player's current inventory is "Menu": # Verifica se o menu ainda está aberto (evitar dups)
			set slot 0 of player's current inventory to grass block named "&eApenas uma grama."
		else:
			send "&cO menu estava fechado, por isso a inserida dos itens foi cancelada."

on inventory click:
	if name of player's current inventory is "Menu":
		if name of clicked item is "&eApenas uma grama."
			set slot clicked slot of player's current inventory to dirt named "&eApenas uma terra."
			send "&cEssa não! A grama virou terra porque você cutucou ela! seu delinquente."

 

 

 

 

Bons estudos, Skripters :)

EliteSK

Link para o comentário
Compartilhar em outros sites

Observação importantíssima:

Utilize:

open chest with 3 rows named "Menu" to player
wait 1 tick
if name of player's current inventory is "Menu":
	# DEFINA OS SLOTS AQUI

Esse if name of player's current inventory is "Menu": faz com que somente os slots se o menu realmente estiver aberto! se o servidor estiver meio lagado, aquele wait 1 tick pode falhar e o player fechar o inventário antes de executar os slots, fazendo com que os itens dos slots vão diretamente pro seu inventário, causando duplicação!

Editado por danielzinh
Link para o comentário
Compartilhar em outros sites

Participe da Conversa

Você pode postar agora e se cadastrar mais tarde. Se você tiver uma conta, a class='ipsType_brandedLink' href='https://gamersboard.com.br/login/' data-ipsDialog data-ipsDialog-size='medium' data-ipsDialog-title='Sign In Now'>acesse agora para postar com sua conta.
Observação: sua postagem exigirá aprovação do moderador antes de ficar visível.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.

Processando...
×
×
  • Criar Novo...