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=974300c9e435441449227f3c122773a7Mé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

au rythme des marées
Aller à la page Précédente  1, 2, 3, 4  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Présentation de vos cartes
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 Helheim
Ptit Nouveau


Inscrit le: 03 Fév 2013
Messages: 37
Sujets: 7



MessagePosté le: 21/02/13 22:50    Sujet du message: Citer

Je ne pense pas en avoir besoin. En ce qui concerne les variations du niveau d'eau, tout fonctionne parfaitement.

Bon, j'ai trouvé une solution pour les arbres.

Par contre, je rencontre un autre problème que j'ai avec d'autres déclencheurs.

Le problème c'est que j'utilise beaucoup de déclencheurs extrèmement lourds pour certains et ça ralenti considérablement le PC : J'ai mon ordi qui rame sévère lorsque j'essaie ma map, le jeu est hyper saccadé... je voudrais savoir si c'est mon PC qui n'a pas assez de mémoire et que ça tournerait mieux sur un autre PC (m'étonnerait quand même, j'ai un 16 Go), où si je sature vraiment la mémoire et dans ce cas, comment je fais pour alléger les déclencheurs ?
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Farentir
Membre actif


Inscrit le: 05 Nov 2009
Messages: 186
Sujets: 10



MessagePosté le: 22/02/13 11:53    Sujet du message: Citer

Si ce n'est déjà fait, regarde les tutos sur le leak, si tu utilises des variables points régulièrement ça peut aider un peu je pense.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Vladadamm
Floodozaurus


Inscrit le: 11 Fév 2011
Messages: 2151
Sujets: 114
Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.


MessagePosté le: 22/02/13 13:01    Sujet du message: Citer

Helheim a écrit:
Je ne pense pas en avoir besoin. En ce qui concerne les variations du niveau d'eau, tout fonctionne parfaitement.

Bon, j'ai trouvé une solution pour les arbres.

Par contre, je rencontre un autre problème que j'ai avec d'autres déclencheurs.

Le problème c'est que j'utilise beaucoup de déclencheurs extrèmement lourds pour certains et ça ralenti considérablement le PC : J'ai mon ordi qui rame sévère lorsque j'essaie ma map, le jeu est hyper saccadé... je voudrais savoir si c'est mon PC qui n'a pas assez de mémoire et que ça tournerait mieux sur un autre PC (m'étonnerait quand même, j'ai un 16 Go), où si je sature vraiment la mémoire et dans ce cas, comment je fais pour alléger les déclencheurs ?

La mémoire vive n'est qu'une partie de ton PC, y a aussi la carte graphique, le disque dur, le processeur, etc... qui te permettent de jouer à warcraft 3. Avoir 16go de mémoire vive sur un vieux Pentium et sans carte graphiques (chipset quoi) te permettra pas forcément de jouer sans lags ^^'.

Perso, je pense que ça vient pas que du leak. Le leak en lui-même est un problème très mineur, surtout avec 16go de ram, même si il peut être un problème majeur en cas d'abus pour des PC n'ayant pas beaucoup de ram (je parle de PC ayant 1go de ram quoi)
Je verrais plutôt des trucs du genre Boucles super longues et assez grosses en action, masses d'effets spéciaux ou d'unité, ou autres du genre.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Helheim
Ptit Nouveau


Inscrit le: 03 Fév 2013
Messages: 37
Sujets: 7



MessagePosté le: 09/03/13 02:37    Sujet du message: Citer

Re...

Comme j'arrive à faire disparaître et réaparaitre les arbres, les péons sont perdus au moment de la récolte. Du coup, j'ai imaginé un déclencheur qui leur permettrait de toujours récolter le bon arbre.

Le seul souci, c'est que ce déclencheur fait crasher l'ordinateur et je ne comprends pas pourquoi. Quand je sélectionne un péon et que je lui ordonne de récolter un arbre, le jeu se ferme purement et simplement.

(note : harvest = récolter)

Secret:

Gui:
Trigger:
Déclencheur sans titre 001
Collapse Evénements
Unité - A unit Reçoit un ordre avec objet pour cible
Collapse Conditions
(Issued order) Egal à  (Order(harvest))
Collapse Actions
Set unite[1] = (Ordered unit)
Set arbre = (Target destructible of issued order)
Collapse For each (Integer compteur_boucle) from 1 to 2, do (Actions)
Collapse Boucle - Actions
Collapse If (All Conditions are True) then do (Then Actions) else do (Else Actions)
Collapse Si - Conditions
(Current order of unite[1]) Egal à  (Order(harvest))
Collapse Alors - Actions
Set compteur_boucle = 1
-------- si l'ordre actuel de l'unité est de récolter, alors le compteur de la boucle est remis à  1 pour forcer la boucle à  s'éxécuter à  l'infini. --------
Unité - Order unite[1] to Récolter (Random destructible in (Region centered at (Position of arbre) with size (100.00, 100.00)))
-------- L'unité reçoit sans arrêt l'ordre de récolter un destructible aléatoire dans une région qui est centrée sur la position de l'arbre sus-cité et qui n'est censée contenir QUE cet arbre là  (Il faudra ajuster la taille de la région en fonction) --------
Collapse Sinon - Actions
Set compteur_boucle = 3
-------- Si l'ordre actuel n'est plus de récolter (c'est à  dire si on donne un autre ordre au péon), on met le compteur à  3 pour forcer le programme à  sortir de la boucle (car elle ne va que de 1 à  2) --------


En fait, ce que je veux faire ici, c'est une boucle while. Mais la boucle while semble ne pas exister ici...
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ectelion
Membre reconnu


Inscrit le: 12 Nov 2011
Messages: 1062
Sujets: 107
Spécialité en worldedit: Inactif(Enfin presque)
Médailles: 1 (En savoir plus...)
Créateur d'unité (Quantité : 1)

MessagePosté le: 09/03/13 10:01    Sujet du message: Citer

Je comprends pas pourquoi tu fais une boucle, l'ordre harvest est répété tant que l'arbre n'est pas détruit. Ensuite je comprends pas pourquoi l'unité doit récolter un arbre aléatoirement proche de celui ciblé.
_________________
Inactif(Enfn presque)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Helheim
Ptit Nouveau


Inscrit le: 03 Fév 2013
Messages: 37
Sujets: 7



MessagePosté le: 23/06/13 11:19    Sujet du message: Citer

Bonjour. Je suis de retour parce que je continue de buter sur les déclencheurs de ma carte.

J'ai laissé tomber mon problème avec les arbres, je n'y arrive vraiment pas.

Par contre, là, j'ai un autre souci. Sur ma carte, j'ai programmé des marées et j'ai besoin de rendre le terrain empruntable quand il est découvert par l'eau. Pour ça, j'ai utilisé des régions, que j'ai nommé suivant une nomenclature bien spécifique.

Le problème, c'est que j'ai un bon millier de région à traiter. J'ai eu l'idée de les mettre dans une variable indexée.

Le soucis, c'est qu'il faut les mettre dans la variable indexée et je n'ai pour l'instant pas trouvé d'autre solution que de le faire manuellement. La commande de base que j'ai trouvé en JASS est la suivante :

Jass:
function Trig_D__clencheur_sans_titre_001_Copier_Actions takes nothing returns nothing
    set udg_Terasse_sup[1] = gg_rct_Plage_Ile_principale_P_1
    set udg_Terasse_sup[2] = gg_rct_Plage_Ile_principale_P_2
    etc...
endfunction

//===========================================================================
function InitTrig_D__clencheur_sans_titre_001_Copier takes nothing returns nothing
    set gg_trg_D__clencheur_sans_titre_001_Copier = CreateTrigger(  )
    call TriggerAddAction( gg_trg_D__clencheur_sans_titre_001_Copier, function Trig_D__clencheur_sans_titre_001_Copier_Actions )
endfunction


avec udg_Terasse_sup[X] la variable indexée et Plage_Ile_principale_P_X le nom systématique des régions que j'ai placé.

Donc ma question est : sachant que j'ai mis un nom systématique à mes régions, y a-t-il un moyen d'assigner automatiquement avec une boucle toutes ces régions dans ma variable indexée ou est ce que je suis obligé de tout faire manuellement ?

J'ai essayé la commande suivante, mais ça n'a pas marché :
Jass:
function Trig_D__clencheur_sans_titre_001_Actions takes nothing returns nothing
    set udg_Terasse_sup[1] = ( "gg_rct_Plage_Ile_principale_P_" + I2S(1) )
endfunction

_________________
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...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 23/06/13 13:36    Sujet du message: Citer

Tu peux créer une petit programme pour générer le code correspondant.
Il aurait peut être été plus simple de générer les régions de manière systématique.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Helheim
Ptit Nouveau


Inscrit le: 03 Fév 2013
Messages: 37
Sujets: 7



MessagePosté le: 23/06/13 19:10    Sujet du message: Citer

Oui, sauf que je commence tout juste à utiliser le JASS et c'est un outil que je maîtrise très mal. Donc je m'y connais vraiment très peu au niveau des fonctions utilisables et de la syntaxe et je tâtonne beaucoup.

Je veux bien le créer, ce programme, mais justement, c'est ma question ? A quoi il ressemblerait ce programme ?
_________________
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...)
Ayane (Quantité : 1) Rédacteur de tuto #1 (Quantité : 1)

