Ir para conteúdo

[Tutorial Skript] Usando YML


FerreiraCosta

Posts Recomendados

Sejam bem vindos a mais um tutorial.

 

Muitas pessoas não usam YML em skript por falta de conhecimento e por falta de disposição para aprender. Bem, decidi ajudá-las a romper isso.

 

Uma breve introdução:

 

 Usar o sistema de YML, acredito, é uma opção útil aparte do banco de dados tradicional do Skript. Além de ser mais prático e manuseável, evita futuras complicações com a database do Skript. 

 

 Estaremos usando YML, e não YAML. YAML possui algumas complicações em Skript e não existe tanto suporte para esse formato.

 

 YML é uma subdivisão de JSON, e fará sentido um pouco mais à frente.

 

Add-on:

 

 SkUtilities

 

 É possível utilizar outros add-ons para essa finalidade, mas decidi usar esse porque sou mais íntimo com o mesmo e, porque sim :}.

 

Se você é um expert nisso - ou até mesmo não sendo um - e viu que eu cometi algum tropeço, me perdoe.

 

 

1 - Syntaxe

 

 

Não vamos nos aprofundar tanto assim, somente prestaremos atenção aos "caminhos" e como eles são organizados, nesta seção.

 

Podemos tanto criar listas quanto um "grupo de dados".

 

O "grupo de dados" parecerá assim:

skript:
	lucasmooon:
		habilidade: 'Nenhuma'

É possível somente pegar os valores após os dois pontos. Portanto, dessa maneira, poderíamos apenas pegar o valor "Nenhuma". No add-on, nós escolhemos esses caminhos dessa maneira:

skript.lucasmooon.habilidade

Assim estamos basicamente dizendo que o valor final será encontrado no "habilidade". Cada ponto representa um novo caminho.

 

Você pode, de certa maneira, pegar o valor que quiser, mas o resultado não será o desejado.

 

Não se preocupe se não estiver entendendo, o tutorial terá exemplos e mais exemplos.

 

Entretando, a lista é um pouco diferente:

jogadores:
	online:
		- lucasmooon
		- jogador
		- jogador 
		- jogador

É possível pegar todos os elementos da lista, mas ele retornará "[lucasmooon, jogador, jogador, jogador]" mas veremos isso mais à frente.

 

Os dois funcionam de acordo com a necessidade do Skripter.

 

2 - Criando arquivos e caminhos

 

 

Não é necessário criar arquivos manualmente. O plugin fará isso por você.

 

Para criarmos um arquivo, é simples:

create file "plugins/Skript/scripts/seu_script/data.yml"
	     |________________________________||_______|
				
	O local onde o arquivo sera criado.  O tipo de arquivo e nome.

Entretanto, somente um arquivo chamado "data.yml" será criado. 

 

Seria interessante escrevermos algo lá:


set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"
|____________| |___________________________|          |_________________________________________|    |_______|

Criamos uma    Estamos dizendo onde queremos           O caminho onde o plugin encontrara o           Valor que
especie        colocar o valor.                        arquivo.                                       desejamos que.. 
de valor

... apareca.																						   Pode ser um item, bloco, numero, etc.

Eu diria que não é importante criarmos um arquivo nulo e depois especificarmos o que queremos nele. Podemos criar o arquivo do nada já escrevendo o que queremos.

Ex:

on load:
	set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"

Porém, isso sempre será executado quando o .sk for iniciado e os valores serão sempre manipulados, por isso é interessante checar se o arquivo existe:

on load:
	if file "plugins/Skript/scripts/seu_script/data.yml" does not exist:
		set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"

A lista é um pouco diferente:

add "lucasmooon" to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"

O resultado é esse:

 

405cbf98ac.png

 

Obviamente floodei o comando. 

 

 

Você pode remover ou adicionar coisas à lista:

remove "lucasmooon" to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"  

Ou deletá-la:

delete yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"  

3 - Coletando os dados

 

Vamos coletar os dados usando variáveis. Lembrando que qualquer tipo de dado pode ser guardado (integer, string, etc). Porém, você terá de converter os dados para seu tipo (numero, item, etc), mas entenderemos isso mais para frente.

 

Para coletarmos algum dado, faremos isso:

set {_variavel} to yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"
|________________|           |____________________________|         |__________________________________________|
	
Aqui ha nada que voces       Especificando qual dos valores.         Especificando onde pegar o arquivo.
nunca viram.
Estamos setando uma 
variavel para outro 
valor.

A variável retornará "Nenhuma".

 

Usando em um comando:

command yml:	
	trigger:
		set {_variavel} to yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"
		send "%{_variavel}%"

