×

Langue

Fermer
Atelier 801
  • Forums
  • Dev Tracker
  • Connexion
    • English Français
      Português do Brasil Español
      Türkçe Polski
      Magyar Română
      العربية Skandinavisk
      Nederlands Deutsch
      Bahasa Indonesia Русский
      中文 Filipino
      Lietuvių kalba 日本語
      Suomi עברית
      Italiano Česky
      Hrvatski Slovensky
      Български Latviešu
      Estonian
  • Langue
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • L'API LUA de Transformice
L'API LUA de Transformice
Modozap
« Citoyen »
1387105140000
    • Modozap#0095
    • Profil
    • Derniers messages
    • Tribu
#1
  10

L'API LUA DE TRANSFORMICE


Ce sujet a pour objectif de fournir une description détaillée, et en français, de la documentation sur le LUA de Tigrounette ; vous trouverez alors une explication sur le fonctionnement de chaque fonction et événement utilisable dans ses modules, sur Transformice.


• À qui s'adresse ce topic ?

L'objectif de ce sujet n'est pas de vous apprendre à programmer ou de vous apprendre le LUA, mais de vous fournir une explication sur la documentation LUA existante. Si vous souhaitez apprendre à utiliser le LUA, il existe ce tutoriel.

De ce fait, ce sujet s'adresse donc à ceux qui ont déjà un minimum de connaissances en programmation et qui souhaitent se lancer dans les modules LUA sur Transformice, ainsi qu'à ceux un peu plus expérimentés qui ont besoin de savoir comment s'utilise telle ou telle fonction ou event.

• C'est quoi cette API ?

L'API LUA de Transformice est un ensemble de propriétés, fonctions et events (ou « évènements » en français), utilisables dans des scripts LUA (via la commande /lua), et qui permettent d'interagir avec Transformice et donc de créer des minijeux ou des utilitaires.Ces fonctions et événements sont détaillés dans ce sujet.

Afin de traiter au mieux l'API et du fait de son importance, deux posts traiteront successivement les fonctions puis les événements disponibles : chacun de ces posts a été divisé en sections logiques.

Pour chaque fonction ou événement, seront indiqués :
  • le nom de la fonction ou de l’événement ;
  • sa description ;
  • les arguments :
    • une description pour savoir à quoi cela correspond ;
    • leur type (en gris) ;
    • la valeur par défaut s'il y en a une (en bleu).
  • la valeur de retour s'il y en a une ;
  • un exemple d'utilisation pour chacun des events ;
  • d'éventuelles notes supplémentaires.

Pour les arguments, les différents types possibles sont :
  • int : un nombre entier (5, -3, 0xFF77BB, ...)
  • float : un nombre réel (5.0, -0.12, 12*Pi, ...)
  • boolean : un booléen, c'est-à-dire true ("vrai") ou false ("faux")
  • string : une chaîne de caractères ("texte", ...)
  • table : un tableau de données ({}, {"a", "b", "c"}, ...)
  • * : n'importe quel type

Note : Vous pouvez évidemment utiliser des nombres en hexadécimal pour les paramètres de type int. C'est particulièrement utile pour tous les paramètres de couleur, puisque vous pouvez donc utiliser les mêmes codes couleurs que dans l'éditeur de carte (par exemple, 0xFF0000 correspond à la couleur rouge).

• Il me semble avoir vu une erreur ou un oubli, que faire ?

Si vous https://i.imgur.com/iJVRJYh.png rencontrez des erreurs, coquilles, oublis ou si vous avez tout simplement des suggestions à faire, n'hésitez pas à nous le signaler !

Dernière modification le 1744475580000
Modozap
« Citoyen »
1387105260000
    • Modozap#0095
    • Profil
    • Derniers messages
    • Tribu
#2
  6
  • Joueurs
  • Objets
  • Partie/Salon
  • Popups et zones de texte
  • Interface
  • Gestion clavier/souris
  • Debug
  • LUA Team

LES FONCTIONS DE L'API MODULE DE TRANSFORMICE



En informatique, une fonction est un morceau de code qui a la capacité d'effectuer une tâche spécifique, indépendamment du programme. L'API Module de Transformice dispose d'un ensemble de fonctions qui ont un impact sur les joueurs et/ou la map, permettant alors aux codeurs de les utiliser pour réaliser des actions précises. Cependant, certaines fonctions sont réservées aux membres de la LUA Team.

Afin de détailler le fonctionnement de toutes ces fonctions, elles ont été classées selon leurs effets :
  • Les fonctions sur les joueurs
  • Les fonctions sur les objets
  • Les fonctions sur les paramètres de la partie/du salon
  • Les fonctions sur les popups et zones de texte
  • Les fonctions sur l'interface du jeu
  • Les fonctions sur la gestion du clavier et de la souris souris
  • Les fonctions de debug du module
  • Les fonctions réservées aux membres de la LUA Team

En cas d'erreurs ou d'oublis, n'hésitez pas à contacter une sentinelle.
Si jamais vous souhaitez obtenir de l'aide sur l'une de ces fonctions, n'hésitez pas à la demander sur le sujet [Aide] Demandes de codes et d'explications.

LES FONCTIONS SUR LES JOUEURS



tfm.exec.giveCheese (playerName)
Donne le fromage à un joueur.

  • playerName:string → pseudo du joueur

tfm.exec.removeCheese (playerName)
Retirer le fromage à un joueur.

  • playerName:string → pseudo du joueur

tfm.exec.playerVictory (playerName)
Fait rentrer un joueur dans le trou.

  • playerName:string → pseudo du joueur

tfm.exec.movePlayer (playerName, xPosition, yPosition, offset, xSpeed, ySpeed, offset)
Déplace un joueur.

  • playerName:string → pseudo du joueur
  • xPosition:int → nouvelle position, selon l'axe horizontal, du joueur
  • yPosition:int → nouvelle position, selon l'axe vertical, du joueur
  • offset:boolean → true pour rajouter xPosition et yPosition à la position actuelle du joueur, false pour la remplacer
  • xSpeed:int → nouvelle vitesse, selon l'axe horizontal, du joueur
  • ySpeed:int → nouvelle vitesse, selon l'axe vertical, du joueur
  • offset:boolean → true pour rajouter xSpeed et ySpeed à la vitesse actuelle du joueur, false pour la remplacer

tfm.exec.killPlayer (playerName)
Permer de tuer un joueur.

  • playerName:string → pseudo du joueur

tfm.exec.respawnPlayer (playerName)
Fait respawn (= réapparaitre en jeu) un joueur

  • playerName:string → pseudo du joueur

tfm.exec.setVampirePlayer (playerName)
Transforme un joueur en vampire.

  • playerName:string → pseudo du joueur

