[X3R SCRIPT] PiloteIA III.70 (28.09.08)

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
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

maximeh :

JE désespère, je viens de me rendre compte d'un GROS BUG dans le SIGNAL_KILLED egosoft.
En gros ce signal se déclenche quand un vaisseau est détruit et lance un script en lui passant le code du vaisseau detruit, le code du vaisseau tueur et d'autres parametres....
Le problème est qu'hors secteur du joueur le code du vaisseau tueur passé par le SIGNAL_KILLED est toujours nul !! :o
Le plus drôle est que le script standard d'egosoft lancé par ce fameux SIGNAL_KILLED utilise le code du vaisseaux tueur sans broncher pour redéfinir la réaction des ailliers restants... :roll:

Et comme le script PiloteIA se sert intensément de ce code vaisseau tueur... Donc pour l'instant hors secteur joueur le calcul de prime ne se déclenche pas :(

Maintenant ne désespère pas, je pense avoir trouvé une solution... Je mettrais en ligne lundi ou mardi une nouvelle version qui rectifiera le tir :D



PS : comment ce fait-il que tu sois le premier à me signaler ce problème ? :gruebel:



Carnacier :

Excuse moi, je n'avais pas vu ton post...

Tout plein de bonnes idées
pour l'instant les bonus vaisseaux ne s'appliquent qu'aux chasseurs et M6. On peut envisager de l'appliquer également aux TS. Ce qui permettrait alors d'entrainer un piloteIA sur un chasseur, puis de l'installer comme co-pilote de ton TS... Je vais voir ça.
La fonction anti-missile existe déjà en partie dans le script de gestion de groupe, ou des m5 peuvent monter la garde anti-missile. Maintenant je pense que je vais lier plus fortement ces deux scripts, par exemple les m5 anti-missiles seulement pour des pilotes d'un niveau minimum.
Et rajouter une fonction anti-missile à enclencher sur son vaisseau, dont l'éfficacité dépend du grade de l'IA, bonne idée... Je m'y pencherai dès que j'aurai fini ce que je m'étais fixé dans le script PiloteIA, à savoir : éjection d'IA par certains vaisseaux non joueur '(quasi fini), et achat au marché noir d'IA compétitives (mais chères) (en bonne voie) :)

Bon jeu :) et bonne nuit
iou naud ouate, aille ama pis | Pilote IA | Site
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

Azz wrote:JE désespère, je viens de me rendre compte d'un GROS BUG dans le SIGNAL_KILLED egosoft.
En gros ce signal se déclenche quand un vaisseau est détruit et lance un script en lui passant le code du vaisseau detruit, le code du vaisseau tueur et d'autres parametres....
Le problème est qu'hors secteur du joueur le code du vaisseau tueur passé par le SIGNAL_KILLED est toujours nul !! :o
Le plus drôle est que le script standard d'egosoft lancé par ce fameux SIGNAL_KILLED utilise le code du vaisseaux tueur sans broncher pour redéfinir la réaction des ailliers restants... :roll:
Nope ce n'est pas un bug (et ça date d'ailleurs de X2) :

En effet le killer est 'null', OOS. Mais c'est parce qu'il n'y a pas besoin (dans le script par défaut, je précise) de le connaitre pour assurer les fonctions faites par le signal killed. Donc par economie de temps processeur il n'est défini que dans le secteur où se trouve le joueur.

Le script par défaut inclue même un test pour vérifier que 'killer' existe avant de lancer la plupart des commandes utilisées sur ce signal. Ce qui prouve bien que c'est voulu comme état de chose.

Par ailleurs, les commandes servant à redéfinir la formation sont indépendantes de la variable killed et fonctionnent correctement. Donc non il ne s'en sert pas, tu as du mal lire.

M'enfin bref,

Pour "corriger" ça suffit d'inclure en début de ton signal killed les deux lignes

Code: Select all

Skip If $killer
  $killer = [THIS] -> Get Attacker
(et comme je pressens la question, oui dans 99.999% des cas tu récupèrera bel et bien le tueur et pas un autre attacker)
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 »

