Bom essa será nossa segunda aula, sugiro que leiam ela como muita atenção.
Antes de tudo voce deve saber que vJass é "case sensitive", ou seja, letras maiusculas e minusculas fazem diferença. Unit, é diferente de UnIt ou uNiT ou unit ou uniT e etc. Desta maneira os comandos if e loop, por exemplo, só podem ser escritos em letras minusculas senão o compilador irá interpretá-los como variaveis.
Primeiro Código
library Exemplo1
struct MyStruct
// Meu primeiro código
static method onInit takes nothing returns nothing
call BJDebugMsg("Hello World!")
endmethod
endstruct
endlibrary
Este codigo exibirá a messagem Hello World! na tela quando seu mapa iniciar.
Vamos entender o codigo
A linha library Exemplo1 cria uma library nomeada Exemplo1. Uma library é como se fosse um bloco de notas com codigos. Por enquanto é apenas isso que voce precisa saber. Caso queira saber mais leia este tutorial que eu fiz. Quando voce quiser terminar sua library, voce deve apenas escrever a linha (vista no final do código) endlibrary. Esta linha é obrigatória, nunca se pode deixar uma library aberta (sem o seu endlibrary).
Quando fazemos um código, uma boa idéia é usar comentarios que ajudem a explicar partes dele. No nosso código temos o comentario // Meu primeiro código, viu né? O compilador desconsidera qualquer coisa que esteja escrito depois do // naquela linha.
A linha struct MyStruct cria uma struct e nomeia ela de MyStruct. Uma struct é um objeto e como um objeto, ela pode ter varias caracteristicas. Nas proximas aulas voces entenderam melhor. Assim como na library, o compilador precisa saber onde termina sua struct, para isso apenas escreva endstruct depois de escrever os códigos da sua struct.
O static method onInit takes nothing returns nothing é nosso method que sempre vai iniciar junto com o mapa. O method onInit (escrito desse jeito, lembre-se do case sensitive) de uma struct sempre será executado quando seu mapa iniciar, sempre deve ser static e takes nothing returns nothing. O termo static vocês entederam mais tarde. A parte takes nothing diz que o method não precisa de nenhuma variavel para ser executado. Quando voce quiser que um method use alguma variável você pode passar o valor dela pra essa function. E returns nothing significa que esse method não retorna nenhum valor. Um method pode retornar um valor (move speed de uma unit, por exemplo) e você pode preferir guardar esse valor em uma variável. O onInit é o nome do method, esse nome pode ser qualquer um. Contando que não se repita ou comece com números. Aé, methods também precisam ser encerrados. Apenas coloque endmethod no final dele.
Única coisa que esse código faz é exibir a messagem Hello World!.
Olha ai, essa function (que é quase a mesma coisa que um method) requer uma string: takes string msg. Uma string é um conjunto de caracteres, quem conhece de trigger editor sabe disso. O comando BJDebugMsg exibe a string msg na tela por um minuto. Só!function BJDebugMsg takes string msg returns nothing
Antes do comando pode ver que tem a palavra call, que significa chamar. Ele que chama/executa o comando. Uma string sempre deve ser escrita entre aspas (" "), sempre. Um exemplo:
Faz de conta que voce quer mostrar mostrar a messagem Game Over. Então ficaria assim:
call BJDebugMsg("Game Over")
As coisas escritas dentro dos parenteses são os parametros do comando, o takes dela. Quando um comando tem takes nothing você precisa apenas deixar os parenteses vazios.Exemplo:
Quando um comando tem algum returns, voce pode preferir guarda o valor do retorno dela. O comando CreateTimer, por exemplo, é takes nothing returns timer. Ou seja ele retorna um timer, um timer que acabou de ser criado. Faz de conta que voce tem uma variável chamada TempTimer e você quer guarda um novo timer nela:call CreateTimer() // um comando que cria um countdown timer.
call CreateTimer // assim daria erro, faltou os parenteses.
set TempTimer = CreateTimer()
// O comando CreateTimer foi chamado e seu valor de retorno
// foi guardado na variavel TempTimer
Primeiramente, desculpe pelas aulas serem semanais. Tentarei faze-las em um periodo mais curto. Espero que tenham entendido sobre esse inicio, voce ainda estará confuso, mas é assim mesmo. Logo logo voce estará entendendo a sintexe do vJass.
Abraços.
so nao to usando vjass ainda, pq meu JNPG nao funciona mas nem f****** pelo jeito, nunca simula o map ¬¬
ResponderExcluirAcho que quando tiver tempo farei um post explicando os causadores de erro no JNPG.
ResponderExcluirconsegui colocar o jnpg pra rodar...
ResponderExcluiragora vou passar pro vjass de vez ^^
Ae, isso ae man. Quando tiver duvidas, pode me perguntar sem medo =D
ResponderExcluirAssim que der eu farei novos tutoriais também.
ai bills, de novo jnpg nao ta querendo testar, parece mais que o jhelper nao roda
ResponderExcluirnao mostra a jenelinha dizendo que ta rodando pjass, pegando o commom e blizzard .j
aff ¬¬
tu tem ideia do que é?
(uso windows 7 ultimate 64b)
Vê se te ajuda:
ResponderExcluirhttp://editmyworld.blogspot.com/2011/09/download-do-jngp.html
deixa-pra la, questao de noob, firewall ativado
ResponderExcluirvlw bills
rafabrum5:
ResponderExcluirHello world é quando tu inicia uma nova linguagem de programação '-'
Isso eh muito parecido com Java .-.
@rafabrum
ResponderExcluirHehe, "hello world" é o clássico da programação. E é mesmo, vjass é bem parecido com java.
estou tendo problemas '-'
ResponderExcluireu tento de todo jeito mas dá erros
no código '-'
eu escrevi, e deu erro, copiei e deu
erro...
dá 23 erros '-'
Você já baixou o JNGP?
ResponderExcluirhttp://editmyworld.blogspot.com/2011/09/download-do-jngp.html