Foire aux Questions

Foire aux Questions

> Guide du débutant

Voici les questions posées fréquemment par les joueurs, si vous ne trouvez pas la votre, n'hésitez pas à la poser sur le Chat ou le Forum.

Comment tirer trois fois au pistolet ?

Chaque poireau dispose d'un certain nombre de Points de Tour PT (10 au niveau 1, mais cela peut changer), qui déterminent le nombre d'action que vous pouvez faire durant le tour.

Ainsi, tirer au pistolet coûte 3 PT, vous pouvez donc le faire 3 fois en un tour en dépensant 9 PT.

Pour cela, tirer plusieurs fois, il suffit d'avoir suffisamment de PT, et d'écrire plusieurs fois l'instruction qui vous permet de tirer, en faisant par exemple :

var enemy = getNearestEnemy()

useWeapon(enemy) useWeapon(enemy) useWeapon(enemy)

Vous pouvez également utiliser une boucle (voir: Les Boucles).

Pourquoi les poireaux que j'affronte ont un niveau supérieur au mien ?

Les adversaires sont proposés en fonction du talent du poireau. A chaque combat, un poireau gagne ou perd du talent en fonction de l'issue du combat. Le résultat d'un combat dépend de l'IA de chaque joueur, de ses caractéristiques, ainsi que de ses armes et puces. Le talent reflète donc comment cet ensemble fonctionne face aux autres joueurs.

Affronter des poireaux d'un niveau plus élevé est donc plutôt bon signe. Cela signifie que votre stratégie (vos choix d'équipement et de statistiques, ainsi que votre IA) peut compenser la différence de niveau, et donc de caractéristiques.

Avec les victoires, votre poireau gagne du talent, et affronte donc des adversaires de plus en plus fort. Quand vous commencerez à perdre, son talent augmentera moins vite, voire descendra. Vous êtes donc assurés d'affronter des adversaires aussi équilibrés que possible en fonction des joueurs disponibles.

En plus de cela, on trouve beaucoup de poireaux abandonnés à bas niveau. Ceux-ci ont pu gagner des niveaux en se faisant agresser sans que leur IA soit améliorée ou que leur caractéristiques soient augmentées. Cela contribue à vous proposer des adversaires qui peuvent sembler plus forts.

Rassurez-vous, cela va se calmer avec les niveaux. Et si cela continue à haut niveau, alors prenez le comme un compliment !

Pourquoi mon poireau explose ?

Cela arrive lorsque une erreur provoque l'arrêt de votre IA. Dans ce cas, il faut regarder le message d'erreur affiché dans le rapport de combat. Généralement, cela arrive lorsqu'une limite du jeu à été atteinte, comme la limite d'opérations, par exemple.

Pourquoi j'ai un message d'erreur qui dit "trop d'opérations exécutées pendant ce tour" ?

Dans une ia, chaque appel de fonction, chaque utilisation de variable, coûte des opérations.

Un poireau peut effectuer jusqu'à getMaxOperations opérations par tour.

Ce message est affiché lorsque cette limite est dépassée. A bas niveau, cela arrive généralement quand une boucle infinie est présente dans l'IA.

Pourquoi mon poireau ne fait pas la même chose en test et en potager ?

Lorsque l'on fait un combat de test, on peut choisir l'ia que l'on veut tester dans une liste située juste au dessus de la sélection du poireau de test, et cette IA peut être différente de celle qu'utilise le poireau en potager, qui doit être modifiée sur la page du poireau.

Comment invoquer un bulbe ?

Le premier bulbe, le Bulbe Chétif (CHIP\_PUNY\_BULB), est disponible au niveau 48. Les IAs des bulbes doivent être codées dans des fonctions. Par exemple, pour que mon bulbe se déplace vers son invocateur puis se booste avec Protéines :

function punyAI() { moveToward(getSummoner()) useChip(CHIP_PROTEIN, getEntity()) }

Pour invoquer le bulbe, il ne faut pas utiliser la fonction useChip mais summon de la façon suivante (pour notre exemple) :

// cell : la cellule où l'on veut invoquer le bulbe summon(CHIP_PUNY_BULB, cell, punyAI)

Attention à ne pas mettre de "()" après le nom de l'IA du bulbe : c'est la fonction elle-même que nous mettons en paramètre, pas son hypothétique renvoi. Plus de détails sur la page Bulbes.

Comment sont attribuées les caractéristiques d'un bulbe ?

Les caractéristiques d'un bulbe sont calculée en fonction du niveau du poireau qui l'invoque. Le maximum est atteint lorsque l'invocateur est niveau 300 (ou plus), et le minimum lorsque l'invocateur est niveau 1 (ce qui n'est pas possible en pratique).

Entre les deux niveaux, les caractéristiques sont calculées de manière linéaire, en suivant la formule suivante :

caracteristique = floor(min + (max - min) * min(300, niveauInvocateur) / 300)

Si le niveau de l'invocateur est 301, les caractéristiques sont celles d'un invocateur niveau 300.

Comment sont attribuées les caractéristiques d'un poireau ?

C'est à vous de dépenser vos Points de Capital obtenus avec les niveaux dans l'arbre de cractéristiques de votre poireau. (ceci est un point capital, dans la progression de vos poireaux)

Plus de détails sur la page Caractéristiques pour répartir vos Points de Capital

Comment stocker plus d'armes et de puces ?

Votre poireau gagne un emplacement d'armes aux niveaux 100 et 200. Le nombre de puces équipables par votre poireau dépend de sa caractéristique RAM.

Plus de détails sur la page Puces et Armes.

Comment élever plus de poireaux ?

Comme l'indique la section "L'eleveur" de /help/general.

Par la suite vous pourrez obtenir jusqu’a 4 poireaux, aux conditions suivantes :

\* Attention, il s'agit bien de ces poireaux dans l'ordre. Avoir son premier poireau niveau 150, le deuxième niveau 50 et le troisième niveau 100 ne vous permettra pas d’acheter un quatrième poireau...

Comment trouver soi-même ses erreurs ?

Avant d'appeler à l'aide sur le Chat lorsque votre IA ne s'exécute pas comme prévu, vous pouvez ajouter à votre code des debug() qui vous permettront de comprendre ce qu'il se passe:

var enemy = getNearestEnemy() debug("Numéro de mon ennemi le plus proche= " + enemy)

Ce code affichera dans le rapport du combat le contenu de la variable Enemy précédée de la chaîne "Numéro de mon enemy le plus proche= ". Le debug() ne coûte pas de points de tour (PT) mais il est préférable de ne pas trop en abuser car il rend la lecture des rapports plus difficile et parce que le nombre de debug() autorisé par combat n'est pas infini.

Un debug() peut afficher un tableau, par exemple

debug("Alliés vivants : " + getAliveAllies())

affichera un tableau dans le rapport avec les numéros des entités alliées vivantes. Cela dit, lorsque l'on manipule des tableaux de cases il est beacoup plus pratique de colorer les cases directement sur la carte pendant le combat en utilisant la fonction mark():

var maPosition = getCell() mark(maPosition + 17, COLOR_RED)

Ce code va colorer en rouge la cellule qui se situe à la droite de votre poireau sur la carte. A noter : vous pouvez créer vos propres couleurs avec la fonction getColor(), vous pourrez même dessiner des arc-en-ciel ou Mona Lisa!

Comment conserver des variables d'un tour à l'autre ?

Il suffit d'utiliser des variables globales, avec le mot-clé global :

Ou bien des champs statiques de classes, avec le mot-clé static :