tfm.exec.giveMeep (playerName)
Permet à un joueur de pouvoir meep.

  • playerName:string → pseudo du joueur

tfm.exec.setNameColor (playerName, color)
Change la couleur du pseudo d'un joueur.

  • playerName:string → pseudo du joueur
  • color:int → code couleur
Note : Le joueur en question ne pourra pas voir la couleur de son pseudo.

tfm.exec.playEmote (playerName, emoteId, emoteParam)
Permet de faire faire un émote à un joueur.

  • playerName:string → pseudo du joueur
  • emoteId:int → type de l'émote
  • emoteParam:string → paramètre associé à l'émote (uniquement pour l'émote drapeau)


tfm.exec.giveTransformations (playerName, canTransform)
Permet au joueur d'utiliser la transformation de sa souris (planche, caisse, enclume).

  • playerName:string → pseudo du joueur
  • canTransform:boolean → true pour donner les transformations, false pour qu'il soit normal


tfm.exec.linkMice (playerName1, playerName2, linked)
Permet de lier deux souris (comme sur les cartes âme-sœur).

  • playerName1:string → pseudo du premier joueur
  • playerName2:string → pseudo du deuxième joueur
  • linked:boolean → true pour lier les souris, false pour retirer le lien


tfm.exec.changePlayerSize (playerName, size)
Changer la taille d'un joueur (entre 0.1 et 5 fois sa taille normale).

  • playerName:string → pseudo du joueur
  • linked:float → valeur comprise entre 0.1 et 5 (1)

LES FONCTIONS SUR LES OBJETS



tfm.exec.addShamanObject (objectId, xPosition, yPosition, angle, xSpeed, ySpeed, ghost)
Fait apparaître un objet sur la map.

  • objectId:int → type de l'objet à afficher
  • xPosition:int → position, selon l'axe horizontal, où apparaîtra l'objet
  • yPosition:int → position, selon l'axe vertical, où apparaîtra l'objet
  • angle:int → angle selon lequel l'objet sera tourné (0)
  • xSpeed:int → vitesse initiale, selon l'axe horizontal, de l'objet (0)
  • ySpeed:int → vitesse initiale, selon l'axe vertical, de l'objet (0)
  • ghost:boolean → true pour rendre l'objet transparent, false pour qu'il soit normal (false)
Valeur de retour : L'identifiant de l'objet invoqué (à utiliser avec tfm.exec.moveObject ou tfm.exec.removeObject).
Notes : Pour les différents types possibles d'objet, il y a la table tfm.enum.shamanObject (non exhaustive) ou la liste de ce wiki.


tfm.exec.moveObject (objectId, xPosition, yPosition, offset, xSpeed, ySpeed, offset)
Déplace un objet.

  • objectId:int → identifiant de l'objet à déplacer
  • xPosition:int → nouvelle position, selon l'axe horizontal, de l'objet
  • yPosition:int → nouvelle position, selon l'axe vertical, de l'objet
  • offset:boolean → true pour rajouter xPosition et yPosition à la position actuelle de l'objet, false pour la remplacer (false)
  • xSpeed:int → nouvelle vitesse, selon l'axe horizontal, de l'objet (0)
  • ySpeed:int → nouvelle vitesse, selon l'axe vertical, de l'objet (0)
  • offset:boolean → true pour rajouter xSpeed et ySpeed à la vitesse actuelle de l'objet, false pour la remplacer (false)
  • angle:float → Nouvel angle de l'objet une fois déplacé (0)
  • angleOffset:boolean → true pour rajouter l'angle et à l'angle initial de l'objet de l'objet, false pour remplacer l'ancien angle par le nouveau (false)
Note : La liste des objets invoqués est accessible via la propriété tfm.get.room.objectList.

tfm.exec.removeObject (objectId)
Enlève un objet de la map.

  • objectId:int → identifiant de l'objet à enlever

tfm.exec.addConjuration (xPosition, yPosition, timeInMillis)
Affiche un bloc de conjuration sur la map.

  • xPosition:int → position, selon l'axe horizontal, du bloc de conjuration (pouvant aller de 0 à 79)
  • yPosition:int → position, selon l'axe vertical, du bloc de conjuration (pouvant aller de 0 à 39)
  • timeInMillis:int → durée (en millisecondes) pendant laquelle le bloc restera affiché
Note : Les blocs de conjuration étant des carrés de 10 pixels, les positions xPosition et yPosition correspondent à une grille de 80x40 blocs.
tfm.exec.addJoint (id, ground1, ground2, definition)
Ajoute un joint entre deux sols.

  • id:int → identifiant du joint
  • ground1:int → premier sol lié par le joint
  • ground2:int → second sol lié par le joint
  • definition:table → description du joint
    • type (int): 0 -> joint distance ; 1 -> joint prismatique ; 2 -> joint poulie ; 3 -> joint rotatif
    • point1 (string "x,y"): position du point d'ancrage du premier sol (par défaut, le centre du sol)
    • point2 (string "x,y"): position du point d'ancrage du second sol (par défaut le centre du sol), utilisé uniquement pour les joints distances et poulies
    • point3 (string "x,y"), point4 (string "x,y"): positions des points d'ancrages poulies, utilisés uniquement pour les joints poulies
    • frequency (float), damping (float): fréquence et raideur du joint (joint distance)
    • axis (string "x,y"), angle (int): axe et angle du joint (joint prismatique)
    • limit1 (float), limit2 (float), forceMotor (float), speedMotor (float): limites de translation/rotation et moteurs. (joints rotatifs et prismatiques)
    • ratio (float): ratio des joints rotatifs
    • line (int), color (int), alpha (float), foreground (bool): si aucune de ses propriétés n'est définie, le joint ne sera pas visible
Note : Dans le code xml d'une carte, vous pouvez ajouter à la définition d'un joint la propriété « LUA="id" » pour lui permettre d'interagir avec le script LUA.

tfm.exec.removeJoint (id)
Supprime un joint de la carte.

  • id:int → identifiant du joint
Note : Dans le code xml d'une carte, vous pouvez ajouter à la définition d'un joint la propriété « LUA="id" » pour lui permettre d'interagir avec le script LUA.

tfm.exec.addPhysicObject (id, xPosition, yPosition, definition)
Fait apparaitre un sol sur la carte.

  • id:int → identifiant de l'objet
  • xPosition:int → position, selon l'axe horizontal, où apparaîtra le sol
  • yPosition:int → position, selon l'axe vertical, où apparaîtra le sol
  • definition:table → description du sol
    • Pour tous les sols : type (int), width (int), height (int), foreground (bool), friction (float), restitution (float), angle (int), color (int), miceCollision (bool), groundCollision (bool)
    • Pour les sols dynamiques : dynamic (bool), fixedRotation (bool), mass (int), linearDamping (float), angularDamping (float)
