character

Gestion du personnage, statistiques et informations

accountId

Retourne l'identifiant unique du compte Ankama (idaccount) associe au personnage. Cet ID est different de l'ID du personnage et reste constant pour tous les personnages du meme compte.

Signature: character:accountId()

Retourne: number - ID du compte Ankama (Double)

Exemple:

local accountId = character:accountId()
global:printMessage("Account ID: " .. accountId)

-- Utile pour identifier un compte specifique
if accountId == 123456789 then
    global:printMessage("Compte principal detecte")
end

askShieldCode

Envoie une requete a l'API Ankama (haapi.ankama.com) pour recevoir un code de securite Shield par email. Ce code est necessaire pour valider un nouveau certificat Shield et permettre la connexion sans passer par le launcher Zaap. Utilise l'API v4 avec les headers du client Dofus.

Signature: character:askShieldCode()

Exemple:

-- Demander un code Shield
character:askShieldCode()
global:printMessage("Un code a ete envoye a votre email!")

-- Ensuite, utiliser sendShieldCode() avec le code recu
local code = global:askInput("Entrez le code Shield recu par email:", "Shield")
character:sendShieldCode(code)

Note: Le code est envoye a l'email associe au compte Ankama. Valide pour l'API v4.

askShieldCodeNew

Version mise a jour de askShieldCode() utilisant l'API Ankama v5 et le format Zaap 3.6.4. Envoie une requete pour recevoir un code Shield par email avec les nouveaux headers requis.

Signature: character:askShieldCodeNew(nickname, apiKey)

Paramètres:

Nom
Type
Description

nickname

string

Pseudo du compte (pour le message de confirmation)

apiKey

string

