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

Comment faire un escape ?
Aller à la page Précédente  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Suivante
 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 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: 18/01/09 01:41    Sujet du message: Citer

Maximaxou a écrit:
Oups on dirait bien que l'imbrication des balises quote est impossible.

@TrollBrain : j'ai bien compris ta solution, mais je ne suis pas sûr qu'elle soit plus efficace.

Troll-Brain a écrit:
En gros il semblerait qu'utiliser TriggerRegisterTimerEvent est une sacré usine à gaz pour de faibles périodiques, si à chaque expiration du délai un nouveau "trigger" est créé/détruit...


Hm je ne vois pas pourquoi un nouveau déclencheur serait créé...

Concernant le JNGP ça m'a l'air bien puissant ^^.

@Troll-Brain : sinon pour mon problème de gamecache tu n'aurais pas une idée ?


Comme tu vois l'imbrication de quote est possible c'est juste que ":" =/= "=".

Et moi je crois bien que si.
Le commentaire je ne l'ai pas inventé, c'est made in blizzard, et de toute façon un timer c'est plus flexible alors ...
Par contre je ne suis pas certain de savoir de quoi ils veulent parler par "trigger", c'est pourquoi je l'ai mis entre crochets.

Le gamecache ne peut être utilisé en multi joueur pour sauvegarde, end of story.
Attend Starcraft2.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Wéééé
Membre honoraire


Inscrit le: 06 Déc 2008
Messages: 218
Sujets: 18
Spécialité en worldedit: Sait cou-wa leuh weaurld et dites ? :hap:


MessagePosté le: 18/01/09 10:30    Sujet du message: Citer

raa je comprend rien a votre jass!
Jass:

machin_bidule_unit_set_variables et tout le tralala :O

_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Envoyer l'e-mail Visiter le site web du posteur MSN Messenger
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 18/01/09 17:37    Sujet du message: Citer

Je crois bien que tu as inversé le nom de tes deux fonctions "SlideForAll" et "Slide", car ta fonction "SlideForAll" déplace GetEnumUnit(), soit une seule unité, et "Slide" déplace chacune des unités du groupe unité.

Je suis d'accord que pour changer le périodique d'un déclencheur, il est plus facile de changer un time que de recréer le délcencheur en modifiant l'évènement. Cependant je ne pense pas qu'avec l'évènement périodique, un déclencheur soit créé à chaque expiration du timer. (parce que je ne trouve pas ça logique)
Mais je ne comprends pas bien la signification du commentaire :
"Creates it's own timer and triggers when it expires"

De toute manière je vais utiliser ta méthode, ne serait-ce que pour la possibilité de changer la période très facilement ^^.

Troll-Brain a écrit:
Le gamecache ne peut être utilisé en multi joueur pour sauvegarde, end of story.

ça je l'ai bien compris, car en multi il est impossible de changer un fichier de gamecache présent sur le DD. (ou d'en créer un)

Ce que je voudrais, c'est sauvegarder les données dans un gamecache pendant une partie en mode solo (ce qui est bien possible), mais d'exploiter ce gamecache ds la map (déja voir si c'est possible en solo, puis en multi), à partir de n'importe quel PC, car le fichier de gamecache serait intégré à la map elle-même.

Si c'est possible, cela me permettra de pouvoir créer de nouveaux escapes très rapidement, juste en modifiant mon escape de base pendant le jeu.
Par exemple il est plus rapide de créer un monstre ingame que dans l'éditeur : ingame, deux clics de souris (grâce à une commande que j'ai créée) ; ds l'éditeur, création de deux rect (edit : et renommage ! indispensable) et appel d'une fonction.

Si c'est impossible, je pense à une autre méthode (je ne sais pas si c'est possible non plus) : pouvoir exporter dans un fichier la valeur de certaines variables, et pouvoir l'importer et l'exploiter dans une carte.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/


Dernière édition par Max le 18/01/09 20:58; édité 1 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


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

Je viens de penser à une autre solution :

Un logiciel permettant de convertir un fichier de gamecache en un simple fichier texte, lisible par l'utilisateur. (je ne sais pas si un tel programme existe)