Note : Dans le code xml d'une carte, vous pouvez ajouter à la définition d'un sol la propriété « LUA="id" » pour lui permettre d'interagir avec le script LUA.

tfm.exec.removePhysicObject (id)
Supprime un sol de la carte.

  • id:int → identifiant du sol
Note : Dans le code xml d'une carte, vous pouvez ajouter à la définition d'un sol la propriété « LUA="id" » pour lui permettre d'interagir avec le script LUA.

tfm.exec.explosion (xPosition, yPosition, power, distance, miceOnly)
Fait une explosion.

  • xPosition:int → position, selon l'axe horizontal, de l'explosion
  • yPosition:int → position, selon l'axe vertical, de l'explosion
  • power:int → intensité de l'explosion
  • distance:int → rayon d'action de l'explosion
  • miceOnly:boolean → true pour que l'explosion ne touche que les joueurs, false pour que cela touche les joueurs et les objets (true)

tfm.exec.snow (secondes, snowballPower)
Fait tomber de la neige.

  • secondes:int → durée (en secondes) pendant laquelle la neige va tomber (60)
  • snowballPower:int → puissance des boules de neiges (10)

tfm.exec.displayParticle (particleId, xPosition, yPosition, xSpeed, ySpeed, xAcceleration, yAcceleration, targetPlayer)
Affiche une particule.

  • particleId:int → type de particule à afficher
  • xPosition:int → position, selon l'axe horizontal, où apparaîtra la particule
  • yPosition:int → position, selon l'axe vertical, où apparaîtra la particule
  • xSpeed:float → vitesse initiale, selon l'axe horizontal, de la particule
  • ySpeed:float → vitesse initiale, selon l'axe vertical, de la particule
  • xAcceleration:float → accélération initiale, selon l'axe horizontal, de la particule
  • yAcceleration:float → accélération initiale, selon l'axe vertical, de la particule
  • targetPlayer:string → pseudo du joueur qui verra la particule(ou nil pour l'afficher pour tous les joueurs du salon)
Note : Pour les différents types possibles de particule, il y a la liste de ce wiki.

LES FONCTIONS SUR LES PARAMÈTRES DE LA PARTIE/DU SALON



tfm.exec.newGame (mapCode, mirrored)
Lance une nouvelle partie.

  • mapCode:string|int → code / caractéristiques de la map à charger :
    • 123 → map vanilla 123
    • "@12345" → map @12345
    • "#4" → map de catégorie p4 au hasard
    • "<code xml>" → charge le code xml (comme en éditeur de carte)
  • mirrored:boolean → Force la carte à être jouée en mode miroir (true) ou en mode normal (false)
Notes :
- Sans argument (donc tfm.exec.newGame()), cela relance la partie avec la map maison de tribu
- Si "mirrored" n'est pas renseigné, la carte sera jouée de manière aléatoire en mode miroir


tfm.exec.setAutoMapFlipMode (yes)
Indique si les cartes doivent être jouées en mode miroir par défaut

  • yes:boolean → true pour jouer les cartes en mode miroir, false pour les jouer en mode normal, nil pour garder le comportement par défaut

tfm.exec.disableAutoNewGame (yes)
Active ou désactive le lancement automatique d'une nouvelle partie (lorsque le temps restant arrive à 0)

  • yes:boolean → true pour désactiver le lancement automatique, false pour le réactiver

tfm.exec.setShaman (playerName)
Met un joueur chamane.

  • playerName:string → pseudo du joueur

tfm.exec.disableAutoShaman (yes)
Active ou désactive la sélection automatique du chamane lors d'une nouvelle partie.

  • yes:boolean → true pour désactiver la sélection automatique, false pour la réactiver

tfm.exec.disableAllShamanSkills (yes)
Active ou désactive les compétences chamane.

  • yes:boolean → true pour désactiver les compétences shaman, false pour les réactiver

tfm.exec.setShamanMode (playerName, mode)
pour choisir le mode chaman (normal, difficile, divin) d'un joueur (même si il ne l'a pas encore débloqué).

  • playerName:string → pseudo du joueur
  • mode:int → 0 pour normal, 1 pour difficile, 2 pour divin

tfm.exec.setGameTime (seconds, init)
Change le temps restant d'une partie.

  • seconds:int → le nombre de secondes à mettre
  • init:boolean → true pour remplacer le temps restant, false pour ne le remplacer que s'il est supérieur à seconds (true)

tfm.exec.disableAutoTimeLeft (yes)
Active ou désactive l'écoulement du temps restant d'une partie.

  • yes:boolean → true pour désactiver l'écoulement, false pour le réactiver

tfm.exec.setPlayerScore (playerName, score, add)
Change le score d'un joueur.

  • playerName:string → pseudo du joueur
  • score:int → nombre de points
  • add:boolean → true pour rajouter les points au score actuel du joueur, false pour le remplacer

tfm.exec.disableAutoScore (yes)
Active ou désactive la gestion automatique des scores des joueurs.

  • yes:boolean → true pour désactiver la gestion automatique, false pour la réactiver

tfm.exec.disableAfkDeath (yes)
Active ou désactive la mort automatique des joueurs afks.

  • yes:boolean → true pour désactiver la mort automatique des afks, false pour la réactiver

tfm.exec.disableMortCommand (yes)
Empêche les joueurs d'utiliser la commande /mort.

  • yes:boolean → true pour empêcher les joueurs d'utiliser la commande, false pour les autoriser

tfm.exec.disableWatchCommand (yes)
Empêche les joueurs d'utiliser la commande /watch.

  • yes:boolean → true pour empêcher les joueurs d'utiliser la commande, false pour les autoriser

tfm.exec.disableDebugCommand (yes)
Empêche les joueurs d'utiliser la commande /debug.

  • yes:boolean → true pour empêcher les joueurs d'utiliser la commande, false pour les autoriser

tfm.exec.disableMinimalistMode (yes)
Empêche les joueurs d'utiliser le mode minimaliste.

  • yes:boolean → true pour empêcher les joueurs d'utiliser le mode, false pour les autoriser

tfm.exec.disablePhysicalConsumables (yes)
Empêche l'utilisation de consommables solides (boule de neige, tombe, etc) par les joueurs.

  • yes:boolean → true pour empêcher les joueurs d'utiliser les consommables, false pour les autoriser

system.disableChatCommandDisplay (command, yes)
Active ou désactive l'affichage d'une commande (un message commençant par « ! » ) dans le chat.

  • command:string → la commande (sans le « ! » initial)
  • yes:boolean → true si on veut désactiver l'affichage, false pour le réactiver (true)
