Inscrit le: 09 Mar 2009 Messages: 1154 Sujets: 54 Spécialité en worldedit: Croâ ?
Posté le: 20/07/10 18:25 Sujet du message: Création d'unité sur commande en français !
Bonjour bonjour !
Je cherche à pouvoir créer une unité en pleine partie seulement en écrivant son nom.
Par exemple je veux pouvoir créer un fantassin en écrivant -fantassin !
Ainsi j'ai créé ce déclo :
Gui:
Trigger:
Déclencheur sans titre 003
Evénements
Joueur - Joueur 1 (Rouge) types a chat message containing - as Une sous-chaîne
Conditions
Actions
Unité - Create Entier_unit (Unit-type((Substring((Entered chat string), 2, (Length of (Entered chat string)))))) for Joueur at (Center of Région 000 <gen>) facing Orientation bâtiment par défaut degrees
Il marche bien, cependant il faut que j'écrive le nom des unités que je veux créer en anglais pour que cela marche ( ex : -footman pour créer un fantassin )
Y'a-t-il un moyen pour ne pas que je doive écrire les noms en anglais mais en français, et sans stocker toutes les unités dans une variable à déploiement ( ) ?
Merci d'avance ! _________________
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...)
Posté le: 20/07/10 19:38 Sujet du message:
Je pense que la solution la plus simple est de renommer les unités dans l'éditeur d'objet, tu leur redonnes le nom Francais.
Le seul problème est que le nom sera français dans toutes les langues de wc3, mais si tu es un bon fr de base, osef pas vrai ? _________________
Inscrit le: 21 Fév 2010 Messages: 1785 Sujets: 22 Spécialité en worldedit: La modestie Médailles: 1 (En savoir plus...)
Posté le: 20/07/10 22:09 Sujet du message:
Y'a pas le champs approprié en GUI. Tu devrais passer par du .slk (UnitUI.slk, précisément) pour le modifier ou peut-être avec jasshelper et l'outil "Object Merger" mais c'est pas sûr que ça marche...
Je crains pour toi que tu ais à trouver les noms anglais (ils ont pas d'espace et que des minuscules).
EDIT : J'ai regardé dans le UnitMetaData.slk, et y'a pas le champs qu'il faudrait (tout comme y'a pas le champs d'ID), donc non seulement tu peux pas cracker le UnitMetaData, mais tu peux pas non plus utiliser Object Merger puisque c'est un champs sans ID, apparemment (quand je parle d'ID de champs, j'entends les trucs du genre "anam" ou "abuf"). _________________
Inscrit le: 09 Mar 2009 Messages: 1154 Sujets: 54 Spécialité en worldedit: Croâ ?
Posté le: 20/07/10 22:32 Sujet du message:
Erf ok tant pis... Merci à vous !
Sinon, vous connaitriez pas une liste avec les équivalences des noms en anglais et en français ? Parce qu'il y a certains noms d'units anglais qui m'échappent... _________________
Inscrit le: 16 Juil 2010 Messages: 298 Sujets: 17 Spécialité en worldedit: Faire compliqué quand il peut faire facile.
Posté le: 20/07/10 22:34 Sujet du message:
Bah tout simplement tu vas dans war3 viewer par exemple et explore le mpq de war3. Comme par magie tu as tous les noms des unités en anglais :p _________________
Le naab? C'est moi!
Jass:
call KillUnit(Mainguet)
// même le KillUnit me semble faux
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...)
Posté le: 20/07/10 22:59 Sujet du message:
Ah oui j'avais zoublié que ce n'était pas modifiable.
C'est directement lié à l'id de l'unité, d'ailleurs tu as peut être remarqué que pour les unités personnalisés, leur nom suit la syntaxe suivante :
custom_XXXX
Où le code XXXX correspond à l'id de l'unité (tu peux le voir en appuyant sur Ctrl + D).
La seule solution est de lier le nom français au nom anglais. Le plus approprié pour cela serait une hashtable ou gamecache.
Ensuite on pourrait automatiser la chose, mais pour faire cela proprement il faudrait ne traiter que les id d'unités existants, donc via un logiciel tiers.
L'autre solution avec seulement du script serait de "scanner" tous les id d'une valeur min à une valeur max, vérifier que l'id correspond à une unité existante, et enfin lier le nom local au nom anglais.
Même si on peut contourner le limit op (des milliers d'id sont à vérifier), ca devrait prendre un temps considérable à l'init de la map, jor quelques minutes, voir quelques heures.
Rien que pour le fun je le ferais bien mais j'ai pas accès au JNGP pour l'instant.
Dans tous les cas, si tu voudrais que la map soit utilisable sur des wc3 autre que français il faudrait en plus synchroniser les strings locaux ... _________________
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