Par exemple si dans le gamecache il y a une donnée de type string et de label "une_chaine", de valeur "bonjour", on puisse voir apparaître dans le fichier texte créé quelque chose ressemblant à ceci :
string une_chaine = "bonjour"
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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: 18/01/09 18:23    Sujet du message: Citer

Pour le TimerEvent je n'en sais pas plus que toi, mais en toute logique un timer appelant directement une fonction, sans passer par un trigger doit être plus performant.
Par contre tu ne peux utiliser des waits que dans une action de trigger, si j'en ai vraiment besoin alors je préfère quand même utiliser un timer avec l'event timer expire, pour sa souplesse d'utilisation.

Pour les noms de fonctions c'était juste pour ne pas mettre Slide et Slide2, j'ai fait cela à l'arrache ^^

Il existe un logiciel sur www.wc3campaigns.net permettant d'extraire un cache et/ou des données d'une sauvegarde, je ne sais plus.
Après avec JassHelper tu peux utiliser un tableau .xls pour importer des données.
Mais tu vas trop loin franchement, la taille de l'importation ne devrait pas valloir le coup d'une telle manip.
D'ailleurs je ne sais pas comment l'utiliser, je ne me suis jamais intéressé à la question, faut que tu te tapes la documentation de JassHelper.
Hmm tout bien réfléchi l'importation du .xls dans la map ne doit pas être nécessaire, sinon ca serait plutôt useless. Rolling Eyes

Pour un cache liée à une map, je ne sais pas si cela fonctionne, tu peux essayer, mais encore une fois faut voir la taille d'un tel fichier.

EDIT : Pour les map de campagnes cherche simplement les .w3m dans l'archive war3.mpq et les .w3x dans l'archive war3x.mpq, je ne me rappelle plus la syntaxe du nom des maps, mais je sais qu'il y'a le numéro de la mission et le nom de la campagne, ca saute aux yeux quand tu en vois une ^^
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 18/01/09 18:54    Sujet du message: Citer

Oui j'ai trouvé ce logiciel ^^ :
cache converter

Je l'ai testé en créant un string, et c bien pratique.
Cependant il faut voir la taille d'un tel fichier pour mes 22000 variables de type string.

Si c'est trop gros je pourrais transformer mes 22000 variables en une seule de type string, avant de sauvegarder le gamecache. Mais le problème c'est que 22000 caractères, je ne crois pas que ça rentre dans une cellule excel.

Troll-Brain a écrit:
Mais tu vas trop loin franchement

J'avoue que je me penche sur un problème assez compliqué, mais si j'y arrive, je pourrai apprécier la puissante de l'outil de création d'escapes que j'aurai fait, et je pourrai en faire profiter tout le monde. Imagine, pouvoir créer un escape très bien fait (j'avoue prétendre que mon escape est très bien fait), sans la moindre connaissance en création de cartes, et très rapidement...
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 18/01/09 19:20    Sujet du message: Citer

22000 strings de 1 caractère génère un fichier .xls de plus de 1 mo ^^. C'est un peu gros xD.

J'essaie donc de rassembler le tout dans une seule chaine.
J'ai commencé avec une chaine de 1000 caractères et non 22000.
Je mets uniquement le caractère "S" (pour tester). Petite explication : "S" signifie slide, donc représente le type de terrain sur lequel on glisse (on pourra modifier ce type de terrain pendant la partie, et choisir n'importe lequel des 177 types de terrains existants). Dans ma carte, il y a 4 terrain différents : S : slide, D : death, W : walk, M : meteor (simplement le type de terrain sur lequel je mets les météores servant à tuer les nagas --> cf Murloc Slide).
J'ai deux déclencheurs :
Jass:
//évènement : temps de jeu écoulé : 0s

function Trig_init_Actions takes nothing returns nothing

    call InitGameCacheBJ( "murloc.w3v" )
    call DisplayTextToForce( GetPlayersAll(), I2S( StringLength( GetStoredString( bj_lastCreatedGameCache, "les_chaines", "terrainSave" )))) //permet de savoir après un deuxieme lancement de la carte si la chaine a bien été créée dans le gamecache, et est complète
    call EnableTrigger( gg_trg_creating_string )

endfunction

//===========================================================================
function InitTrig_init takes nothing returns nothing
    set gg_trg_init = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_init, 0.00 )
    call TriggerAddAction( gg_trg_init, function Trig_init_Actions )