Cle API Ankama (obtenue lors de l'authentification)

Exemple:

Note: Preferer cette version pour les nouvelles authentifications. Utilise Zaap 3.6.4 comme User-Agent.

breed

Retourne l'ID numerique de la classe du personnage. Chaque classe Dofus a un ID unique: 1=Feca, 2=Osamodas, 3=Enutrof, 4=Sram, 5=Xelor, 6=Ecaflip, 7=Eniripsa, 8=Iop, 9=Cra, 10=Sadida, 11=Sacrieur, 12=Pandawa, 13=Roublard, 14=Zobal, 15=Steamer, 16=Eliotrope, 17=Huppermage, 18=Ouginak, 19=Forgelance.

Signature: character:breed()

Retourne: number - ID de la classe (1-19)

Exemple:

breedName

Retourne le nom de la classe du personnage en utilisant l'enumeration BreedEnum du jeu. Convertit automatiquement l'ID de classe en nom lisible.

Signature: character:breedName()

Retourne: string - Nom de la classe (ex: "Enutrof", "Iop", "Cra")

Exemple:

certified

Verifie si le compte est certifie aupres d'Ankama. Un compte certifie a complete le processus de verification d'identite et beneficie de protections supplementaires.

Signature: character:certified()

Retourne: boolean - true si le compte est certifie Ankama

Exemple:

energyPoints

Retourne les points d'energie actuels du personnage. L'energie diminue a chaque mort et se regenere avec le temps ou via des items specifiques. A 0 energie, le personnage devient un fantome.

Signature: character:energyPoints()

Retourne: number - Points d'energie actuels

Exemple:

experience

Retourne le total de points d'experience (XP) accumules par le personnage depuis sa creation. Cette valeur determine le niveau du personnage.

Signature: character:experience()

Retourne: number - Experience totale (Double)

Exemple:

freeMode

Verifie si le compte est en mode gratuit (non abonne). Compare la date d'expiration de l'abonnement (timestamp Unix depuis 1970) avec la date actuelle. En mode gratuit, l'acces aux zones P2P est restreint.

Signature: character:freeMode()

Retourne: boolean - true si l'abonnement a expire, false si encore abonne

Exemple:

getAgilityBase

Retourne les points d'agilite de BASE du personnage, c'est-a-dire uniquement les points investis via les caracteristiques, sans compter les bonus d'equipement, de buff ou de parchemins.

Signature: character:getAgilityBase()

Retourne: number - Agilite de base (sans bonus)

Exemple:

getChanceBase

Retourne les points de chance de BASE du personnage (investis via caracteristiques uniquement, hors equipement et buffs).

Signature: character:getChanceBase()

Retourne: number - Chance de base

Exemple:

getCostAgility

Calcule le cout en points de caracteristiques pour augmenter l'agilite d'UN point. Le cout varie selon la classe (breed) et le nombre de points deja investis. Utilise l'algorithme RiseOneSort pour calculer le cout progressif.

Signature: character:getCostAgility()

Retourne: number - Cout en points pour +1 agilite

Exemple:

getCostChance

Calcule le cout en points de caracteristiques pour augmenter la chance d'UN point. Le cout depend de la classe et des points deja investis.

Signature: character:getCostChance()

Retourne: number - Cout en points pour +1 chance

Exemple:

getCostIntelligence

Calcule le cout en points de caracteristiques pour augmenter l'intelligence d'UN point.

Signature: character:getCostIntelligence()

Retourne: number - Cout en points pour +1 intelligence

Exemple:

getCostStrenght

Calcule le cout en points de caracteristiques pour augmenter la force d'UN point.

Signature: character:getCostStrenght()

Retourne: number - Cout en points pour +1 force

Exemple:

getCostVitality

Calcule le cout en points de caracteristiques pour augmenter la vitalite d'UN point. La vitalite coute generalement 1 point quelque soit la classe.

Signature: character:getCostVitality()

Retourne: number - Cout en points pour +1 vitalite

Exemple:

getCostWisdom

Calcule le cout en points de caracteristiques pour augmenter la sagesse d'UN point. La sagesse coute generalement 3 points quelque soit la classe.

Signature: character:getCostWisdom()

Retourne: number - Cout en points pour +1 sagesse

Exemple:

getIntelligenceBase

Retourne les points d'intelligence de BASE du personnage (hors equipement et buffs).

Signature: character:getIntelligenceBase()

Retourne: number - Intelligence de base

Exemple:

getSecondsBeforeFreeMode

Calcule le nombre de secondes restantes avant l'expiration de l'abonnement. Retourne 0 si l'abonnement est deja expire. Utilise le timestamp d'abonnement (Abonnementtime) stocke en secondes depuis le 1er janvier 1970.

Signature: character:getSecondsBeforeFreeMode()

Retourne: number - Secondes restantes (0 si expire)

Exemple:

getSpellMinPlayerLevel

Retourne le niveau minimum requis pour apprendre un sort specifique. Interroge les donnees D2O (Spells et SpellLevels) pour trouver le minPlayerLevel du premier niveau du sort.

Signature: character:getSpellMinPlayerLevel(spellId)

Paramètres:

Nom
Type
Description

spellId

number

ID du sort a verifier

Retourne: number - Niveau minimum requis (-1 si erreur)

Exemple:

getSpellVariant

Tente d'obtenir une variante de sort specifique. Verifie d'abord si le personnage possede deja cette variante dans sa liste de sorts, puis si le niveau est suffisant. Si les conditions sont remplies, envoie le paquet 6707 pour debloquer la variante.

Signature: character:getSpellVariant(varSpellId)

Paramètres:

Nom
Type
Description

varSpellId

number

ID de la variante de sort a obtenir

Retourne: boolean - true si la variante a ete obtenue/demandee avec succes

Exemple:

Note: Affiche un message d'erreur si le sort est deja possede ou si le niveau est insuffisant.

getStats

Retourne l'objet CharacterCharacteristicsInformations complet contenant TOUTES les statistiques du personnage avec leurs valeurs base, additionalPoints, objectsAndMountBonus, alignGiftBonus, contextModif.

Signature: character:getStats()

Retourne: CharacterCharacteristicsInformations - Objet complet avec toutes les stats

Exemple:

getStatus

Retourne le nom du statut actuel du personnage tel qu'il est stocke en memoire (Statut_name). Les statuts possibles incluent: Disponible, Absent, Occupe, Solo, etc.

Signature: character:getStatus()

Retourne: string - Nom du statut actuel

Exemple:

getStrenghtBase

Retourne les points de force de BASE du personnage (investis via caracteristiques uniquement).

Signature: character:getStrenghtBase()

Retourne: number - Force de base

Exemple:

getURLBodySkin

Genere une URL vers le service de rendu Ankama pour obtenir l'image complete (corps entier) du personnage avec son equipement actuel. Utilise lookcharacter pour generer le skin.

Signature: character:getURLBodySkin(orientation, width, height, zoom)

Paramètres:

Nom
Type
Description

orientation

number

Direction du personnage (0-7, defaut: 3 = face)

width

number

Largeur de l'image en pixels (defaut: 150)

height

number

Hauteur de l'image en pixels (defaut: 220)

zoom

number

Niveau de zoom (defaut: 0)

Retourne: string - URL complete de l'image

Exemple:

getURLFaceSkin

Genere une URL vers le service de rendu Ankama pour obtenir l'image du visage/tete du personnage. Utile pour les avatars ou icones.

Signature: character:getURLFaceSkin(orientation, width, height, zoom)

Paramètres:

Nom
Type
Description

orientation

number

Direction (0-7, defaut: 3)

width

number

Largeur en pixels (defaut: 32)

height

number

Hauteur en pixels (defaut: 32)

zoom

number

Niveau de zoom (defaut: 0)

Retourne: string - URL de l'image du visage

Exemple:

getVitalityBase

Retourne les points de vitalite de BASE du personnage (investis via caracteristiques uniquement).

Signature: character:getVitalityBase()

Retourne: number - Vitalite de base

Exemple:

getWisdomBase

Retourne les points de sagesse de BASE du personnage (investis via caracteristiques uniquement). La sagesse augmente l'XP gagnee et les chances de retrait de PA/PM.

Signature: character:getWisdomBase()

Retourne: number - Sagesse de base

Exemple:

id

Retourne l'identifiant unique du personnage (idperso) en tant que Double. Cet ID est unique pour chaque personnage dans le jeu et ne change jamais.

Signature: character:id()

Retourne: number - ID unique du personnage (Double)

Exemple:

identifier

Retourne l'identifiant du personnage sous forme de chaine de caracteres. Equivalent a id() mais en format string.

Signature: character:identifier()

Retourne: string - ID du personnage (String)

Exemple:

isInFight

Verifie si le personnage est actuellement en combat. Utilise le flag IsInFight du MITM qui est mis a jour a chaque changement d'etat.

Signature: character:isInFight()

Retourne: boolean - true si en combat

Exemple:

kamas

Retourne le nombre de kamas que possede le personnage dans son inventaire (pas en banque). Les kamas sont la monnaie principale du jeu.

Signature: character:kamas()

Retourne: number - Nombre de kamas (Double)

Exemple:

level

Retourne le niveau actuel du personnage (1 a 200). Le niveau determine les zones accessibles, les equipements utilisables et les sorts disponibles.

Signature: character:level()

Retourne: number - Niveau actuel (1-200)

Exemple:

lifePoints

Retourne les points de vie actuels du personnage. Cette valeur change pendant les combats et apres regeneration.

Signature: character:lifePoints()

Retourne: number - PV actuels

Exemple:

lifePointsP

Retourne le pourcentage de vie actuel du personnage, calcule comme (lifePoints * 100) / maxLifePoints. Division entiere, donc le resultat est un entier entre 0 et 100.

Signature: character:lifePointsP()

Retourne: number - Pourcentage de vie (0-100)

Exemple:

maxEnergyPoints

Retourne le maximum de points d'energie du personnage. L'energie max augmente avec le niveau.

Signature: character:maxEnergyPoints()

Retourne: number - Energie maximum

Exemple:

maxLifePoints

Retourne les points de vie maximum du personnage (incluant vitalite de base + equipement + buffs).

Signature: character:maxLifePoints()

Retourne: number - PV maximum

Exemple:

name

Retourne le nom du personnage (nomperso) tel qu'il apparait en jeu.

Signature: character:name()

Retourne: string - Nom du personnage

Exemple:

nickname

Retourne le tag complet du compte au format "pseudo#discriminant". Ce tag est l'identifiant unique visible utilise pour ajouter des amis ou identifier un joueur.

Signature: character:nickname()

Retourne: string - Tag au format "nickname#tag"

Exemple:

resetStats

Envoie une requete au serveur (ResetCharacterStatsRequestMessage) pour reinitialiser tous les points de caracteristiques du personnage. Les points sont rendus et peuvent etre redistribues. Necessite d'etre dans un lieu approprie (temple de classe, Astrub, etc.).

Signature: character:resetStats()

Exemple:

Note: Necessite d'etre au bon endroit. Gratuit jusqu'au niveau 100, payant apres.

sendShieldCode

Valide un code Shield recu par email aupres de l'API Ankama v4. En cas de succes, sauvegarde le certificat Shield dans le dossier save/ et declenche une reconnexion automatique pour activer le Shield. Le fichier est nomme avec le hash MD5 du username.

Signature: character:sendShieldCode(code)

Paramètres:

Nom
Type
Description

code

string

Code a 6 chiffres recu par email

Exemple:

Note: Le certificat est sauvegarde dans save/[hash]_shield.json. Supprimez ce fichier pour recommencer.

sendShieldCodeNew

Version mise a jour de sendShieldCode() utilisant l'API Ankama v5. Valide le code et sauvegarde le certificat avec l'API key et sa date d'expiration.

Signature: character:sendShieldCodeNew(code, apiKey)

Paramètres:

Nom
Type
Description

code

string

Code a 6 chiffres

apiKey

string

Cle API Ankama

Exemple:

Note: Utilise l'API v5 et sauvegarde dans save/shields/[username]_shield.json.

server

Retourne le nom du serveur sur lequel le personnage est connecte. Interroge les donnees D2O (Servers) pour obtenir le nom traduit a partir de l'ID serveur.

Signature: character:server()

Retourne: string - Nom du serveur (ex: "Ombre", "Echo", "Imagiro")

Exemple:

serverId

Retourne l'ID numerique du serveur actuel (idserver).

Signature: character:serverId()

Retourne: number - ID du serveur

Exemple:

serverName

Alias de server(). Retourne le nom traduit du serveur actuel.

Signature: character:serverName()

Retourne: string - Nom du serveur

Exemple:

sex

Retourne le sexe du personnage. La valeur booleenne correspond au champ sex du PacketAnalyser.

Signature: character:sex()

Retourne: boolean - true = feminin, false = masculin

Exemple:

statsPoint

Retourne le nombre de points de caracteristiques disponibles a repartir (additionnalpoint). Ces points sont gagnes a chaque niveau et peuvent etre investis dans les stats.

Signature: character:statsPoint()

Retourne: number - Points de stats disponibles

Exemple:

trusted

Verifie si le compte est marque comme "de confiance" (TrustedAccount). Un compte trusted a generalement moins de restrictions.

Signature: character:trusted()

Retourne: boolean - true si compte de confiance

Exemple:

UpgradeAgility

Investit des points de caracteristiques en agilite. Envoie le paquet 5610 au serveur avec le type AGILITY et le nombre de points. Le cout reel depend de la classe et du nombre de points deja investis.

Signature: character:UpgradeAgility(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir (pas le gain en agilite!)

Exemple:

Note: Le parametre est le nombre de points de STATS a utiliser, pas le gain en agilite.

UpgradeChance

Investit des points de caracteristiques en chance. Envoie le paquet 5610 avec le type CHANCE.

Signature: character:UpgradeChance(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir

Exemple:

UpgradeIntelligence

Investit des points de caracteristiques en intelligence. Envoie le paquet 5610 avec le type INTEL.

Signature: character:UpgradeIntelligence(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir

Exemple:

UpgradeStrenght

Investit des points de caracteristiques en force. Envoie le paquet 5610 avec le type STRENGHT.

Signature: character:UpgradeStrenght(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir

Exemple:

UpgradeVitality

Investit des points de caracteristiques en vitalite. Envoie le paquet 5610 avec le type VITALITY. La vitalite coute generalement 1 point pour 1, donc c'est souvent le meilleur investissement pour les debutants.

Signature: character:UpgradeVitality(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir

Exemple:

UpgradeWisdom

Investit des points de caracteristiques en sagesse. Envoie le paquet 5610 avec le type WISDOM. La sagesse coute generalement 3 points pour 1.

Signature: character:UpgradeWisdom(StatsPoint)

Paramètres:

Nom
Type
Description

StatsPoint

number

Nombre de points a investir

Exemple:

Mis à jour