Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 11/08/11 23:21 Sujet du message: Ordinateur qui clique sur un bouton de dialogue
Salut à tous,
J'aimerais (si c'est possible) faire en sorte que les Ordinateurs cliquent aléatoirement sur un bouton de dialogue.
En gros, j'ai fait un système de votes, j'aimerais juste que les Ordinateurs votent.
Voilà, merci _________________
tu ne peux pas obliger un ordinateur a cliquer dessus ( il me semble ), mais par contre tu peux créer un nombre aléatoire et en fonction du résultat, faire un effet que devait faire les boutons. Genre si un bouton devait créer une unité si il était cliqué, tu prend le nombre aléatoire, et si c'est celui la tu crée l'unité par trigger. _________________
Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 12/08/11 14:56 Sujet du message:
Tu aurais un exemple, s'il te plaît ?
En tout cas, c'est possible, j'ai déjà jouer à une map ou les ordinateurs votaient aléatoirement _________________
Par exemple : on demande aux joueurs de voter pour la difficulté :
Secret:
Gui:
Trigger:
init difficulte
Evénements
Temps - Elapsed game time is 1.00 seconds
Conditions
Actions
Dialogue - Change the title of ChoixDiff to Choix difficulté Dialogue - Create a dialog button for ChoixDiff labelled Facile Set Difficultes[1] = (Last created dialog Button) Dialogue - Create a dialog button for ChoixDiff labelled Moyen Set Difficultes[2] = (Last created dialog Button) Dialogue - Create a dialog button for ChoixDiff labelled Difficile Set Difficultes[3] = (Last created dialog Button)
For each (Integer A) from 1 to 12, do (Actions)
Boucle - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
((Player((Integer A))) slot status) Egal à Joue
Alors - Actions
Dialogue - Montrer ChoixDiff for (Player((Integer A)))
Sinon - Actions
Set Rand_Diff[(Integer A)] = (Random integer number between 1 and 3)
Compte à rebours - Start fin_diff as a Un coup timer that will expire in 10.00 seconds
ensuite on voit si un joueur clique sur un dialogue pour les 3 possibilités :
Secret:
Gui:
Trigger:
facile
Evénements
Dialogue - A dialog button is clicked for ChoixDiff
Conditions
(Clicked dialog button) Egal à Difficultes[1]
Actions
Set facile = (facile + 1)
Secret:
Gui:
Trigger:
moyen
Evénements
Dialogue - A dialog button is clicked for ChoixDiff
Conditions
(Clicked dialog button) Egal à Difficultes[2]
Actions
Set moyen = (moyen + 1)
Secret:
Gui:
Trigger:
difficile
Evénements
Dialogue - A dialog button is clicked for ChoixDiff
Conditions
(Clicked dialog button) Egal à Difficultes[3]
Actions
Set difficile = (difficile + 1)
et enfin on regarde quel vote a obtenu le plus de voix ( je n'ai pas fait cette partie tu peux la faire toi-même )
Secret:
Gui:
Trigger:
fin du vote
Evénements
Temps - fin_diff expires
Conditions
Actions
For each (Integer A) from 1 to 12, do (Actions)
Boucle - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
((Player((Integer A))) slot status) Différent de Joue
Alors - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Rand_Diff[(Integer A)] Egal à 1
Alors - Actions
Set facile = (facile + 1)
Sinon - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Rand_Diff[(Integer A)] Egal à 2
Alors - Actions
Set moyen = (moyen + 1)
Sinon - Actions
If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Si - Conditions
Rand_Diff[(Integer A)] Egal à 3
Alors - Actions
Set difficile = (difficile + 1)
Sinon - Actions
Sinon - Actions
En revanche regarde ce que j'ai fais : a l'init des votes, on regarde quel joueur est un ordi, et on crée un nombre aléatoire pour lui, et a la fin, on fonction encore de qui est ordinateur, on ajoute 1 de plus aux difficultés en fonction du nombre aléatoire. Je sais pas si tu m'as compris, mais regarde les triggers ils te parleront mieux que moi ^^. _________________
Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 12/08/11 20:43 Sujet du message:
Je viens de faire exactement ce que tu as fais, mais ayant lancé 3 fois la partie, il n'y a que moi qui vote :/
J'ai une variable Joueur a déploiement 10 (donc 10 joueurs) j'ai bien défini la variable mais je ne sais pas d'ou vient "l'entier A" dans le déploiement ?
Merci pour les réponses _________________
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Deja t'as pas besoin de mettre déploiement 10, déploiement 1 marche très bien ^^. Ensuite pour l'integer A, c'est dans la liste déroulante quand tu dois choisir l'index, vers le début : For loop integer A
( Après je n'ai pas testé mon ptit système mais je pense qu'il devrait marcher :p, et il manque des choses à la fin hein, c'est peut etre pour ca ^^ ) _________________
Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 13/08/11 00:43 Sujet du message:
J'ai sa dans mon trigger "fin du timer" (sachant que la difficulté change le pourcentage de la vie d'une unité)
Secret:
Gui:
Trigger:
Fin du timer Evénements Conditions
Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[1] Supérieur à Choix[2] Choix[1] Supérieur à Choix[3]
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) pendant 5.00 secondes le texte suivant : Difficulté choisie.... Unité - Régler la vie de enfantsperdus[1] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[2] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[3] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[4] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[5] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[6] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[7] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[8] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[9] à 100.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[10] à 100.00 % de sa vie maximale.
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[2] Supérieur à Choix[1] Choix[2] Supérieur à Choix[3]
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) pendant 5.00 secondes le texte suivant : Difficulté choisie.... Unité - Régler la vie de enfantsperdus[1] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[2] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[3] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[4] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[5] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[6] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[7] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[8] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[9] à 50.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[10] à 50.00 % de sa vie maximale.
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[3] Supérieur à Choix[1] Choix[3] Supérieur à Choix[2]
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) pendant 5.00 secondes le texte suivant : Difficulté choisie.... Unité - Régler la vie de enfantsperdus[1] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[2] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[3] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[4] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[5] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[6] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[7] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[8] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[9] à 10.00 % de sa vie maximale. Unité - Régler la vie de enfantsperdus[10] à 10.00 % de sa vie maximale.
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[3] Egal à Choix[1] (Choix[3] Supérieur à Choix[2]) ou (Choix[1] Supérieur à Choix[2])
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Egalité entre la d.... Déclencheur - Lancer le déclencheur Boite de dialogue <gen> (en ignorant les conditions)
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[3] Egal à Choix[2] (Choix[3] Supérieur à Choix[1]) ou (Choix[2] Supérieur à Choix[1])
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Egalité entre la d.... Déclencheur - Lancer le déclencheur Boite de dialogue <gen> (en ignorant les conditions)
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[2] Egal à Choix[1] (Choix[2] Supérieur à Choix[3]) ou (Choix[1] Supérieur à Choix[3])
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Egalité entre la d.... Déclencheur - Lancer le déclencheur Boite de dialogue <gen> (en ignorant les conditions)
Sinon - Actions
Ne rien faire
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Choix[2] Egal à Choix[1] Choix[2] Egal à Choix[3]
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : Egalité entre la d.... Déclencheur - Lancer le déclencheur Boite de dialogue <gen> (en ignorant les conditions)
Sinon - Actions
Ne rien faire
Pour chaque Entier A à partir de 1 jusqu'à 10, exécuter les actions de l'onglet Boucle - Actions.
Boucle - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
(Statut du slot du Joueur[(Entier A)]) Différent de Joue
Alors - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Rand_Diff[(Entier A)] Egal à 1
Alors - Actions
Définir Choix[1] = (Choix[1] + 1)
Sinon - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Rand_Diff[(Entier A)] Egal à 2
Alors - Actions
Définir Choix[2] = (Choix[2] + 2)
Sinon - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
Rand_Diff[(Entier A)] Egal à 3
Alors - Actions
Définir Choix[3] = (Choix[3] + 3)
Sinon - Actions
Sinon - Actions
Mon trigger "boite de dialogue" est pratiquement le même que le tien.
Je ne sais pas si c'est bon _________________
C'est pratiquement bon, faut juste mettre tes vérifications sur les ordis AVANT les vérifications pour connaitre le choix finale car sinon, les ordis ne sont pas comptabilisés. _________________
Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 13/08/11 16:11 Sujet du message:
Merci sa fonctionne ! Par contre, dernière petite chose, c'est possible de faire voir un texte avec le nom de l'ordinateur et la difficulté qu'il a "choisis" ?
J'avais mis sa lorsque quelqu'un vote pour le mode facile :
Secret:
Gui:
Trigger:
Facile
Evénements
Dialogue - Un bouton de dialogue est cliqué dans Vote_difficulte
Conditions
(Bouton de dialogue cliqué) Egal à Bouton[1]
Actions
Définir Choix[1] = (Choix[1] + 1) Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : ((Nom du (Joueur déclencheur))) + a voté |cff00ff00Facile|r).
Sa marche parfaitement, le problème c'est qu'on ne voit pas le texte lorsque c'est les ordinateurs qui votent. _________________
Dernière édition par floods62 le 13/08/11 16:23; édité 4 fois
Inscrit le: 11 Fév 2011 Messages: 2151 Sujets: 114 Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.
Posté le: 13/08/11 16:16 Sujet du message:
Je trouve ton système pas terrible.
Tu devrais faire plutôt une moyenne de réels. Et cette moyenne sera le % de vie des units. _________________
Pour le systeme, j'ai posté celui qu'on apprend dans le tutoriel de worldedit, apres c'est sur y'en a des différents Et pour ton message, tu mets un truc du genre avant tes vérifications du résultat ( j'ai pas l'editeur sous la main désolé ) :
For each integer a from 1 to 10
if player(integer A) == ordinateur
if Rand_Diff[integer A] == 1
then display the message : "(player[integer A]) a voté facile"
else if Rand_Diff[integer A] == 2
then display the message : "(player[integer A]) a voté moyen"
else if Rand_Diff[integer A] == 3
then display the message : "(player[integer A]) a voté difficile"
else
fin de loop
Enfin c'est brouillon l'essentiel c'est que tu comprennes ^^ _________________
Inscrit le: 08 Sep 2009 Messages: 237 Sujets: 41 Spécialité en worldedit: Demander de l'aide
Posté le: 13/08/11 17:04 Sujet du message:
Secret:
Gui:
Trigger:
Pour chaque Entier A à partir de 1 jusqu'à 10, exécuter les actions de l'onglet Boucle - Actions.
Boucle - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
(Contrôleur du Joueur[(Entier A)]) Egal à Ordinateur Rand_Diff[(Entier A)] Egal à 1
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : (((Nom du Joueur[(Entier A)])) + a voté |cff00ff00Facile|r). Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
(Contrôleur du Joueur[(Entier A)]) Egal à Ordinateur Rand_Diff[(Entier A)] Egal à 2
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : (((Nom du Joueur[(Entier A)])) + a voté |cffffff00Moyen|r).
Sinon - Actions
Si (conditions) sont vraies, alors exécuter (Actions) sinon (Actions)
Si - Conditions
(Contrôleur du Joueur[(Entier A)]) Egal à Ordinateur Rand_Diff[(Entier A)] Egal à 3
Alors - Actions
Partie - Afficher au (Groupe comprenant tous les joueurs) le texte suivant : (((Nom du Joueur[(Entier A)])) + a voté |cffff0000Difficile|r).
Sinon - Actions
Sinon - Actions
Voilà, j'ai fais ceci, le problème c'est que sa ne marche pas _________________
Toutes les heures sont au format GMT + 1 Heure Aller à la page 1, 2Suivante
Page 1 sur 2 La question posée dans ce topic a été résolue !
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