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...)
Posté le: 25/04/11 17:05 Sujet du message:
fulldragon a écrit:
bin t'es le premier qui se plaint de mon émoticone, et j'ai connu d'autre gens qui le faisait avant moi. d'autre l'on fait après moi.
Ça sera mon dernier mot à ce sujet (c'est juste un smiley après tout).
L'effet de masse n'a jamais été une justification valable.
Le fait de fermer les yeux pour rire exprime déjà un sourire relativement fort, rajouter un ")" n'a pas de sens, autre que de rajouter un smiley pour dire de rajouter un smiley, alors que l'on a déjà "xD".
Mais comme je l'ai dit je t’embêterais plus à ce sujet, je vais laisser mon côté connard prétentieux et manacio-dépressif de côté. _________________
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 25/04/11 19:20 Sujet du message:
Alors, au niveau du code j'ai constaté, sauf erreur de ma map, une erreur :
Dans la méthode "DestroyLeftItem", dans le else, tu changes le texte et déplaces un textTag qui n'existe pas.
Tu devrais remplacer "else" par "elseif s.tick < DISPLAY_TIME", et sauf argument valable de ta part, il n'y a pas lieu de déplacer le textTag étant donné qu'un objet au sol ne bouge pas.
Il n'est par ailleurs par nécessaire d'avoir un "else" général dans ce if, car quand s.tick est supérieur à DISPLAY_TIME il n'y a rien d'autre à faire que décrémenter le compteur.
C'est la seule erreur fonctionnelle que j'ai constaté.
Sinon je ne suis pas sûr qu'il veut que le compte à rebours se déclenche pour un item lâché par un joueur.
Au niveau façon de coder :
"call SetWidgetLife(s.ite,0.)" -> pourquoi ne pas plutôt mettre tout simplement "call RemoveItem(s.ite)" et "s.destroy" ?
J'ai mis trois plombes à comprendre cette partie :
Jass:
set this.trig = CreateTrigger()
call TriggerRegisterDeathEvent(this.trig,ite)
call TriggerAddCondition(this.trig,function thistype.PreventLeak)
Je me suis demandé où étaient les actions. Perso je n'utiliserai jamais les conditions en tant qu'action. Tu devrais au moins mettre en commentaires que c'est utilisé en tant qu'actions.
Pourquoi ne pas mettre le contenu de "DetectItemDestruction" directement dans "Drop" ?
Au niveau des noms :
TU -> TimerUtils (pourquoi compliquer la compréhension ?)
N -> nbTimersNonUtilises par exemple (un nom tel que celui-là m'aurait fait gagner beaucoup de temps)
T -> timersNonUtilises (idem)
key KEY -> je ne connais pas le type key, tu n'as pas donné de valeur, comment ça marche ?
s_data -> itemWrapper
tim -> deathTimer
trig -> trigItemDeath
tick -> pkoi pas plutôt remainingTime ? (beaucoup plus parlant à mon sens)
DestroyLeftItem -> je ne comprends pas le sens de ce nom ; j'appellerais plutôt ça "DecreaseLiveTime" par exemple
PreventLeak -> TrigDeath_Actions par exemple ; beaucoup plus parlant et avec la convention de nommage relative aux fonctions de triggers war3
Pickup -> Pickup_Actions
Drop -> Drop_Actions (à mon sens ça permet de comprendre immédiatement que ces fonctions sont relatives à des triggers
Mis à part tout ça je trouve que ça manque de commentaires fonctionnels (à quoi sert les différentes parties du code dans le jeu). _________________
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...)
Posté le: 25/04/11 20:44 Sujet du message:
Citation:
Certes, mais pour beaucoup c'est une justification valable, et même plus valable qu'une démonstration scientifique par exemple
La terre est plate.
Les épinards sont riche en fer.
Citation:
Ah ? Tu es maniaco-dépressif ?
Nan, simplement connard prétentieux
Max a écrit:
Alors, au niveau du code j'ai constaté, sauf erreur de ma map, une erreur :
Dans la méthode "DestroyLeftItem", dans le else, tu changes le texte et déplaces un textTag qui n'existe pas.
Citation:
Tu devrais remplacer "else" par "elseif s.tick < DISPLAY_TIME",
Erreur de ta part.
Y'a trois cas de figures :
1) On arrive au moment où il faut afficher le texttag
2) on arrive au moment où il faut détruire l'objet et accessoirement le texttag associé
3) le reste du temps où il faut changer la valeur du texttag.
A chaque expiration du timer le texttag existe forcément, sinon il aurait été interrompu avant.
Citation:
et sauf argument valable de ta part, il n'y a pas lieu de déplacer le textTag étant donné qu'un objet au sol ne bouge pas.
On peut toujours le déplacer par trigger, et comme c'est juste toutes les secondes je me suis dit autant anticiper ses besoins sans pénalité au niveau de l’exécution du script.
Citation:
Il n'est par ailleurs par nécessaire d'avoir un "else" général dans ce if, car quand s.tick est supérieur à DISPLAY_TIME il n'y a rien d'autre à faire que décrémenter le compteur.
C'est la seule erreur fonctionnelle que j'ai constaté.
Comme expliqué ce n'est pas une erreur.
Citation:
Sinon je ne suis pas sûr qu'il veut que le compte à rebours se déclenche pour un item lâché par un joueur.
Si il le veut, mais seulement pour les items qu'il a choisi (ou alors il n'a pas été assez précis)
Citation:
Au niveau façon de coder :
"call SetWidgetLife(s.ite,0.)" -> pourquoi ne pas plutôt mettre tout simplement "call RemoveItem(s.ite)" et "s.destroy" ?
Simple effet visuel, remove ne déclenchera pas l'animation de mort de l'objet.
Citation:
J'ai mis trois plombes à comprendre cette partie :
Jass:
set this.trig = CreateTrigger()
call TriggerRegisterDeathEvent(this.trig,ite)
call TriggerAddCondition(this.trig,function thistype.PreventLeak)
Je me suis demandé où étaient les actions. Perso je n'utiliserai jamais les conditions en tant qu'action. Tu devrais au moins mettre en commentaires que c'est utilisé en tant qu'actions.
A cause du leak d'une action de trigger quand tu détruits un trigger, TriggerClearActions ne faisant que désactiver les actions sans libérer la mémoire.
On peut bien sûr utiliser TriggerRemoveAction, mais cela nécessite de lier l'action au trigger.
Tandis qu'une condition de trigger ne leak pas quand on détruit le trigger, le code est aussi plus rapide dans une condition, mais ce n'est pas pour cela que j'ai utilisé une condition, juste parce que je créés des triggers dynamiques qui seront détruits plus tard.
Je n'ai pas mis de commentaire car c'est devenu un standard de coder dans des conditions de trigger plutôt que des actions, ça m'est simplement venu naturellement. (TriggerSleepAction étant assez peu utilisé à cause de ses caractéristiques merdiques, PolledWait n'est pas vraiment mieux non plus)
Citation:
Pourquoi ne pas mettre le contenu de "DetectItemDestruction" directement dans "Drop" ?
Parce que ça nécessite d'être lancé peu après que l'event drop se déclenche, sinon cela ne peut fonctionner.
C'est pas à toi que je vais apprendre qu'un Timer de période 0 n'est pas instantané, isn't it
Citation:
Au niveau des noms :
TU -> TimerUtils (pourquoi compliquer la compréhension ?)
Bah au cas où Vexorian se décide à fixer la version blue xD
Citation:
N -> nbTimersNonUtilises par exemple (un nom tel que celui-là m'aurait fait gagner beaucoup de temps)
It's not going to happen, ever.
Horrible le nom à rallonge ...
Citation:
T -> timersNonUtilises (idem)
(idem)
Citation:
key KEY -> je ne connais pas le type key, tu n'as pas donné de valeur, comment ça marche ?
Une key est juste une constant integer dont tu ne choisis pas la valeur, chaque key est unique, la première commence à 1, et ca s'incrémente.
Citation:
s_data -> itemWrapper
Nan rien à faire j'aime bien ce nom
Citation:
tim -> deathTimer
En même temps y'a que 2 types de timers utilisés, mais pourquoi pas
Citation:
trig -> trigItemDeath
pourquoi pas
Citation:
tick -> pkoi pas plutôt remainingTime ? (beaucoup plus parlant à mon sens)
Bah tick c'est tick o_O
Citation:
DestroyLeftItem -> je ne comprends pas le sens de ce nom ; j'appellerais plutôt ça "DecreaseLiveTime" par exemple
Ouai j'avoue, j'ai oublié de changer le nom (à la base y'avait pas d'affichage de texttag, juste un timer non périodique qui détruisait l'objet au temps impartit)
Citation:
PreventLeak -> TrigDeath_Actions par exemple ; beaucoup plus parlant et avec la convention de nommage relative aux fonctions de triggers war3
Parce que le but est d'éviter les leak, et tu m'excusera pas mais les conventions de nommage en jass suck, encore plus quand c'est du GUI.
Citation:
Pickup -> Pickup_Actions
Drop -> Drop_Actions (à mon sens ça permet de comprendre immédiatement que ces fonctions sont relatives à des triggers
Mouai. Je ne vois pas trop ou c'est dur à comprendre que ça se déclenche respectivement à ces 2 event.
Citation:
Mis à part tout ça je trouve que ça manque de commentaires fonctionnels (à quoi sert les différentes parties du code dans le jeu).
J'aime pas vraiment les commentaires c'est vrai, je ne commente que les choses que je risque de ne plus comprendre de suite en relisant le code quelques mois plus tard. _________________
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 25/04/11 22:06 Sujet du message:
"tick c'est tick"
-> perso jamais vu ce mot dans quelque programme que ce soit
TB a écrit:
Y'a trois cas de figures :
1) On arrive au moment où il faut afficher le texttag
2) on arrive au moment où il faut détruire l'objet et accessoirement le texttag associé
3) le reste du temps où il faut changer la valeur du texttag.
Ben non j'suis désolé, ya un quatrième cas. Pour un temps supérieur au temps maximum d'affichage du temps, il n'existe pas de texttag. Or dans ton cas ça entre dans le "else", tu dis de faire des actions sur un texttag qui n'existe pas. Me trompe-je ?
Je ne vois pas en quoi "nbTimersNonUtilises" et "timersNonUtilises" sont des noms à rallonge. Pour moi ce sont des noms clairs et compris tout de suite. "T" et "N" nécessitent d'être décryptés.
"En même temps y'a que 2 types de timers utilisés"
C'est-à-dire ? Ici je n'en vois qu'un.
"Bah au cas où Vexorian se décide à fixer la version blue xD"
Je ne sais pas ce qu'est une version "blue" ni ce que Vexorian vient faire là-dedans. Si c'est lui qui a fait ce code, rien n'empêche de le rendre plus propre. _________________
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...)
Posté le: 25/04/11 22:26 Sujet du message:
Max a écrit:
"tick c'est tick"
-> perso jamais vu ce mot dans quelque programme que ce soit
Même pas dans peter pan ?
Citation:
Ben non j'suis désolé, ya un quatrième cas. Pour un temps supérieur au temps maximum d'affichage du temps, il n'existe pas de texttag. Or dans ton cas ça entre dans le "else", tu dis de faire des actions sur un texttag qui n'existe pas. Me trompe-je ?
Ah ouai c'est vrai, faut croire que c'est safe en tout cas :p
Citation:
Je ne vois pas en quoi "nbTimersNonUtilises" et "timersNonUtilises" sont des noms à rallonge. Pour moi ce sont des noms clairs et compris tout de suite. "T" et "N" nécessitent d'être décryptés.
Clair d'accord mais long tout de même.
Je suis d'accord que "T" idéalement devrait être changé mais j'ai déjà parlé à propos de "N", et puis la library TU n'est essentiellement qu'une stack de timer.
Citation:
"En même temps y'a que 2 types de timers utilisés"
C'est-à-dire ? Ici je n'en vois qu'un.
Le timer qui gère l'affichage et la destruction de l'objet + Le timer à période == 0 au moment de l'event "drop"
Citation:
Je ne sais pas ce qu'est une version "blue" ni ce que Vexorian vient faire là-dedans. Si c'est lui qui a fait ce code, rien n'empêche de le rendre plus propre.
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 25/04/11 22:37 Sujet du message:
"Même pas dans peter pan ?"
J'connais "tick tack" mais c'est tout. :O
"Ah ouai c'est vrai, faut croire que c'est safe en tout cas :p"
If j'me trompe-je pas, c'est initialisé automatiquement à null, donc ya juste du code à <grossièreté> qui sert à rien (j'en profite pour une fois que tu fais une erreur).
N est tout de suite mieux compris si on renomme T.
Même si ya qu'un timer je trouve utile de dire à quoi il sert (dans le nom). _________________
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...)
Posté le: 25/04/11 22:58 Sujet du message:
Max a écrit:
J'connais "tick tack" mais c'est tout. :O
Hmm, j'ai peut être rêvé que c'était courant à utiliser, je trouves cela cool comme nom, même si la coolitude (gogo académie française) n'a rien à faire dans un script xD
Ici c'est juste un "hasard" que le timeout du timer == 1s, dans une autre application ça pourrait très bien être 0.1 s ou moins.
Citation:
If j'me trompe-je pas, c'est initialisé automatiquement à null, donc ya juste du code à <grossièreté> qui sert à rien (j'en profite pour une fois que tu fais une erreur).
Oué, mais même si c'était une simple variable (globale ou locale) non array non initialisée ça provoquerait le crash du thread, mais comme c'est le dernier if ça ne serait pas non plus perceptible par l'utilisateur.
Quelque part dû à la limite interne des 100 texttags simultanés c'est assez logique que la vm du jass ne crash pas en cas de texttag non valide.
D'autant plus que si on cherche à dépasser cette limite (volontairement ou non) un autre ancien texttag est supprimé pour que le nouveau puisse être affiché (pas testé si c'est du pseudo random ou pas random du tout).
En général les fonctions du jass sont safe à utiliser avec des arguments non valides.
Cela dit je ne suis pas en train de dire que c'est bien ce que j'ai fait, juste que c'est sans risque, ce qui m'a d'ailleurs empêché de voir mon erreur de conception.
Citation:
N est tout de suite mieux compris si on renomme T.
Ouai Ouai je sais, mais encore une fois le code est super light (ouai c'est bien de prendre de bonnes habitudes).
Citation:
Même si ya qu'un timer je trouve utile de dire à quoi il sert (dans le nom).
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 26/04/11 16:49 Sujet du message:
Citation:
D'autant plus que si on cherche à dépasser cette limite (volontairement ou non) un autre ancien texttag est supprimé pour que le nouveau puisse être affiché (pas testé si c'est du pseudo random ou pas random du tout).
Random ça m'étonnerait fort. Ya toujours une logique bien précise en programmation. A mon avis c'est le plus ancien des texttags qui est remplacé.
Citation:
Ouai Ouai je sais, mais encore une fois le code est super light (ouai c'est bien de prendre de bonnes habitudes).
Tout est relatif. Pour les autres personnes que nous deux ici, je pense que la majorité trouverait ça très long et compliqué. _________________
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...)
Posté le: 27/04/11 16:29 Sujet du message:
Max a écrit:
Random ça m'étonnerait fort. Ya toujours une logique bien précise en programmation. A mon avis c'est le plus ancien des texttags qui est remplacé.
C'est pour cela que j'ai précisé "pseudo random", ca pourrait très bien être une caractéristique moins évidente, tel que l'id du texttag, j'ai juste dit cela parce que j'ai pas cherché à déterminer l'ordre de destruction.
Citation:
Tout est relatif. Pour les autres personnes que nous deux ici, je pense que la majorité trouverait ça très long et compliqué.
Pour la library ItemKiller je veux bien mais pas pour TU, celle qui était directement incriminée (ou à la limite compliquée, mais longue faut pas pousser mémé dans les orties non plus) _________________
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 27/04/11 18:14 Sujet du message:
Le random n'existe jamais en programmation. Pour simuler du random, on fait du pseudo random. Je pense donc ici que ce n'est ni du random, ni du pseudo random :O.
TU me fait ch-ier avec ses noms si peu intuitifs :O. _________________
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...)
Posté le: 27/04/11 18:17 Sujet du message:
Nan mais c'est quoi cette manie de me reprendre, ca devient même une habitude nanméoh.
Ok j'ai pas employé le bon terme, cela dit je me suis aussi expliqué.
Sinon ravi de faciliter ton transit intestinal _________________
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...)
Posté le: 27/04/11 18:51 Sujet du message:
Nan mais en fait le pire c'est que je sais ce que c'est le "pseudo random", et que le vrai random n'existe pas en informatique (sauf dans les ordinateurs quantiques, mais je ne crois pas que ça se vend à auchan, pas la peine de me reprendre là dessus c'est un pur troll et je ne maîtrise pas le sujet, enfin sauf si tu veux te faire plaisir cela dit), j'ai justé buggé dans mon pré-précédent message.
J'émets toujours l'hypothèse que cela puisse être du pseudo random (très très improbable mais on parle bien du jass alors why not). _________________
Inscrit le: 13 Jan 2009 Messages: 550 Sujets: 47 Spécialité en worldedit: La partie déclencheurs sauf le GUI.
Posté le: 27/04/11 19:20 Sujet du message:
TB a écrit:
Nan mais en fait le pire c'est que je sais ce que c'est le "pseudo random", et que le vrai random n'existe pas en informatique (sauf dans les ordinateurs quantiques, mais je ne crois pas que ça se vend à auchan, pas la peine de me reprendre là dessus c'est un pur troll et je ne maîtrise pas le sujet, enfin sauf si tu veux te faire plaisir cela dit), j'ai justé buggé dans mon pré-précédent message.
Si on part là-dessus, je pourrais également dire que le pire est que je savais que tu savais ce qu'était le pseudo random .
Par ailleurs c'est gentil de me permettre de me faire plaisir en répondant à des sujets qui n'ont plus rien à voir avec celui de départ. Je pense que tu as raison et que les ordinateurs quantiques ne se vendent pas à auchan ; cela dit je ne m'avance pas trop à ce sujet non plus puisque je ne sais pas ce qu'est un ordinateur quantique. Mais ça doit avoir un rapport avec "code quantum" je pense.
TB a écrit:
J'émets toujours l'hypothèse que cela puisse être du pseudo random (très très improbable mais on parle bien du jass alors why not).
xD
Pour moi le jass est un langage de programmation à part entière, même si on en a constaté pas mal de bogues zarbi. Je n'ai rien vu d'illogique dans le jass. _________________
Toutes les heures sont au format GMT + 1 Heure Aller à la page Précédente1, 2, 3, 4, 5, 6Suivante
Page 5 sur 6
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