Pour "corriger" ça suffit d'inclure en début de ton signal killed les deux lignes

Code:
Skip If $killer
$killer = [THIS] -> Get Attacker


(et comme je pressens la question, oui dans 99.999% des cas tu récupèrera bel et bien le tueur et pas un autre attacker)
Oui ça j'y ai déjà pensé, testé et fait la rectif :)
Le script par défaut inclue même un test pour vérifier que 'killer' existe avant de lancer la plupart des commandes utilisées sur ce signal. Ce qui prouve bien que c'est voulu comme état de chose.
J'avais bien vu, mais je pensais que ce test était là pour vérifier que le tueur n'avait pas été détruit à son tour dans la bataille.... :roll:
Par ailleurs, les commandes servant à redéfinir la formation sont indépendantes de la variable killed et fonctionnent correctement. Donc non il ne s'en sert pas, tu as du mal lire.
La reformation se fait bien certe, mais je pensais à la redéfinition de la menace pour la nouvelle formation :

Code: Select all

007    if $killer -> exists
008     skip if not [THIS] -> is $killer a enemy
009      $newleader -> set relation against $killer to Foe
010     $attacker = [THIS] -> get attacker
011     if $attacker == $killer
012      $newleader -> send signal SIGNAL_ATTACKED : arg1=$killer, arg2=null, arg3=null, arg4=null
013     end

hors secteur un groupe ne réagit pas à la destruction de l'un de ses membres... :?
iou naud ouate, aille ama pis | Pilote IA | Site
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

Parce que OOS, un groupe n'a pas besoin de redefinir la menace. Les vaisseaux d'un groupe se trouvent tous sur la même 'case' et sont gérés ensemble par le système de combat OOS sans que le signaux n'ai besoin de redéfinir la menace. Donc quand il rencontrent un navire adverse, et tombant sur la même case que celui ci, et bien ils rentrent déjà tous en mode de combat.

Voilou :)
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
pounish
Posts: 167
Joined: Sat, 18. Feb 06, 16:44
x4

Post by pounish »

j'ai une petite idée en passant qui serais bete de pas exploiter....

ca serais que quand les vaisseaux ne detect plus d'ennemis, que selui qui a le plus de place en soute ramasse automatiquement les marchandises.

du coup il augmenterais son stock de missille et voir meme faire du benefice en ramassant d'autre produit.

apres a voir si il evite les marchandise illegale ou pas. (option)
bicarbosteph
Posts: 206
Joined: Sun, 12. Aug 07, 10:06
x3tc

Post by bicarbosteph »

J'avais proposé ça pour le station trader : ça ne fonctionne pas car en OOS il n'y a pas de drops malheureusement
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Parce que OOS, un groupe n'a pas besoin de redefinir la menace. Les vaisseaux d'un groupe se trouvent tous sur la même 'case' et sont gérés ensemble par le système de combat OOS sans que le signaux n'ai besoin de redéfinir la menace. Donc quand il rencontrent un navire adverse, et tombant sur la même case que celui ci, et bien ils rentrent déjà tous en mode de combat.
Aaaah d'accord :)

Question subsidiaire : mais d'où tiens tu toutes ces infos SK ??? qui sont tes indics, on veut des noms et on a les moyens de te faire parler (ben non en fait, on a déjà tout donné) :D
iou naud ouate, aille ama pis | Pilote IA | Site
maximeh
Posts: 25
Joined: Fri, 4. Feb 05, 19:43
x3

Post by maximeh »

Mon très cher aaz, il semble que la modif soit super simple, j'attends avec une telle impaticence le fonctionnement de ton script... arriverais tu a mettre le lien de dl encore ce soir?
User avatar
Serial Kicked
Posts: 3823
Joined: Fri, 12. Aug 05, 20:46
x3tc

Post by Serial Kicked »

héhé en fait je suis un codeur chez ego :)

Nan, c'est juste que depuis X2 je potasse de long en large les fichiers officiels et que j'ai énormément lu dans le forum anglais de script à l'époque de X2, et que par exemple le 'bug' que tu as cru trouver dans signal.killed a déjà fait l'objet d'un post je crois bien. Pour ce que je sais du OOS c'est principalement de l'observation quand je voulais doser Pirate Guild de façon à ce que les combats soient le plus equilibrés possible. J'ai simulé des centaines de combats entre le JTP et ma Guilde et noté les résultats.

Rien de bien sorcier en fait ^^
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 »

maximeh :
Mon très cher aaz, il semble que la modif soit super simple, j'attends avec une telle impaticence le fonctionnement de ton script... arriverais tu a mettre le lien de dl encore ce soir?

c'est demandé si gentiment... :D

Donc voici la rectif qui permet le calcul des primes et points d'experience pour les vaisseaux hors secteur du joueur...

http://www.savefile.com/files/2611927

Copier simplement le script de l'archive dans le dossier scripts de X3, en écrasant l'ancien.

Bon jeu :)
iou naud ouate, aille ama pis | Pilote IA | Site
maximeh
Posts: 25
Joined: Fri, 4. Feb 05, 19:43
x3

Post by maximeh »

Je ne sais comment te remercier... je vais de suite tester...
maximeh
Posts: 25
Joined: Fri, 4. Feb 05, 19:43
x3

Post by maximeh »

oops il semble y avoir un truc bizzare... les grades monte au dessus de 5 c'est possible??? n'avais tu pas decider de bloquer a 5... n'aurais tu pas modifier le script sur un ancien fichier... et je trouve que les primes sont assez haute cad 20000 credit pour un m3... quand la normal n'est que 5000.

Mais merci pour le reste tout va bien.
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Les grades montent largement au-dessus de 5 (regarde le readme) Ils ne sont bloqués à 5 que pour l'IA de ton propre vaiseau (ton IA copilote)

Les primes plus élevées c'est voulu pour vous permettre de vivre (en partie) en mercenaire.. ça doit payer les réparations et améliorations des vaisseaux.... Maintenant j'attends aussi vos réaction, on peut revoir à la baisse si vous trouvez cela trop déséquilibré....

Bon jeu :)
iou naud ouate, aille ama pis | Pilote IA | Site
maximeh
Posts: 25
Joined: Fri, 4. Feb 05, 19:43
x3

Post by maximeh »

Ha ok, c'est juste parceque c'est la première fois qu'il fonctionne à 100%

merci d'avance
suite----->
chose étrange... mon M6 utiliser pour le teste a détruit des xenon L et des pirates M3 M4 et M5, pour les xenons il y a eu une prime mais pour les pirates rien du tout. c'est normal?
Nemeo
Posts: 106
Joined: Mon, 27. Sep 04, 14:16
x3ap

Post by Nemeo »

les pirates n'ont pas forcément le statut d'ennemi avec la race de secteur. donc pas d'ennemi, pas de prime.
maximeh
Posts: 25
Joined: Fri, 4. Feb 05, 19:43
x3

Post by maximeh »

okey... c'est vrai que j'ai vu des m3 et m4 pirate sortir du shipyard du secteur ou j'ai fait le test (Ianamus Zura)... donc on peut en déduire qu'ils ne sont pas ennemi...

Merci pour l'info.
bicarbosteph
Posts: 206
Joined: Sun, 12. Aug 07, 10:06
x3tc

Post by bicarbosteph »

Les Teladis sont effectivement amis avec les pirate, c'est d'ailleurs la seul race pour lesquels ta réputation n'augmente pas lorsque tu tues des pirates chez eux

merci azz, je met a jour ce soir
User avatar
pounish
Posts: 167
Joined: Sat, 18. Feb 06, 16:44
x4

Post by pounish »

salut azz, dit j'ai un petit probleme sur mon vaisseau j'ai un ia de secour car j'ai transferer un le ia niveau 5 sur un autre vaisseau...

je voudrais en upgrader un autre mais je trouve pas comment l'acheter.

car je pense que l'ia de secour se upgrade pas, en tout cas il se renome pas :(
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

