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=0342b0af1344cab7cbf3644665cc982dMé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

Impossibilité de nullifier une variable

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
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: 12/03/09 20:59    Sujet du message: Impossibilité de nullifier une variable Citer

Prenons un exemple :
Jass:
function NewImmobileMonster takes integer id, real x, real y, real angle returns unit

    local unit monster = CreateUnit( Player( 11 ), id, x, y, angle )
    call SetUnitColor( monster, ConvertPlayerColor( 12 ) )
   
    return monster
   
endfunction


Il est impossible de nullifier "monster" puisque c'est la valeur qu'on retourne.

Il y a une solution toute bête à laquelle j'ai mis du temps avant de penser. Utiliser une variable globale :

Jass:
library Monsters

globals
    private unit monster
endglobals

function NewImmobileMonster takes integer id, real x, real y, real angle returns unit

    set monster = CreateUnit( Player( 11 ), id, x, y, angle )
    call SetUnitColor( monster, ConvertPlayerColor( 12 ) )
   
    return monster
   
endfunction

endlibrary

Il devient inutile de nullifier "monster", car à chaque nouveau monstre créé, le pointeur est écrasé.
_________________
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: 12/03/09 21:48    Sujet du message: Citer

En effet, mais d'aprés ce que j'ai compris il n'est pas forcément nécessaire de nullifier les variables locales, quand on détruit l'objet référencé, du moment que l'on garde la trace dans une variable ou que la dernière variable (locale ou globale) pointant dessus a été nullifié.

Evidemment l'utilisation d'une globale est trés pratique car à chaque utilisation sa valeur sera écrasé, et donc pas de leak.
_________________
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: 12/03/09 22:21    Sujet du message: Citer

Si j'ai bien compris, le problème se situe dans le fait que l'objet n'est pas totalement détruit si au moins une variable pointe toujours dessus.
_________________
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é
 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: 12/03/09 23:47    Sujet du message: Citer

Tu n'as pas à te soucier de nullifier ta variable, tant que tu n'utilises pas de RemoveUnit dans ta fonction :>
_________________

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: 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: 14/03/09 17:29    Sujet du message: Citer

profet a écrit:
Tu n'as pas à te soucier de nullifier ta variable, tant que tu n'utilises pas de RemoveUnit dans ta fonction :>

Alors là je suis très très dubitatif, quand war3 recycle une unité (end of decay), il recycle aussi la dernière variable qui pointait dessus sans avoir besoin de la nullifier ??!!
As tu testé ou est ce théorique ?
D'ailleurs c'est quoi le rapport avec RemoveUnit, c'est sensé recycler l'unité aussi j'ose espérer ...

Si incompréhension il y a, je donnerais un ex concret.
_________________
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 -> Autre 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