Worldedit
  Worldedit
Le site sur l'éditeur de warcraft 3 !
 
  FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres    Groupes d'utilisateursGroupes d'utilisateurs   medals.phpMé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

Vjass Struct : "this."

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


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 26/02/08 17:36    Sujet du message: Vjass Struct : "this." Citer

Bon me suis mit au Vjass , car j'avais besoin d'utilisé les structure.

Ma question est simple , quand ont utilise "this.<nom de se qu'on veut récupérer>" est-ce que cela va directement pointé vers une variable ou sa appellera une fonction ?

(pour savoir si se serai intéressent d'enregistrer la valeur dans une variable local ou non)

Edit: un problème que j'arrive pas a m'en débarrassé:

Dans une method je déclare la variable "eff" comme ceci précisément:
Jass:
        local array effect eff


Mais une fois compilé par JassHelper de newgenpack.
Il me dit qu'il y a une erreur de syntaxe , mais quand ont regarde la ligne par le compilateur ont ne voit pas "local array effect eff" mais uniquement "local array effect" , j'ai essayé de renommé la variable la deplacé dans la method etc , rien a faire. Confused
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2012
Sujets: 49

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

MessagePosté le: 26/02/08 19:18    Sujet du message: Citer

Une méthode ne peut pas avoir le même nom qu'une propriété dans une même classe.
donc tu peux avoir
Jass:
class maclasse
   integer unEntier = 1

   method uneMethode takes nothing return integer
      return 2
   endmethod

endclass

function test takes nothing returns nothing
   local maclasse laclasse = maclasse.create()
   call BJDebugMsg(I2S(laclasse.unEntier + laclasse.uneMethode()))
   laclasse.destroy()
endfunction


Si je ne me trompe ta variable se déclare ainsi
Jass:
local effect array eff

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Darkfeyt
Floodeur prématuré


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 26/02/08 20:45    Sujet du message: Citer

Citation:
Si je ne me trompe ta variable se déclare ainsi
Jass:
local effect array eff


Mon inexpérience en jass fait des sienne apparemment. Confused

Sinon pour le "this. <...>" soit ta pas compris se que je demandé , soit c'est moi.

Pour faire simple , je demande si lorsque l'ont met "this.<nom de variable a l'intérieur de la structure>" est-ce que en réalité sa exécutera une fonction , ou sa pointera directement vers la variable ?

Edit: Répondu par moi même en causant exprès une erreur du compilateur pour voir le code réellement généré.

Sa pointent directement sur une variable , lorsque l'ont fait this.<nom de variable> cela fait en réalité "s__<nom de la structure>_<nom de la variable>[this]".
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail 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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 26/02/08 21:01    Sujet du message: Citer

Ca pointe vers une variable ou bien une fonction.

Pour reprendre l'exemple d'Ayane
Jass:
class maclasse
   integer unEntier = 1

   method uneMethode takes nothing returns integer
      return this.unEntier
   endmethod

   method uneMethode2 takes nothing returns nothing
      call .uneMethode()
   endmethod


endclass

Note: tu peux remplacer le this. par un . unique Wink
_________________

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


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 26/02/08 21:45    Sujet du message: Citer

J'avais lu sur un tuto d'un autre site (je me rappelle lequel mais je sait pas si c'est réellement nécessaire de dire lequel c'est ) que il pouvait arrivé (pas si rarement que sa) que le "." ne marche pas.

Est-ce faux ? mdr


Edit: Après avoir relu ton message (Profet) , j'ai enfin compris se que vous essayé de m'expliqué , mais se n'était pas sa que je demandé , je demandé si lorsque l'ont demande une variable de la structure , cela pointent directement sur la variable ou cela doit passer par l'appel d'une fonction.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail 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: 26/02/08 22:08    Sujet du message: Citer

Darkfeyt a écrit:
J'avais lu sur un tuto d'un autre site (je me rappelle lequel mais je sait pas si c'est réellement nécessaire de dire lequel c'est ) que il pouvait arrivé (pas si rarement que sa) que le "." ne marche pas.

Est-ce faux ? mdr
Oui


Darkfeyt a écrit:
Edit: Après avoir relu ton message (Profet) , j'ai enfin compris se que vous essayé de m'expliqué , mais se n'était pas sa que je demandé , je demandé si lorsque l'ont demande une variable de la structure , cela pointent directement sur la variable ou cela doit passer par l'appel d'une fonction.
Variable.
Le this.mavariable est en fait remplacé dans le code jass généré par un truc du genre prefix_mavariable[this] avec this une variable entière passée automatiquement au parametre de ta méthode.
_________________

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


Inscrit le: 22 Nov 2007
Messages: 677
Sujets: 27
Spécialité en worldedit: Jamais sortir ses projets ?


MessagePosté le: 26/02/08 22:14    Sujet du message: Citer

Citation:
Le this.mavariable est en fait remplacé dans le code jass généré par un truc du genre prefix_mavariable[this] avec this une variable entière passée automatiquement au parametre de ta méthode.


Citation:
Edit: Répondu par moi même en causant exprès une erreur du compilateur pour voir le code réellement généré.

Sa pointent directement sur une variable , lorsque l'ont fait this.<nom de variable> cela fait en réalité "s__<nom de la structure>_<nom de la variable>[this]".

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Ayane
Bot administrateur


Inscrit le: 17 Sep 2007
Messages: 2012
Sujets: 49

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

MessagePosté le: 26/02/08 22:44    Sujet du message: Citer

J'ai cru que par fonction tu voulais désigner méthode, donc oui c'est un accès direct à une variable, ne t'inquiète pas Vexorian a bien pensé le système et il y en a eu plusieurs pour suggérer des optimisations. Comme il le dit dans le manuel, le vJass produit des noms de variables assez long qui ralentit un peu le chargement de la carte, pour y remédier tu peux utiliser wc3map optimizer qui renomme les variables afin de les faire plus court.

Sinon tu peux aussi extraire le war3map.j de la carte pour récupérer tout le code.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé 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: 27/02/08 15:28    Sujet du message: Citer

Pour le point unique ça venait de moi, je sais pas maintenant mais sur une ancienne version du vJass le point unique ne fonctionnait pas pour les interfaces.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur MSN Messenger
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
La question posée dans ce topic a été résolue !

 
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