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=34d40b53a76a3e2466d8fa0d15172e0dMé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

un peu de vJass

 
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
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/10 12:58    Sujet du message: un peu de vJass Citer

Un petit truc que je ne pige pas en vJass :

La création d'une structure dans une fonction (local <structure> <nomStructure> = ...) ainsi que l'appel de méthodes de cette structure, ne semblent pas nécessiter que la déclaration de la structure soit faite avant la déclaration de la fonction (contrairement à un appel de fonction, nécessitant que la fonction ait été définie plus haut dans le code).

J'aimerais donc savoir pourquoi. Merci.


Autrement, un problème se pose à moi : je dispose d'une variable globale de type structure. Si la structure pointée par ma variable est détruite (via la méthode destroy), comment puis-je savoir ensuite que ma variable pointe vers une structure détruite ?
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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...)
Grand mage créateur de sort (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 22/07/10 16:26    Sujet du message: Citer

Faudrait regarder le script généré mais je crois que tout simplement les struct allocator sont placés en haut du script.

Pour ton problème de destruction tu peux définir une method destroy/onDestroy et set un booléen, et gérer aussi ce booléen dans ta method create.
Mais logiquement si ton code est bien pensé tu devrais savoir quand c'est détruit.
Tu peux poster le code ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/10 16:54    Sujet du message: Citer

J'avais justement pensé au booléen.

Il est un peu compliqué pour moi de poster le code (de plus, uniquement des bouts de mon code ne seraient pas simples à comprendre). Je vais essayer de l'expliquer plutôt :

J'ai une structure "Monstre" qui contient :
une unité, un type d'unité, les coordonnées des points de patrouille, la vitesse de l'unité, etc.

J'ai une autre structure destinée à créer des instances de "Monstre", nommée "MakeMonstre". Cette structure contient entre autres un tableau de "Monstre". Une méthode de cette structure permet de supprimer les instances de "Monstre" présentes dans le tableau.

Or, j'ai une autre structure nommée "MonstreArray" destiné à contenir tous les monstres créés (dans un tableau également). Lorsque je crée une nouvelle instance de "Monstre" via la structure "MakeMonstre", elle stocke l'instance à la fois dans le tableau de "MakeMonstre" et celui de "MonstreArray".

Le tableau de "MakeMonstre" a pour unique utilité de permettre d'annuler la création d'un monstre, ou de la refaire si elle a été annulée.


Une autre solution que l'utilisation d'un booléen serait, à la suppression de l'instance de "Monstre" via la méthode de "MakeMonstre", de trouver l'instance dans le tableau de "MonstreArray" et de mettre celle-ci à 0. Mais pour cela il faudrait parcourir tout le tableau, ce qui n'est pas terrible.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 22/07/10 17:08    Sujet du message: Citer

Je suggère simplement l'utilisation de groups et lier la custom value de l'unité "monstre" à l'instance de la struct.
Dans ce cas il n'est plus nécessaire de créer/détruire des instances mais cela nécessite un système d'indexation.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/10 18:12    Sujet du message: Citer

J'ai effectivement lié la custom value de l'unité à l'instance de la struct. Mais je ne vois pas pourquoi il ne serait plus nécessaire de créer/détruire des instances.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 22/07/10 18:19    Sujet du message: Citer

Max a écrit:
J'ai effectivement lié la custom value de l'unité à l'instance de la struct. Mais je ne vois pas pourquoi il ne serait plus nécessaire de créer/détruire des instances.

Bah si tu utilises un indexer, chaque unité à une custom value unique, et donc techniquement tu ne dois pas créer/détruire une instance pour l'associer.
Après si vraiment tu as beaucoup d'unités tu peux te soucier du "destroy", mettre à zéro les variables toussa toussa.

Suis je clair ou confus ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 22/07/10 18:49    Sujet du message: Citer

Non je ne comprends pas bien.

Je crois que c'est parce qu'il y a une chose que je ne t'ai pas dite : je pourrais me contenter de créer le monstre pendant le jeu (l'unité) et ne pas stocker toutes les informations associées telle que les coordonnées, le type de l'unité, la vitesse... Mais l'intérêt de ceci est de sauvegarder toutes les informations de tous les monstres créés pour pouvoir par la suite stocker toutes ces informations dans le gamecache et de les rebalancer dans la map sous forme de code jass (vJass). (--> mise en pratique de mon idée de créer la carte pendant le jeu)


Pour revenir à nos moutons, j'ai trouvé une autre solution. Je rajoute le champ "arrayId" à mon "Monstre" et dans la méthode onDestroy de cette structure, je mets à null (0) l'élément en question du tableau.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Troll-Brain
Ri1kamoua


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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 22/07/10 19:53    Sujet du message: Citer

Bouah j'ai la flemme de mieux expliquer, dsl.

Sinon je vois pas en quoi est ce une autre solution , t'utilises un integer au lieu d'un booléen.
Dans un autre langage que le jass ce devrait même être pire, mais comme en jass un booléen est codé sur autant de bit qu'un integer, ca n'a pas grande importance.
'fin c'est quand même plus logique d'utiliser un booléen.
_________________
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
Page 1 sur 1

 
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