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 ?
|
Posté le: 07/04/08 17:42 Sujet du message: AddRowedTextsToMultiboard |
|
|
Nom de la fonction : AddRowedTextsToMultiboard
Créateur : Darkfeyt
Fonctions requises : Aucune (création de variable global ?)
Code : Jass: | function AddRowedTextsToMultiboard takes multiboard mb , integer column , integer start , integer end , boolean clr_color returns real
local real width = 0
local real t_width
local integer i = start
local string s
if start > end then
return 0
endif
loop
set s = udg_mb_txt[i]
set t_width = StringLength(s)
if t_width > width then
set width = t_width
endif
if StringLength(udg_mb_color[i]) > 0 then
set s = "|c" + udg_mb_color[i] + s + "|r"
endif
call MultiboardSetItemValue(MultiboardGetItem(mb,i,column),s)
exitwhen(i == end)
set i = i + 1
endloop
set i = start
set width = width * 0.007
loop
call MultiboardSetItemWidth(MultiboardGetItem(mb,i,column),width)
exitwhen(i == end)
set i = i + 1
endloop
if clr_color then
set i = start
loop
set udg_mb_color[i] = null
exitwhen(i == end)
set i = i + 1
endloop
endif
return width
endfunction |
Utilisation : Gui: | Trigger: Actions |
Copyright : Libre
Remarques : Peut peut-être être amélioré ? Peut avoir un meilleur nom de fonction ?
Pour utilisé cette fonction il faut crée deux variable global , mb_txt et mb_color tout deux de type chaine à déploiement.(Car ont ne peut pas prendre des variable array comme argument)
Je trouve que c'est assez dur pour les utilisateur de gui de savoir se que cela fait etc , donc description:
Elle permet de crée des texte avec une taille aligné sur un multiboard. (C'est pas encore très explicite )
Argument (dans l'ordre) :
multiboard (le multiboard où la fonction va être appliqué)
entier (la colonne où va être appliqué la fonction)
entier (rangé de départ de la fonction)
entier (rangé de fin de la fonction)
booléen (les couleur sont-ils à null-ifier ? (pour evité qu'a la prochaine utilisation il y est des couleur inattendu ))
Et les deux variable global:
mb_txt ( texte qui sera afficher)
mb_color (le code hexadecimal de la couleur (avec alpha))
(note: pour mettre le texte S dans la rangé A , il faut qu'il y est la valeur S au deploiement A de la variable mb_txt (idem pour mb_color))
La fonction renvoie un réel ayant comme valeur , la taille mit au rangé. (sa peut toujours servir)
J'ai peut-être écris trop de commentaire ?
Map exemple _________________
Dernière édition par Darkfeyt le 12/04/08 19:40; édité 5 fois |
|
Revenir en haut |
|
|
Rommstein60 MODÉRATEUR À LA RETRAITE
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
|
|
Revenir en haut |
|
|
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
|
Revenir en haut |
|
|
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
|
Revenir en haut |
|
|
Rommstein60 MODÉRATEUR À LA RETRAITE
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
|
|
Revenir en haut |
|
|
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
Posté le: 09/04/08 15:51 Sujet du message: |
|
|
Rommstein60 a écrit: | Pour éviter le leak tu dois normalement mettre pour chaque variable, après utilisation, set variable = null/0 il me semble. |
Pas toutes c'est sur , je crois que c'est tout se qui est une structure un peu complexe , mais par exemple je suis pas sur pour les string si il faut null-ifier ou non.
Et ainsi que comment sa marche pour les takes de fonction. (si ils sont a null-ifier eux aussi ou non ou selon les cas.) _________________
|
|
Revenir en haut |
|
|
Rommstein60 MODÉRATEUR À LA RETRAITE
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
|
Posté le: 09/04/08 16:25 Sujet du message: |
|
|
Logiquement les strings prennent de la places s'ils ne sont pas remis à "null" vu que le string est un texte pur ^^ _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain » |
|
Revenir en haut |
|
|
Ayane Bot administrateur
Inscrit le: 17 Sep 2007 Messages: 2009 Sujets: 49
Médailles: 2 (En savoir plus...)
|
Posté le: 09/04/08 21:01 Sujet du message: |
|
|
Lorsqu'une chaîne de caractères est crée cela regarde dans une liste de chaînes de caractères si elle existe déjà et dans ce cas retourne un pointeur vers cette chaîne, sinon cela alloue de la mémoire pour sotquée la nouvelle chaîne et retourne un pointeur vers cette chaîne.
Il n'est pas possible de supprimer un élément de cette liste, si bien que toute nouvelle chaîne crée fuiera forcément. _________________
|
|
Revenir en haut |
|
|
Rommstein60 MODÉRATEUR À LA RETRAITE
Inscrit le: 23 Aoû 2007 Messages: 4766 Sujets: 136 Spécialité en worldedit: Keskesapeutfout' Médailles: 1 (En savoir plus...)
|
Posté le: 10/04/08 08:25 Sujet du message: |
|
|
Ben oui mais... Y'a pas tout les mots o_O
Je comprends pas très bien comment ça marche oO _________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain » |
|
Revenir en haut |
|
|
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
Posté le: 10/04/08 10:08 Sujet du message: |
|
|
A chaque valeur crée , ont vérifie qu'il n'y est pas déjà cette valeur , si il y a déjà cette valeur dans la liste , ont pointent la variable vers la valeur dans liste , sinon ont crée cette valeur dans la liste puis ont pointent la variable vers cette nouvelle valeur.
(Si j'ai bien compris) _________________
|
|
Revenir en haut |
|
|
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...)
|
Posté le: 11/04/08 18:57 Sujet du message: |
|
|
c'est bien beau de nullifier mais faut surtout détruire l'handle (l'objet) si on ne l'utilises plus ...
En gros tout ce qui est suceptible de créer des leaks est du type handle ou d'un type étendu de handle
ex unit extends widget
widget extends handle
si la variable va être réutilisée il n'est pas nécessaire de la nullifier (ex des varibales globales des structs).
Il n'est pas nécessaire de nullifier des variables dans les takes des fonctions _________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
Darkfeyt Floodeur prématuré
Inscrit le: 22 Nov 2007 Messages: 677 Sujets: 27 Spécialité en worldedit: Jamais sortir ses projets ?
|
Posté le: 11/04/08 23:36 Sujet du message: |
|
|
Ben c'est bon alors , non ? (Ou j'ai pas compris à où tu voulait en venir mdr) _________________
|
|
Revenir en haut |
|
|
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...)
|
Posté le: 12/04/08 03:23 Sujet du message: |
|
|
Rommstein60 a écrit: | Pour éviter le leak tu dois normalement mettre pour chaque variable, après utilisation, set variable = null/0 il me semble. J'ai appris ça y'a pas longtemps sur le fofo CBS : y'a pas que les points, les groupes unités qui leakent : /
Sinon j'ai testé, ça peut s'avérer assez utile
Nombreuses sont les Maps où l'on ne voit pas tout le nom des joueurs à cause de leur taille ^^ |
On doit nullifier une variable qu'après avoir détruit un objet et avant la finc de fonction, par exemple avec
Jass: | function A takes location loc1 returns nothing
local location loc2
set loc2 = Location( 10, 20 )
call DestroyLocation(loc2)
set loc2 = Location( 20, 20 )
call DestroyLocation(loc2)
call DestroyLocation(loc1)
set loc2 = null
endfunction
|
Je ne dois nullifier loc2 qu'avant la fin de la fonction (et non pas à chaque destruction de location).
Notez que, comme l'a dit troll je n'ai pas besoin de nullifier loc1 car elle à été déclarée dans la déclaration de la fonction
(en fait si on ne nullifie pas la variable, c'est la variable elle même qui leak ) _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
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...)
|
Posté le: 12/04/08 18:43 Sujet du message: |
|
|
Jass: | function LeakPa takes nothing returns nothing
local string s = "the same"
endfunction |
Jass: | function LeakPaMaiCaSerARien takes nothing returns nothing
local string s = "the same"
set s=null
endfunction |
_________________
Le violet, c'est moche. |
|
Revenir en haut |
|
|
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...)
|
Posté le: 12/04/08 19:38 Sujet du message: |
|
|
Oui, car comme on l'a déjà dit, les chaines de caractères ne "leak" pas.
Et le set de variable s=null ne sert à rien (même si c'était une variable de type handle) vu que tu ne détruis rien. _________________
Bêta Systems: 70%
Bêta Spells: 13%
Bêta Arts & graphics: 70% |
|
Revenir en haut |
|
|
|