[Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Tout sur les scripts et les mods pour X4: Foundations.

Moderator: Modérateurs pour les forum Français

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

[Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Mon, 15. Apr 19, 19:13

******************************************* EDIT -- LIEN PUBLICATION ********************************************************

Le mod est disponible sur NexusMod : https://www.nexusmods.com/x4foundations ... escription

Je regarde dans la semaine pour Steam Workshop....

Description :

AIScript pour dire à un vaisseau de transporter une marchandise d'une de vos stations à une autre.

5 paramètres :
- Supplier station : station fournisseur (doit appartenir au joueur)
- Supplier Subordinate ? pour assigner le vaisseau au fournisseur
- Customer station : station client (doit appartenir au joueur)
- Build Storage ? Pour livrer au stockage de construction du client
- Warelist : liste des marchandises à transporter (dans l'ordre de priorité)

Quelques remarques :
--> le script se base sur les offres de commerces donc plusieurs choses à savoir
-- les offres de commerce ne sont pas contrôlées par le joueur : même si vous voulez transférer une marchandise, si vos gestionnaires ne le veulent pas : vous ne pouvez pas le faire avec ce script (je veux rester proche du gameplay de base)
-- les offres de commerce ne sont pas en "temps réel" : par exemple, si vous construisez un module de production, il peut se passer du temps (plusieurs minutes) avant que les offres pour les matières premières apparaissent donc le vaisseau ne démarrera pas immédiatement
-- un vaisseau ne voit pas les même offres de commerce si il est assigné ou non (je ne sais pas pourquoi et ne comprends pas : je l'ai juste remarqué en testant...)
--> le vaisseau transporte le maximum qu'il peut en fonction : de son volume disponible, des offres de vente du fournisseur et des offres d'achat du client
--> le vaisseau reste près du client si il n'y a plus de transfert à faire (le faire rester près du fournisseur n'est pas simple... je pensais mais non xD )
--> le vaisseau ne transporte qu'un type de marchandise à la fois en commençant par la première selectionnée puis la suivant il n'y a pas de transfert possible pour la première etc

"Basic" parce que je veux faire plusieurs versions du script : "Advance", "Expert", "God", "Player" avec différentes fonctionnalités en fonction du niveau de commerce du pilote.
Fonctionnalités à venir :
- possibilité d'approvisionner une station d'une autre faction
- possibilité d'approvisionner tout un secteur
- transport de plus d'un type de marchandise à chaque fois
- possibilité de se fournir dans une station d'une autre faction
- possibilité de se fournir depuis tout un secteur
- pont à double sens : on ne rentre pas vide !
- et peut-être plus

************************************************************************************************************************************

Bonjour,

Alors je suis nouveau dans le coin et même en modding mais je veux créer un mod !!!!

Pas que j'ai envie de faire un mod mais j'ai besoin de quelque chose que je n'arrive pas à faire en vanilla et pour lequel je ne trouve aucune ressource alors que ça me semble "basique" : je veux pouvoir dire à un vaisseau transporteur d'alimenter en continu une station (mon PHQ par exemple) avec une certaine ressource (teladianum par exemple) en provenance d'une station précise (ma fabrique de teladianum par exemple !)

Alors soit je suis un énorme boulay et le jeu le permet auquel cas merci de m'aider en m'indiquant comment. En contre partie, je ferai un autel dans mes toilettes en l'honneur de celui ou celle qui m'aura aidé où je réaliserai des rituels dont la description violerait les règles de ce forum.

Soit je suis un petit boulay et il existe déjà un mod pour ça auquel cas merci de m'aider en m'indiquant lequel avec un gros lien bien fat qui clignote avec des étoiles quand je passe dessus avec la souris (le mod qui m'aide le plus pour l'instant c'est le TaterTrader mais c'est pas ce que je veux exactement). En contre partie, je suis prêt à faire don de l'âme de mon premier descendant sur 7 générations au profit de mon bienfaiteur ou bienfaitrice.

Soit il n'existe réellement aucun moyen actuellement pour réaliser ça et j'ai donc quelques questions :
- Quelqu'un aurait il un miroir pour dl le X Catalog Tool : le site me dit que je dois être loggué pour le télécharger alors que je le suis… d'après d'autres forums, je ne suis pas seul dans ce cas.
- Quelqu'un aurait il de la doc sur le MDscript et le AIscript ? je trouve pas grand chose et pour l'instant je tâtonne en AIscript en analysant les mods que je trouve (je suis parti du TaterTrader en AIscript)

Voili voilou !

Merci d'avance pour vos retours !
Last edited by Pico5tirets on Tue, 7. May 19, 07:07, edited 4 times in total.

User avatar
Phlt
Moderator (Français)
Moderator (Français)
Posts: 3918
Joined: Fri, 31. Mar 06, 19:26
x4

Re: [Mod] Vaisseau pour alimenter en continu une Station

Post by Phlt » Mon, 15. Apr 19, 21:11

Bon le post étant au mauvais endroit, je l'ai téléporté dans un nouveau Topic… :roll:
Pico5tirets wrote:
Mon, 15. Apr 19, 19:13
Bonjour,
- Quelqu'un aurait il de la doc sur le MDscript et le AIscript ? je trouve pas grand chose et pour l'instant je tâtonne en AIscript en analysant les mods que je trouve (je suis parti du TaterTrader en AIscript)

La doc est disponible sur le Fofo anglais... en anglais bien sûr. :D

Je ne connais pas de Mod pour X4 qui fasse ce que tu souhaites. Tater Trader est celui que j'utilise et qui va bien, mais il ne fait pas exactement ce que tu décris en effet.
Image

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Wed, 17. Apr 19, 08:48

Phlt wrote:
Mon, 15. Apr 19, 21:11
Bon le post étant au mauvais endroit, je l'ai téléporté dans un nouveau Topic… :roll:
Je ne savais pas où poster et j'avoue avoir fait ça à l'arrache. Merci pour le topic ;)
Phlt wrote:
Mon, 15. Apr 19, 21:11
La doc est disponible sur le Fofo anglais... en anglais bien sûr. :D
En effet, j'ai trouvé la "doc" mais bon... on se croirait chez paradox...

Brayf, j'ai réussi à dl le XCatalogTool (message d'erreur foireux du site : il ne suffit pas d'être loggué il faut aussi avoir enregistré ses jeux pour accéder aux téléchargement... )

Je me suis installé mon petit environnement de dev : accès aux logs, reload de script ingame, etc.
Ready to code !

(j'ai commencé à coder hier soir mais j'ai ragequit : la fonction de scan d'offres d'achat d'une station qui me retourne que 4 offres alors qu'ingame il y en a 8...)

Je posterai mon produit final si j'arrive au bout au cas ça intéresserait des gens.

User avatar
Phlt
Moderator (Français)
Moderator (Français)
Posts: 3918
Joined: Fri, 31. Mar 06, 19:26
x4

Re: [Mod] Vaisseau pour alimenter en continu une Station

Post by Phlt » Wed, 17. Apr 19, 15:33

Pico5tirets wrote:
Wed, 17. Apr 19, 08:48
Je posterai mon produit final si j'arrive au bout au cas ça intéresserait des gens.
Il sera le bienvenu. :)
Image

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Tue, 23. Apr 19, 12:50

Alors petit update :

J'ai un script qui tourne pas mal :)
Quelques ajustements sont à faire sur les comportements aux limites, mais la première version devrait sortir cette semaine. (je pense en faire plusieurs différent en fonction du "niveau" de l'équipage, mais faut que je comprenne comment fonctionne l'xp avant :P)

Si il y a des volontaires pour tester avant une publication sur nexus/steam, faites signe !

User avatar
Général Grievous
Posts: 3929
Joined: Tue, 14. Dec 04, 18:06
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Général Grievous » Wed, 24. Apr 19, 13:42

Salut,

Je suis ouvert pour un test. Je pense que ma situation ingame s'adapte parfaitement à ton script, étant donné que j'ai beaucoup de stations indépendantes qui s'échangent des ressources. (plutôt que quelques énormes complexes)
J'ai aussi pas mal utilisé ce type de mod dans X3. C'était le "CAG" il me semble. :wink:
Il vaut mieux mobiliser son intelligence sur des conneries plutot que de mobiliser sa connerie sur des choses intelligentes...

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Thu, 25. Apr 19, 07:20

Bon alors là, il tourne bien mon script !

Et hier soir, je me suis déchiré : j'ai rajouté la prise en charge des stockages de construction et ça a changé ma life \o/

Brayf @Général Grievious : je t'envoie un mp ;)

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Mon, 6. May 19, 21:59

Bonjour,

J'ai publié le script sur Nexus Mod et je vais le faire sur le Steam Workshop (j'ai édit le premier post pour avoir tous les liens)