endfunction

Jass:
//évènement : 1000 fois par seconde
//je ne fais pas tout d'un coup car si j'ai bien compris comment ça fonctionne, si l'ordi n'a pas le temps de tout faire ce qu'il a à faire sans pause, en moins de temps que dure une frame de jeu, il se contente de ne pas finir son boulot, comme un employé ne voulant pas faire d'heures supplémentaires ^^
//je divise donc ce gros travail qu'il a à faire, en plusieurs parties. Néammoins le déclo étant exécuté de nombreuses fois en une seconde, l'ordi aura fini son boulot très rapidement
//ce déclo sera exécuté 10 fois, donc l'ordi mettra 1/100ieme de s pour faire son boulot

function Trig_creating_string_Actions takes nothing returns nothing


    local integer i

    set i = 0
    loop
        exitwhen i>=100
            set udg_chaine = udg_chaine + "S"
        set i=i+1
    endloop


    set udg_ind = udg_ind + i

    if udg_ind >= 1000 then
        call StoreString( bj_lastCreatedGameCache, "les_chaines", "terrainSave", udg_chaine )
        call SaveGameCache( bj_lastCreatedGameCache )
        call DisableTrigger( GetTriggeringTrigger() )
        call DisplayTextToForce( GetPlayersAll(), "fini" )
    endif

   


endfunction

//===========================================================================
function InitTrig_creating_string takes nothing returns nothing
    set gg_trg_creating_string = CreateTrigger(  )
    call DisableTrigger( gg_trg_creating_string )
    call TriggerRegisterTimerEvent( gg_trg_creating_string, 0.001, true )
    call TriggerAddAction( gg_trg_creating_string, function Trig_creating_string_Actions )
endfunction


La chaine de taille 1000 est bien stockée dans le gamecache, car lors de la deuxieme exécution de la map, la taille de la chaine s'affiche, et "1000" s'affiche.

Cependant la conversion du cache se passe mal, la variable est bien présente, mais aucune valeur n'apparaît.
Après quelques tests, j'ai constaté que pour que la conversion se passe bien, la limite d'une chaine de caractères se situe entre 200 et 300 caractères, alors que la limite de la taille d'une cellule excel se compte en milliers. Voici donc une des limites de ce programme pourtant bien pratique...

Il me faudrait donc utiliser 22000/200 = 110 variables différentes...

Ce que j'ai donc fait. Nouveaux déclencheurs :
Jass:
//évènement : temps de jeu écoulé : 0s

function Trig_init_Actions takes nothing returns nothing

    call InitGameCacheBJ( "murloc.w3v" )
    call EnableTrigger( gg_trg_creating_string )

endfunction

//===========================================================================
function InitTrig_init takes nothing returns nothing
    set gg_trg_init = CreateTrigger(  )
    call TriggerRegisterTimerEventSingle( gg_trg_init, 0.00 )
    call TriggerAddAction( gg_trg_init, function Trig_init_Actions )
endfunction

Jass:
//évènement : 1000 fois par seconde
//ce déclo sera exécuté 110 fois, donc l'ordi mettra environ 1/10ieme de s pour faire son boulot

function Trig_creating_string_Actions takes nothing returns nothing


    local integer i

    set i = 0
    loop
        exitwhen i>=200
            set udg_chaine[ udg_ind_tab ] = udg_chaine[ udg_ind_tab ] + "S"
        set i=i+1
    endloop


    set udg_ind_chaine = udg_ind_chaine + i
    set udg_ind_tab = udg_ind_tab + 1

    if udg_ind_chaine >= 22000 then
        set i = 0
        loop
            exitwhen i >= udg_ind_tab
                call StoreString( bj_lastCreatedGameCache, "les_chaines", "terrainSave"+I2S(i), udg_chaine[i] )
            set i = i + 1
        endloop
        call SaveGameCache( bj_lastCreatedGameCache )
        call DisableTrigger( GetTriggeringTrigger() )
        call DisplayTextToForce( GetPlayersAll(), "fini" )
    endif

endfunction

//===========================================================================
function InitTrig_creating_string takes nothing returns nothing
    set gg_trg_creating_string = CreateTrigger(  )
    call DisableTrigger( gg_trg_creating_string )
    call TriggerRegisterTimerEvent( gg_trg_creating_string, 0.001, true )
    call TriggerAddAction( gg_trg_creating_string, function Trig_creating_string_Actions )
endfunction


J'exécute la map, l'habituel message "fini" s'affiche, je quitte. Le fichier de gamecache fait environ 1ko au lieu des 150-160 octets habituels.
Je convertis le fichier avec cache converter. Un fichier de taille très raisonnable (27,2 ko) est généré. Je l'ouvre. Miracle, les 110 string sont bien présentes, de noms terrainSave0 jusqu'à terrainSave109. Chacune contient bien 200 "S" Very Happy.
En fait c'est très avantageux 110 chaine de 200 caractères. Pour créer ces chaines, l'ordi ne bosse pas beaucoup et cela ne prend pas beaucoup de place en mémoire (au cours du jeu). Et le fichier .xls généré a une taille très petite. Une seule chaine de 22000 caractères devrait prendre environ 22ko, et le fichier contenant les 110 chaines de 200 caractères fait à peine plus de 27ko Very Happy . Conclusion : toutes mes données sur le terrain prendront une taille très faible dans la carte ! Léger inconvénient très négligeable, le terrain dans l'éditeur ne correspondra pas. Cependant il sera toujours très facile de modifier le terrain au cours du jeu, de générer un nouveau fichier .xls qu'il suffira de remplacer dans la carte.

Il ne me reste plus qu'à trouver comment utiliser ce fichier .xls. Je vais chercher d'après ce que tu me dis à propos de jasshelper, Troll-Brain.
Troll-Brain a écrit:
D'ailleurs je ne sais pas comment l'utiliser, je ne me suis jamais intéressé à la question, faut que tu te tapes la documentation de JassHelper.
Hmm tout bien réfléchi l'importation du .xls dans la map ne doit pas être nécessaire, sinon ca serait plutôt useless.

En fait il y a toujours la solution du copier/coller, mais c'est long et pitoyable comme méthode ^^. (copier 110 lignes rien que pour le terrain, c'est déja long, je n'ose pas imaginer pour les monstres... :/) Je sais donc maintenant que mon projet est réalisable (et j'ai bien l'intention d'aller jusqu'au bout), il ne me reste plus que ce problème à résoudre. Cool Je pense à une méthode : transformer le fichier .xls en fichier jass contenant les lignes de code permettant de créer les variables. (ça ne doit pas être très compliqué) Mais est-il possible de dire à un endroit du code "importer le code présent dans tel fichier" ? En jass ça m'étonnerait beaucoup, mais peut-être que cette fonctionnalité a été ajoutée avec le vJass ?


Petite parenthèse concernant le gamecache : j'ai appris qques trucs en faisant ces déclo. Il est impossible de mettre des tableaux dans un gamecache, mais on peut faire beaucoup mieux : des variables dont le nom peut être dynamique comme j'ai fait en donnant comme nom "terrainSave" + I2S(i). Ceci est très puissant ^^, on peut donc créer l'équivalent de tableaux de variables à un nombre ilimité de dimensions ! Exemple pour un tableau à 3 dimensions nommé tab : une variable aura pour nom : "tab(" + I2S(dim1) + "," + I2S(dim2) + "," + I2S(dim3) + ")". Par exemple : "tab(45,1352,3)".
Seul hic si j'ai bien compris, le temps d'accès au gamecache est bien plus long que celui pour les variables... Donc à utiliser pour des actions que l'on fera peu souvent. (pas dans un déclo exécuté 100 fois par seconde durant tout le jeu ! Razz )

PS : désolé de mettre étalé sur deux topics différents (néammoins les deux sont dans le sujet ^^)
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
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: 18/01/09 21:20    Sujet du message: Citer

Tu devrais créé un sujet pour ton projet.
En effet c'est une très bonne idée de proposer un outil qui permet de faire des cartes directement en jeu, cela peut permettre de tester directement et d'avoir vraiment une approche différente.
Pour inclure un fichier c'est possible avec jasshelper, d'après le manuel:
Citation:
//! import "scriptfile"