Como de costume, vocês podem fazer o que bem entenderem com variáveis (deletar, broadcast, etc).

É interessante, quando fazendo isso, que mantenha a variável em FORMA LOCAL (com o _ na frente). A intenção de usar YML é não usar a database do skript.

 

É possível também deletar esse caminho:

delete yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"

Já com a lista, a forma com que o valor é retornado é um pouco diferente:

set {_variavel::*} to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"

A variável, agora, será uma variável em forma de lista. Isso porque no YML há mais de um valor, portanto, precisamos de uma variável que aceite mais de um valor.

 

Usando em um comando:

command yml:	
	trigger:	
		set {_variavel::*} to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"
		send "%{_variavel::*}%"

4 - Itens, números e outros.

 

O Skript e o add-on podem se confundir com o tipo de dado que você está usando. Ele não saberá se é um número (1 ou 5), um item (diamante, pedra). Para isso, você deve converter o dado.

 

Suponhamos que queremos guardar o que o player está segurando. Ex.

jogadores:
	lucasmooon:
		arma: 'diamond_sword'

E precisamos pegar o dado:

set {_item} to yml value "jogadores.lucasmooon.arma" of file "plugins/Skript/scripts/seu_script/data.yml"

E "converter" a variável.

set {_item} to {_item} parsed as item
|____________________| |_____________|
	
Setando uma variavel   "Como um item"
para alguma coisa.     Ou melhor, interpretado
	               como um item.

Isso dirá para os plugins que se trata de um item.

 

Já que temos o dado, podemos dar o item para o player, por exemplo:

command arma:	
	trigger:	
		set {_item} to yml value "jogadores.lucasmooon.arma" of file "plugins/Skript/scripts/seu_script/data.yml"
		set {_item} to {_item} parsed as item
		add {_item} to player's inventory
		send "&aAqui esta sua arma"

Se o dado for um número, o "parse" deve ser "number":

set {_numero} to {_numero} parsed as number

Acredito que seja tudo isso por enquanto. Amanhã postarei mais exemplos e responderei perguntas.

 

Dê um like.

 

 

Link para o comentário
Compartilhar em outros sites

 

Sejam bem vindos a mais um tutorial.

 

Muitas pessoas não usam YML em skript por falta de conhecimento e por falta de disposição para aprender. Bem, decidi ajudá-las a romper isso.

 

Uma breve introdução:

 

 Usar o sistema de YML, acredito, é uma opção útil aparte do banco de dados tradicional do Skript. Além de ser mais prático e manuseável, evita futuras complicações com a database do Skript. 

 

 Estaremos usando YML, e não YAML. YAML possui algumas complicações em Skript e não existe tanto suporte para esse formato.

 

 YML é uma subdivisão de JSON, e fará sentido um pouco mais à frente.

 

Add-on:

 

 SkUtilities

 

 É possível utilizar outros add-ons para essa finalidade, mas decidi usar esse porque sou mais íntimo com o mesmo e, porque sim :}.

 

Se você é um expert nisso - ou até mesmo não sendo um - e viu que eu cometi algum tropeço, me perdoe.

 

 

1 - Syntaxe

 

 

Não vamos nos aprofundar tanto assim, somente prestaremos atenção aos "caminhos" e como eles são organizados, nesta seção.

 

Podemos tanto criar listas quanto um "grupo de dados".

 

O "grupo de dados" parecerá assim:

skript:
	lucasmooon:
		habilidade: 'Nenhuma'

É possível somente pegar os valores após os dois pontos. Portanto, dessa maneira, poderíamos apenas pegar o valor "Nenhuma". No add-on, nós escolhemos esses caminhos dessa maneira:

skript.lucasmooon.habilidade

Assim estamos basicamente dizendo que o valor final será encontrado no "habilidade". Cada ponto representa um novo caminho.

 

Você pode, de certa maneira, pegar o valor que quiser, mas o resultado não será o desejado.

 

Não se preocupe se não estiver entendendo, o tutorial terá exemplos e mais exemplos.

 

Entretando, a lista é um pouco diferente:

jogadores:
	online:
		- lucasmooon
		- jogador
		- jogador 
		- jogador

É possível pegar todos os elementos da lista, mas ele retornará "[lucasmooon, jogador, jogador, jogador]" mas veremos isso mais à frente.

 

Os dois funcionam de acordo com a necessidade do Skripter.

 

2 - Criando arquivos e caminhos

 

 

Não é necessário criar arquivos manualmente. O plugin fará isso por você.

 

Para criarmos um arquivo, é simples:

create file "plugins/Skript/scripts/seu_script/data.yml"
	     |________________________________||_______|
				
	O local onde o arquivo sera criado.  O tipo de arquivo e nome.