Merci à Général Grievious pour son test et ses retours, même si au final, pour l'instant je n'ai rien pris en compte.
Mais ses remarques étaient pertinentes ;)

N'hésitez pas à essayer le mod et à me faire vos retours !

User avatar
Phlt
Moderator (Français)
Moderator (Français)
Posts: 3918
Joined: Fri, 31. Mar 06, 19:26
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Phlt » Mon, 6. May 19, 23:33

Pico5tirets wrote:
Mon, 6. May 19, 21:59
Bonjour,

J'ai publié le script sur Nexus Mod et je vais le faire sur le Steam Workshop (j'ai édit le premier post pour avoir tous les liens)

N'hésitez pas à essayer le mod et à me faire vos retours !
Un lien serait le bienvenu.... :roll:
Image

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Tue, 7. May 19, 06:54

Phlt wrote:
Mon, 6. May 19, 23:33
Pico5tirets wrote:
Mon, 6. May 19, 21:59
Bonjour,

J'ai publié le script sur Nexus Mod et je vais le faire sur le Steam Workshop (j'ai édit le premier post pour avoir tous les liens)

N'hésitez pas à essayer le mod et à me faire vos retours !
Un lien serait le bienvenu.... :roll:
Comme dit, j'ai édité le premier post où j'ai ajouté le lien et le détail du mod, mais pas de soucis :D
https://www.nexusmods.com/x4foundations ... escription

