> Tutorial LeekScript
Em um programa, o mais importante é estruturar bem seu código. Para isso você aprendeu o uso de comentários e isso é tudo... Mas vamos mudar isso rapidamente com funções, uma das noções mais importantes em programação e você entenderá rapidamente. Você já os encontrou e até os usou no capítulo Native Functions.
Uma função é uma sequência de instruções, nada mais. Então chega de duplicação de código, basta chamar a função que irá executar essas instruções. Para tornar as funções mais versáteis, você pode fornecer parâmetros como o alho-poró que deseja bater, o número de MPs restantes para este turno, etc. Além disso, a função pode retornar um valor como um array com todas as caixas acessíveis pelo nosso leek. Aqui está o protótipo, ou seja, a assinatura de uma função:
NomDeLaFunction (parâmetro1, parâmetro2, ..., parâmetroN): Retorno
O protótipo é a descrição da função: seu nome, seu retorno se houver e seus parâmetros que também são opcionais. A definição de uma função é o conjunto de instruções presentes nela. Todos os protótipos das funções nativas estão acessíveis na documentação. À esquerda, na lista de funções organizadas por tema, se selecionarmos "UseWeapon" na categoria Armas, encontramos isto: !UseWeapon-Mod
Ao chamar uma função, o programa 'principal' faz uma pausa para executar o programa armazenado na função. Então, no final desta função, o programa 'principal' continua de onde parou.
Também falamos sobre declaração para funções. De fato, o LS oferece funções nativas prontas para uso, como "getNearestEnemy / useWeapon / ...". Mas é possível criar um você mesmo. Aqui está a sintaxe a adotar:
function NomeFunção (parâmetro1, parâmetro2, ..., parâmetroN) { /* As instruções */ }
Não é possível fazer tudo em uma função: a declaração de uma nova função, bem como a declaração de uma variável global são proibidas!
Para ser mais falando, vamos criar uma função bem simples, sua finalidade será chegar mais perto do centro do mapa, para lançar um chip de escudo e um chip de cura. Aqui está o seu protótipo: (Observe que o protótipo não deve ser colocado no código, exceto em um comentário para explicar sua função)
ArmorAndCare()
Nada poderia ser mais simples, nossa função não recebe nenhum parâmetro e não retorna nada!
Ainda falta uma definição aqui:
function ArmorAndCare(){ moveTowardCell(306); useChip(CHIP_ARMOR, getEntity()); useChip(CHIP_CURE, getEntity()); }
Para chamar a função, é como as outras:
ArmorAndCare(); // Aproxime-se do centro do mapa e lance ARMOR e CURE
Observação importante, uma função não pode acessar variáveis externas, exceto as globais. Você tem que imaginar que quando você chama a função, ela "vive" em seu próprio mundo e que a única coisa a que ela tem acesso são variáveis globais e outras funções.
Para ilustrar o sistema de parâmetros e retornos de função, vamos usar este exemplo:
// Protótipo: getCellDistanceTo(leek): (Number) Distância entre meu alho-poró e o do parâmetro function getCellDistanceTo(leek){ return getCellDistance(getCell(), getCell(leek)); }
De acordo com o protótipo, a função recebe um alho-poró como parâmetro (seu ID) e retorna a distância entre ele e seu próprio alho-poró. A lista de parâmetros é (quase) infinita, basta separar cada parâmetro com uma vírgula. O retorno da função é feito com a palavra chave 'return'. Neste exemplo, a função 'getCellDistance' retorna um número que retornamos diretamente. Quando a função encontra um 'retorno', ela para e continua no ponto da chamada da função. Para os interessados, o princípio de reduzir o número de parâmetros de uma função é chamado de 'curr
Impossible de charger les données du jeu.
Vérifiez votre connexion et réessayez.