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=8326f451354832e6d30298643c2aad7dMé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] FW SimpleDialogs
Aller à la page Précédente  1, 2, 3, 4  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Fonction Jass
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 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: 26/05/09 20:31    Sujet du message: Citer

profet a écrit:
Les entiers sont plus utiles (et tu peux facilement les convertir en joueurs avec Player(id) tandis qu'un GetPlayerId() est bien plus long) car ils servent également d'index pour les variables array.

You are a speed freak man, aren't you ?

Sérieusement je trouves que cela rend beaucoup moins intuitif quelque chose censé simplifier la vie.
Et tu me permettras de loler sur la performance ainsi perdue.

Maintenant il se peut que j'ai loupé une utilisation concrète ou un entier serait plus utile, dans ce cas je ne doutes pas que tu combleras cette lacune dés que faire ce peut.
Reste la solution alternative de doubler tes méthodes :p (ok ok c'est plus une mauvaise plaisanterie qu'une idée concrète)
_________________
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: 26/05/09 21:14    Sujet du message: Citer

Troll-Brain a écrit:
Reste la solution alternative de doubler tes méthodes :p (ok ok c'est plus une mauvaise plaisanterie qu'une idée concrète)

En effet, c'est une très mauvaise blague ^^

Troll-Brain a écrit:
Sérieusement je trouves que cela rend beaucoup moins intuitif quelque chose censé simplifier la vie.
Et tu me permettras de loler sur la performance ainsi perdue.

Ce n'est pas tant sur la performance, car en effet cela doit être assez minime.
Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code:
set var[id] = ...
... Player(id)

que
Code:
set var[GetPlayerId(player)] = ...
... player

_________________

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: 26/05/09 21:24    Sujet du message: Citer

profet a écrit:
En effet, c'est une très mauvaise blague ^^

A votre service.

profet a écrit:
Ce n'est pas tant sur la performance, car en effet cela doit être assez minime.
Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code:
set var[id] = ...
... Player(id)

que
Code:
set var[GetPlayerId(player)] = ...
... player

Donc cela te simplifie la vie, certes, mais c'est parce que tu n'as pas une variable array de type player se nommant tout simplement P dans ta librairie principale, ca me fait donc plutôt ch... ceci.

D'autant plus que quasiment toutes les possibilités du jass (struct,function interface, etc) utilisent en fait des entiers.
Cela permet de voir au premier coup d'œil qu'il s'agit d'un joueur, chose fréquemment utilisé dans une map ^^

Si jamais la question te brule les lèvres, non ce n'est pas du flood à proprement parler, c'est vraiment ce que je pense.

EDIT : Mouai cela reste quand même un beau HS Rolling Eyes
Faut vraiment que je relise avant de poster ...
Mais j'ai une autre idée en tête que je développerais demain.
_________________
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: 26/05/09 21:53    Sujet du message: Citer

Oui c'est un choix purement arbitraire, mais comme je l'ai dit je trouve que le cast d'un Entier en Joueur est bien plus élégant que l'inverse, ce qui a définitivement décidé mon choix actuel Wink

Quelle est donc cette idée?
_________________

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: 27/05/09 20:36    Sujet du message: Citer

profet a écrit:
Quelle est donc cette idée?

Très indirectement lié avec ton code.
Comme tu veux garder les entiers, et que j'apprécierais de pouvoir utiliser des joueurs pour les raisons que j'ai déjà évoqués, j'ai une solution pour avoir l'id d'un joueur de façon assez sexy :

Jass:
struct id //wrapper dommage que "id" devrait être un nom asez utilisé, mais je n'ai pas de meilleur nom en tête

    static method operator [] takes player p returns integer
        debug if p == null then
        debug   return -1
        debug   call BJDebugMsg("le player p est null, on retourne l'index -1")
        debug endif
        return GetPlayerId(p)
    endmethod
   
endstruct

function Test takes player joueur returns nothing
    call BJDebugMsg(I2S(joueur:id)) // colon ":" + method operator "[]" for the win
endfunction

_________________
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: 28/05/09 01:29    Sujet du message: Citer

Mouai, je sais que tu adules cet opérateur, mais c'est vraiment une solution très très ugly pour un problème qui n'existe pas :/
Mais bon, act as u like.
_________________

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

MessagePosté le: 28/05/09 20:15    Sujet du message: Citer

profet a écrit:
Mouai, je sais que tu adules cet opérateur, mais c'est vraiment une solution très très ugly pour un problème qui n'existe pas :/
Mais bon, act as u like.


Pourquoi très ugly, c'est inliné ...
T'as juste quelques variables et fonctions déclarés inutilement, vraiment pas la mer à boire.
Si tu t'en soucies vraiment, dans ce cas go placer tes librairies dans le header (script perso) de la map, pour éviter la déclaration de globales triggers inutiles ...

Pour moi c'est "vraiment" un problème ces entiers à la place de joueur, et si jamais je devais utiliser ton script je l'éditerais sans aucun scrupule.

Maintenant il est inutile que nous développions plus, nous avons parfaitement exposé nos points de vues, contentons nous de camper sur nos positions, as usual.
_________________
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: 28/05/09 21:03    Sujet du message: Citer

Je t'ai exposé les raisons (purement arbitraires) de mon choix, et je ne pense pas camper "bêtement" sur mes positions.

En effet je n'ai pas une variable Player "P", mais j'ai une multitude de variable array contenant divers types de données, dont les index correspondent aux joueurs, comme peut être d'autres gens.

Comme la vie est faite de choix, j'ai donc fait le mien en connaissance de cause à ce moment donné, et je suis (sincèrement) contrit si tu n'y trouves pas ton bonheur :/


Concernant ton dernier bout de code, je trouve ça "ugly" non pas à cause de l'opérateur, mais plutot à cause du fait de devoir utiliser un wrapper pour une chose aussi "simple".
Ca dénature tout simplement mon concept de codage "clean".
_________________

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: 28/05/09 21:12    Sujet du message: Citer

C'est cela le gros problème avec les codes que l'on partage, chacun code à sa sauce, et la tienne et la mienne semblent toujours aux antipodes l'une de l'autre Razz
_________________
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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 28/05/09 21:19    Sujet du message: Citer

Ce n'est pas vraiment si différent ici, et comme tu l'as dit, c'est facilement modifiable pour utiliser une variable de type joueur (on pourrait presque faire une textmacro pour regénérer tout le code tiens!)

J'essaie de coder générique, mais avoue que tu chipotes sur ce problème là Razz
Car c'est très loin d'être aussi important que toutes les considérations devant être prises en compte pour rendre un système réellement flexible.
_________________

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

Sinon j'ai un peu réfléchi, c'est pas si ugly que ça, mais je trouve ça pas très utile dans ce cas là.

Enfin moins utile que combiné à une table par exemple, où un TABLE.exists(unite) est vraiment crade, et peut etre joliment remplacé par un unite:hasTable Smile
_________________

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: 29/05/09 21:20    Sujet du message: Citer

C'est sûr que l'utilité, c'est simplement d'avoir un code plus sexy à taper, avec un debug intégré en prime.
Je tachais de répondre à ceci :

profet a écrit:

Mais j'utilise fréquemment mes joueurs en associations avec des vecteurs, et je préfère 1000 fois lire un :
Code:
set var[id] = ...
... Player(id)

que
Code:
set var[GetPlayerId(player)] = ...
... player


Comme je l'ai déjà dit je préfère utiliser un player dans ce cas, car ca saute tout de suite plus vite aux yeux, étant donné que pas mal de vJass "features" renvoient / utilisent des entiers.
Et je n'imagine pas de cas concret où je n'utiliserais pas directement un player.

profet a écrit:
J'essaie de coder générique, mais avoue que tu chipotes sur ce problème là Razz
Car c'est très loin d'être aussi important que toutes les considérations devant être prises en compte pour rendre un système réellement flexible.

Un système, le code interne l'utilisateur s'en fout un peu, du moment qu'il n'est pas trop crade, l'utilisation prime sur tout, osef total que le concepteur du système a un peu plus "galéré" à le concevoir.
Et comme je l'ai déjà expliqué pour moi c'est mieux un player.
Mais je ne suis qu'un pauvre mortel qui peut se fourvoyer Rolling Eyes
_________________
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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 30/05/09 00:12    Sujet du message: Citer

Troll-Brain a écrit:
Mais je ne suis qu'un pauvre mortel qui peut se fourvoyer Rolling Eyes
C'est sur que la différence est de mise 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
 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: 06/06/09 18:13    Sujet du message: Citer

C'est pas inliné zofète, je croyais que les methods qui ne sont que des fonctions avaient eu le même égard que celles ci.
Mais visiblement non, ce qui rend donc cette utilisation comme je l'ai fait assez ugly.

Le code final ressemble à une bonne vielle BJ de derrière les fagots Razz
_________________
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: 06/06/09 20:25    Sujet du message: Citer

Bin j'ai fait quelques tests, certains trucs avec : sont quand même inlinés, mais peut etre pas ce code là (j'ai pas testé).

Par contre il semblerait que l'inlining ait changé de place dans le preprocessing, il est maintenant passé apres la vérification de la syntaxe.

Avant je rajoutais sur la ligne suivante un caractère à la con (genre un z) et je sauvegardais, et je pouvais vérifier si la ligne d'avant était bien inlinée.
Mais maintenant il faut regarder le .j de la map après la sauvegarde.
_________________

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
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Fonction Jass Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4  Suivante
Page 3 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