User avatar
Phlt
Moderator (Français)
Moderator (Français)
Posts: 3918
Joined: Fri, 31. Mar 06, 19:26
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Phlt » Tue, 7. May 19, 10:05

Pardon, j'ai lu trop vite. :)

Il va répondre à un vrai besoin ton MOD. :thumb_up:


Si tu as besoin d'un site miroir pour l'héberger, fais-moi signe.
Image

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Tue, 7. May 19, 11:43

Phlt wrote:
Tue, 7. May 19, 10:05
Il va répondre à un vrai besoin ton MOD. :thumb_up:
Déjà, il répond au mien : j'ai une trentaine de vaisseaux qui l'utilisent :P
Et rien que ça, ça me va !
Ensuite, si ça aide des gens : c'est cool !
Phlt wrote:
Tue, 7. May 19, 10:05
Si tu as besoin d'un site miroir pour l'héberger, fais-moi signe.
Je regarde ça ce week-end mais normalement, je dois avoir un bout de serveur qui traine mais je note au cas où, merci ;)

User avatar
Général Grievous
Posts: 3929
Joined: Tue, 14. Dec 04, 18:06
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Général Grievous » Wed, 8. May 19, 11:05

J'ai un petit ajout à te proposer pour ton mod.
Aujourd'hui il faut 1 vaisseau par station cible.

J'aimerais qu'une de mes stations distribue 1 ressources à plusieurs stations.
Aujourd’hui, pour faire ça, je suis obligé d'utiliser un vaisseau par station cible...

Ne pourrait-on pas imaginer un vaisseau desservir plusieurs stations pour une même ou plusieurs ressources?
Il vaut mieux mobiliser son intelligence sur des conneries plutot que de mobiliser sa connerie sur des choses intelligentes...

Pico5tirets
Posts: 50
Joined: Mon, 15. Apr 19, 18:34
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by Pico5tirets » Thu, 9. May 19, 10:35

