Structure

Définition - Fonction

Une fonction est un terme générique qui désigne une partie d'un programme indépendant qui peut être appelée par un autre programme ou par elle-même. ( dans ce cas, on dit qu'il y a récursivité )

Une fonction ( aussi appelé "routine" ), est une portion de code représentant un bloc et contenant un sous programme.

Suivant le langage utilisé et plus généralement en POO, on parlera aussi de méthode.( voir § suivant )

Mais pour ce qui nous intéresse ici, le langage LUA, nous parlerons tout simplement de fonction.

  • On envoie à une fonction des "paramètres". (param)

  • Cette fonction va recevoir et traiter des "arguments". (arg)

  • Et cette fonction va retourner ( ou pas ), des "résultats". (return)

La syntaxe pour définir une fonction est :

function leNomDeMaFonction(argument1,argument2,argument3)
    -- Le contenu de notre fonction
end

Voici un exemple de fonction appliquée à SnowBot :

function envoyerMessage(argument)
    global:printMessage(argument)
end

-- Simplification :

function sendText(arg)
    global:printMessage(arg)
end

SnowBot nécessite une structure de base, de la même manière que la structure de base d’une maison.

Cette structure est la suivante:

AUTO_DELETE = {}
GATHER = {}
MIN_MONSTERS = 1
MAX_MONSTERS = 8


function move()
    return {
        -- Les déplacements, récoltes, combats
    }
end

function bank()
    return {
        -- Le retour en banque lorsque le personnage est en surpoids
    }
end

function phenix()
    return {
        -- La chemin vers le phenix si le personnage est mort
    }
end

Ce sont trois fonctions qui sont appelées par SnowBot à chaque changement de carte.

Fonction « Move »

La fonction « move » contient plusieurs types d’actions.

  • Les déplacements sans action.

  • Les déplacements avec récolte.

  • Les déplacements avec combat.

  • Les déplacements avec récolte et combat.

  • Les actions customisées.

C’est cette fonction qui est la plupart du temps appelée à chaque changement de carte.

Fonction « Bank »

La fonction bank ne contient que trois types d’actions.

  • Les déplacements sans action en direction de la banque.

  • Le dialogue avec le banquier pour vider son inventaire // l’accès au coffre d’une maison.

  • Les actions customisées.

Elle est appelée lorsque le pourcentage de retour en banque est atteint. Si le pourcentage est à 90%, alors lorsque le personnage atteindra 90% ou plus dans son inventaire, SnowBot appellera la fonction bank à la place de la fonction move.

Fonction « Phenix »

La fonction phenix ne contient, elle aussi, que trois types d’actions.

  • Les déplacements sans action en direction du phenix.

  • L’utilisation du phœnix pour se réanimer.

  • Les actions customisées.

Elle est appelée lorsque le personnage est un fantôme. La fonction move sera ensuite rappelée lorsque le personnage se sera réanimé avec un phœnix.

Nous avons désormais la forme, la structure de nos trajets. La prochaine étape sera d’ajouter des actions dans ces trois fonctions afin de donner des ordres à nos personnages. Courage jeune loup !

Fonction « Stopped » [PC]

La fonction stopped est appelée dans de rares cas de figure où votre script s’arrête de manière impromptue.

Exemples d'utilisation de la fonction stopped :

-- Le script a crash, nous le rechargeons via la fonction reloadScript, il sera
-- relancé automatiquement.
function stopped()
    global:printError("Le script a crash, je le relance !")
    global:reloadScript()
end
-- Le script a crash, nous déconnectons le personnage.
function stopped()
    global:printError("Le script a crash, je me deconnecte !")
    global:disconnect()
end

Dernière mise à jour