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=98ec3bc509c503624c21dbb8b41760e7Mé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

synchronisation entre ordre donné et ordre reçu
Aller à la page 1, 2, 3, 4  Suivante
 
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
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 13/11/07 19:42    Sujet du message: synchronisation entre ordre donné et ordre reçu Citer

Ceci est une réponse au sujet Refuser les ordres.

Gui:
Trigger:
OrdresRecus
Collapse Evénements
Unité - A unit Reçoit un ordre avec objet pour cible
Unité - A unit Reçoit un ordre avec point pour cible
Unité - A unit Reçoit un ordre sans cible
Conditions
Collapse Actions
Custom script:   local eventid e = GetTriggerEventId ()
Déclencheur - Turn off (This trigger)
Set HELICO = (Triggering unit)
Partie - Display to (All players) the text: run
Custom script:   set udg_POINTEUR_entier = H2I ( udg_HELICO )
Set POINTEUR_string = (String(POINTEUR_entier))
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
ORDRETRIGGER Egal à  TRUE
Collapse Alors - Actions
-------- l'unité a reçu un ordre par trigger, on stocke l'ordre --------
Partie - Display to (All players) the text: true
Custom script:   if e == EVENT_PLAYER_UNIT_ISSUED_TARGET_ORDER then
-------- l'ordre recu est du type objet pour cible --------
Set TYPEORDRE = Objet
Set OBJET = (Target item of issued order)
Set CIBLE = (Target unit of issued order)
Set DESTRUCTIBLE = (Target destructible of issued order)
Set s = (Name of OBJET)
Partie - Display to (All players) the text: target order
Partie - Display to (All players) the text: ((String((Length of s))) + s)
Set s = (Name of CIBLE)
Partie - Display to (All players) the text: ((String((Length of s))) + s)
Set s = (Name of DESTRUCTIBLE)
Partie - Display to (All players) the text: ((String((Length of s))) + s)
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
CIBLE Différent de Pas d'unité
Collapse Alors - Actions
Custom script:   set udg_POINTEUR_entier = H2I ( udg_CIBLE )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
DESTRUCTIBLE Différent de Pas destructible
Collapse Alors - Actions
Custom script:   set udg_POINTEUR_entier = H2I ( udg_DESTRUCTIBLE )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
OBJET Différent de Pas d'objet
Collapse Alors - Actions
Custom script:   set udg_POINTEUR_entier = H2I ( udg_OBJET )
Sinon - Actions
Cache du jeu - Store POINTEUR_entier as Objet of POINTEUR_string in CACHE
Custom script:   elseif e == EVENT_PLAYER_UNIT_ISSUED_POINT_ORDER then
Partie - Display to (All players) the text: point order
-------- l'ordre recu est du type point pour cible --------
Set TYPEORDRE = Point
Set POINT = (Target point of issued order)
Cache du jeu - Store (X of POINT) as X of POINTEUR_string in CACHE
Cache du jeu - Store (Y of POINT) as Y of POINTEUR_string in CACHE
Custom script:   call RemoveLocation ( udg_POINT )
Custom script:   else
-------- l'ordre recu est du type sans cible --------
Partie - Display to (All players) the text: sans cible
Set TYPEORDRE = Sans
Custom script:   endif
Cache du jeu - Store TYPEORDRE as TypeOrdrePC of POINTEUR_string in CACHE
Cache du jeu - Store (String((Issued order))) as OrdrePC of POINTEUR_string in CACHE
Collapse Sinon - Actions
-------- l'unité a reçu un ordre du joueur --------
Partie - Display to (All players) the text: false
-------- on arrête l'ordre donné par le joueur --------
Unité - Pause HELICO
Unité - Order HELICO to Arrêter
Unité - Reprendre HELICO
-------- on récupère l'ordre stocké --------
Set TYPEORDRE = (Load TypeOrdrePC of POINTEUR_string from CACHE)
Set ORDRE = (Load OrdrePC of POINTEUR_string from CACHE)
Partie - Display to (All players) the text: TYPEORDRE
Partie - Display to (All players) the text: ORDRE
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
TYPEORDRE Egal à  Objet
Collapse Alors - Actions
Set POINTEUR_entier = (Load Objet of POINTEUR_string from CACHE)
Custom script:   call IssueTargetOrder ( udg_HELICO , udg_ORDRE ,  I2W  ( udg_POINTEUR_entier ) )
Partie - Display to (All players) the text: type ordre = objet
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
TYPEORDRE Egal à  Point
Collapse Alors - Actions
Set X = (Load X of POINTEUR_string from CACHE)
Set Y = (Load Y of POINTEUR_string from CACHE)
Set POINT = (Point(X, Y))
Custom script:   call IssuePointOrder ( udg_HELICO , udg_ORDRE , udg_X , udg_Y )
Custom script:   call RemoveLocation ( udg_POINT )
Sinon - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
TYPEORDRE Egal à  Sans
Collapse Alors - Actions
Custom script:   call IssueImmediateOrder ( udg_HELICO , udg_ORDRE )
Sinon - Actions
Custom script:   call BJDebugMsg ( I2S ( GetUnitCurrentOrder (udg_HELICO) ) )
Wait 0.00 seconds
Custom script:   call BJDebugMsg ( I2S ( GetUnitCurrentOrder (udg_HELICO) ) )


