Posté le: 18/08/08 17:42 Sujet du message: Créer une Multitable
Bon je vais vous apprendre à créer une multitable.
I/ Une multitable ? C'est quoi ?
Une multitable est un tableau, un peu comme un panneau de commande mais avec plusieurs colonnes et la possibilité de mettre autre chose que des chiffres. Comme la plupart des multitables sont grandes il y a la possibilité le les cacher.
II/ La création ?
Je vais vous montrer comme créer un multitable avec une icône, le nom des joueurs, les unités qu'il ont tuées, et le temps de la partie.
a) La Multitable
Voici un déclencheur avec ces explications :
Secret:
Gui:
Trigger:
Creation
Evénements
Temps - Elapsed game time is 0.50 seconds
Conditions
Actions
-------- Prêt ? ^^ -------- -------- La on prend le nombre de joueur qui sont dans la partie qui jou et qui ne sont pas des ordinateurs -------- Set Nombre_Joueur = (Number of players in (All players matching ((((Matching player) controller) Egal à Utilisateur) and (((Matching player) slot status) Egal à Joue)))) -------- On le crée la avec 3 colonnes mais on peut changer celon ce que vous allez mettre dedans le nombre de ligne sera en fonction du nombre de joueurs -------- Multitable - Create a multiboard with 3 columns and (3 + Nombre_Joueur) rows, titled >> Nom de la carte ... -------- On le défini dans une variable -------- Set Multitable = (Last created multiboard) -------- On indique les textes -------- Multitable - Set the text for (Last created multiboard) item in column 2, row 1 to Joueurs : Multitable - Set the text for (Last created multiboard) item in column 3, row 1 to Tués :
For each (Integer A) from 1 to (3 + Nombre_Joueur), do (Actions)
Boucle - Actions
-------- Ici on choisi si les colonnes sont des icône ou du texte ou les 2 -------- Multitable - Set the display style for (Last created multiboard) item in column 1, row 1 to Montrer text and Masquer icons Multitable - Set the display style for (Last created multiboard) item in column 1, row (Integer A) to Montrer text and Masquer icons Multitable - Set the display style for (Last created multiboard) item in column 2, row (Integer A) to Montrer text and Masquer icons Multitable - Set the display style for (Last created multiboard) item in column 3, row (Integer A) to Montrer text and Masquer icons -------- Ici la taille -------- Multitable - Set the width for (Last created multiboard) item in column 1, row (Integer A) to 2.00% of the total screen width Multitable - Set the width for (Last created multiboard) item in column 2, row (Integer A) to 9.00% of the total screen width Multitable - Set the width for (Last created multiboard) item in column 3, row (Integer A) to 6.00% of the total screen width
-------- Ici le nombre de la ligne où commence le nom des joueurs et tous ce qui va avec -------- Set List = 2 -------- Bon ici c'est assez complexe si on ne connait pas les boucles ... Je vais essayer d'expliquer -------- -------- Toutes les actions vont se faire plusieurs fois pour être exacte si le nombre de joueurs que l'on prend est de 8 les actions vont se faire 1 fois puis aprés encore 1 fois jusqu'a un total de 8 --------
Groupe joueur - Pick every player in (All players matching ((((Matching player) slot status) Egal à Joue) and (((Matching player) controller) Egal à Utilisateur))) and do (Actions)
Boucle - Actions
Set Multiboard_Ligne_Joueur[(Player number of (Picked player))] = List -------- Ici ont met le nom du joueur (Je vais vous montrer aprés pour la variables Joueur_Couleur qui est une chaîne. -------- Multitable - Set the text for (Last created multiboard) item in column 2, row List to (Joueur_Couleur[(Player number of (Picked player))] + ((Name of (Picked player)) + |r)) -------- La le nombres d'unités tué la on met 0. -------- Multitable - Set the text for (Last created multiboard) item in column 3, row List to 0 -------- Là pour que tous les joueurs ne soit pas sur la même lignes -------- Set List = (List + 1)
-------- Désolé si c'est mal expliquer ou si vous n'avait pas compris -------- -------- Le plus dur de fait la c'est pour le temps -------- -------- L'icône -------- Multitable - Set the icon for (Last created multiboard) item in column 1, row (Number of rows in (Last created multiboard)) to ReplaceableTexturesCommandButtonsBTNCallToArms.blp -------- Le texte -------- Multitable - Set the text for (Last created multiboard) item in column 2, row (Number of rows in (Last created multiboard)) to Temps >>> -------- Le temps -------- Multitable - Set the text for (Last created multiboard) item in column 3, row (Number of rows in (Last created multiboard)) to (00 + ( : + (00 + ( : + 00)))) -------- Ici on montre la multitable mais attention ne pas la montrer quand un joueurs a une boîte de dialogue d'afficher sinon il n'aura rien -------- Multitable - Montrer Multitable
Voilà pour la création.
b) La variable Joueur_couleur
Ici c'est assez simple on met la variable pour les code couleur de chaque joueur (Pour 8 joueurs)
Secret:
Gui:
Trigger:
Couleurs
Evénements
Map initialization
Conditions
Actions
Set Joueur_Couleur[1] = |c00ff0000 Set Joueur_Couleur[2] = |c000000ff Set Joueur_Couleur[3] = |c0000ffff Set Joueur_Couleur[4] = |c00800080 Set Joueur_Couleur[5] = |c00ffff00 Set Joueur_Couleur[6] = |c00ff8000 Set Joueur_Couleur[7] = |c0000ff00 Set Joueur_Couleur[8] = |c00ff00ff
c) Les unités tuées
Pour que ça change dans la multitable quand un joueur tue une unité.
Secret:
Gui:
Trigger:
Unites tuees
Evénements
Unité - A unit Meurt
Conditions
Actions
-------- Pour que son montre d'unité tué augmente -------- Set Unite_Tuer[(Player number of (Owner of (Killing unit)))] = (Unite_Tuer[(Player number of (Owner of (Killing unit)))] + 1) -------- Et on le change dans la multitable -------- Multitable - Set the text for (Last created multiboard) item in column 3, row Multiboard_Ligne_Joueur[(Player number of (Owner of (Killing unit)))] to (String(Unite_Tuer[(Player number of (Owner of (Killing unit)))]))
d) Si un joueur quitte la partie
Voilà pour que sa change le nom du joueurs quand il quite
Secret:
Gui:
Trigger:
Joueurs quite
Evénements
Joueur - Joueur 1 (Rouge) leaves the game Joueur - Joueur 2 (Bleu) leaves the game Joueur - Joueur 3 (Cyan) leaves the game Joueur - Joueur 4 (Pourpre) leaves the game Joueur - Joueur 5 (Jaune) leaves the game Joueur - Joueur 6 (Orange) leaves the game Joueur - Joueur 7 (Vert) leaves the game Joueur - Joueur 8 (Rose) leaves the game
Conditions
Actions
-------- On change le nom puis on le dit a tous le monde -------- Multitable - Set the text for (Last created multiboard) item in column 2, row Multiboard_Ligne_Joueur[(Player number of (Triggering player))] to (Joueur_Couleur[(Player number of (Triggering player))] + (A quité la partie + |r)) Partie - Display to (All players) the text: ((Name of (Triggering player)) + a quité la partie.)
e) L'icône
Je vais vous expliquer comment mettre l'icône de son héros dans la multitable.
Là des variables.
Secret:
Gui:
Trigger:
Icone
Evénements
Map initialization
Conditions
Actions
-------- La pour 2 unités on peut bien sur plus -------- -------- Le type -------- Set Icone_Uniter[1] = Maître-lame -------- Et le nom de son icône -------- Set Icone_icone[1] = ReplaceableTexturesCommandButtonsBTNHeroBlademaster.blp -------- Et la suite -------- Set Icone_Uniter[2] = Prophète Set Icone_icone[2] = ReplaceableTexturesCommandButtonsBTNHeroFarseer.blp
Et là le déclencheur.
Secret:
Gui:
Trigger:
Hero icone
Evénements
Unité - A unit enters (Playable map area)
Conditions
Actions
-------- Voilà comment mettre un icône -------- -------- /! Mettre le For each de 1 jusqu'au nombre d'icones que vous avait mit avant --------
For each (Integer A) from 1 to 2, do (Actions)
Boucle - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
(Unit-type of (Triggering unit)) Egal à Icone_Uniter[(Integer A)]
Alors - Actions
-------- Encore une boucles pour ce qui ne connaissent pas ba recopier :p -------- -------- On change le style de la colonne -------- Multitable - Set the display style for (Last created multiboard) item in column 1, row Multiboard_Ligne_Joueur[(Player number of (Owner of (Triggering unit)))] to Montrer text and Montrer icons -------- Et on met l'icone -------- Multitable - Set the icon for Multitable item in column 1, row Multiboard_Ligne_Joueur[(Player number of (Owner of (Triggering unit)))] to Icone_icone[(Integer A)]
Sinon - Actions
f) Le temps
Secret:
Gui:
Trigger:
Temps
Evénements
Temps - Every 1.00 seconds of game time
Conditions
Actions
-------- Une secondes de plus -------- Set Secondes = (Secondes + 1) -------- Si c'est a 60 secondes que sa mettent 1 minutes et que les secondes revienne a 0 --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Secondes Egal à 60
Alors - Actions
Set Secondes = 0 Set Minute = (Minute + 1)
Sinon - Actions
-------- Si c'est a 60 minutes que sa mettent 1 heure de plus et que les minutes revienne a 0 --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Minute Egal à 60
Alors - Actions
Set Minute = 0 Set Heure = (Heure + 1)
Sinon - Actions
-------- Si c'est en dessous de 10 secondes que sa mettent un 0 avant pour pas que sa fasse une heure moche comme sa : 1:5:6 mais plutôt 01 : 50 : 60 -------- -------- Avec les heures --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Heure Inférieur à 10
Alors - Actions
Set HeureT = ((String(0)) + (String(Heure)))
Sinon - Actions
Set HeureT = (String(Heure))
-------- Avec les minutes --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Minute Inférieur à 10
Alors - Actions
Set MinutesT = ((String(0)) + (String(Minute)))
Sinon - Actions
Set MinutesT = (String(Minute))
-------- Et avec les secondes --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Secondes Inférieur à 10
Alors - Actions
Set SecondesT = ((String(0)) + (String(Secondes)))
Sinon - Actions
Set SecondesT = (String(Secondes))
-------- Et on change dans la multitable -------- Multitable - Set the text for (Last created multiboard) item in column 3, row (Number of rows in (Last created multiboard)) to (HeureT + ( : + (MinutesT + ( : + SecondesT))))
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
Posté le: 18/08/08 18:08 Sujet du message:
Gui:
Trigger:
-------- Une secondes de plus -------- Set Secondes = (Secondes + 1) -------- Si c'est a 60 secondes que sa mettent 1 minutes et que les secondes revienne a 0 --------
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Secondes Egal à 60
Alors - Actions
Set Secondes = 0 Set Minute = (Minute + 1)
Sinon - Actions
Je coderai pas comme sa mais plutôt:
Gui:
Trigger:
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Secondes Egal à 59
Alors - Actions
Set Secondes = 0 Set Minute = (Minute + 1)
Sinon - Actions
Set Secondes = (Secondes + 1)
Je t'accorde que c'est un détails insignifiant , mais si la fonction serai beaucoup appelé se serait toujours sa de gagné.
(j'ai pas regardé tout tes codes) _________________
Inscrit le: 23 Aoû 2007 Messages: 7143 Sujets: 147 Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance Médailles: 2 (En savoir plus...)
Posté le: 18/08/08 18:33 Sujet du message:
C'est un faux ami c'est un nom anglais table = tableau.
Alors comme l'éditeur utilise joyeusement le franglais à la louche, who care anyway ?
Choisis ce que tu like :p _________________
Inscrit le: 21 Aoû 2007 Messages: 2072 Sujets: 51 Spécialité en worldedit: Harceller vos maps de critiques !! ';..;' Médailles: 1 (En savoir plus...)
Posté le: 18/08/08 19:32 Sujet du message:
Tient donc tu as mis dans tuto les mêmes trucs que pour ta map !
Au passage je ne sais pas si tu connais mais il existe une astuce pour rendre la multitable utilisable comme monotable (parce que c'est pratique et il peut y avoir les icônes ) ! _________________
Lol déjà ta boucle integer A sert a rien mettre le chiffre 0 renvoi a le faire pour toutes les colonnes du tableau en gros la même chose que ton integer A ensuite ton set list ne sert a rien tu peut utiliser le numéro des joueurs.
Si non bravo d'avoir fait ce tuto sa manquai vraiment _________________
Toutes les heures sont au format GMT + 1 Heure Aller à la page 1, 2, 3, 4Suivante
Page 1 sur 4
Vous ne pouvez pas poster de nouveaux sujets dans ce forum Vous ne pouvez pas répondre aux sujets dans ce forum Vous ne pouvez pas éditer vos messages dans ce forum Vous ne pouvez pas supprimer vos messages dans ce forum Vous ne pouvez pas voter dans les sondages de ce forum