Inscrit le: 12 Sep 2009 Messages: 801 Sujets: 64 Spécialité en worldedit: Ne pas.
Posté le: 06/07/11 23:01 Sujet du message: Petit script .sh pour les Linuxiens.
Salut à tous,
Je vous présente ici le script DaK_CompilMap.sh, permettant de compiler une carte wc3 contenant du code vJass facilement !
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
Inscrit le: 12 Sep 2009 Messages: 801 Sujets: 64 Spécialité en worldedit: Ne pas.
Posté le: 06/07/11 23:05 Sujet du message:
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. _________________
Avec JassHelper 0.A.2.B on peut écrire
//! import vjass "Chemin/vers/votre/fichier.j"
JassHelper supportant également le langage Zinc. _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 07/07/11 11:59 Sujet du message:
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 ). _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 07/07/11 12:07 Sujet du message:
D'oh, mon secret honteux .
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 ! _________________
Inscrit le: 12 Sep 2009 Messages: 801 Sujets: 64 Spécialité en worldedit: Ne pas.
Posté le: 07/07/11 12:52 Sujet du message:
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. _________________
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...)
Posté le: 07/07/11 17:40 Sujet du message: Re: Petit script .sh pour les Linuxiens.
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 :
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.
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...)
Posté le: 08/07/11 17:54 Sujet du message:
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. _________________
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