Entretanto, somente um arquivo chamado "data.yml" será criado. 

 

Seria interessante escrevermos algo lá:


set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"
|____________| |___________________________|          |_________________________________________|    |_______|

Criamos uma    Estamos dizendo onde queremos           O caminho onde o plugin encontrara o           Valor que
especie        colocar o valor.                        arquivo.                                       desejamos que.. 
de valor

... apareca.																						   Pode ser um item, bloco, numero, etc.

Eu diria que não é importante criarmos um arquivo nulo e depois especificarmos o que queremos nele. Podemos criar o arquivo do nada já escrevendo o que queremos.

Ex:

on load:
	set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"

Porém, isso sempre será executado quando o .sk for iniciado e os valores serão sempre manipulados, por isso é interessante checar se o arquivo existe:

on load:
	if file "plugins/Skript/scripts/seu_script/data.yml" does not exist:
		set yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml" to "Nenhuma"

A lista é um pouco diferente:

add "lucasmooon" to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"

O resultado é esse:

 

405cbf98ac.png

 

Obviamente floodei o comando. 

 

 

Você pode remover ou adicionar coisas à lista:

remove "lucasmooon" to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"  

Ou deletá-la:

delete yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"  

3 - Coletando os dados

 

Vamos coletar os dados usando variáveis. Lembrando que qualquer tipo de dado pode ser guardado (integer, string, etc). Porém, você terá de converter os dados para seu tipo (numero, item, etc), mas entenderemos isso mais para frente.

 

Para coletarmos algum dado, faremos isso:

set {_variavel} to yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"
|________________|           |____________________________|         |__________________________________________|
	
Aqui ha nada que voces       Especificando qual dos valores.         Especificando onde pegar o arquivo.
nunca viram.
Estamos setando uma 
variavel para outro 
valor.

A variável retornará "Nenhuma".

 

Usando em um comando:

command yml:	
	trigger:
		set {_variavel} to yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"
		send "%{_variavel}%"

Como de costume, vocês podem fazer o que bem entenderem com variáveis (deletar, broadcast, etc).

É interessante, quando fazendo isso, que mantenha a variável em FORMA LOCAL (com o _ na frente). A intenção de usar YML é não usar a database do skript.

 

É possível também deletar esse caminho:

delete yml value "skript.lucasmooon.habilidade" of file "plugins/Skript/scripts/seu_script/data.yml"

Já com a lista, a forma com que o valor é retornado é um pouco diferente:

set {_variavel::*} to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"

A variável, agora, será uma variável em forma de lista. Isso porque no YML há mais de um valor, portanto, precisamos de uma variável que aceite mais de um valor.

 

Usando em um comando:

command yml:	
	trigger:	
		set {_variavel::*} to yml list "jogadores.online" of file "plugins/Skript/scripts/seu_script/data.yml"
		send "%{_variavel::*}%"

4 - Itens, números e outros.

 

O Skript e o add-on podem se confundir com o tipo de dado que você está usando. Ele não saberá se é um número (1 ou 5), um item (diamante, pedra). Para isso, você deve converter o dado.

 

Suponhamos que queremos guardar o que o player está segurando. Ex.

jogadores:
	lucasmooon:
		arma: 'diamond_sword'

E precisamos pegar o dado:

set {_item} to yml value "jogadores.lucasmooon.arma" of file "plugins/Skript/scripts/seu_script/data.yml"

E "converter" a variável.

set {_item} to {_item} parsed as item
|____________________| |_____________|
	
Setando uma variavel   "Como um item"
para alguma coisa.     Ou melhor, interpretado
	               como um item.

Isso dirá para os plugins que se trata de um item.

 

Já que temos o dado, podemos dar o item para o player, por exemplo:

command arma:	
	trigger:	
		set {_item} to yml value "jogadores.lucasmooon.arma" of file "plugins/Skript/scripts/seu_script/data.yml"
		set {_item} to {_item} parsed as item
		add {_item} to player's inventory
		send "&aAqui esta sua arma"

Se o dado for um número, o "parse" deve ser "number":

set {_numero} to {_numero} parsed as number

Acredito que seja tudo isso por enquanto. Amanhã postarei mais exemplos e responderei perguntas.

 

Dê um like.

 

Belo tutorial

Vai ajuda quem nao sabe

Link para o comentário
Compartilhar em outros sites

 

Gostei bastante do tutorial

 

Parabéns irá ajudar muitos inclusiva a mim!

 

Vou ter que ler isso umas 100 vezes para aprender já que quando chego no final já esqueci o começo rsrs

 

Tenho Discord, qualquer coisa: lucas_#9574

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...