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")
endaskShieldCode
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
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:
StatsPoint
number
Nombre de points a investir
Exemple:
Mis à jour

