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=2b3b2850c8a52739da3eba6d549de788Mé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

Petit script .sh pour les Linuxiens.

 
Poster un nouveau sujet   Répondre au sujet    Worldedit Index du Forum -> Autre
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 DaKanibal
Membre a fort taux de post


Inscrit le: 12 Sep 2009
Messages: 801
Sujets: 64
Spécialité en worldedit: Ne pas.


MessagePosté le: 06/07/11 23:01    Sujet du message: Petit script .sh pour les Linuxiens. Citer

Salut à tous,
Je vous présente ici le script DaK_CompilMap.sh, permettant de compiler une carte wc3 contenant du code vJass facilement ! Smile

Ce .sh utilise JassHelper, Zenity ainsi que Wine.

JassHelper doit être placé dans "/home/$USER/.wine/dosdevices/c:/WarcraftIII"
Où $USER est votre nom d'utilisateur.

DaK_CompilMap.sh v1.1
Secret:

Code:
#!/bin/bash
#DaK_CompilMap.sh v1.1
#Dernière modification : 6 juil., 23:47.
#Crédits à T0m-s pour son aide.
recup=$(zenity --file-selection --multiple --title="Choisissez la/les carte à compiler" --filename "/home/$USER/.wine/dosdevices/c:/WarcraftIII/Maps/" --file-filter "*.w3x *.w3m *.w3c")'|'
cd /home/$USER/.wine/dosdevices/c:/WarcraftIII/
l=${#recup}
while [ $l -gt 0 ]
do
recup2=$(echo $recup|cut -f1 -d'|')
wine jasshelper/jasshelper.exe jasshelper/common.j jasshelper/blizzard.j $recup2
recup=$(echo $recup|cut -f2- -d'|')
l=${#recup}
done



Changelogs :

Secret:

1.0
Code:
Release


1.1
Code:
Supporte la compilation de plusieurs maps à la fois.



Afin de pouvoir utiliser ce code, ouvrez votre éditeur de texte favoris, copiez/coller le code dans un fichier nommé X.sh (Où X est le nom de fichier voulu).
Puis, une fois le fichier enregistré, faites un clic droit dessus => propriétés => permissions => Cocher "Autoriser l’exécution du fichier comme un programme". (Sous Ubuntu 11.04).

Puis, pour gagner du temps, vous pouvez créer un lanceur.

Merci à T0m-s pour son aide.
_________________
||**||


Dernière édition par DaKanibal le 07/07/11 12:53; édité 2 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 DaKanibal
Membre a fort taux de post


Inscrit le: 12 Sep 2009
Messages: 801
Sujets: 64
Spécialité en worldedit: Ne pas.


MessagePosté le: 06/07/11 23:05    Sujet du message: Citer

Pour pouvoir ajouter du code vJass à votre carte, vous devrez d'abord suivre cette procédure :
Mettez votre code jass dans un fichier que vous nommerez comme bon vous le semblera, mais qui devra comporter comme extension ".j".

Puis, pour intégrer ce code à votre carte, mettez dans l'en-tête de votre carte //! import "Chemin/vers/votre/fichier .j"

Pour compiler, vous n'aurez plus qu'à fermer la carte (fermer l'éditeur ou changer de carte en en ouvrant une autre) et lancer DaK_CompilMap.sh.
_________________
||**||
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé MSN Messenger
 Ayane
Bot administrateur


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

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

MessagePosté le: 07/07/11 07:49    Sujet du message: Citer

Avec JassHelper 0.A.2.B on peut écrire
//! import vjass "Chemin/vers/votre/fichier.j"
JassHelper supportant également le langage Zinc.
_________________
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: 07/07/11 10:58    Sujet du message: Citer

iléou le script ?
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Ayane
Bot administrateur


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

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

MessagePosté le: 07/07/11 11:47    Sujet du message: Citer

Bah tu exécute DaK_CompilMap.sh et puis c'est fait.
_________________
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: 07/07/11 11:57    Sujet du message: Citer

Ayane a écrit:
Bah tu exécute DaK_CompilMap.sh et puis c'est fait.


Thx captain obvious, je ne parlais pas de comment exécuter le script shell mais bien de lire le code.

Et iléou DaK_CompilMap.sh ?, tout ce qu'on l'a c'est un lien sur un message de ce topic, qui ne contient aucun code.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/07/11 11:59    Sujet du message: Citer

Utilise $HOME à la place de /home/$USER.
Peut-être qu'on s'en fiche si WE lance une erreur de compilation lorsqu'on parse avec jassHelper derrière (j'ai jamais essayé), mais sinon on peut utiliser les balises //! novjass.

Par exemple :
fichier libraryMachin.j.
Jass:
library Machin

    function DoSomething takes integer i returns unit
        local unit u = CreateUnit(Player(i), 'hfoo', 0, 0, 250)
        call ShowUnit(u, false)
        return u
    endfunction

endlibrary


dans la map.
Jass:
//! import "libraryMachin.j"

//! novjass
function DoSomething takes integer i returns unit
    return null
endfunction
//! endnovjass


Quand il s'agit de library ou de scope, il faudrait "déclarer l'en-tête" des fonctions le plus tôt possible dans le script...

Personnellement, j'ai exporté tout le fichier war3map.j et je le réimporte avec FileImporter. Ça m'évite d'ouvrir l'éditeur et ça a d'autres avantages (comme me débarrasser définitivement de l'interface GUI avec en plus l'impossibilité de le retrouver un jour Twisted Evil ).
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
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: 07/07/11 12:03    Sujet du message: Citer

Nan mais toi t'es juste un grand malade qui code en jass au lieu du vJass.
_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 Tirlititi



Inscrit le: 21 Fév 2010
Messages: 1785
Sujets: 22
Spécialité en worldedit: La modestie
Médailles: 1 (En savoir plus...)
Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/07/11 12:07    Sujet du message: Citer

D'oh, mon secret honteux Embarassed .

Naon, sérieusement, j'utilise 99% de jass dans FFB, mais c'est parce que j'ai commencé comme ça et que ça m'embêterait de tout convertir en vjass.
Mais j'utilise des structures dans la map pour le concours, promis !
_________________
Warcraft III, c'était mieux avant. Y'avait des purs chefs-d'oeuvres du mapping !
Road Of Glory (par moi)
Casse-briques (par moi)
Temple de Glace (par moi)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 DaKanibal
Membre a fort taux de post


Inscrit le: 12 Sep 2009
Messages: 801
Sujets: 64
Spécialité en worldedit: Ne pas.


MessagePosté le: 07/07/11 12:52    Sujet du message: Citer

J'me suis chié, j'ai collé le lien plutôt que le code.
Édité.

Citation:
Avec JassHelper 0.A.2.B on peut écrire
//! import vjass "Chemin/vers/votre/fichier.j"
JassHelper supportant également le langage Zinc.


Oui, et comment tu mets Jasshelper dans l'éditeur directement?
Car avec ta méthode, il faudra quand même compiler la carte avec JassHelper.
Et personnellement, je n'arrive pas à le lancer.
_________________
||**||
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...)
Rédacteur de tuto #3 (Quantité : 1) Grand mage créateur de sort (Quantité : 1)

MessagePosté le: 07/07/11 17:40    Sujet du message: Re: Petit script .sh pour les Linuxiens. Citer

Quelques petites modifications qui me semblaient être nécessaire.

En shell il faut absolument faire attention au word splitting, dans le doute il vaut mieux quoter "" une variable, si $USER contient des espaces le script ne fonctionnera pas (je ne sais pas si c'est possible que le nom d'un utilisateur contienne des espaces ou autre séparateur cela dit, mais ça ne coûte rien de quoter "$USER", au moins le script fonctionnera pour tous les utilisateurs)

Si tu choisis d'utiliser le bash comme shell (ce que j'utilises) il est conseillé d'utiliser les [[ ]] plutôt que les [ ], sinon bah explicite plutôt sh comme shell.

Je ne sais pas si jasshelper accepte les chemins absolus je n'ai pas donc été plus loin dans les modifs, mais si c'est le cas, y'a moyen de faire mieux que ces evil echo/cut et surtout laisser un peu plus le choix à l'utilisateur (où il place son wc3 et jasshelper).
En fait je suis même certain qu'il y a moyen de mieux faire bien que l'écriture sera beaucoup plus ésotérique, mais c'est une question d'habitude.

Un excellent wiki à propos du bash que je te conseille vivement :

http://mywiki.wooledge.org/BashGuide

Et pour une aide à temps réel il existe un irc #bash sur le réseau irc.freenode.net (remplis de geeks no-life et très compétents, aide 7j/7 h24 quasiment garanti, testé et approuvé)


NOTE : J'ai modifié ce code dans ce post sans aucune vérification, il peut comporter des erreurs.
Je n'ai pas tout quoter car j'ai pas vraiment chercher à comprendre le script, mais encore une fois je ne peux que te conseiller de quoter.

Secret:

Code:
#!/bin/bash
#DaK_CompilMap.sh v1.1
#Dernière modification : 6 juil., 23:47.
#Crédits à T0m-s pour son aide.

jasshelper_path="/home/"$USER"/.wine/dosdevices/c:/WarcraftIII"
warcraft_path="/home/"$USER"/.wine/dosdevices/c:/WarcraftIII"

recup=$(zenity --file-selection --multiple --title="Choisissez la/les carte à compiler" --filename "${warcraft_path}"/Maps --file-filter "*.w3x *.w3m *.w3c")'|'
cd "$warcraft_path"
l=${#recup}
while [ $l -gt 0 ]
do
recup2=$(echo "$recup"|cut -f1 -d'|')
wine "$jasshelper_path"/jasshelper.exe jasshelper/common.j jasshelper/blizzard.j "$recup2"
recup=$(echo $recup|cut -f2- -d'|')
l=${#recup}
done


_________________
Le violet, c'est moche.
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé
 DaKanibal
Membre a fort taux de post


Inscrit le: 12 Sep 2009
Messages: 801
Sujets: 64
Spécialité en worldedit: Ne pas.


MessagePosté le: 07/07/11 20:13    Sujet du message: Citer

Chez moi, ton script ne lance pas la compilation, TB =/
_________________
||**||
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: 08/07/11 17:54    Sujet du message: Citer

DaKanibal a écrit:
Chez moi, ton script ne lance pas la compilation, TB =/


J'ai dit que le script pouvait comporter des erreurs (y compris syntaxiques), je regarderais cela plus tard, mais faudrait déjà lancer le script via un shell interactif pour que l'on puisse voir les messages d'erreurs.
_________________
Le violet, c'est moche.
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 -> Autre 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