Introduction
Découvrons ensemble les bases de l'Intelligence Artificielle Avancée !
Réservé à SnowBot PC et SnowBot Touch !
A quoi sert l'intelligence artificielle?
Un bot est un robot qui réalise des tâches pré-définies par son créateur. Il permet de combattre des monstres, mais pour cela une intelligence artificielle (IA) est requise. Si vous utilisez SnowBot, vous avez la chance de configurer les sorts depuis votre interface SnowBot. Mais nous allons encore plus loin ! Pour les plus expérimentés d'entre vous, vous pouvez réaliser votre propre IA depuis l'API que nous vous fournissons.
Si vous souhaitez faire une IA basique, nous vous recommandons de passer par l'interface SnowBot, beaucoup plus adaptée pour des tâches simples.
Comment coder son IA rapidement ?
Pour commencer, voici un exemple de script LUA simple pour un Enutrof qui souhaite avancer vers l'ennemi le plus proche ainsi qu'attaquer 3 fois de suite avec le sort Lancer de Pièces.
function fightManagement()
-- Je vérifie dans un premier temps que c'est bien à moi de jouer :
if (fightCharacter:isItMyTurn() == true) then
-- J'avance vers mon ennemi le plus proche
fightAction:moveToWardCell(fightAction:getNearestEnemy())
-- Je vais désormais tenter à 3 reprises de lancer le sort Lancer de Pièces
for i = 1, 3 do
-- Cellule de mon ennemi le plus proche
local cellId = fightAction:getNearestEnemy()
-- Identifiant du sort "Lancer de Pièces"
local spellId = 13338
-- Je vérifie si je peux lancer mon sort
if(fightAction:canCastSpellOnCell(fightCharacter:getCellId(),spellId,cellId) == 0) then
-- Je lance mon sort sur la cible
fightAction:castSpellOnCell(spellId,cellId)
end
end
fightAction:passTurn() -- Je passe mon tour
end
end
Comme vous pouvez le voir la fonction "fightManagement" est celle qui sera lue lors de chaque début de tour de votre bot. Ensuite nous avons préféré renseigner l'identifiant du sort plutôt que son nom générique pour éviter les erreurs liées à l'encodage de votre script, les espaces etc... Vous pouvez donc retrouver la liste des sorts pour la version de Touch ICI et pour la version PC ICI.
Comment importer son IA dans SnowBot ?
L'importation d'une IA avancée (via script LUA) sur SnowBot se fera directement dans votre script. Voici un exemple :
function move()
return {
{map = "191105026", path = "left" },
{map = "191104000", path = "bottom"},
{map = "192415750", path = "409" },
{map = "84677894", path = "bottom" },
{map = "84677893", path = "bottom" },
{map = "84677892", path = "left" },
{map = "84677380", path = "top" },
{map = "84677381", path = "left" },
}
end
function fightManagement()
fightAction:moveToWardCell(fightAction:getNearestEnemy()) -- J'avance vers mon ennemi le plus proche
for i = 1, 3 do
local cellId = fightAction:getNearestEnemy() -- Cellule de mon ennemi le plus proche
local spellId = 13338
if(fightAction:canCastSpellOnCell(fightCharacter:getCellId(),spellId,cellId) == 0) then -- Si je peux lancer mon sort Lancer de Pièces
fightAction:castSpellOnCell(spellId,cellId) -- Je lance mon sort sur la cible
end
end
fightAction:passTurn() -- Je passe mon tour
end
Comme vous le voyez il suffit d'ajouter dans votre script ce que vous souhaitez faire pendant un combat. La fonction fightManagement sera appelée lorsque votre personnage entrera en combat !
Dernière mise à jour
Cet article vous a-t-il été utile ?