Ir para conteúdo

[Tutorial Skript] Criando comandos #1


Eduardoo

Posts Recomendados

Bom, vejo muitos novatos que estão iniciando agora em skript, e quero ajuda-los, sei que tem muitos tutoriais sobre isto aqui no fórum, mas deu vontade de fazer kkk

Bom, vamos lá!


1. Criando um comando.
Bom primeiramente para criar um comando, você deve inicia-lo.

Mais como?

command /seucomando:

Bom, vamos adicionar argumentos!
Assim:

command /seucomando [<text>]:

Então, você já tem "a base" de seu comando, já pode começar a faze-lo.
Que tal adicionarmos umas permissões?

command /seucomando [<text>]:
	permission: suapermissao
	permission message: &cVocê não tem permissão!

Antes de começar o código você tem que colocar isto: 'trigger:' abaixo da mensagem de permissão !
Assim:

command /seucomando [<text>]:
	permission: suapermissao
	permission message: &cVocê não tem permissão!
	trigger:

Bom, eu vou fazer um comando o /voar mas como muitos gostam de usar /fly, que tal adicionar aliases?

command /voar [<text>]:
	aliases: fly
	permission: suapermissao
	permission message: &cVocê não tem permissão!
	trigger:

Agora vamos começar a fazer o comando, e primeiramente precisamos checar se o argumento é on/off.

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 = "on":
		
		if arg 1 = "off":

No caso, traduzido em Português ficaria: "Se o argument 1 for igual à on/off"
Bom agora vamos checar se o fly do jogador já está ligado.

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
		if arg 1 = "off":

Use 'stop' pois caso o modo do jogador estiver true, ele não vai executar o que está embaixo.
Que no caso seria:

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"
			
		if arg 1 = "off":

Bom ai já terminamos a parte de ativar o fly, agora vou explicar algumas coisas.
send "coloque sua mensagem aqui" - Use isto para enviar uma mensagem ao executor do comando.

set player's flight mode to true/false - Ativa/Desativa o fly do jogador.
Agora você vai copiar os códigos do on, e vai colar no off.
Assim:

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"
			
		if arg 1 = "off":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"

Poxa cara, então desse jeito ele só ligar o fly.. Como vou desligar então?
Simples!
Mude as mensagens de acordo com seu gosto, e troque 'true' por 'false'.
Vai ficar assim:

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"
			
		if arg 1 = "off":
			if player's flight mode is false:
				send "&cSeu fly já está desativado!"
				stop
			set player's flight mode to false
			send "&aVocê desativou seu fly com sucesso!"

Prontinho, seu fly já está pronto.

Mas pra finalizar mesmo, vamos fazer com que quando o argumento não estiver setado ou não for on/off ele enviar uma mensagem ao jogador!
 

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		if arg 1 isn't set:
			send "&cUtilize /voar <on/off>."
			stop
		if arg 1 isn't "on" or "off":
			send "&cUtilize /voar <on/off>."
			stop
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"
			
		if arg 1 = "off":
			if player's flight mode is false:
				send "&cSeu fly já está desativado!"
				stop
			set player's flight mode to false
			send "&aVocê desativou seu fly com sucesso!"

if arg 1 isn't set:
Caso o argumento 1 não estiver setado, ele envia ao player uma mensagem -"Utilize /voar <on/off>."
if arg 1 isn't "on" or "off":
Caso o argumento 1 não for nem on, nem off, ele envia uma mensagem ao player -"Utilize /voar <on/off>."
 

2. Criando um evento!

 

Bom, criamos o fly ali em cima não é mesmo?
Que tal adicionarmos um evento para que quando ele receba dano o fly desativar automaticamente? E melhor ainda, adicionar um delay caso ele esteja em combate, ficará em um delay de 5s pra poder usar novamente.
Pra isso vamos usar o evento 'on damage:'
Vamos lá!
 

Aqui é diferente, você terá que usar 'victim' para executar alguma ação para o jogador que recebeu o dano, e 'attacker' para o que está atacando.
Assim:

on damage:
	if victim's flight mode is true:
		set victim's flight mode to false
		send "&cSeu fly foi desativado automaticamente." to victim
		set {delay::%victim%} to now

Bom, fizemos o evento, adicionamos o delay, mas como vamos usar esse delay? '-'
Simples, teremos que adicionar este código o nosso fly!