Note : La limite est de 97 commandes.
tfm.exec.disablePrespawnPreview (display)
Permet de désactiver la prévisualisation des objets chaman lors de l'invocation.

  • display:boolean → true pour désactiver la prévisualisation, false pour l'afficher


LES FONCTIONS SUR LES POPUPS ET ZONES DE TEXTE



ui.addTextArea (id, text, targetPlayer, x, y, width, height, backgroundColor, borderColor, backgroundAlpha, fixedPos)
Affiche une zone de texte sur la map.

  • id:int → identifiant de la zone de texte
  • text:string → texte à afficher dans la zone de texte
  • targetPlayer:string → pseudo du joueur qui verra la zone de texte (ou nil pour l'afficher pour tous les joueurs du salon)
  • x:int → position, selon l'axe horizontal, du coin supérieur gauche de la zone de texte (50)
  • y:int → position, selon l'axe vertical, du coin supérieur gauche de la zone de texte (50)
  • width:int → largeur de la zone de texte (taille adaptée au texte)
  • height:int → longueur de la zone de texte (taille adaptée au texte)
  • backgroundColor:int → code couleur du fond de la zone de texte (0x324650)
  • borderColor:int → code couleur de la bordure de la zone de texte (couleur noire)
  • backgroundAlpha:float → opacité de la zone de texte, comprise entre 0.0 (transparent) et 1.0 (opaque) (1.0)
  • fixedPos:boolean → true pour fixer la position de la fenêtre par rapport à l'écran de jeu, false pour la fixer par rapport à la map (n'est utile que pour les maps longues) (false)
Note : Si backgroundColor a la valeur 0 (qui correspond normalement à la couleur noire), le fond et la bordure de la zone de texte seront transparents. Pour mettre un fond noir, il faut mettre 1.

