TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!




Participe do fórum, é rápido e fácil

TeaM KingS
[center]Ola Convidado, seja bem vindo ao TeaM KingS !

Nós temos tutoriais sobre o WarCraft World Editor: se você tiver alguma duvida pode perguntar que os moderadores ou membros experientes vão lhe ajudar.

Para melhor utilizar nossos recursos é extremamente recomendado que esteja logado em nosso fórum e que leia o nosso regulamento oficial.

Também temos fóruns sobre DotA AllstarS, com guias, estratégias, e muito mais!


TeaM KingS
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

[TUTORIAL] vJass tuts #1 - Básico

3 participantes

Ir para baixo

[TUTORIAL] vJass tuts #1 - Básico Empty [TUTORIAL] vJass tuts #1 - Básico

Mensagem por Bills 2013-10-28, 09:33

vJass #1 - Básico
Eai galera vamos começar a segunda-feira com tutorial de vJass? Claro que sim, né!?
Sem enrolação vamos direto ao código:

Código:
library Tutorial initializer Iniciar

  function Iniciar takes nothing returns nothing

    call BJDebugMsg("Olá Mundo")

  endfunction

endlibrary
Agora vamos testar esse código. Para isso você vai precisar do JNGP. Com o jngp instalado e configurado, abra o world editor dele. Agora crie um novo mapa, vá até o Trigger Editor (F4), crie uma nova Trigger e clique no menu Edit > Convert to Custom Text. Agora você já pode DIGITAR, isso mesmo digitar, aquele código lá de cima. Digitando códigos você vai aos poucos acostumando com o jeito de escrever vJass. 
Assim que tiver terminado salve o mapa DUAS vezes e teste o mapa (CTRL+F9). Quando o mapa terminar de carregar você verá na tela "Olá Mundo". Legal né?!

Vamos fazer algo mais legal agora, vamos analisar o código linha por linha!


Código:
library Tutorial initializer Iniciar
A palavra library significa biblioteca. Uma biblioteca é um pacote de códigos ou uma coleção, uma maneira de você organizar seu código. E "Tutorial" é o nome da nossa library. Já a palavra initializer é opcional, você usa apenas quando quer que "uma função da library" seja chamada assim que seu mapa começar. Nesse caso escolhemos função "Iniciar".


Código:
function Iniciar takes nothing returns nothing
A palavra function é usada para declarar (criar/montar) uma função. Uma função é um trecho de código que poderá ser usado várias vezes apenas usando o nome da função, que nesse caso é "Iniciar". Assim você evita escrever o mesmo código várias vezes. Você escreve o código uma única vez e usa ele várias vezes.

A palavra takes é usada para mostrar quais valores essa função usará. Lembra quando você vai criar uma unit em GUI? Você tem que atribuir valores como qual unit será, quantas dela serão criadas, a posição, etc, certo? Então isso são os valores. Mas no nosso caso não precisamos de nenhuma valor, por isso usamos nothing para simbolizar isso.

Já a palavra returns significa retorna. É usado para dizer qual tipo de valor essa função pode retornar "quando ela terminar de executar o código dela". Nesse caso também usamos nothing, pois não precisamos que ela retorne algo.

Código:
call BJDebugMsg("Olá Mundo")
Aqui conhecemos a palvra call, que significa chamar. Chamar o que? Chamar uma função. Quando uma função é chamada todo o código dela é executado e, se possivel, ela retorna um valor. A função que estamos chamando é a BJDebugMsg, ela é uma das muitas funções que já vem declarada no seu World Editor e ela foi declarada assim:


Código:
function BJDebugMsg takes string msg returns nothing
Ela usa (takes) uma string para ser chamada. Uma string, para quem não sabe, são palavras/textos. Toda string deve ser escrita entre aspas, como podemos ver na função BJDebugMsg que chamamos. Faça um teste você mesmo, apague o Olá Mundo e escreva qualquer coisa que você quiser, salve seu mapa e teste ele. Lembre que o que você escreveu deve está dentro de aspas.

Uma coisa que deve ser notada também é que agora estamos usando parenteses. Dentro dos parenteses deve ser colocado os valores que a função usa (o takes dela) e cada valor deve ser separado por uma virgula. Um exemplo:

Código:
function MostrarOsDois takes string a, string b returns nothing
  call BJDebugMsg(a)
  call BJDebugMsg(b)