Donc il ne te reste plus qu'à faire un programme qui convertisse tes données en code Jass.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé 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: 18/01/09 22:00    Sujet du message: Citer

Personnellement je suis très dubitatif sur la qualité du résultat que l'on peut obtenir ainsi, mais pourquoi pas, bien que j'ai mal d'avance pour le processeur :p
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


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

Troll-Brain a écrit:
j'ai mal d'avance pour le processeur

Etant donné que l'on sauvegarde les données (dans le cache) une fois, après avoir fini de modifier la carte, et qu'on les charge une fois en début de carte, je ne crois pas que ce soit un problème pour le processeur.

Ayane a écrit:
Donc il ne te reste plus qu'à faire un programme qui convertisse tes données en code Jass.

En effet. Pour cela il me faut utiliser un langage capable d'exploiter les fichiers .xls et de créer des fichiers texte. Je vais voir ça.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 19/01/09 10:25    Sujet du message: Citer

Je vais également stocker les données des monstres créés pendant la partie. Dans des chaînes de caractères également. il y aura les informations suivantes : numLevel, idMonstre, x1, y1 [, vitesse, x2, y2]

Les infos optionnelles sont utilisées si le monstre effectue une patrouille. Elles ne sont pas utilisées s'il est immobile.

Pour réduire la taille que prendront les nombres, je les convertis en entiers. Au final cela fait 39 caractères par monstre au maximum, ce qui veut dire 5 monstres par chaîne de caractère. C'est pas beaucoup. Alors j'ai pensé à convertir les nombres en base 27 où les chiffres sont les suivants : 0, a, b....z (pour les nombres positifs); et 0, A, B...Z pour les nombres négatifs. Les chiffres >0 ne sont pas utilisés, afin de pouvoir différencier les nombres négatifs des nombres positifs. Cela me permet d'écrire un nombre de 5 caractères (x ou y peut avoir jusqu'à 5 caractères, ex : -5643) en trois caractères. Je donne un nombre de caractères fixe pour chaque nombre, ce qui me permet de supprimer les séparateur ",". Au final j'arrive à réduire la chaîne pour un monstre considérablement, et elle ne fait plus que 18 caractères. J'arrive alors à mettre jusqu'à 11 monstres dans une chaîne de 200 caractères.

J'ai donc créé deux fonctions : I2B27 et B272I. I2B27 utilisera deux autres fonctions : I2B27P (positif) et I2B27N (négatif). J'ai écrit ces fonctions sur papier pour l'instant car je n'avais pas accès à mon ordinateur. Elles sont récursives mais je ne sais pas si c'est possible en jass. Si ce n'est pas le cas, j'éviterai la récursivité ^^.

Cette méthode compresse pas mal les données, mais j'ai peur que cela fasse trop de boulot pour le processeur. Je testerai.

Ayane a écrit:
En effet c'est une très bonne idée de proposer un outil qui permet de faire des cartes directement en jeu, cela peut permettre de tester directement et d'avoir vraiment une approche différente.

Oui tester directement ^^. Mais aussi surtout de ne pas avoir besoin de toucher à l'éditeur de cartes (très bien pour ceux qui n'y connaissent rien aux déclencheurs). Et la rapidité et la facilité de création d'un escape explose complètement ^^. Il faut des commandes efficaces pour modifier la carte, et je pense que j'arriverai à faire quelque chose de correct. Je pense ajouter la possibilité de créer des patrouilles avec plus de deux points. Jusqu'à 6 points par exemple, pour un maximum de flexibilité.
Je crois également que ça peut réduire considérablement la taille de la carte, mais je saurai ça à la fin.
Je viens de penser à un autre avantage : la possibilité de créer une carte à plusieurs : si l'on est plusieurs dans la partie. Mais en fait ça n'est pas possible car la sauvegarde du cache sur le DD n'est alors pas possible (multijoueur). Dommage. Ou alors il faudrait un logiciel permettant de récupérer le gamecache présent dans la mémoire vive ? Rolling Eyes

Ayane a écrit:
Tu devrais créé un sujet pour ton projet.

Je créerai un sujet lorsque j'aurai réussi. Je pense que cela pourrait intéresser pas mal de gens.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
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: 19/01/09 14:42    Sujet du message: Citer