ui.updateTextArea (id, text, targetPlayer)
Met à jour le contenu d'une zone de texte affichée sur la map.

  • id:int → identifiant de la zone de texte
  • text:string → nouveau texte à mettre dans la zone de texte
  • targetPlayer:string → pseudo du joueur qui verra le nouveau texte (ou nil pour l'afficher pour tous les joueurs du salon)
Note : Il y a une erreur (rectifiée ici) dans l'ordre des paramètres dans la documentation officielle.

ui.removeTextArea (id, targetPlayer)
Enlève une zone de texte affichée sur la map

  • id:int → identifiant de la zone de texte
  • targetPlayer:string → pseudo du joueur chez qui la zone de texte sera enlevée (ou nil pour l'enlever pour tous les joueurs du salon)

ui.addPopup (id, type, text, targetPlayer, x, y, width, fixedPos)
Affiche une popup sur la map.

  • id:int → identifiant de la popup
  • type:int → type de la popup (0 -> popup simple, 1 -> popup de type oui / non, 2 -> popup permettant à l'utilisateur de rentrer du texte)
  • text:string → texte à afficher dans la popup
  • targetPlayer:string → pseudo du joueur qui verra la popup (ou nil pour l'afficher pour tous les joueurs du salon)
  • x:int → position, selon l'axe horizontal, du coin supérieur gauche de la popup
  • y:int → position, selon l'axe vertical, du coin supérieur gauche de la popup
  • width:int → largeur de la popup (taille adaptée au texte)
  • fixedPos:boolean → true pour fixer la position de la fenêtre par rapport à l'écran de jeu, false pour la fixer par rapport à la map (n'est utile que pour les maps longues) (false)

ui.showColorPicker (id, targetPlayer, defaultColor, title)
Affiche une palette de couleurs.

  • id:int → identifiant de la palette
  • targetPlayer:string → pseudo du joueur qui verra la palette (ou nil pour l'afficher pour tous les joueurs du salon)
  • defaultColor:int → couleur par défaut de la palette
  • title:string → titre de la palette

LES FONCTIONS SUR L'INTERFACE DU JEU



ui.setShamanName (text)
Remplace le nom du chamane dans la barre du haut par du texte.

  • text:string → le texte à mettre

ui.setMapName (text)
Remplace le code de la map dans la barre du haut par du texte.

  • text:string → le texte à mettre

LES FONCTIONS SUR LA GESTION DU CLAVIER ET DE LA SOURIS



system.bindKeyboard (playerName, keyCode, down, yes)
Active ou désactive l'écoute des évènements déclenchés par une des touches d'un joueur en particulier.

  • playerName:string → pseudo du joueur
  • keyCode:int → code de la touche à écouter
  • down:boolean → true pour écouter l'appui sur la touche, false pour écouter le relâchement
  • yes:boolean → true pour activer l'écoute, false pour la désactiver (true)
Note : Un exemple d'utilisation est donné dans la partie sur les Events. Pour la liste des codes des touches du clavier, il y en a une ici et là. Vous pouvez activer l'écoute des touches 0(gauche), 1(haut), 2(droite), 3(bas) pour suivre les déplacements du joueur quelque soit les touches qu'il utilise (wasd | zqsd | ←↑→↓).

system.bindMouse (playerName, yes)
Active ou désactive l'écoute des évènements déclenchés par la souris (d'ordinateur) d'un joueur en particulier.

  • playerName:string → pseudo du joueur
  • yes:boolean → true si on veut activer l'écoute, false pour la désactiver (true)
Note : Un exemple d'utilisation est donné dans la partie sur les Events.

LES FONCTIONS DE DEBUG DU MODULE



print (something)
Affiche dans le chat la valeur de l'argument passé.

  • something:* → variable dont on souhaite afficher la valeur
Note : Seul celui qui a lancé le script LUA peut voir les messages affichés.

system.exit ()
Arrête le script LUA en cours d'execution.

debug.disableEventLog (yes)
Active ou désactive l'affichage dans le chat du log des évènements déclenchés.

debug.traceback (message, level)
Aide supplémentaire pour déboguer son script.

Note : La documentation officielle de cette fonctionnalité est consultable sur le lien suivant : http://www.lua.org/manual/5.2/manual.html#pdf-debug.traceback.
Pour des raisons évidentes, le premier argument de la fonction de base qui précise un thread Lua, n'est pas disponible.

LES FONCTIONS RÉSERVÉES AUX MEMBRES DE LA LUA TEAM



tfm.exec.addImage (imageName, target, xPosition, yPosition, targetPlayer)
Affiche une image sur la map.

tfm.exec.removeImage (imageId)
Enlève une image rajoutée sur la map.

tfm.exec.chatMessage (message, playerName)
Affiche un message dans le chat d'un joueur en particulier ou de tous les joueurs du salon.

tfm.exec.setRoomMaxPlayers (maxPlayers)
Fixe le nombre maximum de joueurs dans le salon.

tfm.exec.setRoomPassword (password)
Met un mot de passe au salon.

Note : Il n'est pas possible de mettre un mot de passe à une maison de tribu.

tfm.exec.lowerSyncDelay (playerName)
Réduit le temps de synchronisation des paramètres de position et de vitesse du joueur (400ms max)

system.newTimer (callback, time, loop, arg1, arg2, arg3, arg4)
Crée un timer.

system.removeTimer (timerId)
Arrête un timer.

system.savePlayerData (playerName, data)
Enregistre des données associées à un joueur particulier pour la personne qui a lancé le script en cours

system.loadPlayerData (playerName)
Charge les données associées à un joueur particulier pour la personne qui a lancé le script en cours.

system.saveFile (data, fileNumber)
Enregistre des données dans un fichier.

system.loadFile (fileNumber)
Charge des données à partir d'un fichier.

system.giveEventGift (name, giftName)
Donne une récompense (typiquement un titre) à un joueur

tfm.exec.giveConsumables (name, consumable, amount)
Donne des consommables à un joueur.

Dernière modification le 1556020740000
Modozap
« Citoyen »
1387105260000
    • Modozap#0095
    • Profil
    • Derniers messages
    • Tribu
#3
  6
  • Joueurs
  • Chamane
  • Salon
  • Popups et zones de texte
  • Clavier/souris
  • LUA Team

LES ÉVÉNEMENTS DE L'API MODULE DE TRANSFORMICE



Dans un programme informatique, un événement (ou event en anglais) est un signal qui se déclenche automatiquement pour pouvoir intercepter les changements d'états de l'environnement. Par exemple, dans les modules Transformice, un certain événement est déclenché lorsqu'un joueur entre dans un salon, un autre est déclenché lorsqu'un joueur appuie sur une touche, etc.

Ces événements se déclenchent automatiquement, mais pour réaliser une action spécifique lorsque tel événement particulier se réalise, on dit qu'il faut « écouter » cet événement. Cela revient à implémenter une fonction (dont le nom et les arguments sont déjà définis pour chaque event disponible) qui s'exécutera automatiquement lorsque cet événement se déclenchera.

Vous retrouvez la liste des événements disponibles de l'API Module dans ce post. Cependant, certains événements sont réservés aux membres de la LUA Team.

Afin de détailler le fonctionnement de tous ces événements, ils ont été classés selon leurs effets :
  • Les événements joueurs
  • Les événements chamane
  • Les événements salon
  • Les événements popups et zones de texte
  • Les événements du clavier et de la souris
  • Les événements réservés aux membre de la LUA Team

En cas d'erreurs ou d'oublis, n'hésitez pas à contacter une sentinelle.
Si jamais vous souhaitez obtenir de l'aide sur l'un de ces événements, n'hésitez pas à la demander sur le sujet [Aide] Demandes de codes et d'explications.

LES ÉVÉNEMENTS JOUEURS



eventPlayerGetCheese (playerName)
Cet événement se déclenche lorsqu'un joueur récupère le fromage.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
function eventPlayerGetCheese(playerName)
print(playerName .. " a récupéré le fromage !")
end

eventPlayerWon (playerName, timeElapsed, timeElapsedSinceRespawn)
Cet événement se déclenche lorsqu'un joueur rentre dans le trou.

  • playerName:string → pseudo du joueur
  • timeElapsed:string → temps écoulé depuis le début de la map en seconde*001 (voir exemple)
  • timeElapsedSinceRespawn:string → temps écoulé depuis le respawn du joueur en seconde*0.01 (voir exemple)


Code Lua

1
2
3
function eventPlayerWon(playerName,timeElapsed,timeElapsedSinceRespawn)
print(playerName .. " a réussi à rapporter le fromage au trou en "..timeElapsed.. " s !")
end

eventPlayerDied (playerName)
Cet événement se déclenche lorsqu'un joueur meurt.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
function eventPlayerDied(playerName)
print(playerName .. " est mort !")
end

eventPlayerRespawn (playerName)
Cet événement se déclenche lorsqu'un joueur respawn, c'est-à-dire réapparait sur la map, lors d'une partie.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
4
5
6
7
8
function eventPlayerRespawn(playerName)
print(playerName .. " est réapparu sur la map !")
end

function eventPlayerDied(playerName)
print(playerName .. " est mort !")
tfm.exec.respawnPlayer(playerName)
end

eventPlayerVampire (playerName)
Cet événement se déclenche lorsqu'un joueur se transforme en vampire.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
function eventPlayerVampire(playerName)
print(playerName .. " s'est transformé en vampire !")
end

eventEmotePlayed (playerName, emoteId, emoteParam)
Cet événement se déclenche lorsqu'un joueur fait une émote (rire, pleurer, danser, etc.).

  • playerName:string → pseudo du joueur qui a lancé l'émote
  • emoteId:int → type de l'émote
  • emoteParam:string → paramètre associé à l'émote (uniquement pour l'émote drapeau)
Note : la table tfm.enum.emote permet d'obtenir la liste des différents types d'émote disponibles.

Code Lua

1
2
3
4
5
6
7
function eventEmotePlayed(playerName, emoteId, emoteParam)
for k,v in pairs(tfm.enum.emote) do
if (v == emoteId) then
print(playerName .. " a fait l'émote : " .. k)
end
end
end

eventPlayerMeep (playerName, xPosition, yPosition)
Cet événement se déclenche lorsqu'un joueur utilise le meep.

  • playerName:string → pseudo du joueur qui a lancé l'émote
  • xPosition:int → position, selon l'axe horizontal, de la souris
  • yPosition:int → position, selon l'axe vertical, de la souris

    Code Lua

    1
    2
    3
    function eventPlayerMeep(playerName, xPosition, yPosition)
    print(playerName .. " vient de meep aux coordonnées : " .. xPosition .. " ; " .. yPosition)
    end

LES ÉVÉNEMENTS CHAMANE



eventSummoningStart (playerName, objectType, xPosition, yPosition, angle)
Cet événement se déclenche lorsqu'un chamane commence à invoquer un objet.

  • playerName:string → pseudo du chamane
  • objectType:int → type de l'objet qui va être invoqué
  • xPosition:int → position, selon l'axe horizontal, où le chamane invoque l'objet
  • yPosition:int → position, selon l'axe vertical, où le chamane invoque l'objet
  • angle:int → angle selon lequel le chamane invoque l'objet


eventSummoningCancel (playerName)
Cet événement se déclenche lorsqu'un chamane s'arrête en cours d'invocation d'un objet.

  • playerName:string → pseudo du chamane


eventSummoningEnd (playerName, objectType, xPosition, yPosition, angle, other)
Cet événement se déclenche lorsqu'un chamane finit d'invoquer un objet.

  • playerName:string → pseudo du chamane
  • objectType:int → type de l'objet invoqué
  • xPosition:int → position, selon l'axe horizontal, où l'objet a été invoqué
  • yPosition:int → position, selon l'axe vertical, où l'objet a été invoqué
  • angle:int → type de l'objet invoqué
  • other:table → table contenant diverses infos au sujet de l'objet invoqué (par s'il est transparent ou non, son type, son identifiant, etc.)
Notes :
- Dans la documentation de Tigrounette, "Int objectType" apparait deux fois. Il s'agit d'une erreur, il n'y a que le premier qui est bon.
- Si l'objet est invoqué directement par un chamane, les vitesses initiales sont nulles. Le seul moyen d'avoir exempleun objet qui a une vitesse initiale est de l'invoquer via la fonction tfm.exec.addShamanObject.


Code Lua

1
2
3
4
5
6
7
8
9
10
11
function eventSummoningStart(playerName, objectType, xPosition, yPosition, angle)
print(playerName .. " a commencé à invoquer un objet en position (" .. xPosition .. "," .. yPosition .. ") !")
end

function eventSummoningCancel(playerName)
print(playerName .. " a arrêté d'invoquer un objet !")
end

function eventSummoningEnd(playerName, objectType, xPosition, yPosition, angle, objectType, other)
print(playerName .. " a fini d'invoquer un objet en position (" .. xPosition .. "," .. yPosition .. ") !")
end

LES ÉVÉNEMENTS SALONS



eventNewGame ()
Cet événement se déclenche lorsqu'une nouvelle partie commence.

Code Lua

1
2
3
function eventNewGame()
print("Une nouvelle partie vient de commencer !")
end

eventNewPlayer (playerName)
Cet événement se déclenche lorsqu'un nouveau joueur rejoint le salon.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
function eventNewPlayer(playerName)
print(playerName .. " vient de rejoindre le salon !")
end

eventPlayerLeft (playerName)
Cet événement se déclenche lorsqu'un joueur quitte le salon.

  • playerName:string → pseudo du joueur


Code Lua

1
2
3
function eventPlayerLeft(playerName)
print(playerName .. " vient de quitter le salon !")
end

eventLoop (currentTime, timeRemaining)
Cet événement se déclenche automatiquement environ toutes les 500 millisecondes.

  • currentTime:int → temps écoulé (en millisecondes) depuis le début de la partie
  • timeRemaining:int → temps restant (en millisecondes) jusqu'à la fin de la partie


Code Lua

1
2
3
4
function eventLoop(currentTime, timeRemaining)
print("Temps écoulé : " .. currentTime/1000 .. "s")
print("Temps restant : " .. timeRemaining/1000 .. "s")
end

eventChatCommand (playerName, message)
Cet événement se déclenche lorsqu'un joueur envoie un message commençant par « ! ».

  • playerName:string → pseudo du joueur qui a lancé la commande
  • message:string → commande lancée (sans le « ! » initial)


Code Lua

1
2
3
function eventChatCommand(playerName, message)
print(playerName .. " a lancé la commande : " .. message)
end

eventChatMessage (playerName, message)
Cet événement se déclenche lorsqu'un joueur envoie un message dans le salon

  • playerName:string → pseudo du joueur qui a envoyé un message
  • message:string → message envoyé


Code Lua

1
2
3
function eventChatMessage(playerName, message)
print(playerName .. " a dit : " .. message)
end

LES ÉVÉNEMENTS POPUPS ET ZONES DE TEXTE



eventPopupAnswer (popupId, playerName, answer)
Cet événement se déclenche lorsqu'un joueur répond à une popup (ouverte via la fonction ui.addPopup) de type 1 ou 2.

  • popupId:int → identifiant de la popup à laquelle le joueur a répondu
  • playerName:string → pseudo du joueur qui a répondu
  • answer:string → réponse du joueur ("yes" ou "no" pour une popup de type 1)


Code Lua

1
2
3
4
5
6
ui.addPopup(0, 1, "Aimes-tu la tartiflette ?", nil, 150, 200, 200)
ui.addPopup(1, 2, "Quel est ton titre préféré ?", nil, 450, 200, 200)

function eventPopupAnswer(popupId, playerName, answer)
print(playerName .." a répondu à la popup n° ".. popupId .." : "..answer)
end

eventTextAreaCallback (textAreaId, playerName, callback)
Cet événement se déclenche lorsqu'un joueur clique sur un événement texte (balise a contenant un paramètre href commençant par "event:") contenu dans une zone de texte affichée avec ui.addTextArea.

  • textAreaId:int → identifiant de la zone de texte qui a déclenché cet event
  • playerName:string → pseudo du joueur qui a cliqué
  • callback:string → identifiant de l'event texte
Note : Si la callback (la fonction de rappel) commence par "#clear", la zone de texte sera effacée.

Code Lua

1
2
3
4
5
ui.addTextArea(0, "Cliquez <a href='event:clic1'>ici</a> ou <a href='event:clic2'>là</a> !", nil, 350, 200)

function eventTextAreaCallback(textAreaId, playerName, callback)
print(playerName .. " a déclenché l'event texte '" .. callback .. "'")
end

eventColorPicked (colorPickerId, playerName, color)
Cet événement se déclenche lorsqu'un joueur clique sur valider dans le popup de la palette.

  • colorPickerId:int → identifiant de la palette qui a déclenché cet event
  • playerName:string → pseudo du joueur qui a cliqué
  • color:string → couleur choisi


Code Lua

1
2
3
4
5
ui.showColorPicker (0, nil, 0, "Palette de couleurs" )

function eventColorPicked ( colorPickerId, playerName, color )
print(playerName.." a choisi la couleur : "..color)
end

LES ÉVÉNEMENTS DU CLAVIER ET DE LA SOURIS



eventKeyboard (playerName, keyCode, down, xPlayerPosition, yPlayerPosition)
Cet événement se déclenche lorsqu'un joueur presse ou relâche une touche.

  • playerName:string → pseudo du joueur qui a pressé ou relaché la touche
  • keyCode:int → code de la touche qui a déclenché l'event
  • down:boolean → true si la touche a été pressée, false si elle a été relâchée
  • xPlayerPosition:int → position, selon l'axe horizontal, du joueur qui a déclenché l'event
  • yPlayerPosition:int → position, selon l'axe vertical, du joueur qui a déclenché l'event
Note : Pour que cet événement se déclenche, il faut explicitement spécifier quelles actions (presser ou relâcher) écouter, pour quelles touches et pour quels joueurs, avec la fonction tfm.exec.bindKeyboard.

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
function eventKeyboard(playerName, keyCode, down, xPlayerPosition, yPlayerPosition)
if(keyCode == 32) then
local message = "Le joueur " .. playerName .. ","
message = message .. " situé à la position (" .. xPlayerPosition .. "," .. yPlayerPosition .. "),"

if (down) then
message = message .. " a appuyé sur "
else
message = message .. " a relaché "
end

message = message .. "la touche espace !"
print(message)
end

end

-- pour chaque joueur dans le salon
for playerName in pairs(tfm.get.room.playerList) do
tfm.exec.bindKeyboard(playerName, 32, true, true) -- on écoute l'événement "touche espace pressée"
tfm.exec.bindKeyboard(playerName, 32, false, true) -- on écoute l'événement "touche espace relachée"
end

eventMouse (playerName, xMousePosition, yMousePosition)
Cet événement se déclenche lorsqu'un joueur clique avec sa souris.

  • playerName:string → pseudo du joueur qui a cliqué
  • xMousePosition:int → position, selon l'axe horizontal, de l'endroit où le joueur a cliqué
  • yMousePosition:int → position, selon l'axe vertical, de l'endroit où le joueur a cliqué
Note : Pour que cet événement se déclenche, il faut explicitement spécifier pour quels joueurs on souhaite écouter les events de la souris, avec la fonction system.bindMouse.

Code Lua

1
2
3
4
5
6
7
8
9
10
11
12
13
function eventMouse(playerName, xMousePosition, yMousePosition)

local message = "Le joueur " .. playerName
message = message .. " a cliqué à la position (" .. xMousePosition .. "," .. yMousePosition .. ")."

print(message)

end

-- pour chaque joueur dans le salon
for playerName in pairs(tfm.get.room.playerList) do
system.bindMouse(playerName, true) -- on écoute l'événement "clic"
end

LES ÉVÉNEMENTS RÉSERVÉS AUX MEMBRES DE LA LUA TEAM



eventFileSaved (fileName)
Cet événement se déclenche lorsqu'un fichier de données est enregistré.

eventFileLoaded (fileName, file)
Cet événement se déclenche lorsqu'un fichier de données est chargé.

eventPlayerDataLoaded (playerName, data)
Cet événement se déclenche lorsque les données associées à un joueur ont fini d'être chargées.

Dernière modification le 1555930020000
Modozap
« Citoyen »
1387105260000
    • Modozap#0095
    • Profil
    • Derniers messages
    • Tribu
#4
  6

HISTORIQUE DES VERSIONS



a dit :
Version 0.28, le 18 Février 2019


NOUVELLES FONCTIONS
  • La fonction de base debug.traceback(message, level) est désormais disponible, et devrait vous aider à déboguer vos scripts. La documentation officielle sur cette fonctionnalité est consultable sur le lien suivant : http://www.lua.org/manual/5.2/manual.html#pdf-debug.traceback
    Note : Pour des raisons évidentes, le premier argument de la fonction de base qui précise un thread Lua, n'est pas disponible.



CORRECTION DE BUGS

  • table.unpack retourne désormais toutes les valeurs d'une table donnée comme prévu, au lieu de s'arrêter lorsqu'une valeur nil est rencontrée.

a dit :
Version 0.27, le 27 Septembre 2018

NOUVELLES FONCTIONS
  • tfm.exec.setShamanMode(playerName, mode) vous permet de choisir le mode chaman (normal, difficile, divin) d'un joueur (même si il ne l'a pas encore débloqué)
  • tfm.exec.removeCheese(playerName) vous permet de retirer le fromage à un joueur
  • tfm.exec.disablePrespawnPreview(display) vous permet de désactiver la prévisualisation des objets chaman lors de l'invocation
  • tfm.exec.giveTransformations(playerName, canTransform) permet au joueur d'utiliser la transformation de sa souris (planche, caisse, enclume)
  • tfm.exec.linkMice(playerName1, playerName2, linked) vous permet de lier deux souris (comme sur les cartes âme-sœur)
  • tfm.exec.changePlayerSize(playerName, size) vous permet de changer la taille d'un joueur (entre 0.1 et 5 fois la taille normale)


