Page 1 sur 1

[Mod] Maps and Kits

Posté : lun. 27 juin 2022, 10:47
par JohnBob
Bonjour,

Essayant de créer un petit mod, je me tourne vers ceux qui voudront bien et pourront bien apporter leur expertise.



Contexte rapide :

1er composant j'emprunte le code de divine remix pour supprimer les Kits existants de l'écran de création du personnage pour faire la place à d'autres Kits...(tout en conservant les anciens, toujours accessibles pour les mods comme NPCEE ou EEkeeper)

et 2ème composant j'emprunte les fonctions d'Argent77 afin d'ajouter les maps des mods à la CLUAConsole...(Ce qui serait pratique pour tester rapidement toutes sortes de choses)



Du coup question importante, comment gérer ces emprunts ? Faut-il demander la permission pour les utiliser ? Suffit-il d'ajouter dans les credits ce que l'on emprunte et à qui ?

Dans le cas de Divine remix je reprends complétement le code et ajoute simplement les autres classes (guerrier, voleur, mage...), c'est peut-être différent que lorsque l'on use une fonction déjà bien partagée par la communauté...

Bon je suis loin d'avoir quelque chose de proposable et le but est surtout de se familiariser un peu avec weidu ! Mais il vaut mieux savoir au plus tôt...
Pour l'instant j'essaye de comprendre la logique et de découvrir les choses au fur et à mesure, je n'ai pas encore eu la patience d’éplucher le guide Weidu et autre
IESDP qui sont très complexes quand on y connaît rien, mais je regarde petit à petit...



1.
Ce qui fonctionne :

- Suppression de tous les kits pour toutes les classes ou ceux des mods uniquement

Ceux qui serait intéressant, si c'est possible bien sûr.

-Suppression des kits originaux uniquement.
-Détection des kits installés et sélection de ceux apparaissant à la création (là, je m’emballe un peu)

2.
Ce qui fonctionne :