pounish :
Tu aurais mieux fait d'échanger les IA entre ton vaisseau et l'autre vaisseau.
pour cela il fallait extraire d'abord l'IA de l'autre vaisseau pour la stocker dans ta base. Faire la même chose pour l'IA de ton vaisseau. Tu avais donc alors les deux IA dans ta base, il te suffisait ensuite d'installer dans chacun des deux vaisseaux l'IA souhaitée.
l'ia de secour se upgrade pas, en tout cas il se renome pas


Ben non, l'IA de secours n'est pas upgradable.... en cas de doute (re)lis le readme ... :)

Ce soir je met à jour la nouvelle version de PiloteIA, qui rajoute entre autre l'éjection de certaines IA ennemies à la destruction de leurs vaisseaux. Tu pourras en récupérer une et l'installer dans ton vaisseau pour l'entrainer...

EDIT : la possibilité d'acheter des IA n'est pas encore implémentée... ça va venir bientôt

steph3326 :
merci azz, je met a jour ce soir
ben justement attends un tout petit peu pour profiter de la nouvelle version :wink:
iou naud ouate, aille ama pis | Pilote IA | Site
User avatar
Azz
Posts: 1031
Joined: Tue, 18. May 04, 20:14
x4

Post by Azz »

Version 2.55 sortie

Au menu, des corrections et aussi quelques ajouts d'importances :


- La prime et l'experiences ne se calculaient pas hors secteur du joeur : rectifié
- Si le vaisseau abattu n'est pas un ennemi de la race du secteur, le message n'est plus un message de félicitation des forces armées !!!

- affichage direction et vitesse Nul dans afiichage status si le pilote était de grade recrue : rectifié
- un petit texte de débuggage trainait dans le journal... : rectifié
- Les capsules de sauvetages ne s'auto-détruisaient pas si on récupérait leur IA : rectifié
- Si un vaisseau récupérait plusieurs IA à la suite sans décharger l'IA transportée précédente, l'indicateur '+ia' s'ajoutait autant de fois dans son nom : rectifié
- Libellé Affichage Prime -ON- qui s'affichait à nouveau mal (décidemment !) depuis le patch egosoft 1.40 : rectifié
- Un bug empêchait les vaisseaux appartenant à un groupe de monter leur compétence d'un cran quand ils changeaient de grade suite à la répartition des pts d'expérience sur le groupe. : corrigé
- Probleme de repartition des points d experiencedans une escadrille si le killer n etait pas le leader : corrigé

Les ajouts :
- Ajout : Les vaisseaux non joueur éjectent parfois des IA quand ils sont détruits (la fréquence est aléatoire et dépend des races) cette fonctionalité peut être désactiveé dans le menu des options.
Vous pouvez récupérez ces IA et les installer dans vos vaisseaux...

- Ajout : Les vaisseaux non joueur éjectent parfois des Pilotes réels quand ils sont détruits (la fréquence est aléatoire et dépend des races) cette fonctionalité peut être désactiveé dans le menu des options.

Vous pouvez récupérer ces cosmonautes si vous êtes équipés d'un système de survie de soute et les revendre comme esclave :twisted:

- Ajout du règlage 'Compétence combat vaisseaux joueur démarre à  Un' (OFF par défaut)
Dans le menu des option, règlage IA
Option pour les puristes qui préfèrent que les vaisseaux qu'ils achètent ou gagnent au combat aient une compétence en combat de départ fixée à 1 au lieu d'une compétence aléatoire.
La compétence passera à 1 pour tout vaisseau qui n'a pas d'expérience et un grade à 0 (recrue) dès qu'ils auront participé à un combat. A vous de la faire progresser ensuite.

Voilà ce sera tout pour cette fois ci
Lisez soigneusement le readme, il y a tout plein de renseignements importants pour bien comprendre ce qui se passe... :wink:

et Bon jeu :)
iou naud ouate, aille ama pis | Pilote IA | Site

Return to “Script et Modding pour la Trilogie X”