command /voar [<text>]:
	aliases: fly
	permission: GVoar.use
	permission message: &cVocê não tem permissão!
	trigger:
		set {_delay} to difference between {delay::%player%} and now
		if {_delay} is less than 5 seconds:
			set {delay.Traduzido} to "%difference between 5 seconds and {_delay}%"
			replace all "hour" with "hora" in {delay.Traduzido}
			replace all "second" with "segundo" in {delay.Traduzido}
			replace all "minute" with "minuto" in {delay.Traduzido}
			replace all "and" with "e" in {delay.Traduzido}
			send "&cVocê precisar esperar %{delay.Traduzido}% para usar o fly novamente."
			stop
		if arg 1 isn't set:
			send "&cUtilize /voar <on/off>."
			stop
		if arg 1 isn't "on" or "off":
			send "&cUtilize /voar <on/off>."
			stop
		if arg 1 = "on":
			if player's flight mode is true:
				send "&cSeu fly já está ativado!"
				stop
			set player's flight mode to true
			send "&aVocê ativou seu fly com sucesso!"
			
		if arg 1 = "off":
			if player's flight mode is false:
				send "&cSeu fly já está desativado!"
				stop
			set player's flight mode to false
			send "&aVocê desativou seu fly com sucesso!"

Bom adicionamos o delay ao comando, e o-traduzimos!

Então é isso, você já tem um fly com delay e tudo mais, eu não testei nenhum destes códigos, então caso tenha erros me falem e eu corrigirei ;)

Tutorial: #1
Comando: /voar (Fly)
Dependências: SkQuery

 

Bom comecei com o fly, pois acho que começar fazendo comando de texto não vai ajudar ninguém né.
Dicas para o próximo tutorial?
Desculpe se tiver algo errado aí, creio que não tenha, mas caso tenha, eu arrumo é só falar! ^-^

Você também pode aprender bastante na Documentação do Skript (SkUnity).

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

Ótimo tutorial. Só gostaria de pontuar uma coisa:

Pessoalmente, acho melhor usar "else if" em vez de "stop". Assim você poupa uma linha e para o código do mesmo jeito.

command /voar [<text>]:
    aliases: fly
    permission: GVoar.use
    permission message: &cVocê não tem permissão!
    trigger:
        if arg 1 isn't set:
            send "&cUtilize /voar <on/off>."
        else if arg 1 isn't "on" or "off":
            send "&cUtilize /voar <on/off>."
        else if arg 1 = "on":
            if player's flight mode is true:
                send "&cSeu fly já está ativado!"
                stop
            else:
                set player's flight mode to true
                send "&aVocê ativou seu fly com sucesso!"
        else if arg 1 = "off":
            if player's flight mode is false:
                send "&cSeu fly já está desativado!"
            else:
                set player's flight mode to false
                send "&aVocê desativou seu fly com sucesso!"

Outra coisa que eu vejo muita gente fazer é isso aqui:

 

# não faz nada
if 1 = 1:
    stop
broadcast "1 não é igual a 1"
 
if 3 = 3:
    send "3 é 3"
    stop # inútil
else: # inútil
    stop # inútil
stop # inútil

Não existe a necessidade de NENHUM desses stops, nem daquele else. Se não tem nenhum código embaixo, você não precisa colocar stop.

Parar o código serve pra loops e cooldowns, não pra condições.

 

Como eu tinha dito, ótimo tutorial, vai ajudar muito a galera.

Link para o comentário
Compartilhar em outros sites

Ótimo tutorial. Só gostaria de pontuar uma coisa:

Pessoalmente, acho melhor usar "else if" em vez de "stop". Assim você poupa uma linha e para o código do mesmo jeito.

command /voar [<text>]:
    aliases: fly
    permission: GVoar.use
    permission message: &cVocê não tem permissão!
    trigger:
        if arg 1 isn't set:
            send "&cUtilize /voar <on/off>."
        else if arg 1 isn't "on" or "off":
            send "&cUtilize /voar <on/off>."
        else if arg 1 = "on":
            if player's flight mode is true:
                send "&cSeu fly já está ativado!"
                stop
            else:
                set player's flight mode to true
                send "&aVocê ativou seu fly com sucesso!"
        else if arg 1 = "off":
            if player's flight mode is false:
                send "&cSeu fly já está desativado!"
            else:
                set player's flight mode to false
                send "&aVocê desativou seu fly com sucesso!"

Outra coisa que eu vejo muita gente fazer é isso aqui:

# não faz nada
if 1 = 1:
    stop
broadcast "1 não é igual a 1"
 
if 3 = 3:
    send "3 é 3"
    stop # inútil
else: # inútil
    stop # inútil
stop # inútil

Não existe a necessidade de NENHUM desses stops, nem daquele else. Se não tem nenhum código embaixo, você não precisa colocar stop.

Parar o código serve pra loops e cooldowns, não pra condições.

 

Como eu tinha dito, ótimo tutorial, vai ajudar muito a galera.

Obrigado.

Agradeço a sugestão.

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