Aprés de longues minutes laborieuses en gui j'ai à peu prés fini le système demandé par Kopaka
Le c.. de gui inverse les paramètres du cache, pour ... rien.
Des erreurs de majucules et des actions placés dans le sinon au lieu du alors.
Et bien sûr pas mal de rallongés pour utiliser au minimum le jass
Bref merci le gui, ca aurait été 10 fois plus rapide en jass Razz

Le but de la manoeuevre étant d'autoriser que les ordres donnés par pc, et si un joueur donne un ordre , redonner l'ordre du pc à l'unité.

Toutefois ce sytème n'est pas parfait.
Le wait à la fin est nécessaire car sinon l'ordre n'a pas le temps d'être éxécuté et ca me fait une jolie boucle infinie.
J'ai tout essayé même d'utiliser une variable boolenne pour éviter ce problème mais nada.
Evidemment au lieu du wait je peux utiliser un timer périodique de 0.00 qui s'arrête quand l'ordre courant == 0 .

Mais je voulais savoir si vous aviez une meilleure idée.
Une fonction TrigSynC.. peut être, ou encore c'est quoi cette fonction :
Jass:
native TriggerExecuteWait   takes trigger whichTrigger returns nothing


Je mets la map dans ce lien car je sais bien que vous n'aurez jamais le courage de le reproduire et je vous comprends Rolling Eyes


Ayane: Ajout du lien vers le sujet original.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kapoka
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 915
Sujets: 47
Spécialité en worldedit: Faire des maps avec 500 déclos en GUI alors que 2 en JASS suffisent
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 13/11/07 20:06    Sujet du message: Citer

Tu pouvais utiliser du jass ^^ en me disant ou modifier les trucs pour les autres cas mais bon, je vais déja tester ca Smile

EDIT : j'ai regardé ta map et ca ne fonctionne pas :/ l'unit n'obéis pas au 1er ordre et il y a un message et apres elle obéit noralement.

PS : ca ne provoqueras pas de leaks tout ce system?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1511
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Concours de sorts amusants (Quantité : 1) Créateur de héros (Quantité : 1)

MessagePosté le: 13/11/07 20:12    Sujet du message: Citer

Aaarrrgghhh j'ai les yeux qui saignent. xs
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
 kapoka
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 915
Sujets: 47
Spécialité en worldedit: Faire des maps avec 500 déclos en GUI alors que 2 en JASS suffisent
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 13/11/07 20:25    Sujet du message: Citer

Et il faut aussi faire de truc pour le erre. sachant qu'il y a plusieurs hélicos et qu'on en refait et qu'il y en a qui meurent
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 profet
Instanton Gravitationnel Singulier


Inscrit le: 21 Aoû 2007
Messages: 1633
Sujets: 53
Spécialité en worldedit: Pain d'épice multitâche (terrain, scripts, textures, modèles...)
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Profet (Quantité : 1)

MessagePosté le: 13/11/07 20:29    Sujet du message: Citer

Brissou de Mourièssou a écrit:
Aaarrrgghhh j'ai les yeux qui saignent. xs
Mdr

Toi aussi ? ^^


Mais ou est passé la belle coloration syntaxique ? Sad
_________________

Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70%
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 13/11/07 20:35    Sujet du message: Citer

@ Profet et bryce : Merci de votre participation.
Je sais trés bien que c'est pas optimisé, sinon j'aurais fait une struct hein.
Je voulais utiliser un minimum de jass.
De toute façon vous pouvez dl la map si vous avez peur d'user vos pauvres yeux. Razz

Mais j'ai du mal à comprendre pourquoi ca me fait une loop infinie.
un trigger off qui se relance oho Confused
enfin je crois que c'est à cause du décalage entre le moment où est donné l'ordre et ou l'event se produit

@ Kopaka : ce n'est pas fini et il n'y aura pas de leak
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kapoka
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 915
Sujets: 47
Spécialité en worldedit: Faire des maps avec 500 déclos en GUI alors que 2 en JASS suffisent
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 13/11/07 20:55    Sujet du message: Citer

En tout cas je te remerci de t'atarder pour ca ^^
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 13/11/07 21:28    Sujet du message: Citer

