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=5b40c55fe2e3bf2cd6c15dcfc8cfacecMé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

Création de string local ?
Aller à la page 1, 2  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs
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: 17/04/08 11:10    Sujet du message: Création de string local ? Citer

Je me pose comme d'habitude des question de la vie de tout les jour des jass-eur et gui-eur. Laughing

Ma question est simple , donc j'espère que j'arriverai a bien l'expliquer.

Est-ce que la création de string (appel d'un string pas encore "répertorié") peut crée une désynchronisation si le string est différent selon les joueurs , et une utilisation ("basique") peut-elle crée la synchronisation ?

Petit exemple pour comprendre:
Jass:

function f takes nothing returns nothing
local string s
if(GetLocalPlayer() == Player(0))then
    set s = "1"
else
    set s = "0"
endif
set s = s + "a"  // desynchronise ?
call DisplayTextToForce(GetPlayersAll(),s// desynchronise ?
endfunction

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 metyknight
Membre honoraire


Inscrit le: 21 Aoû 2007
Messages: 214
Sujets: 6



MessagePosté le: 17/04/08 11:46    Sujet du message: Citer

Je voudrais pas te dire de bêtise mais je crois qu'il n y aura pas desynchro , car même si la chaine est différente d'un pc a l'autre ,warcraft vérifie uniquement si ya bien une chaine sur chaque pc , pas son contenue
_________________
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: 17/04/08 11:55    Sujet du message: Citer

Oui je pense aussi , mais si il y a des exception.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
 Brissou de Mourièssou
Créateur de sorts, depuis 1936.


Inscrit le: 30 Aoû 2007
Messages: 1511
Sujets: 26
Spécialité en worldedit: Développer des jeux vidéos pour le fun, donc world edit c'est comme faire une addition.
Médailles: 2 (En savoir plus...)
Créateur de héros (Quantité : 1) Concours de sorts amusants (Quantité : 1)

MessagePosté le: 17/04/08 15:56    Sujet du message: Citer

Pas de désynchro.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur 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: 17/04/08 16:09    Sujet du message: Citer

Ok.

Y'a t'il un moyen de déclaré des string différent pour chaque joueur ?

Car si ont les met dans un trigger il seront forcement déclaré , donc y'a t'il pas un moyen de déclaré des string different pour chaque joueur sans les former lettre par lettre ? mdr

J'imagine bien que c'est pas la mort 4-5 string de plus , mais se serai plutôt pour divisé par 3 le nombre de string déclaré sur surement environs 1000.

Donc j'imagine que l'effet sera comme même bénéfique.
_________________
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: 7146
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: 17/04/08 16:30    Sujet du message: Citer

pas trop compris où tu voulais en venir, mais tu peux tout à fait déclarer un seul string en local et tu changes sa valeur selon le localPlayer
_________________
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: 18/04/08 02:57    Sujet du message: Citer

Pas de désynchro, et peut importe si la chaine est ou non créée sue les ordinateurs des joueurs, ce ne sont pas des handle Wink

Darkfeyt a écrit:
Y'a t'il un moyen de déclaré des string différent pour chaque joueur ?
Oui, et c'est exactement ce que tu as fait dans ton premier exemple Wink

PS: utilises des elseif pour tes autres joueurs 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
 Darkfeyt
Floodeur prématuré


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


MessagePosté le: 18/04/08 16:49    Sujet du message: Citer

L'exemple n'était pas un cas voulue , simplement la chose la plus simple que j'ai trouvé comme exemple , se serai pour du multi-langue.

Ma deuxième question n'est pas sur se qui est de additionné les string , mais simplement avoir pas les string dans la liste des string déclaré.

Mais je me suis automatiquement dit que les triggerstring sont déclaré a l'initialisation , alors est-ce qu'il le sont ou non ?

Car sinon je voit pas comment déclaré des différent sans réalisé le string lettre par lettre. ( se qui est a mon avis assez long pour l'ordinateur a faire avec un grand nombre de string)

Alors je change de question (sauf si quelqu'un sait comment en déclaré des différent (dans une map multijoueur donc pas moyen de déclaré sa par gamecache dans une autre carte)):

Les triggerstring sont-ils déjà déclaré ou c'est uniquement lors de la première utilisation? (ou lecture de la fonction où elle est ?)
_________________
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: 7146
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: 18/04/08 22:03    Sujet du message: Citer

les trigger string sont déjà déclarés dans un fichier externe (me rappelle plus le nom mais avec winmpq tu trouveras rapidement).
Outre le fait avéré que ca rend le code illisible (impossible de deviner le string correspondant sans regarder le fichier contenant les strings, sauf si le trigger est en gui bien sûr), ils sont aussi plus lent à être utilisés et de plus pour chaque string ainsi créé en gui, même si on créé à chaque fois le même, on créé un nouvelle variable Cool.

Mais y'a quand même un intérêt (unique).
Justement pour plusieurs langages, il suffit juste de changer la valeur des strings dans le fichier, on ne doit pas retoucher le script de la map.

Toujours pas compris où tu voulais en venir, essaye de donner un exemple vraiment concret de ce que tu voudrais faire

Je voudrais faire une simple remarque de "performance".
comme GetLocalPlayer renvoie pour chaque pc une valeur différente, qui ne changera pas, autant utiliser une variable globale de type joueur et on lui donne la valeur GetLocalPlayer() à l'init de la map, puis on utilise cette variable.
Mais peut être que c'est inutile j'ai pas testé Very Happy
_________________
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: 19/04/08 08:13    Sujet du message: Citer

Je peut pas faire d'exemple réel étant donné que sa se voit pas vraiment dans le script...

Je vais comme même tenté: (j'ai pas de compilateur jass d'allumé donc si y'a des faute de syntaxe c'est normal)

Jass:

function f takes nothing returns nothing
local string s
if(GetLocalPlayer() == Player(1))then
      set s = "aa"
else
      set s = "bb"
endif
set s = "aa" // aa  sera déjà dans la liste des string pour les autre joueur que le joueur 1 ? (pas celle des triggerstring mais celle du jeu (je sait justement pas si les triggerstring sont déjà pris en compte en début de partie dans la liste des string))
set s = "bb" // bb sera déjà dans la liste des string pour le joueur 1 ?
endfunction


J'espère que vous comprendrez comme sa.

Sinon je pense pas passer par une variable global étant donnée que la fonction risque d'être utilisé a peine 4 fois en début de partie puis plus jamais.
_________________
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: 7146
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: 19/04/08 15:10    Sujet du message: Citer

on s'en fout de la liste des strings Wink
et les strings extérieurs sont définis au chargement de la map
_________________
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...)
Profet (Quantité : 1) Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 19/04/08 15:49    Sujet du message: Citer

Tout à fait, on s'en moque car comme je l'ai dit, les string ne sont pas des handles et ne provoquent pas de désynchro^^
Dans ton exemple, la chaine s aurait toujours la valeur "bb" donc il vaudrait mieux mettre tes deux set AVANT la condition.


Citation:
Mais y'a quand même un intérêt (unique).
Justement pour plusieurs langages, il suffit juste de changer la valeur des strings dans le fichier, on ne doit pas retoucher le script de la map.

Personnelement je ne vois cet intéret que d'un oeil très mauvais, sachant l'ENORME baisse de performance que provoque l'utilisation de ce fichier (énorme augmentation du temps de chargmement).
De plus stocke aussi des valeurs anciennes qui ne sont plus utilisées, ce qui augmente parfois sa taille conswéidérablement.
Il stocke aussi toutes les chaines des tooltips de sorts, objets... c'est pourquoi il est interessant de passer un coup d'optimizer pour mettre tout ça dans des .slk

Pour ton probleme de string dans ton code, je te conseille d'utiliser des constantes que tu mets dans un "déclencheur" vide, dans un bloc globals
Jass:
globals
    constant string MA_CHAINE_DE_CARACTERE_1 = "blabla"
    constant string MA_CHAINE_DE_CARACTERE_2 = "le worldedit say trop bien"
    constant string MA_CHAINE_DE_CARACTERE_3 = "jouez a Night of Kalimdor !"
endglobals


Toujours pas compris où tu voulais en venir, essaye de donner un exemple vraiment concret de ce que tu voudrais faire

Je voudrais faire une simple remarque de "performance".
comme GetLocalPlayer renvoie pour chaque pc une valeur différente, qui ne changera pas, autant utiliser une variable globale de type joueur et on lui donne la valeur GetLocalPlayer() à l'init de la map, puis on utilise cette variable.
Mais peut être que c'est inutile j'ai pas testé Very Happy
_________________

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


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


MessagePosté le: 20/04/08 17:34    Sujet du message: Citer

Profet a écrit:
Dans ton exemple, la chaine s aurait toujours la valeur "bb" donc il vaudrait mieux mettre tes deux set AVANT la condition.


C'est vraiment du pur exemple imaginé pour simplement indiqué quelque chose. (que je ne peut pas indiqué en les mettant avant)

Profet a écrit:
Toujours pas compris où tu voulais en venir, essaye de donner un exemple vraiment concret de ce que tu voudrais faire


Je voudrai faire que ma map soit multi-langue , mais étant donnée que se sera un rpg , il n'y aura pas 3 string dans la map , je demande donc si il y a un moyen de déclaré des string différent pour chaque joueur , mais les string dans les déclencheur sont t'il déjà charger a l'initialisation de la map , si oui comment empêché sa ?

Profet a écrit:
Troll-Brain a écrit:
Mais y'a quand même un intérêt (unique).
Justement pour plusieurs langages, il suffit juste de changer la valeur des strings dans le fichier, on ne doit pas retoucher le script de la map.
Personnelement je ne vois cet intéret que d'un oeil très mauvais, sachant l'ENORME baisse de performance que provoque l'utilisation de ce fichier (énorme augmentation du temps de chargmement).
De plus stocke aussi des valeurs anciennes qui ne sont plus utilisées, ce qui augmente parfois sa taille conswéidérablement.
Il stocke aussi toutes les chaines des tooltips de sorts, objets... c'est pourquoi il est interessant de passer un coup d'optimizer pour mettre tout ça dans des .slk


Envisageable pour un rpg tour par tour ?

(Sachant que j'avais prévu de crée une version du sort par langue , cette solution est-elle meilleur ? Rolling Eyes )

Profet a écrit:
Pour ton probleme de string dans ton code, je te conseille d'utiliser des constantes que tu mets dans un "déclencheur" vide, dans un bloc globals


J'ai jamais eu d'information (mise a part son existence) sur le statut de "constant" , qu'elle est la différence ?

Jass:
    constant string MA_CHAINE_DE_CARACTERE_3 = "jouez a Night of Kalimdor !"


Tu te sert de tes réponse comme pub ? Razz
_________________
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: 7146
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: 20/04/08 18:14    Sujet du message: Citer

'nerf ca fait trois fois que je copies le message et que je ne le copie pas + erreur interne Evil or Very Mad
Je vais donc poster à l'arrache.
tu fais autant de variables string array que de langues possibles + une variable globale stting array commune qui servira pour les affichages de texte.
selon le choix du joueur tu définis différemment la variable globale string array, et voilou.

reste le problème de l'éditeur d'objet, tu ne peux changer in game les strings
_________________
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: 20/04/08 18:43    Sujet du message: Citer

Cela ne risque en rien de ralentir le jeu d'avoir autant de string différent de déclaré ?

(Apparament je suis pas le seul a avoir les erreur interne du serveur en masse en se moment Confused )

(Petite astuce , "page précédente" garde en mémoire le texte que tu as écris (enfin en tout cas chez moi (firefox))
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Aide sur les déclencheurs Toutes les heures sont au format GMT + 1 Heure
Aller à la page 1, 2  Suivante
Page 1 sur 2

 
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