NOUVEAUX ÉVÉNEMENTS
  • eventPlayerMeep(playerName, xPosition, yPosition) se déclenche quand un joueur utilise le meep


AUTRES NOUVEAUTÉS
  • Nouveaux paramètres dans l'arborescence Lua : tfm.get.room.playerList[playerName]
    • isInvoking(boolean)
    • tribeId (int)
    • spouseName (string)
    • spouseId (int)
    • gender (int)
  • Dans les cartes chargées via le XML, vous pouvez maintenant :
    • utiliser les images hébergées par la ModuleTeam (sur images.atelier801.com) pour changer l'apparence d'un sol (paramètre i)
    • utiliser l'attribut général APS pour afficher une image en avant-plan qui disparaît quand un joueur se trouve dessus (comme sur la carte village/801)
  • Les événements Lua créés par les développeurs Lua officiels peuvent maintenant donner des badges spécifiques et des cartouches


CHANGEMENTS
  • tfm.exec.addImage peut maintenant cibler une zone fixe (avec le préfixe :) derrière les interfaces liés au Lua (textArea et popup)
  • system.disableChatCommandDisplay accepte maintenant un paramètre nil en tant que premier paramètre. Utiliser nil permet d'afficher/de cacher toutes les commandes commençant par "!"
  • tfm.exec.setVampirePlayer et tfm.exec.setShaman accepte maintenant un second paramètre (boolean) pour retransformer un vampire/chaman en souris normale
  • eventPlayerVampire inclut maintenant un second argument qui correspond au pseudo du joueur à l'orogine de la contamination (la valeur est nil si le joueur est contaminé par tfm.exec.setVampirePlayer)
  • tfm.exec.giveMeep accepte maintenant un second argument (boolean) permettant de retirer le meep à un joueur