Général Grievous wrote:
Wed, 8. May 19, 11:05
J'ai un petit ajout à te proposer pour ton mod.
Aujourd'hui il faut 1 vaisseau par station cible.

J'aimerais qu'une de mes stations distribue 1 ressources à plusieurs stations.
Aujourd’hui, pour faire ça, je suis obligé d'utiliser un vaisseau par station cible...

Ne pourrait-on pas imaginer un vaisseau desservir plusieurs stations pour une même ou plusieurs ressources?
On peut l'imaginer : je l'ai fait (l'imaginer), j'en ai rêvé, j'en ai fait des cauchemars xD

L'autre jour, je me suis dit que je pourrais rajouter ça viteuf avant la publication, alors je me suis assis tout guilleret devant mon pc et je me suis dit "alors comment faire ça ?"
ET LA C'EST LE DRAME !

Concrètement, admettons qu'on veuille livrer de l'eau à 3 stations (A, B et C pour suivre facilement dans l'exemple) :
Se pose alors la question : comment dispatcher efficacement ?
  1. Solution 1 : à chaque voyage, livrer un peu d'eau au 3 stations !
    • Se pose alors la question : comment répartir le chargement ?
      1. Solution 1.1 : égalité ! même volume à chaque station !
        • -> Se pose alors la question : comment gérer les arrondis ?
          - Ca parait bête, mais au niveau code, c'est compliqué...
          - Mais bon, c'est faisable !
          • -> Se pose alors la question : Comment ça se passe si l'offre d'achat d'une (voire 2) des 3 stations est inférieure à la part calculée ?
            - Réponse : mal...
            - ** brain timeout **
      2. Solution 1.2 : équité ! volume pour chaque station au prorata de l'offre d'achat de chacune !
        • -> Se posent alors LES questions :
          - Comment gérer les arrondis ? (impression de déjà vu bonjour)
          - Comment gérer un plancher ? ou doit on gérer le cas où l'algo résulterait sur un transfert d'une seule unité vers une station ? si oui, doit on gérer un plancher en unité ou en volume de charge ?
          - **brain timeout **
      3. Solution 1.3 : laissons le joueur décider ! avec des paramètres à saisir !
        • -> Se pose alors la question : quels paramètres demander pour gérer le maximum de cas ?
          1. Solution 1.3.1 : choix de "méthode" fermé : choix entre la Solution 1.1 et la Solution 1.2 !
            - Se posent alors au mimimum les questions des solutions précédentes...
            - ** brain double timeout **
          2. Solution 1.3.2 : laisser tous les paramètres de répartition saisisables
            • -> Se pose alors la question : Comment contrôler la cohérence de saisie ?
              - L'interface de saisie des paramètres d'un ordre n'est pas vraiment dynamique...
              - Plongeon dans la doc qui se limite presque à des fichiers xsd indigestes...
              - brain ... ** TILT **
  2. Solution 2 : ne livrer qu'une station à la fois et changer de destination à chaque voyage (mode "tournante" :D )
    • -> Se pose alors la question : comment gérer le changement de destination ?
      1. Solution 2.1 : <mode dev>Avec des données persistantes !</mode dev>
        Plongeon dans la doc qui se limite presque à des fichiers xsd indigestes...
        brain ... ** TILT **
      2. Solution 2.2 : en calculant tous les voyages à l'initialisation !
        • -> Se posent alors plein de questions :
          • - Que se passe-t-il quand la station fournisseur n'a pas le stock immédiatement pour permettre les 3 livraisons qui seront, elles, en séquence ?
            Réponse : les stations B et C ne seront pas livrées complètement voire pas du tout
          • - Que se passe-t-il si la station fournisseur a un rendement inférieur à la consommation de la station A ? (et que le transporteur arrive à suivre le rythme)
            Réponse : les stations B et C ne seront jamais livrées
          • - Que se passe-t-il si le transporteur n'arrive pas à suivre le rythme ?
            Cas concret : les besoins de la stations A sont supérieurs à la capacité de transport du vaisseau (en prenant en compte les temps de trajet)
            Réponse : les stations B et C ne seront jamais livrées
          ==> Solution DENIED ! trop de prérequis sur les stations pour une exécution efficace du script sans prise de tête du joueur xD
          3 vaisseaux avec le script de base seront plus simple à gérer
  3. Solution 3 : ne livrer qu'une station à la fois jusqu'à complétion avant de passer à la suivante !
    • -> Se pose alors la question : que se passe-t-il si la station A a une consommation supérieure à la capacité de transport et/ou du rendement de la station fournisseur ?
      Réponse : les stations B et C ne seront jamais livrées.
    ==> Solution DENIED ! trop de prérequis sur les stations pour une exécution efficace du script sans prise de tête du joueur xD
    3 vaisseaux avec le script de base seront plus simple à gérer
FIN !


Voilà le résultat de la réflexion que j'ai eu l'autre jour..
Je l'ai entièrement revu et réécrit au cas où j'arriverais à un résultat différent de l'autre soir, mais non...

J'ai vrillé sur un seul cas simple xD
Et clairement cet exemple n'est même pas représentatif de tout ce qu'il y a à gérer !
Il n'y a que 3 stations dans l'exemple : comment gérer cette multiple sélection de stations ? sélection dynamique ? sélection statique de 1 à 3, 5, 10 stations ?
Ensuite, il n'y a qu'une marchandise dans l'exemple : quid avec plusieurs ? (c'est plus une vrille, c'est un triple boucle piqué à ce niveau)

Bref, ce qui paraissait trivial se révèle être un enfer, et je me dit même que ça doit être pour ça que ce n'est pas déjà dans le jeu xD

Au final, j'ai un peu lâché le truc pour l'instant.
Mais j'ai réfléchi plus globalement : je me suis dit qu'il serait pas mal de déporter l'algo sur le gestionnaire de station (qui avouons le, est totalement useless à l'heure actuelle), ce qui permettrait de monter un genre de "centre logistique" et de gérer une flotte de transporteurs qui serait peut-être potentiellement dans certains cas hypothétiques plus simple à gérer que des vaisseaux unitaires.
J'ai aussi pensé à changer l'écran de la map où on affiche les possessions du joueur : parce qu'au final, pas mal de soucis de gestion des vaisseaux pourraient être réglés juste en améliorant leur "représentation" ...
Mais bon, tout ça dépasse le AIScript, j'ai regardé un peut le MD et le lua, c'est plus poussé donc on peut facilement envisager plus de choses, mais c'est plus compliqué et surtout moins résilient d'un point de vue maj du jeu...

Re bref, j'y pense, mais j'ai pas forcément le temps et la motivation de tout gérer.
Dès que j'aurai de plus amples informations croyez bien que vous en serez les premiers informés.

User avatar
hargn
Posts: 522
Joined: Sun, 12. Dec 10, 17:38
x4

Re: [Mod][SpaceBridge] Vaisseau pour alimenter en continu une Station

Post by hargn » Thu, 9. May 19, 14:05

Salut,

J'ai jamais été regarder sérieusement la syntaxe des scripts pour les X (j'ai toujours trouvé qu'utiliser du xml pour faire du scripting est à se :headbang: , spéciale dédicace à Ant), mais je sais que ce problème a déjà été adressé et résolu auparavant.
Dans X3, on avait le logiciel (donc script) CLS : Commodity Logistics Software
On pouvait définir N fournisseurs, N clients et N produits, donc je pense que tu peux regarder, si tu as le courage, ce script pour voir comment ça a été fait : tout le monde voudrait les CLS Mk1 et Mk2 dans X4 :-D

Il me semble que pour décider quelle marchandise livrer à quelle station, le pilote regarde la marchandise qui le le plus faible ration marchandise en stock/quantité maximum. Donc le CLS livre toujours la marchandise la plus recherchée par l'ensemble des stations.
Après, c'est ce que je crois, donc si quelqu'un peut confirmer ou infirmer...

Post Reply

Return to “Script et Modding pour X4: Foundations”