Idée de script : Ajouter des roles au cosmonaute (votre avis?)

Tout sur les scripts et les mods pour X², X³, X³TC et X³AP.

Moderator: Modérateurs pour les forum Français

User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Idée de script : Ajouter des roles au cosmonaute (votre avis?)

Post by Whismerhill »

Suite à ce sujet : http://forum.egosoft.com/viewtopic.php?t=128618

J'ai trouvé qu'il serait intéressant de rajouter des rôles supplémentaires au fait de sortir de son vaisseau en tant que : cosmonaute.

Je ne connais pas le jeu dans son intégralité encore ,mais j'ai l'impression que le cosmonaute ne sert pas à grand chose.

Donc voilà mon idée : c'est de faire un script (moi-même sans doute)
qui permettrait de réparer un certain pourcentage de son vaisseau en sortant à l'extérieur et en "réparant" la coque.
Le coût de l'opération serait inférieur à une réparation dans un "chantier naval".

Cela prendrait un certain temps (pendant lequel vous êtes relativement vulnérable puisque à l'extérieur).

La quantité de réparation du vaisseau dépendrais de :

- Vos relations avec telle ou telle race (plus vos relations avec les borons sont hautes plus votre connaissance de la technologie boron est haute et donc plus vous avez de facilité à réparer la coque),
- Le temps passé à tenter une réparation,
- La quantité d'argent (ou de plaques de teladianium peut être) à votre disposition (possibilité d'avoir un TS avec des plaques en réserve à proximité ???),
- Votre expertise en réparation qui monte à chaque réparation,
- Le % maximal de réparation limité avant retour obligatoire à une station capable de réparer,
- Le taux de dommages déjà subits par la coque,
- La classe du vaisseau (plus il est gros plus c'est dur et long, jusqu'au quasi impossible avec les M2/M1).

En gros je pense à une formule qui aurait un résultat inversement exponentiel avec une limite aux alentours de 20-40 % de réparation max
(avec tous les paramètres maximisés).


Notes supplémentaires :
Utiliser des plaques de teladianium (ce serais optionel) permettrait, en plus, d'améliorer légèrement l'économie de X3 (nouveau besoin en plaques de teladianium...).
A moins de faire une fabriquation de "kits de réparation" à partir notamment de plaques ...

Bon je ne sais pas si tout cela sera réalisable en fin de compte,
c'est juste un idée qui a germé dans mon esprit et sur laquelle je compte travailler, mais je n'ai jamais scripté dans X3 donc ....

Merci d'avance pour vos avis/opinions, et vos idées.
Last edited by Whismerhill on Tue, 21. Feb 06, 17:46, edited 2 times in total.
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Tres bonne idée, il serait vraiment interessant d'offrir un rôle supplémentaire au cosmonaute..
Pour l'instant sa seule utilité est de pourvoir changer de vaisseau, ou "réclamer" les vaisseaux acquis au combat... et encore certains appareils permettent de s'en affranchir.

Ton idée me semble déjà bien aboutie, reste à la réaliser...
Bon courage :)

Shipyard : chantier naval
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

L'idée n'est pas mal et est plus interessante que les différents "hull repair software" que l'on voit un peu partout sur le forum anglais. Ce n'est pas non plus excessivement difficile à coder et c'est donc à la portée d'un débutant en script (avec un peu d'aide de notre part ;)).
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station
User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Post by Whismerhill »

raaah lol première déboire je programmais dans l'espace et je me suis fais exploser par des pirates ...

merci pour vos encouragements :)