OMG même avec un compteur de période 0.00 c'est beaucoup trop lent, en mass cliquant (trés légèrement) on arrive à donner un ordre à l'unité.
Je vais tester en Vjass car je sais que les conversions de types sont assez longues.
tant de travail pour rien >.<
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kapoka
Membre a fort taux de post


Inscrit le: 21 Aoû 2007
Messages: 915
Sujets: 47
Spécialité en worldedit: Faire des maps avec 500 déclos en GUI alors que 2 en JASS suffisent
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 13/11/07 21:51    Sujet du message: Citer

Tu peux utiliser ce que tu veux :/ Je me rapele que quelq'un avaisfait un truc ou on voyait plus les icones mais l'unité errais et on pouvais pas la controller et pourtant elle m'aparetnait et tout ca en quelques lignes ><

Enfin gl a toi fait de la maniere ou tu pense que ca va marcher
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 13/11/07 21:53    Sujet du message: Citer

mais tu ne pouvais cliquer dessus ?
réponse : la compétence unité infestation 'Aloc'.
L'inconvénient de cette méthode c'est que l'unité ne peut plus être ciblée et n'a plus du tout de collision
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 13/11/07 22:08    Sujet du message: Citer

J'ai lu les 2 sujets mais j'espère ne pas avoir raté de train en route.
Voila l'idée la plus simple qui m'est venu a l'esprit :

Tu fais errer les helicopters constemment par déclencheur comme tu veux.
Lorsque le joueur selectionne un helicopter, tu lui fait selectionner une unité factice (tu peut coller l'unité sur l'hélicopter pour donner une bonne impression) qui possède des compétences. Lors de l'activation de ces compétences tu donnes l'ordres a l'hélicopter de faire le sort.
Tu fais l'unité factice sans possibilité de mouvement (tu la colles sur l'hélico par déclencheur en permanence par exemple).
Le joueur ne pourra jamais sélectionner ses helicopters pour les déplacer, mais il pourra par le biais de l'unité factice utiliser leur compétence.
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 13/11/07 22:10    Sujet du message: Citer

J'y avais pesné mais j'ai horreur de ce genre de bricolage surtout que ce n'est pas transparent une selection/deselection/selection
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Magus
Membre a fort taux de post


Inscrit le: 13 Oct 2007
Messages: 994
Sujets: 25
Spécialité en worldedit: Codeur


MessagePosté le: 13/11/07 22:14    Sujet du message: Citer

C'est loin d'être du "bricolage" si c'est bien fait :p
Pour la transparence avec le lag ou je ne sais quoi on verra peut être apparaitre un helico un petit moment avant de tomber sur l'unité factice c'est sur. Dans le pire des cas tu donnes la compétence infestation aux hélicos (plus besoin de les sélectionner de toutes façons, on peut lancer leur compétence autrement).

Le problème de la compétence infestation, c'est que les hélicopters ne pourront plus se faire attaquer (pour la taille de colision, si c'est une unité volante de toutes manières ils en ont déjà pas).
_________________
- La théorie c'est quand rien ne fonctionne mais tout le monde sait pourquoi.
- La pratique c'est quand tout fonctionne mais personne ne sait pourquoi.
- Chez moi la théorie et la pratique sont réunies, rien ne fonctionne et personne ne sait pourquoi.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Bantas
Anomalie floodiforme


Inscrit le: 21 Aoû 2007
Messages: 1524
Sujets: 37

Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 13/11/07 23:15    Sujet du message: Citer

Si les hélicos lui appartenaient, c'est qu'il pouvait les sélectionner Very Happy
Je pense qu'il parle d'une chose qui arrive aussi dans Paladin TD et une autre map qui a le principe d'une récré les clowneries en moins.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


Inscrit le: 23 Aoû 2007
Messages: 7146
Sujets: 147
Spécialité en worldedit: le troll, le flood, la vulgarité, mon coeur balance
Médailles: 2 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 14/11/07 10:30    Sujet du message: Citer

@ Master :
Troll-Brain a écrit:
mais tu ne pouvais cliquer dessus ?
réponse : la compétence unité infestation 'Aloc'.
L'inconvénient de cette méthode c'est que l'unité ne peut plus être ciblée et n'a plus du tout de collision


Il n'y a rien à redire c'est du bricolage et pui stou. Ce que j'entends par bricolage ce n'est pas tant la méthode que le résultat, étant donné les limites de l'éditeur on y souvent recours. Mais là on verra immanquablement les sélections/desélections

@ Bantas : T'as les liens de ces maps ?
Sinon je te mets une unité de ta couleur avec la compétence infestation , je gère les coups en or/bois/nourriture et c'est comme si elle t'appartenait Razz
_________________
Le violet, c'est moche.
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 1, 2, 3, 4  Suivante
Page 1 sur 4

 
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