Pour le multijoueur (comme en solo) tu peux utiliser jApi, mais tu deviens dépendant de jApi qui n'est pas forcément compatible avec la dernière version et c'est un peu plus compliqué à programmer.
Tu peux aussi définir un marqueur en mémoire comme le fait le mode FPS: ils font un array d'entiers avec pour première valeur une valeur spéciale, le programme tiers recherche ensuite dans la mémoire de wc3 cette valeur et après n'a plus qu'à échanger sur les valeurs du tableau (position de la souris, touches du clavier, ...).
Il peut toujours être intéressant aux joueurs de créer leur partie puis d'y jouer même si la carte n'est pas rejouable.
A mon avis le mieux pour le multijoueur c'est que tu te penche sur le fichier de sauvegarde, à partir de là tu pourrais extraire les données et en générer une carte rejouable.
_________________
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 19/01/09 15:24    Sujet du message: Citer

Ayane a écrit:
Donc il ne te reste plus qu'à faire un programme qui convertisse tes données en code Jass.
Maximaxou a écrit:
En effet. Pour cela il me faut utiliser un langage capable d'exploiter les fichiers .xls et de créer des fichiers texte. Je vais voir ça.


Je vais utiliser le java avec le package Jexcel (permettant de lire ou écrire des fichiers excel). J'ai déja créé un petit programme java. Je vais essayer de le compiler et le tester ce soir.

Ayane a écrit:
A mon avis le mieux pour le multijoueur c'est que tu te penche sur le fichier de sauvegarde, à partir de là tu pourrais extraire les données et en générer une carte rejouable.

Je ne savais pas que c'était possible ça ^^. Je pense à quelque chose... est-il possible de charger une partie en mode solo à partir d'un fichier de sauvegarde de partie multijoueur ? Ainsi, on pourrait modifier la carte en mode multijoueur, sauvegarder, recharger la partie en mode solo, et là créer le gamecache (ce qui marchera puisque qu'on sera en mode solo).

Pfiou ça fait beaucoup de boulot et de problèmes à régler tout ça Razz.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 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: 19/01/09 19:00    Sujet du message: Citer

Je serais toi je tenterais déjà de réaliser un système valable de création d'escape in game, avant de t'attaquer à la partie extraction / injection des données dans la map.

Au moins tu auras une idée précise des données à exporter/importer Wink
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Max
Floodeur prématuré


Inscrit le: 13 Jan 2009
Messages: 550
Sujets: 47
Spécialité en worldedit: La partie déclencheurs sauf le GUI.


MessagePosté le: 19/01/09 20:37    Sujet du message: Citer

Mais c'est déja fait ^^. Je n'ai pas encore fini mais je sais que je ferai le reste facilement. Je sais que tout les données de sauvegardes seront sous forme de chaînes de caractères, et c'est déja suffisant, le reste je peux le faire après. Je voulais m'assurer que je pourrais générer un nouvel escape. Inutile de faire toutes les commandes pour modifier la carte si ce n'était pas le cas...

Comme je l'ai dit tout à l'heure, j'ai créé un programme java pour créer un fichier .j à partir du fichier excel généré par cache converter. Il semblerait que cache converter crée un fichier excel de version trop ancienne pour Jexcel :/. J'ai donc copié les données et ai fait un nouveau fichier excel. ça fonctionne. Le code jass généré est celui désiré Smile. J'ai fait une petite modification : au lieu de nommer les chaînes terrainSaveI, je les nomme terrainSave[I]. Comme cela, je pourrai utiliser un tableau de chaînes de caractères dans ma map.
edit : Petite optimisation : je mets le nom de la variable en catégorie et l'indice en label : exemple :
catégorie : "terrainSave[" ; label : "19]"
Comme cela il suffit de concaténer les deux pour obtenir le nom final de la variable. Cela permet de diminuer un peu la taille du fichier .xls.
_________________
Maximaxou@northrend

Projet Max Escape Creation (éditeur d'escapes : mazes/slides) : http://max.slid.free.fr/maxEscapeCreation/
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Tutoriels Toutes les heures sont au format GMT + 1 Heure
Aller à la page Précédente  1, 2, 3, 4, 5, 6, 7, 8, 9, 10  Suivante
Page 7 sur 10

 
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