(note: j'édite désormais dans une station ! )

edit: y a t'il un moyen de connaitre la race qui construit un vaisseau existant (pas forcément la race à laquelle le vaisseau appartient)
avec un check simple plutot que d'avoir à passer en revue l'ensemble des type de vaisseaux d'une race ?
User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Post by Whismerhill »

hop me revoilà

bon je progresse dans l'avancement de mon script
j'ai pas mal d'idée, j'essai de tout poser sur papier...
enfin bref


je suis actuellement en train de réfléchir à la(les) commande(s)
que je vais utiliser et j'aurais voulu votre avis éclairé :
COMMAND_TYPE_CUSTOM (716-763)
COMMAND_TYPE_GENERAL (816-863)

1- lequel serais le plus adapté?
j'imagine que ça ne fais pratiquement aucune différence
mais logiquement si vous aviez une commande du type :
"reparer ma cible" vous la chercheriez ou ? general ou custom ?
ou autre ?

(note: cette commande apparaitra dans les commande de vous-même (en tant qu'astronaute ou dans un vaisseau) ainsi cela permettra de réparer un vaisseau qui ne vous appartient pas)=> possibilité de développer des missions réparation de navire NPC en BBS(ou autre là encore)

enfin je diverge...

autre question:
j'introduis une "compétence en réparation" qui sera une caractéristique de votre perso qui montera par divers moyens (dont la réparation et peut être des BBS vous proposants manuels... leçons....)
2- j'imagine qu'il est impossible de rajouter une nouvelle statistique (telle vos relations avec les races) dans les stats d'un joueur?
3- si le 2 est effectivement impossible, que me recommandez-vous comme approche? je pensais à une commande(même slot que pour la réparation) qui afficherais vos compétences en réparation dans les messages que l'on reçois... (si y a mieux comme idée je suis preneur)


merci d'avance
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Hello,

1- je dirai custom plutôt que général (même si effectivement cela n'a pas une grande importance)
Je vais d'ailleurs rebaptiser ce menu en Personnalisé/Groupes dans la prochaine version du script Gestion de groupe, pour éviter l'ambiguité que j'avais inconsidéremment introduite....)

2 - C'est effecitvement impossible, il faut que tu la tienne à jour manuellement avec une variable globale, mais tu avais déjà dût t'en rendre compte

3 - On pourrait imaginer que si tu lance ta commande "Réparation" sans cible de définie, Un message s'affiche du genre "Cible Réparation non définie..... Votre rang en réparation est ...XX."


4 - Hein!,! il n'y a pas de 4 ? As tu pensé au fait que lorsqu'on est en scaphandre, on n'a pas accès aux menus :) ce qui implique que tu lance ta commande avant de sortir du vaisseau et qu'elle ne se déclenche que lorsque Type_PLAYERSHIP = Scaphandre (je schématise), ce qui accessoirement remet en cause 3..


Je te laisse réfléchir à tout ça...
iou naud ouate, aille ama pis | Pilote IA | Site
AIDABLOOM
Posts: 24
Joined: Mon, 27. Feb 06, 21:03
x3

Post by AIDABLOOM »

:) ton script à l'air interressant. Je l'attends de pied ferme. enfin le mode cosmonaute pourra servir à quelque choseje suis impatient d'installer ce script dans mon jeu :)

tu en as encore pour longtemps ? :)
User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Post by Whismerhill »

je peux pas vraiment te donner d'ETA
mais vu que c'est ma première expérience de programmation en script x3
(je connais malgré tout un peu de vb)
et que certaines opérations sont archi longues
(plusieurs heures pour répéter certaines lignes avec une petite modification par ligne + boucles inutilisables, là ou on pourrais utiliser du copier/coller rapide dans un éditeur texte normal)

je dirais...
he bien.... je fais de mon mieux, merci de m'avoir exprimé ton intérêt :)

de toute façon ne t'attends pas non plus à un script qui serais parfais au premier jet, au départ il sera sans doute beta de plus la formule de réparation sera peut être à ajuster

tiens voilà la formule que j'ai mis au point pour l'instant :
racine carrée( entier ( log |Relation| +1) * (Expertise /7) * (1/ClasseVso) ) * ( HullMax - HullCurrent ) * Variable

Relation = relations avec le constructeur du vaisseau (et pas la race à laquelle il appartient) (chiffre compris entre -1 000 000 et 1 000 000 si je ne m'abuse)
Expertise = votre compétence de réparation chiffre compris entre 1 et 100
ClasseVso = chiffre entre 1 et 6 (1 = M5 , 3= M3 TS TP , 6 = M1 )
HullMax = nombre de points de coques du vaisseau
HullCurrent = nombre de points actuels du vaisseau
Variable = 50% (0.5) ou 95% si utilisation de plaques de teladianium

(l'Expertise est prévu mais ne monte pas dans ma pré-version)
(teladianium non implémenté)
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

Juste au cas où :)

Copier : Touche C / Coller : Touche V

Et qu'il y a t'il d'inutilisable dans les boucles ?
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station
AIDABLOOM
Posts: 24
Joined: Mon, 27. Feb 06, 21:03
x3

Post by AIDABLOOM »

Whismerhill wrote: tiens voilà la formule que j'ai mis au point pour l'instant :
racine carrée( entier ( log |Relation| +1) * (Expertise /7) * (1/ClasseVso) ) * ( HullMax - HullCurrent ) * Variable

Relation = relations avec le constructeur du vaisseau (et pas la race à laquelle il appartient) (chiffre compris entre -1 000 000 et 1 000 000 si je ne m'abuse)
Expertise = votre compétence de réparation chiffre compris entre 1 et 100
ClasseVso = chiffre entre 1 et 6 (1 = M5 , 3= M3 TS TP , 6 = M1 )
HullMax = nombre de points de coques du vaisseau
HullCurrent = nombre de points actuels du vaisseau
Variable = 50% (0.5) ou 95% si utilisation de plaques de teladianium

(l'Expertise est prévu mais ne monte pas dans ma pré-version)
(teladianium non implémenté)



Woooow!!!! prends ton temps. Ca a plutot l'air compliqué.
En tout cas, je l'attends avec impatience. Courage :)
Quelle est belle la vie avec x3
User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Post by Whismerhill »

@aidabloom
merci de tes encouragements :)
Serial Kicked wrote:Juste au cas où :)

Copier : Touche C / Coller : Touche V

Et qu'il y a t'il d'inutilisable dans les boucles ?
ho rien c'est que je me suis un peu fais suer à tester chaque vaisseau indépendemment pour savoir qui a "conçu le plan/design" du vaisseau
(qui n'est pas forcément la même race que celui qui possède le vaisseau, notamment dans le cas de vaisseaux appartenant au joueur)
ce qui fais un script d'environ 170 lignes si je ne m'abuse
pour un truc qui est finalement plutot simple

bref oui j'ai fais des copier coller mais bon c'est quand même moins pratique qu'avec un éditeur texte
enfin c'est pas grave, faut juste prendre le temps :)
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

Ah oui ça je suis bien d'accord l'interface de l'éditeur est plus qu'archaïque , ils auraient pu faire un effort à ce niveau pour améliorer un peu les choses.

M'enfin on peut pas tout avoir :)

/ Edit /

Au fait il y a aussi une autre solution pour le point (4) évoqué par Azz, tu peux lier le script à un raccourcis clavier configurable par l'utilisateur. Faut d'ailleurs que je pense à pondre un petit tuto sur le sujet :)
X3:TC/AP Pirate Guild 3 - Yaki Armada 2 - Anarkis Defense System

Anarkis Gaming HQ
Independent Game Development
X3 Scripting and Modding Station
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Au fait il y a aussi une autre solution pour le point (4) évoqué par Azz, tu peux lier le script à un raccourcis clavier configurable par l'utilisateur. Faut d'ailleurs que je pense à pondre un petit tuto sur le sujet
C'est pas idiot :D

J'ai pas le reflexe des nouvelles fonctions X3...
iou naud ouate, aille ama pis | Pilote IA | Site
User avatar
Whismerhill
Posts: 579
Joined: Wed, 20. Oct 04, 21:16
x3ap

Post by Whismerhill »

j'ai un soucis avec ça :

Code: Select all

042     write to player logbook $targetrelation =>valeur à 1
043     write to player logbook $repairexp =>valeur à 1
044     write to player logbook $targetobjectclas => valeur à 5
045     $newamount = 1000000 * ( $targetrelation / 7 ) * ( $repairexp / 100 ) * 1 / $targetobjectclas
046     write to player logbook $newamount
047     $newamount =  square root of $newamount
048     write to player logbook $newamount
voici les résultats écrits sur mon logbook :
1, 1, 5, 0, 0

donc si je resume
$newamount = 1 000 000 * 1/7 * 1/100 *1/5
et selon X3 ça me donne 0 ??????? (resultat calculatrice : 285 et des poussières)

je comprends pas.
au fait merci pour le tuyau sur une touche de raccourci, je pense que ce serais effectivement bien plus pratique et plus simple
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

les scripts ne connaissent que les entiers, or dans ta formule :

$newamount = 1000000 * ( $targetrelation / 7 ) * ( $repairexp / 100 ) * 1 / $targetobjectclas

( $targetrelation / 7 ) doit donner 0.14 et des poussieres, soit 0 en nombre entier
pareils pour ( $repairexp / 100 ) et 1 / $targetobjectclas

pas de chance, que des 0 :)

Il faut que tu utilise un coefficient correspondant au nombres de decimales que tu desires obtenir, soit par ex :
$newamount = ( $targetrelation*100 / 7 ) * ( $repairexp *100/ 100 ) * 100 / $targetobjectclas )

etc
iou naud ouate, aille ama pis | Pilote IA | Site
shoop
Posts: 8
Joined: Thu, 23. Feb 06, 11:47
x3

Post by shoop »

Je vois que vous etes deja parti sur ce mod mais je profite quand meme du poste pour savoir si ca serait long et laborieux comme script de faire en sorte que le cosmonaute ai des missions ou il doit recupere des marchandises dans des endroits "interieurs" ( je parles d utiliser les faux interieurs des station gigantesques comme les stations commerciales par exemple ou l on peut se ballader dans des hangars quand meme assez detailles uniquement en scaphandre puisque le dockage est automatique des l entree), l dee serait donc d utiliser ces stations comme endroits d echanges douteux pour des mission .

Return to “Script et Modding pour la Trilogie X”