Aller au contenu

title: map — Carte & Déplacement | MoonBot API description: API carte et déplacement MoonBot Lua : se déplacer, changer de map, pathfinding, zaaps, cellules.


map — Carte & Déplacement

API carte et déplacement MoonBot Lua : se déplacer, changer de map, pathfinding, zaaps, cellules.

37 fonctions dans ce namespace.

Index


Référence

map.currentMap

map.currentMap()

returns string

Coordonnees "x,y".


map.currentMapId / id

map.currentMapId() / map.id()

returns number

ID de la map.


map.x / y

map.x() / map.y()

returns number

Coordonnees x et y.


map.dimensions / width / height

map.dimensions() / map.width() / map.height()

returns table {width, height} / number / number

Dimensions de la map actuelle. dimensions() renvoie une table {width, height}. width()/height() renvoient directement le nombre. Standard Retro = 15x17, mais les maps non-standard sont gerees (valeurs lues depuis le SWF).


map.currentCell / cellId

map.currentCell() / map.cellId()

returns number

Cellule actuelle.


map.currentArea / currentSubArea

map.currentArea() / map.currentSubArea()

returns string

Zone et sous-zone.


map.onMap

map.onMap(coords: string | number)

returns boolean

Verifie si sur la map ("x,y" ou ID).


map.changeMap

map.changeMap(direction: string)

blocking · returns boolean

Change de map : "right", "left", "top", "bottom".


map.moveToCell

map.moveToCell(cellId: number)

blocking · returns boolean

Deplace vers une cellule (attend l'arrivee).


map.gather

map.gather()

blocking · returns boolean

Recolte toutes les ressources.


map.gatherResource

map.gatherResource(cellId: number)

blocking · returns boolean

Recolte une ressource specifique par cellule.


map.fight

map.fight()

blocking · returns boolean

Attaque le groupe de monstres le plus proche.


map.moveToward

map.moveToward(x: number, y: number)

blocking · returns boolean

Un pas de map vers les coordonnees cibles.


map.moveTowardMap

map.moveTowardMap(mapId: number)

blocking · returns boolean

Un pas de map vers la map cible.


map.worldDistance

map.worldDistance(x: number, y: number)

returns number

Distance en maps vers les coordonnees (-1 si inaccessible).


map.waitForMapChange

map.waitForMapChange(timeout?: number)

blocking · returns boolean

Attend un changement de map.


map.monsterGroups

map.monsterGroups()

returns table of {id: number, cellId: number, name: string, level: number, count: number, monsters: table of {id: number, name: string, level: number}}

Groupes de monstres sur la map. name = noms des monstres, level = niveau du groupe, count = nombre de monstres, monsters = détail de chaque monstre (template ID, nom, niveau individuel).


map.fightGroup

map.fightGroup(groupId: number)

blocking · returns boolean

Attaque un groupe de monstres spécifique par son ID (récupéré via map.monsterGroups()). Bloquant : attend la fin du combat. Retourne true si victoire, false si défaite ou groupe introuvable.


map.players

map.players()

returns table of {id: number, cellId: number, name: string, level: number}

Joueurs visibles sur la map.


map.npcs

map.npcs()

returns table of {id: number, cellId: number, name: string, templateId: number}

PNJ sur la map. id = ID acteur, templateId = ID du modele PNJ.


map.getActors / getActorById

map.getActors() / map.getActorById(id: number)

returns table / table | nil

Tous les acteurs (monstres + joueurs + PNJ) : {id, cellId, name, type}. type = 'monster'/'player'/'npc'.


map.getResources

map.getResources()

returns table of {cellId: number, gfxId: number, name: string}

Ressources recoltables sur la map.


map.interactiveObjects

map.interactiveObjects()

returns table of {cellId: number, gfxId: number}

Objets interactifs (ateliers, portes, etc).


map.useInteractive

map.useInteractive(cellId: number, skillIndex?: number)

returns boolean

Utilise un objet interactif (deplacement auto + skill). skillIndex: 1=premier skill (defaut), 2=deuxieme, etc.


map.isWalkable / getWalkableCells

map.isWalkable(cellId) / map.getWalkableCells()

returns boolean / table

Verifie si une cellule est marchable / liste des cellules marchables.


map.getX / getY

map.getX(mapId) / map.getY(mapId)

returns number

Coordonnees d'une map depuis son ID (game data).


map.hasChanged

map.hasChanged()

returns boolean

True si la map a change. Se remet a false automatiquement.


Zaap

map.useZaap(mapId) / map.useZaapi(mapId) / map.openZaap() / map.openZaapi()

blocking · returns boolean

Teleportation via zaap/zaapi. openZaap() ouvre la liste.


map.getZaapDestinations

map.getZaapDestinations()

returns table of {map_id: number, cost: number, name: string, area: string, x: number, y: number}

Liste des destinations zaap disponibles apres openZaap().


map.saveZaap

map.saveZaap()

Sauvegarde le zaap actuel.


map.sendEmote / sit

map.sendEmote(emoteId) / map.sit()

Envoie une emote. sit() = emote 1.


Groupe de jeu

map.inviteToGroup(name) / leaveGroup() / acceptGroupInvite() / declineGroupInvite()

Inviter un joueur au groupe, quitter, accepter/refuser une invitation.


Infos groupe de jeu

map.getPartyMembers() / getPartyCount() / isInParty() / getPartyLeaderId() / isPartyLeader()

returns table / number / boolean / number / boolean

getPartyMembers()→table of {id: number, name: string, class_id: number, sex: boolean, level: number, life_percent: number}. getPartyCount()→number. isInParty()→boolean. getPartyLeaderId()→number. isPartyLeader()→boolean.


PvP

map.challengePlayer(id) / acceptChallenge(id) / declineChallenge(id) / cancelChallenge()

Defier un joueur en PvP, accepter/refuser/annuler.


map.joinableFights

map.joinableFights()

returns table of {fightId: number, teamId: number, fighters: table of {id: number, name: string, level: number}}

Liste les combats joignables visibles sur la map (1 entree par equipe, teamId negatif). fightId est synthetique : plus petit |teamId| de la paire (les 2 equipes d'un meme combat partagent le meme fightId).


map.joinFight

map.joinFight(teamId: number)

returns boolean

Rejoint une equipe d'un combat en cours sur la map. teamId vient de joinableFights() (ex: -862).


map.exchangePlayer

map.exchangePlayer(playerId: number)

Demande un echange avec un joueur.