L'API LUA de Transformice |
Modozap « Citoyen » 1387105140000
| 9 | ||
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 :
Pour les arguments, les différents types possibles sont :
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 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 1490119860000 |
Modozap « Citoyen » 1387105260000
| 6 | ||
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 :
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.
tfm.exec.removeCheese (playerName) Retirer le fromage à un joueur.
tfm.exec.playerVictory (playerName) Fait rentrer un joueur dans le trou.
tfm.exec.movePlayer (playerName, xPosition, yPosition, offset, xSpeed, ySpeed, offset) Déplace un joueur.
tfm.exec.killPlayer (playerName) Permer de tuer un joueur.
tfm.exec.respawnPlayer (playerName) Fait respawn (= réapparaitre en jeu) un joueur
tfm.exec.setVampirePlayer (playerName) Transforme un joueur en vampire.
tfm.exec.giveMeep (playerName) Permet à un joueur de pouvoir meep.
tfm.exec.setNameColor (playerName, color) Change la couleur du pseudo d'un joueur.
tfm.exec.playEmote (playerName, emoteId, emoteParam) Permet de faire faire un émote à un joueur.
tfm.exec.giveTransformations (playerName, canTransform) Permet au joueur d'utiliser la transformation de sa souris (planche, caisse, enclume).
tfm.exec.linkMice (playerName1, playerName2, linked) Permet de lier deux souris (comme sur les cartes âme-sœur).
tfm.exec.changePlayerSize (playerName, size) Changer la taille d'un joueur (entre 0.1 et 5 fois sa taille normale).
LES FONCTIONS SUR LES OBJETS tfm.exec.addShamanObject (objectId, xPosition, yPosition, angle, xSpeed, ySpeed, ghost) Fait apparaître un objet sur la map.
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.
tfm.exec.removeObject (objectId) Enlève un objet de la map.
tfm.exec.addConjuration (xPosition, yPosition, timeInMillis) Affiche un bloc de conjuration sur la map.
tfm.exec.addJoint (id, ground1, ground2, definition) Ajoute un joint entre deux sols.
tfm.exec.removeJoint (id) Supprime un joint de la carte.
tfm.exec.addPhysicObject (id, xPosition, yPosition, definition) Fait apparaitre un sol sur la carte.
tfm.exec.removePhysicObject (id) Supprime un sol de la carte.
tfm.exec.explosion (xPosition, yPosition, power, distance, miceOnly) Fait une explosion.
tfm.exec.snow (secondes, snowballPower) Fait tomber de la neige.
tfm.exec.displayParticle (particleId, xPosition, yPosition, xSpeed, ySpeed, xAcceleration, yAcceleration, targetPlayer) Affiche une particule.
LES FONCTIONS SUR LES PARAMÈTRES DE LA PARTIE/DU SALON tfm.exec.newGame (mapCode, mirrored) Lance une nouvelle partie.
- 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
tfm.exec.disableAutoNewGame (yes) Active ou désactive le lancement automatique d'une nouvelle partie (lorsque le temps restant arrive à 0)
tfm.exec.setShaman (playerName) Met un joueur chamane.
tfm.exec.disableAutoShaman (yes) Active ou désactive la sélection automatique du chamane lors d'une nouvelle partie.
tfm.exec.disableAllShamanSkills (yes) Active ou désactive les compétences chamane.
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é).
tfm.exec.setGameTime (seconds, init) Change le temps restant d'une partie.
tfm.exec.disableAutoTimeLeft (yes) Active ou désactive l'écoulement du temps restant d'une partie.
tfm.exec.setPlayerScore (playerName, score, add) Change le score d'un joueur.
tfm.exec.disableAutoScore (yes) Active ou désactive la gestion automatique des scores des joueurs.
tfm.exec.disableAfkDeath (yes) Active ou désactive la mort automatique des joueurs afks.
tfm.exec.disableMortCommand (yes) Empêche les joueurs d'utiliser la commande /mort.
tfm.exec.disableWatchCommand (yes) Empêche les joueurs d'utiliser la commande /watch.
tfm.exec.disableDebugCommand (yes) Empêche les joueurs d'utiliser la commande /debug.
tfm.exec.disableMinimalistMode (yes) Empêche les joueurs d'utiliser le mode minimaliste.
tfm.exec.disablePhysicalConsumables (yes) Empêche l'utilisation de consommables solides (boule de neige, tombe, etc) par les joueurs.
system.disableChatCommandDisplay (command, yes) Active ou désactive l'affichage d'une commande (un message commençant par « ! » ) dans le chat.
tfm.exec.disablePrespawnPreview (display) Permet de désactiver la prévisualisation des objets chaman lors de l'invocation.
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.
ui.updateTextArea (id, text, targetPlayer) Met à jour le contenu d'une zone de texte affichée sur la map.
ui.removeTextArea (id, targetPlayer) Enlève une zone de texte affichée sur la map
ui.addPopup (id, type, text, targetPlayer, x, y, width, fixedPos) Affiche une popup sur la map.
ui.showColorPicker (id, targetPlayer, defaultColor, title) Affiche une palette de couleurs.
LES FONCTIONS SUR L'INTERFACE DU JEU ui.setShamanName (text) Remplace le nom du chamane dans la barre du haut par du texte.
ui.setMapName (text) Remplace le code de la map dans la barre du haut par du texte.
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.
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.
LES FONCTIONS DE DEBUG DU MODULE print (something) Affiche dans le chat la valeur de l'argument passé.
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
| 6 | ||
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 :
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.
Code Lua 1 2 3 function eventPlayerGetCheese(playerName) eventPlayerWon (playerName, timeElapsed, timeElapsedSinceRespawn) Cet événement se déclenche lorsqu'un joueur rentre dans le trou.
Code Lua 1 2 3 function eventPlayerWon(playerName,timeElapsed,timeElapsedSinceRespawn) eventPlayerDied (playerName) Cet événement se déclenche lorsqu'un joueur meurt.
Code Lua 1 2 3 function eventPlayerDied(playerName) eventPlayerRespawn (playerName) Cet événement se déclenche lorsqu'un joueur respawn, c'est-à-dire réapparait sur la map, lors d'une partie.
Code Lua 1 2 3 4 5 6 7 8 function eventPlayerRespawn(playerName) eventPlayerVampire (playerName) Cet événement se déclenche lorsqu'un joueur se transforme en vampire.
Code Lua 1 2 3 function eventPlayerVampire(playerName) eventEmotePlayed (playerName, emoteId, emoteParam) Cet événement se déclenche lorsqu'un joueur fait une émote (rire, pleurer, danser, etc.).
Code Lua 1 2 3 4 5 6 7 function eventEmotePlayed(playerName, emoteId, emoteParam) eventPlayerMeep (playerName, xPosition, yPosition) Cet événement se déclenche lorsqu'un joueur utilise le meep.
LES ÉVÉNEMENTS CHAMANE eventSummoningStart (playerName, objectType, xPosition, yPosition, angle) Cet événement se déclenche lorsqu'un chamane commence à invoquer un objet.
eventSummoningCancel (playerName) Cet événement se déclenche lorsqu'un chamane s'arrête en cours d'invocation d'un objet.
eventSummoningEnd (playerName, objectType, xPosition, yPosition, angle, other) Cet événement se déclenche lorsqu'un chamane finit d'invoquer un objet.
- 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) LES ÉVÉNEMENTS SALONS eventNewGame () Cet événement se déclenche lorsqu'une nouvelle partie commence. Code Lua 1 2 3 function eventNewGame() eventNewPlayer (playerName) Cet événement se déclenche lorsqu'un nouveau joueur rejoint le salon.
Code Lua 1 2 3 function eventNewPlayer(playerName) eventPlayerLeft (playerName) Cet événement se déclenche lorsqu'un joueur quitte le salon.
Code Lua 1 2 3 function eventPlayerLeft(playerName) eventLoop (currentTime, timeRemaining) Cet événement se déclenche automatiquement environ toutes les 500 millisecondes.
Code Lua 1 2 3 4 function eventLoop(currentTime, timeRemaining) eventChatCommand (playerName, message) Cet événement se déclenche lorsqu'un joueur envoie un message commençant par « ! ».
Code Lua 1 2 3 function eventChatCommand(playerName, message) eventChatMessage (playerName, message) Cet événement se déclenche lorsqu'un joueur envoie un message dans le salon
Code Lua 1 2 3 function eventChatMessage(playerName, message) 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.
Code Lua 1 2 3 4 5 6 ui.addPopup(0, 1, "Aimes-tu la tartiflette ?", nil, 150, 200, 200) 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.
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) eventColorPicked (colorPickerId, playerName, color) Cet événement se déclenche lorsqu'un joueur clique sur valider dans le popup de la palette.
Code Lua 1 2 3 4 5 ui.showColorPicker (0, nil, 0, "Palette de couleurs" ) 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.
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) eventMouse (playerName, xMousePosition, yMousePosition) Cet événement se déclenche lorsqu'un joueur clique avec sa souris.
Code Lua 1 2 3 4 5 6 7 8 9 10 11 12 13 function eventMouse(playerName, xMousePosition, yMousePosition) 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
| 6 | ||
HISTORIQUE DES VERSIONS a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : a dit : Dernière modification le 1555267320000 |