Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.php?sid=39135da1cbbed929d7d5eb739aacb11fMédailles   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 
  FAQFAQ World Editor   UploadUploader une map ou une image    UploadAjouter sa map à l'annuaire   UploadConsulter l'annuaire

Annuler Flétrissure
Aller à la page Précédente  1, 2
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 04/03/16 23:24    Sujet du message: Citer

Ma solution a-t-elle fonctionné ?
_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 04/03/16 23:37    Sujet du message: Citer

rfg, je t'avouerais que je n'ai pas bien compris comment ce que tu me proposes fonctionne.

Je suis toutefois en train d'essayer de comprendre comment fonctionne les hashtables. Ça a l'air génial quand on sait bien s'en servir!

Par contre, ça fonctionne pas encore. J'arrive pas à scanner le terrain de manière efficace. Voici comment je m'y prend pour un essai:

Secret:

Gui:
Trigger:
enregistrement
Collapse Evénements
Temps - Every 0.01 seconds of game time
Conditions
Collapse Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Terre
Collapse Alors - Actions
Set var_terrain = 1
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Terre rocailleuse
Collapse Alors - Actions
Set var_terrain = 2
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Terre herbeuse
Collapse Alors - Actions
Set var_terrain = 3
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Rochers
Collapse Alors - Actions
Set var_terrain = 4
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Herbe
Collapse Alors - Actions
Set var_terrain = 5
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Terrain type at (Center of (Region centered at ((Center of scan <gen>) offset by (((Real(x)) x 128.00), ((Real(y)) x 128.00))) with size (128.00, 128.00)))) Egal à  Eté de Lordaeron - Herbe sombre
Collapse Alors - Actions
Set var_terrain = 6
Sinon - Actions
Table de hachage - Save var_terrain as x of y in table1
Set x = (x + 1)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
x Egal à  3
y Egal à  3
Collapse Alors - Actions
Déclencheur - Turn off (This trigger)
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
x Supérieur ou égal à  3
Collapse Alors - Actions
Set x = 0
Set y = (y + 1)
Sinon - Actions
Partie - Display to (All players) the text: (String((Load x of y from table1)))



Comme je peux pas stocker des types de terrains, je les transforme en entiers avec des conditions.

Je scan un petit terrain de 3x3 cases. Il me semble qu'une case mesure 128x128 (c'est ce que j'ai trouvé comme info sur l'éditeur). Alors pour chaque x et y, je déplace la zone à scanner de 128.

J'ai mis une déclencheur texte pour m'indiquer le résultat des scans et je n'obtient que des 0.


Bref. Si vous voyez mon erreur, je suis intéressé. Si vous scanneriez différemment, je serais aussi intéressé.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 05/03/16 00:52    Sujet du message: Citer

Moi je scannerais pas tout court, surtout que le nécromancien génère pas beaucoup de flétrissure au cours d'une partie, c'est hyper lourd à mettre en oeuvre et pas efficace du tout pour rien.

Ce que je te propose de faire c'est de ne t'intéresser qu'aux cases que tu transformes en les sauvegardant (dans un tableau) juste avant de poser la flétrissure dessus avec le crâne sacrificiel.

Est-ce que je peux voir comment tu change le terrain en terrain flétri ?
_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 05/03/16 15:32    Sujet du message: Citer

Ok RGF. Ta solution me semble meilleure. Mais je ne comprend pas comment enregistrer à la fois le terrain avant qu'il soit modifié, sa position sur la carte et comment le restituer ensuite.

En fait, tu me montres des variables: 'cases[compteurCase]' et 'casesPosition[compteurCase]' dont je ne connais pas le type. Donc je comprend pas comment ça marche.

Voici comment je génère la flétrissure. Tu verras, c'est vraiment du bricolage mais je savais pas comment faire autrement.

Secret:

Gui:
Trigger:
blight
Collapse Evénements
Unité - A unit Arrête le lancement d'une compétence
Collapse Conditions
(Ability being cast) Egal à  Flétrissure (necro)
Collapse Actions
Effet spécial - Create a special effect at (Position of necromancer) using AbilitiesSpellsUndeadDarkRitualDarkRitualTarget.mdl
Objet - Create Bonus +15 at (Center of Bonus pop <gen>)
Héros - Give (Last created item) to necromancer
Unité - Create 1 Flétrissure (placeur de flétrissure) for Joueur 9 (gris) at (Position of necromancer) facing Orientation bâtiment par défaut degrees
Set blight_unit = (Last created unit)
Unité - Turn collision for blight_unit Off
Unité - Move blight_unit instantly to (Position of necromancer), facing (Position of (Triggering unit))
Objet - Create Crâne sacrificiel at (Center of Bonus pop <gen>)
Héros - Give (Last created item) to blight_unit
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(((Remaining time for Timer) x necro_abilities_growing_factor) / 60.00) Supérieur à  15.00
Collapse Alors - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 0.00 towards 0.00 degrees)
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(((Remaining time for Timer) x necro_abilities_growing_factor) / 60.00) Supérieur à  10.00
Collapse Alors - Actions
Set random1 = (Random integer number between 1 and 2)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
random1 Egal à  1
Collapse Alors - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 50.00 towards 0.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 50.00 towards 180.00 degrees)
Collapse Sinon - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 50.00 towards 90.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 50.00 towards 270.00 degrees)
Wait 0.10 seconds
Collapse Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(((Remaining time for Timer) x necro_abilities_growing_factor) / 60.00) Supérieur à  5.00
Collapse Alors - Actions
Set random1 = (Random integer number between 1 and 2)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
random1 Egal à  1
Collapse Alors - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 0.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 120.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 240.00 degrees)
Collapse Sinon - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 60.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 180.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 65.00 towards 300.00 degrees)
Wait 0.10 seconds
Collapse Sinon - Actions
Set random1 = (Random integer number between 1 and 2)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
random1 Egal à  1
Collapse Alors - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 0.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 90.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 180.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 270.00 degrees)
Collapse Sinon - Actions
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 45.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 135.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 225.00 degrees)
Wait 0.10 seconds
Héros - Order blight_unit to use (Last created item) on ((Position of blight_unit) offset by 75.00 towards 305.00 degrees)
Wait 0.10 seconds
Unité - Remove blight_unit from the game
Set blight_unit = Pas d'unité


_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 05/03/16 17:31    Sujet du message: Citer

Les variables cases et casesPosition sont des variables à déploiement, des tableaux en gros. Ce sont des variables qui lient un index (un entier) à une donnée du type de la variable à déploiement. Tu dois pouvoir trouver des précisions là-dessus sur le forum ou ailleurs ^^
Pour les créer tu fais quelque chose comme ça :
Secret:



Pour casesPosition, c'est pareil mais le type de variable est "Point".
compteurCase est une variable simple de type Entier.

Il faut alors reprendre les déclencheurs que j'avais donné plus haut :
avant chaque génération de flétrissure (Order unit to use last created item) tu mets ces trois lignes :
Gui:
Trigger:
Set cases[compteurCase] = (Terrain type at (Position of (Triggering unit)))
Set casesPosition[compteurCase] = (Position of (Triggering unit))
Set compteurCase = (compteurCase + 1)

Elles servent à stocker la position de la case dans casesPosition à l'index compteurCase et le type de terrain dans cases au même index.

Ensuite on incrémente l'index (on lui ajoute 1) pour avancer dans le tableau et remplir la suite des variables à déploiement.

En gros, là on remplit d'abord cases[0] et casesPosition[0] car compteurCase vaut 0 au départ, puis cases[1] et casesPosition[1] car on a incrémenté compteurCase etc...

