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