MessagePosté le: 23/06/13 20:00    Sujet du message: Citer

Code:
<?php
for ($i = 0; $i < 1000; ++$i)
    echo '    set udg_Terasse_sup[' . $i . '] = gg_rct_Plage_Ile_principale_P_' . $i . ' )' . PHP_EOL;
?>

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Helheim
Ptit Nouveau


Inscrit le: 03 Fév 2013
Messages: 37
Sujets: 7



MessagePosté le: 23/06/13 22:31    Sujet du message: Citer

Merci. Mais en syntaxe JASS, qu'est ce que ça donne ? J'ai essayé ça, mais ça ne marche pas :

Jass:
    loop
        exitwhen udg_Compteur > udg_fin
        set udg_Terrasse_sup_petites[udg_Compteur] = ( "gg_rct_Plage_Ile_principale_P_" + I2S(udg_compteur) )
        set udg_Compteur = udg_Compteur + 1
    endloop


Je n'ai jamais fait de JASS, je débute à peine. J'ai lu les tutos, je comprends ce que fait le code que tu proposes, mais comme je ne connais quasiment pas la syntaxe JASS, je ne vois pas comment l'écrire correctement dans ce langage.

Edit : j'ai une question qui n'a rien à voir. Je sais ce que sont les variables à déploiement, mais je n'ai pas compris à quoi sert la taille du déploiement. J'utilise 1 par défaut quand je dois en utiliser, mais je n'ai jamais constaté de différence que j'utilise 1 ou autre chose.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Vladadamm
Floodozaurus


Inscrit le: 11 Fév 2011
Messages: 2151
Sujets: 114
Spécialité en worldedit: Chasser le Dragon, puis l'exterminer proprement avec une petite cuillère et une poêle.


MessagePosté le: 24/06/13 13:20    Sujet du message: Citer