Quand tu veux relancer la game, tu insères ces lignes :
Gui:
Trigger:
Actions
Collapse For each (Integer A) from 0 to compteurCase, do (Actions)
Collapse Boucle - Actions
Là il faut dissiper magie sur casesPosition[(Integer A)]
Environnement - Change terrain type at casesPosition[(Integer A)] to cases[(Integer A)] using variation -1 in an area of size 1 and shape Cercle
Custom script:   call RemoveLocation(casesPosition[GetForLoopIndexA()])
Set compteurCase = 0

Elles vont itérer sur tous les index des deux variables à déploiement (Integer A prend successivement les valeurs 0, 1, ... jusqu'à compteurCase qui est le dernier index ayant été utilisé durant la partie) et pour chaque index de 0 à compteurCase on remet le type de terrain à celui que tu as sauvegardé dans cases[index] à la position casesPosition[index].

On oublie pas de remettre compteurCase à 0 pour réinitialiser le système.

Si ce n'est pas assez clair n'hésite pas à poser des questions !
_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 06/03/16 15:16    Sujet du message: Citer

Merci RGF! Je connaissais pas le déploiement! C'est tellement plus simple d'utiliser ça! Merci!

Toutefois, je ne sais pas comment lancer la compétence 'dissipation' du prêtre par déclencheur!
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 06/03/16 21:15    Sujet du message: Citer

Ouais c'est hyper pratique ^^
Pour dissipation magie tu peux t'inspirer de la démo que j'ai donné à Cho'gall ici Démo avec un dummy qui lance le spell successivement sur chaque zone (il faut une portée globale).
_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 06/03/16 21:49    Sujet du message: Citer

Je sais utiliser un dummy, faire des portées globales et tout ça, c'est juste que je ne sais pas comment lui ordonner de lancer le sort 'dissipation' du prêtre. Je ne trouve pas ça dans les déclencheurs.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 06/03/16 23:07    Sujet du message: Citer

Effectivement, en fait je sais pas pourquoi mais l'ordre se trouve dans les ordres unités et pas dans les ordres points.
Tu peux utiliser le jass pour ça :
Gui:
Trigger:
Custom script:   call IssuePointOrderLoc(udg_dummyUnit, 852057, casesPosition[GetForLoopIndexA()])

_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 11/03/16 09:42    Sujet du message: Citer

J'ai mis du temps à répondre car j'ai eu très peu de temps pour reprendre Worldedit cette semaine.

Merci beaucoup rgf. Je vois maintenant beaucoup mieux comment m'y prendre.

J'ai toutefois encore un problème: la flétrissure change également le terrain autour d'elle en terre abîmée, qu'elle soit crée par déclencheur ou par compétence. Est-il possible d'éviter cela?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 BasuraHead
Ptit Nouveau


Inscrit le: 13 Fév 2016
Messages: 26
Sujets: 1
Spécialité en worldedit: Imaginer des choses que je n'implémenterais jamais


MessagePosté le: 11/03/16 17:33    Sujet du message: Citer

Je ne suis pas sur qu'utiliser la compétence du prêtre soit la bonne solution puisqu'elle ne restaure pas le terrain précédent mais le transforme en dirt. Cela dit, l'action Environment - Create/Remove Blight devrait fonctionner. Je ne sais pas bien pourquoi elle demande de choisir un joueur mais ça n'est probablement pas important. C'est peut-être afin de désigner un joueur en particulier comme source de l'action, étant donné que la flétrissure est un élément de gameplay avec lequel on peut interagir (création/destruction) et pas simplement une partie du tileset. Fais des tests si tu as le temps, ce sera sans doute le plus simple.

Pour ce qui est des arbres, dissipation fonctionne bien et il n'existe pas d'action analogue à celle disponible pour les tuiles. Il faut juste faire attention à bien restaurer le terrain par déclencheur afin de ne pas se retrouver avec de la dirt en dessous ensuite. Sinon la solution alternative serait de remplacer directement les arbres flétris par des arbres non flétris, mais je ne pense pas qu'une solution soit plus intéressante que l'autre étant donné que tu manipules déjà les tuiles.

Pour ce qui est de ton problème de tuiles adjacentes, je ne sais pas s'il y existe une solution simple étant donné que les mécaniques associées à la flétrissure ne sont pas modifiables directement. La solution qui découle logiquement du système de stockage de l'information du terrain c'est de stocker, au lancement de la compétence, l'information des cases adjacentes à la case flétrie et de les restaurer immédiatement après. Cela dit, il est bien possible que ça soit perceptible par le joueur (et donc un peu moche) mais ça vaut peut-être le coup de tester.

L'autre solution serait de ne pas utiliser flétrissure. En fait, tu pourrais remplacer la texture d'une tuile non utilisée de ton tileset par la texture de flétrissure et l'utiliser comme un terrain normal. Tu pourrais interragir très simplement avec chaque tuile en utilisant l'action Environment - Change Terrain Type in (Region) to (Type), ce qui devrait en toute logique épargner les cases adjacentes. Cela dit, tu devrais manuellement flétrir les arbres en les remplaçant. Tu perdrais également le bonus de régénération aux morts-vivants, ce que tu peux recréer toi-même mais qui demande du travail supplémentaire. Enfin, disparaitraient également les nuages verts qui apparaissent sur la flétrissure par endroits (ce qui n'est probablement pas une grande perte).

Cela étant dit, je me disais que tu allais peut-être avoir un problème dans certains cas: quand tu enregistres l'information d'une case, vérifie bien que tu ne l'as pas déjà enregistré précédemment. Sinon, si le terrain a déjà été flétri ou même modifié, tu enregistreras plusieurs fois la même tuiles et ce avec des informations erronées.
Cela dit, tu peux y palier très simplement en restaurant les tuiles dans l'ordre inverse du tableau car la première itération de l'enregistrement (la bonne) sera la dernière appliquée.
EDIT: C'est probablement la meilleure solution en fait. Tu ne stockes que peu d'information superflue et tu évites les vérifications systématiques qui ont un cout important. Tant que tu n'utilises pas les informations stockées pour autre chose c'est nickel.

A voir ce que rgf en pense, il saura sans doute mieux que moi te conseiller la solution la plus efficace.
_________________


Dernière édition par BasuraHead le 12/03/16 11:49; édité 2 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 11/03/16 19:33    Sujet du message: Citer

Merci pour ta réponse.

Ça devient vraiment compliqué pour pas grand chose sur la map, mais j'ai quand même envie de réussir.

En fait, le déclencheur qui met ou enlève la flétrissure ne fonctionne pas pour enlever la flétrissure posée par une compétence (crâne sacrificiel). Je vais donc voir comment je peux la placer autrement.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 BasuraHead
Ptit Nouveau


Inscrit le: 13 Fév 2016
Messages: 26
Sujets: 1
Spécialité en worldedit: Imaginer des choses que je n'implémenterais jamais


MessagePosté le: 12/03/16 11:41    Sujet du message: Citer

Tu peux la créer directement avec la même action, Environment - Create/Remove Blight.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Zaitan
Membre honoraire


Inscrit le: 16 Oct 2015
Messages: 205
Sujets: 15
Spécialité en worldedit: Soigner les petits détails


MessagePosté le: 12/03/16 14:34    Sujet du message: Citer

Oui c'est ce que je pense faire.

Je vous tiendrai au courant quand j'aurai avancé.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 rgf
Membre reconnu


Inscrit le: 09 Mar 2009
Messages: 1144
Sujets: 54
Spécialité en worldedit: Croâ ?


MessagePosté le: 12/03/16 19:56    Sujet du message: Citer

En testant j'ai eu l'impression que le terrain abîmé ne peut apparaître que sur un carré de côté 5 cases * 5 cases centré sur la case où la flétrissure est appliquée. Donc au lieu de ne stocker que la case où la flétrissure est appliquée tu peux stocker ces 25 cases (avec des For each Integer...).
_________________
Croâh ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2
Page 2 sur 2

 
Sauter vers:  
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


Powered by phpBB © 2001, 2005 phpBB Group
Traduction par : phpBB-fr.com