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=ef1a8c97a2a7a1d9fb024ff3c1c4b487Mé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

AddRowedTextsToMultiboard

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


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


MessagePosté le: 07/04/08 17:42    Sujet du message: AddRowedTextsToMultiboard Citer

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
Set mb = (Last created multiboard)
Set mb_txt[0] = Joueur:
Set mb_txt[1] = (Name of Joueur 1 (Rouge))
Set mb_color[1] = FFFF0000
Set mb_txt[2] = (Name of Joueur 2 (Bleu))
Set mb_color[2] = FF0000FF
Set mb_txt[3] = (Name of Joueur 3 (Cyan))
Set mb_color[3] = FF7777FF
Set mb_txt[4] = (Name of Joueur 4 (Pourpre))
Set mb_color[4] = FF8000FF
Custom script:   call AddRowedTextsToMultiboard( udg_mb , 0 , 0 , 4 , true)

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 Confused )
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 ? Confused

Map exemple
_________________


Dernière édition par Darkfeyt le 12/04/08 19:40; édité 5 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 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...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 07/04/08 18:00    Sujet du message: Citer

Mhh ça a l'air bien réalisé mais est-ce-que tu pourrais tester une Map exemple? Smile
_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


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


MessagePosté le: 07/04/08 18:31    Sujet du message: Citer

J'ai un peu modifier la fonction du a des bug repéré lors de la création de la map test. Confused

(Elle est pas top la map test mais je pense que sa ira comme même)

Edit: Sinon j'ai oublié de précisé , les mauvaise couleur viennent pas de la fonction , c'est simplement color checker qui plante et moi qui arrive pas a rattrapé correctement derrière. mdr
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail 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: 08/04/08 21:09    Sujet du message: Citer

Personne de plus expérimente que moi pour me dire se qui va pas. Crying or Very sad
(C'est pas que je veut a tout pris qu'ont me dise que c'est nul , simplement que je pense qu'il y a forcement une chose qui en va pas)

Elle leak pas ? (Jamais eu de vrai information sur les leak donc elle leak peut-être sans que je sache Confused )
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 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...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 09/04/08 08:10    Sujet du message: Citer

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 Smile
Nombreuses sont les Maps où l'on ne voit pas tout le nom des joueurs à cause de leur taille ^^

_________________
Leçon n°1 du WorldEdit : « Le violet > Troll-Brain »
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


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


MessagePosté le: 09/04/08 15:51    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 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...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 09/04/08 16:25    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


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

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

MessagePosté le: 09/04/08 21:01    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 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...)
Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 10/04/08 08:25    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


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


MessagePosté le: 10/04/08 10:08    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 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: 11/04/08 18:57    Sujet du message: Citer

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
Voir le profil de l'utilisateur Envoyer un message privé
 Darkfeyt
Floodeur prématuré


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


MessagePosté le: 11/04/08 23:36    Sujet du message: Citer

Ben c'est bon alors , non ? (Ou j'ai pas compris à où tu voulait en venir mdr)
_________________
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: 12/04/08 03:23    Sujet du message: Citer

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 Smile
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 Wink
(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
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: 12/04/08 18:43    Sujet du message: Citer

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
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/04/08 19:38    Sujet du message: Citer

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
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
Page 1 sur 1

 
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