Tu ne peut pas faire de programmes en JASS (dans le sens où t'exécutes un fichier et ça fais le truc). Il faut le faire en un autre langage (c, java, etc...).
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 kungfu-sheep
Anomalie floodiforme


Inscrit le: 14 Avr 2011
Messages: 1846
Sujets: 119
Spécialité en worldedit: fonctions paramétriques, équation de mouvement.


MessagePosté le: 24/06/13 15:04    Sujet du message: Citer

le C++ c'est le mieux !
_________________
22:27:43<Seiraw> Bah y a deux genre de personnes
22:27:57<Seiraw> les soumis et les soumises
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 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: 24/06/13 17:14    Sujet du message: Citer

Il n'est pas possible de faire une telle boucle en jass, mais tu peux générer le code jass nécessaire avec un langage quelconque puis copier/coller le code dans l'éditeur, c'est ce que fait le code d'Ayane en php.
Mais je pense que tu dois pouvoir trouver un petit logiciel créé pour ce genre de chose sur hiveworkshop.com

La taille du déploiement sert a donner une valeur aux différents index de ton tableau (la valeur que tu définis).
Oui, par tableau je veux dire "variable à déploiement".
Si je me souviens bien ça définit les valeurs de 0 à "la taille du déploiement".

Un tableau commençant à 0 et pouvant aller jusqu'à 8191. Et tu n'as pas à te soucier de la taille de ton tableau, c'est dynamique et géré par le jass automatiquement selon les index utilisés.
De la façon dont sont initialisés les index il est inutile d'aller au delà de 8191 pour la taille, étant donné que l'index max est 8191.
Un bug jamais fixé du jass (et donc forcément du GUI), utiliser l'index 8191 d'un tableau empêchera de charger une partie sauvegardée (wc3 crashera avec un message d'erreur)
D'ailleurs il vaut mieux éviter d'utiliser de gros tableaux, car le jass à une limite de nombre d'opérations consécutives (couramment appelé limit op).
Une fois cette limite atteinte, le code jass suivant n'est tout simplement plus interprété.
Tu peux facilement le savoir si tu l’atteins avec la taille et/ou trop de tableaux, aucun déclencheur ne sera créé, tout se passera comme si ta map n'avait aucun déclencheur.

La particularité d'un tableau en jass, par rapport à une variable "classique" c'est que même si tu n'as jamais utilisé un index il y aura toujours la valeur par défaut lorsque tu l'utiliseras, selon le type de ton tableau (entier -> 0 , booléen -> false, etc).
C'est pour cela que définir une taille de tableau est bien souvent superflu.
Enfin dans l'absolu il y a bien cette différence entre une variable tableau et une "non tableau", mais en GUI pas vraiment, car une valeur par défaut est toujours attribuée.

Mais pour utiliser des "objets" il faut que ceux ci aient été créés auparavant, par ex un tableau de compteur, il faut que le compteur ait été créé avant de l'utiliser, et donc il faut définir correctement la taille de ton tableau.
Cela dit rien ne t'empêche de créer ton compteur puis de le "ranger" dans ton tableau même si tu n'avais pas définit la taille de ton tableau, même en GUI il me semble que c'est possible. (je veux dire créer un compteur en cours de jeu)

fulldragon a écrit:
le C++ c'est le mieux !


Rolling Eyes
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 super_mouton
Floodozaurus


Inscrit le: 21 Aoû 2007
Messages: 2072
Sujets: 51
Spécialité en worldedit: Harceller vos maps de critiques !! ';..;'
Médailles: 1 (En savoir plus...)
Rédacteur de tuto #3 (Quantité : 1)

MessagePosté le: 24/06/13 20:48    Sujet du message: Citer

HS : Fortran c'est mieux Smile ! (=>[])
_________________
Dessine moi un Bizzardbizzare ! Very Happy
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail
 Ayane
Bot administrateur


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

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

MessagePosté le: 25/06/13 09:41    Sujet du message: Citer

En C:
Code:
#include <stdio.h>

int main(int argc, char *argv[]) {
    int i;
    for (i = 0; i < 1000; i += 1) {
        printf("    set udg_Terasse_sup[%i] = gg_rct_Plage_Ile_principale_P_%i )\n", i, i);
    }
    return 0;
}

Tu as juste à mettre cela dans un fichier gen.c et à le compiler avec gcc ou msvc.

Ce que tu voulais faire avec le Jass n'est pas possible, c'est un langage assez basique, c'est par contre possible dans certains langages scripts tel que le PHP (voir variables dynamiques).

En tout cas si tu n'as jamais fait de programmation avant sache que tu es doué; la plupart des gens décrètent que c'est trop compliqué ou essayent d'appliquer des logiques étranges.

En Jass on pourrait générer le texte en messages mais cela pose des problèmes pour le récupérer, on pourrait aussi utiliser le bogue sur la génération de fichier pour le preloader; bref c'est plus simple d'utiliser un autre langage pour générer le texte.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Présentation de vos cartes Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4  Suivante
Page 2 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