CORRECTION DE BUGS
  • Les sols "Eau" et "Toile d'araignée" ajoutés avec tfm.exec.addPhysicObject ne se comportaient pas normalement (note : un sol ne conserve pas ses propriétés s'il est dynamique)
  • Les sols "Eau" et "Toile d'araignée" supprimés avec tfm.exec.removePhysicObject avaient toujours un effet sur les souris et les objets
  • L'événement eventSummoningCancel se déclenchait quand un chaman commençait une invocation après avoir réussi la précédente

a dit :
Version 0.26, le 28 Juillet 2017

Correction de bug :
  • La fonction tfm.exec.newGame ne marchait pas quand le paramètre était une catégorie (exemple : tfm.exec.newGame("#0"))

a dit :
Version 0.25, le 30 Juin 2017

Nouveautés :
  • Lorsqu'un script se termine normalement (via la fonction system.exit par exemple), il ne provoque plus d'erreur

a dit :
Version 0.24, le 7 Janvier 2017

Nouveautés :
  • Ajout de la fonction tfm.exec.disablePhysicalConsumables ( boolean desactiver ) pour empêcher l'utilisation de consommables solides (boule de neige, tombe, etc.) dans le salon.
  • Les messages envoyés depuis l'onglet #lua du tchat sont désormais affichés dans le canal du salon (et déclenchent donc les événements liés au tchat)

Corrections :
  • Quand une carte contenait plusieurs objets chamane, seul le dernier était accessible dans la table tfm.get.room.objectList, avec l'id 0. Maintenant ils sont tous correctement accessibles avec leur réel id (qui commence à 1000)

a dit :
Version 0.23, le 2 décembre 2016

Nouveautés :
  • Les tables dans playerList contiennent maintenant l'identifiant du joueur
  • Ajout de la fonction tfm.exec.giveConsumables ( string recompense )disponible uniquement pour les modules évènementiels afin de donner des consommables en récompense aux joueurs (pour la lua team uniquement)
  • Ajout de la fonction tfm.exec.setAutoMapFlipMode ( boolean|nil inverser ) pour indiquer si les prochaines cartes doivent se jouer en mode miroir ou rétablir le comportement par défaut (nil)
  • Ajout des fonctions tfm.exec.disableMortCommand, tfm.exec.disableWatchCommand, tfm.exec.disableDebugCommand et tfm.exec.disableMinimalistMode pour empêcher les joueurs d'utiliser les commandes /mort /watch /debug et le mode minimaliste dans les modules

Modifications :
  • La fonction tfm.exec.moveObject peut prendre deux nouveau parametres angle et angleOffset pour spécifier le nouvel angle de l'objet déplacé

Corrections :
  • La couleur des pseudos coloriés n'était pas la bonne lorsqu'un joueur entrait dans le salon ou quand un joueur respawnait
  • Correction de quelques bugs de position et de gameplay sur certaines cartes en mode miroir (vanilla notamment)
  • La fonction eventFileSaved était appelée à la place d'eventFileLoaded lorsque tfm.exec.loadFile était appelé avec un identifiant de fichier invalide
  • La fonction os.time qui donnait des résultats différents selon l'heure à laquelle elle était appelée
  • Les images affichées sur un plan fixe (typiquement les images en premier plan) s'affichaient derrière les textareas fixés sur la première carte d'un module

Dépréciations:
  • La fonction debug.disableTimerLog a été dépréciée puisque debug.disableEventLog inclut son comportement. La fonction existe toujours par soucis de rétrocompatibilité mais n'a plus aucun effet

a dit :
Version 0.22, le 15 avril 2016

Changements :
  • Nouvel événement eventChatMessage qui s'active lorsqu'un joueur envoie un message dans le tchat
  • Rajout d'un paramètre booléen à la fonction tfm.exec.newGame indiquant si la map doit être jouée en mode miroir ou non. Si le paramètre n'est pas passé, la carte sera aléatoirement en mode miroir
  • Ajout de la propriété tfm.get.room.mirroredMap (booléen) indiquant si la map actuelle est en mode miroir
  • Ajout de la fonction tfm.exec.setRoomPassword permettant de mettre un mot de passe à un salon (accessible uniquement pour la lua team)
  • Nouvelle propriété tfm.get.room.passwordProtected (booléen) indiquant si le salon est protégé par un mot de passe

a dit :
Version 0.21, le 22 janvier 2016

Changements :
  • Charger de gros scripts ne vous déconnecte plus du salon
  • La métatable String partagée entre tous les modules n'est plus accessible
  • Le champ registrationDate dans les tables de tfm.get.room.playerList contient désormais le timestamp correspondant à la bonne date d'inscription
  • Les joueurs ayant cliqué sur un textarea ne sont plus bloqués lorsqu'il est mis à jour
  • Les palettes disparaissent lorsqu'un module se termine

a dit :
Version 0.20, le 29 octobre 2015

Changements :
  • Les fonctions suivantes ont changé de nom :

    • tfm.exec.bindKeyboard → system.bindkeyboard
    • tfm.exec.setUIMapName → ui.setmapName
    • tfm.exec.setUIShamanName → ui.setShamanName

  • Le mode chamane du joueur se trouve dans shamanMode et non plus dans inHardMode
  • Le paramètre des fonctions contenant "disable" est maintenant par défaut true
  • L'événement eventEmotePlayed contient un paramètre de plus pour identifier le drapeau choisi par le joueur
  • Mis à jour de tfm.enums
  • Les paramètres xSpeed et ySpeed ont été enlevé de eventSummoningEnd
  • Il est possible d'écouter les touches 0(gauche), 1 (haut), 2(droite), 3 (bas) avec system.bindkeyboard, l'évènement eventKeyboard sera déclenché lorsque le joueur utilise les touches qui lui permettent de se déplacer (wasd ou zqsd ou ←↑→↓)
  • La valeur minimal de tfm.exec.setRoomMaxPlayers était de 5, elle est maintenant de 1.
  • os.date remarche
  • La vitesse et le type de base (pour les objets spéciaux) sont maintenant disponible dans tfm.get.room.objectList
  • Rajout de la fonction tfm.exec.playEmote
  • Rajout de la fonction tfm.exec.lowerSyncDelay (uniqument pour la Lua Team)
  • Rajout de la fonction ui.showColorPicker
  • Rajout de l'événement eventColorPicked

a dit :
Version 0.19, le 20 juin 2014

Changements :
  • Rajout des paramètres timeElapsed et timeElapsedSinceRespawn pour eventPlayerWon

a dit :
Version 0.18, le 26 mai 2014

Changements :
  • Rajout de la fonction tfm.exec.addJoint
  • Rajout de la fonction tfm.exec.removeJoint
  • Rajout de la fonction tfm.exec.addPhysicObject
  • Rajout de la fonction tfm.exec.removePhysicObject

a dit :
Version 0.17, le 21 décembre 2013

Changements :
  • Amélioration des performances lors de l'exécution des scripts

a dit :
Version 0.16, le 14 décembre 2013

Changements :
  • Correction de bugs
  • Modification des messages affichés dans le chat lorsque vous chargez un script ou qu'il y a une erreur

a dit :
Version 0.15, le 2 décembre 2013

Changements :
  • Rajout de la fonction tfm.exec.displayParticle (catégorisée dans la partie Objet)
  • Dans tfm.exec.addImage, possibilité d'attacher l'image à un calque de profondeur donnée

Dernière modification le 1555267320000
  • Forums
  • /
  • Transformice
  • /
  • Modules
  • /
  • L'API LUA de Transformice
© Atelier801 2018

Equipe Conditions Générales d'Utilisation Politique de Confidentialité Contact

Version 1.27