- Ajout de zones provenant de mods à la CLUA console. (( Pour l'instant seul les trois zones de The Oozes Lounge sont ajoutées, le temps de comprendre et ça risque de prendre un moment de référencer un max de mods))

Ce qui serait intéressant, si c'est possible bien sûr.

- Détection des mods installés ou des fichiers ARE et ajout des zones détectées uniquement.
- Ajout du français pour les zones existantes et possibilité de choisir la langue pour les ajouts.



J'ai regarder plusieurs mods et je sèche sur plusieurs points.

- Peut-on avoir un fichier avec toutes les références des maps et décider de quelles parties installées dans le .tp2 ? la fonction ?

- Pas réussi à comprendre comment proposer d'installer tous les composants d'un coup...

Si j'avance sur ça, ce sera déjà bien...



Donc si vous avez des exemples à me donner ou bien des mods à me conseiller, pour trouver des pistes, ce serait cool !
Si vous avez des conseils du genre cette méthode est pas bonne, celles-là risque de poser des problèmes ou "a7#add_kit_ex.tpa" est mieux que "fl#add_kit_ee.tpa", il vaut mieux utiliser "cheat_var.tph" que "misc.tph", ou il y a des fonctions très complètes qui englobent beaucoup de situations en un seul fichier (EE, EET, Chapitre, IconV, triggers, ids et autres .tph afin de les charger et être sûr de tout avoir en cas de besoin, on peut rêver !) ce serait super !



C'est vraiment un miracle que le mod s'installe et fasse ce que je lui demande en ayant simplement mis des trucs bout à bout...

Vous pouvez jeter un coup d’œil ici, pour vous faire une idée ou essayer ce tout petit bricolage !

Merci d'avance



Posté : lun. 27 juin 2022, 13:56
par Freddy_Gwendo
Pas le temps de me plonger dans ton code pour l'instant, mais réponse rapide sur le principe.

1. Crédite les mods et les auteurs, et ça suffira. D'autant plus qu'Argent77 les publie en licence ouverte. ;)

2. Pour tout installer d'un coup, c'est facile :
  1. Déplace le code de chaque composant dans un fichier tpa séparé que tu appelles avec INCLUDE pour l'installer.
  2. Supprime les sous-composants et/ou les groupes : une installation totale ne fonctionnera sans doute pas avec eux.
  3. Ajoute un nouveau composant au tout début : "Tout installer" avec le code suivant.

Code : Tout sélectionner

BEGIN @1  // Install all components at once
  DESIGNATED 0

  ACTION_IF (NOT MOD_IS_INSTALLED ~mymod.tp2~ 10) BEGIN
    INCLUDE ~mymod/lib/composant1.tpa~
  END

  ACTION_IF (NOT MOD_IS_INSTALLED ~mymod.tp2~ 11) BEGIN
    INCLUDE ~mymod/lib/composant2.tpa~
  END

  ...


puis les autres composants :

BEGIN @10 // Composant 1
  FORBID_COMPONENT ~mymod.tp2~ 0 @nnn // Ce composant est deja installe
  DESIGNATED 10

  INCLUDE ~mymod/lib/composant1.tpa~


BEGIN @20 // Composant 2
  FORBID_COMPONENT ~mymod.tp2~ 0 @nnn // Ce composant est deja installe
  DESIGNATED 20

  INCLUDE ~mymod/lib/composant2.tpa~


...

Posté : mar. 28 juin 2022, 13:03
par JohnBob
Pas le temps de me plonger dans ton code pour l'instant, mais réponse rapide sur le principe.
"Code" c'est un bien grand mot, pour cette ébauche !

Merci pour tes réponses, avec ton conseil je devrais pouvoir m'en sortir sur cette partie !

Posté : jeu. 30 juin 2022, 10:26
par JohnBob
Bonjour,

Petit demande d'avis au sujet des noms des zones dans la CLUAConsole : Alors ça va prendre du temps de les traduire et les uniformiser donc n'hésitez pas à donner vos impressions, que cela convienne à un max de monde !!!
► Afficher le texte
► Afficher le texte
Le but est de rendre les zones plus facile à identifier...

- Ajout de (BG), (SC), (ToSC), (SoD), (ATH), (AMN), (ToB) au début du texte...

- Ajout de (E) (SE) (SW) (NW) (NE) à la fin du texte pour les zones de la Porte de Baldur...

- Traduction.... et réduction de la longueur des détails afin que le texte soit lisible dans la petite fenêtre...(Plus le texte est long plus il est rapetissé pour tenir dans la fenêtre)

Edit : Au passage savez vous si il est possible de changer la police d'écriture pour ces textes et est il possible de choisir la langue à l'installation ? (C'est à dire remplacer les lignes existantes, pas simplement les ajouté à la suite, j'imagine qu'il faut modifier cette fonction ou peut-être utiliser les fichiers comme "L_fr_FR.LUA" ?

Voici le rendu in-game (Interface de Tipun_Gui, mais la taille de fenêtre ne change pas quelque soit l'interface utilisée)
► Afficher le texte


Posté : sam. 02 juil. 2022, 13:02
par JohnBob
Bonjour,

Nouvelle question sur la fonction de Argent77 :
► Afficher le texte
J'ai essayé de la modifier pour remplacer les cheats areas existants avec la traduction et les modifications, mais je ne la comprend pas assez pour trouver quelle ligne changer, ni de quelle manière...

Faut-il remplacer "PATCH_PHP_EACH" ou "TEXT_SPRINT" ? ...et avec quoi, j'en ai essayer pas mal mais c'est un peu le loto...

Et doit-on modifier "line ~%TAB%%line%%WNL%", vu que le but n'est pas d'ajouter à la suite mais de remplacer ?

Une simple piste me débloquera peut-être, pas évident de se retrouver dans WeiDU Documentation quand on ne sais pas ce que l'on cherche.....

Edit :L'idée serait de l'ajouter à L_FR_FR.LUA, ce serait plus simple mais je ne sais pas non plus sous quel format ecrire les lignes pour qu'elles remplacent celle de bgee.lua (si c'est bien possible).

Posté : dim. 03 juil. 2022, 10:02
par Freddy_Gwendo
Je n'ai jamais vraiment bossé sur les fichiers LUA. Personnellement, j'utilise un fichier LUA maison (en plus de celui du jeu) qui ne contient que les valeurs des zones sur mon clone de développement. Il a été construit pour BGEE et BG2EE 1.3 et fonctionnait très bien jusqu'à la version 2.0. Je ne l'ai pas vérifié sur le patch 2.6, mais lorsque j'appelle la console, le jeu ne plante pas, donc il doit encore être opérationnel.

Ceci dit, pour répondre à ta question, la fonction d'Argent77 sert UNIQUEMENT à ajouter des lignes. Pour en modifier, il faut la réécrire complètement. Ce ne doit pas être très compliqué avec WeiDU. Je peux tenter un truc dans la semaine si ça te dit.

Posté : dim. 03 juil. 2022, 10:29
par JohnBob
Oui ça me dit bien, si c'est pas trop contraignant pour toi...

J'ai farfouiller dans les mods de Lefreut et Pecca mais je ne m'y retrouve pas !

Si tu penses que c'est pertinent je veux bien voir ton fichier maison, histoire de regarder comment tu t'y est pris !

Merci !!!

Posté : dim. 03 juil. 2022, 13:05
par lefreut
Bonjour,

Si le but est de remplacer tout le contenu du tableau cheatAreas, il y a une méthode qui me semble plus simple que de patcher les fichiers existants. Le jeu va automatiquement charger tout fichier lua dont le nom commence par M_. Donc tu peux créer un fichier M_cheat.lua qui contient par exemple:

Code : Tout sélectionner

cheatAreas = {
--BG1 Areas
{"BG0002", "(BG) Temple de Heaum (N)"},
}
C'est aussi possible d'ajouter des éléments dans ce tableau ou de remplacer des éléments si besoin.
JohnBob a écrit :- Traduction.... et réduction de la longueur des détails afin que le texte soit lisible dans la petite fenêtre...(Plus le texte est long plus il est rapetissé pour tenir dans la fenêtre)
Mes mods UI affichent le contenu sur plusieurs lignes si le texte est trop long.
JohnBob a écrit :Edit : Au passage savez vous si il est possible de changer la police d'écriture pour ces textes
Techniquement tout est faisable ! La console utilise le réglage de police 'list'. Il est possible de le changer, mais ça pourrait impacter d'autres éléments de l'interface qui utilise ce même réglage.

Posté : dim. 03 juil. 2022, 15:03
par JohnBob
Hello,
Mes mods UI affichent le contenu sur plusieurs lignes si le texte est trop long.
Toujours utiliser EEUITweak (enfin depuis les EE), mais je n'ai pas fait de partie depuis des années alors je ne m'en souviens pas, c'est plutôt cool, peut-être faire une version avec plus de détails à chaque ligne si ton mod est installé !!
Si le but est de remplacer tout le contenu du tableau cheatAreas, il y a une méthode qui me semble plus simple que de patcher les fichiers existants. Le jeu va automatiquement charger tout fichier lua dont le nom commence par M_. Donc tu peux créer un fichier M_cheat.lua qui contient par exemple:
Code:

Code : Tout sélectionner

cheatAreas = {
--BG1 Areas
{"BG0002", "(BG) Temple de Heaum (N)"},
}
C'est aussi possible d'ajouter des éléments dans ce tableau ou de remplacer des éléments si besoin.
Alors j'ai essayer un truc basique :

Code : Tout sélectionner

BEGIN @15
  FORBID_COMPONENT ~setup-Maps-and-Kits.tp2~ 2 @2 // Ce composant est deja installe
  DESIGNATED 2
    REQUIRE_PREDICATE GAME_IS ~EET~ @5

    COPY ~Maps-and-Kits/lib/A7/M_MapsFr.lua~ ~override/M_MapsFr.lua~
Le fichier est transférer dans override, mais rien in game !

Voici le fichier en question
M_MapsFr.rar
, je vais réessayer sur une nouvelle installation (trop de test sur celle-ci)... et avec moins de cheatAreas pour repérer d'éventuelles erreurs dans les lignes du fichier...

- Par principe, ce qui est dans le fichier devrait supplanter le contenu de BGEE.LUA en ce qui concerne les cheatareas ?

- Je loupe une étape ?
Techniquement tout est faisable ! La console utilise le réglage de police 'list'. Il est possible de le changer, mais ça pourrait impacter d'autres éléments de l'interface qui utilise ce même réglage.
Ok, du coup ça je l'oublie, on verra plus tard si je m'en sors sur le reste et c'est pas gagné !



Merci beaucoup pour tes conseils Lefreut et ta méthode serait/sera vraiment simple et pratique !



Posté : dim. 03 juil. 2022, 18:20
par Freddy_Gwendo
Comme je ne voyais rien d'anormal dans ton fichier (qui au passage ressemble au mien ;) ), je l'ai copié dans mon override. Et voilou :

Image

Posté : dim. 03 juil. 2022, 18:58
par JohnBob
Ok, j'ai du corrompre un truc avec mes multiples tests !

Je vais réessayer sur une installation propre ce soir ! Et j’espère revenir vers vous avec une bonne nouvelle !

C'est cool d'avoir testé le fichier !!

Si je bute pas sur autre chose, cela devrait être bon pour la partie installation, la partie kits et les cheatsAreas de base (Bon tout est encore ameliorable), ensuite il va falloir que je regarde comment détecter les mods installés (ça je n'ai pas encore regarder du tout) et de quelle manière ajoutés les nouvelles Areas (ça ne sera pas trop dur du coup), et surtout assurer un max de compatibilité (Encore pas mal de questions, pour vous, en perspective) !!!

Merci de votre aide à tout les deux !!

Posté : lun. 18 juil. 2022, 10:53
par JohnBob
Bonjour,

Nouvelles questions, quand vous aurez un peu de temps....



Alors l’intégration dans la CLUA fonctionne pour Bg2EE, mais pas pour BgSod (Probablement une nuance, je vérifierais cette partie plus tard et concentre mes tests sur BG2EE et l'ajout des zones de mods)

Du coup, nouvelle problématique après l'installation du composant "// CheatsAreas pour les mods"...

- l'installation du composant se passe sans problème et ne montre aucune erreur.
- Mais les nouvelles zone du fichier "M_ModsFr.lua" ne sont pas ajoutées au fichier M_MapsFr.lua.
- Pour éditer M_MapsFr.lua, utilisation de la méthode/fonction de Argent77 pour intégrer les nouvelles zones
- Je pense avoir bien remplacer les chemins et noms de dossiers pour "function.tph" et "misc19.tph", mais il y a sûrement un truc qui m’échappe.
- Si quelqu'un veut faire un test, il faut de-commenter la partie...
► Afficher le texte
...dans le .tp2.
- Comme la fonction fonctionner bien quand il s'agissait d’intégrer les nouvelles maps à BGEE.lua, j'imagine que j'ai fait une ou des bêtises...
Remplacement de "bg-append.lua" par "M_ModsFr.lua" (tester en renommant "M_ModsFr.lua" en "bg-append.lua")

Si j'ai fait une bourde, je finirais bien par la trouver... Mais quelque chose vous sauteras peut-être aux yeux !

Edit : Ajout du
SETUP-MAPS-AND-KITS.txt
/debug ! Qui montre des "Not-Appending" !



Dans un autre registre...

Serait-il possible d’intégrer dans la CLUA la partie "CreateItem" et avoir une liste des objets du jeu pouvant être générer dans l'inventaire ?

- Alors je ne crois pas qu'il soit possible d'agrandir la fenêtre de débogage et d'ajouter un nouveau tableau ?
- Mais peut-être est-t-il possible de switcher la partie "Areas" pour une partie "Items" au moyen d'un nouveau bouton dans la dite fenêtre ?

Je précise que je ne demande pas comment faire (même si des idées sont les bienvenues), mais m'interroge (sans trop y croire) sur la possibilité de l'implémenter !



Posté : lun. 18 juil. 2022, 14:30
par Freddy_Gwendo
Tu fais une erreur pour détecter SoD. SOD n'est pas une valeur valable pour la condition GAME_IS.

GAME_IS ~bgee~ détecte BG (avec ou sans SoD). Pour SoD seul, c'est (GAME_IS ~bgee~ AND GAME_INCLUDES ~sod~).

Note aussi que si GAME_IS ~EET~ est égale à 1, alors SoD est forcément reconnu...

Posté : lun. 18 juil. 2022, 17:33
par lefreut
JohnBob a écrit :Dans un autre registre...

Serait-il possible d’intégrer dans la CLUA la partie "CreateItem" et avoir une liste des objets du jeu pouvant être générer dans l'inventaire ?

- Alors je ne crois pas qu'il soit possible d'agrandir la fenêtre de débogage et d'ajouter un nouveau tableau ?
- Mais peut-être est-t-il possible de switcher la partie "Areas" pour une partie "Items" au moyen d'un nouveau bouton dans la dite fenêtre ?

Je précise que je ne demande pas comment faire (même si des idées sont les bienvenues), mais m'interroge (sans trop y croire) sur la possibilité de l'implémenter !
Il y a énormément d'item, peut être plus que de zone donc la liste va être très longue, je ne sais pas si au final ce sera très pratique.

Mais d'un point de vue purement technique, en modifiant le fichier UI.menu oui c'est possible.

Posté : lun. 18 juil. 2022, 19:24
par JohnBob
Tu fais une erreur pour détecter SoD. SOD n'est pas une valeur valable pour la condition GAME_IS.

GAME_IS ~bgee~ détecte BG (avec ou sans SoD). Pour SoD seul, c'est (GAME_IS ~bgee~ AND GAME_INCLUDES ~sod~).

Note aussi que si GAME_IS ~EET~ est égale à 1, alors SoD est forcément reconnu...
Ok, effectivement Sod seul n'était pas reconnu, ça ne résout pas l'affichage des nouvelles areas dans la console mais vu que ça marche sur Bg2 ce doit être un truc bête qui m’échappe pour l'instant !

- Du coup si je veux installer sur Bgee sans SoD quelle serait la formule la formule pour détecter que SoD n'existe pas ?

En testant un nouveau format pour les noms des Areas ça marche (probablement une erreur dans le M_MapsFr.lua associer à BGEE et SoD)



Voici un essai avec 2 lignes utilisées pour les noms de zones et détails trop long ! Le résultat rend moins bien sur bgee que Bg2ee mais ça se corrige et même pour Bg2ee c'est un simple essai... à terme il faudra que je revois les espaces et séparateurs pour une clarté maximum !

- Pensez vous que c'est une idée intéressante (d'utiliser 2 lignes) ? A savoir que la deuxième ligne est "cliquable" mais renverra un message "no ressource assigned" ! Ce qui est normal mais peut-être que c'est gênant ?




- Lefreut, j'ai essayé en installant "eeuitweaks" mais pas de retour à la ligne... est-ce une feature uniquement pour "LeUI" ou j'ai loupé un truc ?
(Un seul essai donc c'est bien possible !)


Il y a énormément d'item, peut être plus que de zone donc la liste va être très longue, je ne sais pas si au final ce sera très pratique.

Mais d'un point de vue purement technique, en modifiant le fichier UI.menu oui c'est possible.
Oui, c'est vraiment juste une idée pour l'instant... Avec les Diffs générer par Autodescription, c'est très simple de récupérer en deux clics la liste des objets disponibles est accessibles in-game sous ce format...
► Afficher le texte
Ça ne veut pas dire que c'est une bonne idée, mais c'est faisable !
en modifiant le fichier UI.menu oui c'est possible.
- C'est possible de switcher Areas / Items (/ Sorts) ? ou d'agrandir la console ? ou les deux ? (agrandir la console serait vraiment top, mais j'imagine que cela aurait déjà était fait... tout comme pour l'écran d'inventaire et autre...)



!!! Merci pour vos réponses !!!!



Edit : Retrait des screenshots afin de réduire la taille du post...



Posté : mar. 19 juil. 2022, 08:44
par Freddy_Gwendo
JohnBob a écrit : - Du coup si je veux installer sur Bgee sans SoD quelle serait la formule la formule pour détecter que SoD n'existe pas ?

Code : Tout sélectionner

GAME_IS ~bgee~ AND NOT GAME_INCLUDES ~sod~

Quant à tes essais sur plusieurs lignes, c'est strictement une affaire de goûts, mais pour moi, désolé, c'est rédhibitoire : je n'installerai jamais un truc illisible.

Je sais que ce n'est pas simple, mais l'affichage sur une ligne est beaucoup plus friendly user. La solution idéale consisterait à redimensionner la taille de l'écran de la Cheat Box. Après tout, elle ne sert qu'épisodiquement...

Posté : mar. 19 juil. 2022, 11:05
par JohnBob
Quant à tes essais sur plusieurs lignes, c'est strictement une affaire de goûts, mais pour moi, désolé, c'est rédhibitoire : je n'installerai jamais un truc illisible.
Non au contraire, merci ! J'ai souvent besoin qu'on me pousse d'un côté ou de l'autre !

Et même si je ne compte pas galvaniser les foules, le but est de faire un "mod" qui convient aux joueurs, alors des avis sont vraiment bienvenus !

Je laisse donc tomber cette histoire de lignes séparées et vais essayer de comprendre le "UI.MENU", c'est pas gagner d'avance mais agrandir la fenêtre serait une bien meilleurs alternative !

Merci aussi pour le code !



Allégement des posts précédents en retirant certains screenshots !