endfunction
Eu não expliquei e caso não esteja tão intuitivo assim, tudo que vem depois do takes e antes do returns são os valores que a função usa. Em programação chamamos esses valores de argumentos ou parametros.
Para chamarmos a função MostrarOsDois, você fará assim:

Código:
call MostrarOsDois("um texto" , "outro texto")
Olha a virgula separando os valores denovo.

E se a função não usar nada (takes nothing)? Então você precisa apenas deixar os parenteses vazios. Por exemplo, chamariamos nossa função Iniciar assim:


Código:
call Iniciar();
Simples né!?

Agora para finalizar:


Código:
endfunction
A palavra endfunction é duas palavras juntas, end e function. Ela significa fim da função. Você usa ela para dizer que sua função termina ali.


Código:
endlibrary
É a mesma coisa de endfuntion, porém é usada para dizer que sua library termina ali.
Quando usamos uma endlibrary ou endfunction, ou outros ends que você ainda conhecerá, estamos querendo dizer que encapsulamos aquele código dentro daquele escopo. No nosso caso, tudo que está abaixo da linha da library e antes da linha da endlibrary, está encapsulado dentra da nossa library Tutorial. Mais para frente isso fará mais sentido para você.


Bills escreveu:Como alguns já sabem esse não é meu primeiro tutorial sobre vJass. Mas dessa vez vou focar no uso de Sistemas de vJass. Pois isso é o bom de vJass. Já existem muitos sistemas prontos (muitos deles estou usando em meu projeto) que facilitam o desenvolvimento do seu projeto. Mas facilitam muito mesmo. E é isso que vou mostrar já no próximo tutorial.
Até lá!
Bills
Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32039

Warning Necropost
[TUTORIAL] vJass tuts #1 - Básico Left_bar_bleue35 / 10035 / 100[TUTORIAL] vJass tuts #1 - Básico Right_bar_bleue


Ir para o topo Ir para baixo

[TUTORIAL] vJass tuts #1 - Básico Empty Re: [TUTORIAL] vJass tuts #1 - Básico

Mensagem por Gilgamesh 2013-10-28, 14:53

Excelente Sr. Bills!

Eu só conheci o TeK ou qualquer outro editor brasileiro que utilizasse vJass depois de aprender, então meu aprendizado foi bem complicado porque tive de utilizar o pouco do inglês que sei pra aprender no Hive.

Esse tutorial é uma colher de chá pra quem não tem um inglês mais ou menos, como eu.

Tô na aguarda dos próximos tutos, parabéns!

Melhores cumprimentos.
Gilgamesh
Gilgamesh

Número de Posts : 313
Data de inscrição : 11/05/2013
Reputação : 69 Pontos : 24509

Warning Necropost
[TUTORIAL] vJass tuts #1 - Básico Left_bar_bleue0 / 1000 / 100[TUTORIAL] vJass tuts #1 - Básico Right_bar_bleue


http://www.DotCastleBR.forumeiros.com

Ir para o topo Ir para baixo

[TUTORIAL] vJass tuts #1 - Básico Empty Re: [TUTORIAL] vJass tuts #1 - Básico

Mensagem por Joker 2013-10-28, 16:09

OH AGORA NOS APRENDE VJASS EEEEEE!
otimo tuto!
Joker
Joker

Número de Posts : 447
Data de inscrição : 03/08/2012
Reputação : 62 Pontos : 27113

Warning Necropost
[TUTORIAL] vJass tuts #1 - Básico Left_bar_bleue0 / 1000 / 100[TUTORIAL] vJass tuts #1 - Básico Right_bar_bleue


Ir para o topo Ir para baixo

[TUTORIAL] vJass tuts #1 - Básico Empty Re: [TUTORIAL] vJass tuts #1 - Básico

Mensagem por Bills 2013-10-28, 19:37

Obrigado pelos votos de confiança =) isso me faz muito feliz.
Semana que vem posto mais e farei o possivel para que cada semana eu faça um novo tutorial.
Bills
Bills

Número de Posts : 1446
Data de inscrição : 04/12/2010
Reputação : 173 Pontos : 32039

Warning Necropost
[TUTORIAL] vJass tuts #1 - Básico Left_bar_bleue35 / 10035 / 100[TUTORIAL] vJass tuts #1 - Básico Right_bar_bleue


Ir para o topo Ir para baixo

[TUTORIAL] vJass tuts #1 - Básico Empty Re: [TUTORIAL] vJass tuts #1 - Básico

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos