See site in english Voir le site en francais
Website skin:
home  download  forum  link  contact

Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length

Author Topic: Messerschmitt BF109E  (Read 40769 times)

0 Members and 1 Guest are viewing this topic.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #100 - 17 April 2007, 22:12:20
Quote
brainstorm a écrit:
Le problème c'est qu'il ne devrait pas être null .... bon, je rajoute le test ....

Y a pleins de truc qui devrait pas en prog ;)

Une manie chez moi:

char Salut[255]={0};

pour copier des noms de 40 caracteres max. Initialisé à zéro et 210 char de trop.

1-La mem c'est pas chere
2-Jamais d'overflow, le gars qui est radin genre 40 ca finit souvent mal. (un chamgement dans le code et hop ca
plante partout)

En bref ca CTD très peux mes progs. (une fois fini)


Quote
brainstorm a écrit:
[EDIT] : je confirme, ca plante même avec le test, les objhandle sont différents de NULL.

Bizarre ? t'essayerais pas d'utiliser v-> out of scope avec un autre v globale des fois ?
méfiance ... en tout cas oublie pas de tester v aussi:

if(v!=NULL)

Essaie en debug, pas a pas , dans ces cas y a pas ... faut du lourd :)


Pour le casting AB je comprend pas sorry ?

Dan


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #101 - 17 April 2007, 22:18:30
Merci des infos ! ;) Pour le cast, je pense avoir compris. En résumé : ma classe me109 doit pouvoirutiliser une
méthode de la classe BulletGun que je développe en parallèle.
Seul pb, il faut que je récupère dans la classe me109 le objhandle de bulletgun, jusque la pas de problème.
Mais pour exécuter la méthode, je dois caster le type VESSEL que je récupère grace à oapiGetVesselInterface - là ca
marche ;) - pour accèder à la méthode en question.
Jusque là, ça va.
Mais j'ai découvert que pour utiliser cette méthode, il faut redéfinir dans me109.h la classe BulletGun, et dans la
classe me109, écrire :

friend class BulletGun;
friend void BulletGun::setObjHandlePere(OBJHANDLE oH){};

Chose que je ne savais pas. C'est la méthode bourrin parait il, mais bon, si ça marche, tous les futurs addons que je
ferais pourront utiliser BulletGun.dll ;)

Bref, j'espère avoir été plus clair, désolé si je m'exprime mal ... ;) c'est pas évident de se faire comprendre en langage
objet.



Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #102 - 17 April 2007, 22:57:23
Sinon, oui j'ai vérifié, pas de conflit avec une variable globale, on me la fait pas celle là ;) uoique ca pourrait arriver lol
mais non, pas de soucis.
Pb, je peux pas tester mon v car c'est vraiment la méthode chargé de récupérer le VESSEL plante visible (enfin CTD
sous orbiter). ...
C'est un truc de fou, car dans la code d'atlantis par exemple, c'est la même chose qui est fait dans une partie du
code ....
Et j'ai rien fait d'extraordinaire ... donc là, ouah ca me rappelle hermès quand je galérais comme un dingue ;)


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #103 - 17 April 2007, 23:31:59
Bon visiblement après vérif, effectivement, mon objhandle pose problème mais je ne vois toujours pas pourquoi....
je veux dire OBJHANDLE hV2 = oapiGetVesselByIndex(j); mrche sans problème ailleurs donc je comprends pas ... j'i
fait gaffe à mes déclarations donc là, un truc aussi con(désolé du terme mais c sensé être basique, ca me bloque
completement), je piges pas ...



Message modifié ( 17-04-2007 23:32 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #104 - 17 April 2007, 23:50:03
Sûr que ça n'a pas l'air simple vos histoires !
Peux rien faire, sauf encourager ... c'est donc fait ;)


Pic

Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #105 - 18 April 2007, 00:17:07
Merci à toi , c'est sympa ;) Allez je vais bien y arriver ;) dodo et ça ira mieux ;)


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #106 - 18 April 2007, 01:29:58
T'a fait tourner en pas à pas ? forcement i, hv2 ou autre doit etre à la rue... !??

Sinon le contexte ? t'appelle ca de quelle fonction ? (mais j'ai jamais eu de soucis
d'ou que j'appelle !??)

J'en ai partout moi des comme ca, ca marche sans soucis :

for (DWORD i = 0; i < oapiGetVesselCount(); i++)
{
OBJHANDLE hVessel = oapiGetVesselByIndex (i);
if (hVessel == Data.VesselHandle||!hVessel)
continue; // we don't want to grapple ourselves ...
VESSEL *v1 = oapiGetVesselInterface (hVessel);
if(!v1)
continue;

.....
}


Pour les perfs je te conseille de grabber tes data une seule fois au debut de timestep,
je veux dire pas besoin de faire 12'000 fois des GetAltitude() par exemple,

tu fait une fois:
Data.Altitude=GetAltitude();
en debut de timestep et tu l'a dispo
partout sans rajouter un call a chaque fois.

A++

Dan



Message modifié ( 18-04-2007 01:30 )


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #107 - 18 April 2007, 16:18:49
Je pense avoir trouvé, je teste en rentrant chez moi .... Erreur de neeb arhhh !!!
Regardez page précédente, là où je poste mon code !! Horreur et damnation .. hum hem y'a un ";" juste derrière le
for ...

du coup, CQFD, ça risquait pas de marcher !!! Comment je suis fou !!!  A minuit, fallait pas me demander de le voir ;)
Du coup, je pense que ça va aller mieux, je teste en rentrant du taf ;)
Si ça marche, ça devrait m'ouvrir de belle perspective !! ;) L'impact d'un vessel endommagera celui ci, mais je peux
décider de ne pas détruire le bullet, et celui peut détecter un vessel situé derrière le premier !! et redégat ...

En bref, y'a détection multivessel par le bullet (évaluation de la distance de celui ci avec tous les autres vessels
existant), et dégats (ou impact) grace au code que korben a imaginé ...
Bref je teste tout ça et je vous dis ;)

Si c'est concluant, je réfléchis à un bullet à tête chercheuse après lock sur un vessel (avec fenetre de dialogue dans
un premier temps).... et pour essayer de ne pas tricher, j'essaierai de faire une recherche du delta X, Y et Z entre
mon bullet et ma cible, et addforce sur mon bullet de façon à dévier sa course dans la direction de la cible .... (on peut
imaginer un coef de précision pour pas degommer à tous les coups le vessel cible)... enfin, j'ai l'idée, et je vois
probablement comment la mettre en place ...

A suivre ;)


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #108 - 18 April 2007, 16:37:27
Quote
brainstorm a écrit:
Je pense avoir trouvé, je teste en rentrant chez moi .... Erreur de neeb arhhh !!!
Regardez page précédente, là où je poste mon code !! Horreur et damnation .. hum hem y'a un ";" juste
derrière le
for ...

:lol: quel horreur, pas vu non plus !

Un coup de debug pas a pas t'aurais sauvé non ?

Dan


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #109 - 18 April 2007, 17:36:45
Même pas, vu que je bosses avec crimson, et j'ai pas de mode debug (ou alors, je ne sais pas comment ça se
paramètre ...)


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #110 - 18 April 2007, 18:14:50
Vous n'avez pas l'impression que c'est à se :wall: la prog ....
Bloqué pendant des heures à cause d'un petit "; " ... :fool:
J'ai l'impression qu'il faut avoir les nerfs solides pour faire de la prog !


Pic

Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #111 - 18 April 2007, 18:28:30
Clair ! ;) Bon, j'ai toujours un ptit soucis d'appel de méthode d'un classe à l'autre.

En résumé, dans la classe de mon messerschmitt, je voudrais appeler une méthode de ma classe BulletGun :
la méthode est : void BulletGun::setObjHandlePere(OBJHANDLE oH)

Donc, je me demande comment faire pour exécuter cette méthode directement depuis ma classe me109....


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #112 - 18 April 2007, 19:49:10
Ou alors, vu que je galère, si quelqu'un me donne le moyen de récupérer l'objhandle de la classe qui a instancié mon
BulletGun (en gros l'objhandle de mon messerschmitt quoi ;)), je lui en serais très reconnaissant ;)


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #113 - 18 April 2007, 20:01:26
uueh désolé comme j'ai jamais testé ca je seche... (et pas trop le temps de chercher sorry)

Dan


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #114 - 18 April 2007, 20:05:25
Pas grave, j'ai une autre idée ... je teste et si ça marche, je vous en dit plus ;)


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #115 - 18 April 2007, 20:56:07
Victoire de l'homme sur la machine !! Ahah !! ;) Ca marche ;) Ouf c'était chaud mais je ne me rappelais pas que le nom
du vessel "tireur" était tout bonnement dans le nom de mon bullet ;) héhé
Bah oui, "me109_bullet", suffit juste de récupérer le "me109" avant le "_" et après, oapiGetVesselByName ;)
Bref, je suis trop content ;)


Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #116 - 18 April 2007, 22:02:45
Bon, ça marche pas mal tout ça ;) Dan, tu pourrais me passer le code de l'ia pour que j'ajuste le modèle de vol pour
l'attaque, comme tu m'en a parlé l'autre jour ...
En fait, je prend pour l'instant en chasse un autre messerschmitt mais bon, la ligne droite, c'est pas terrible ;)
Sinon, la détection est niquelle ;) Dès q'un pruneaux approche de très près le zinc, impact ;) Donc, bon, pour des
balles, y'a pas vraiment d'effets ... mais sur un missile, boum addforce et là, ca dégage ;)


Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #117 - 19 April 2007, 00:23:28
Quote
brainstorm a écrit:
Bon, ça marche pas mal tout ça ;) Dan, tu pourrais me passer le code de l'ia pour que j'ajuste le modèle de vol pour
l'attaque, comme tu m'en a parlé l'autre jour ...
En fait, je prend pour l'instant en chasse un autre messerschmitt mais bon, la ligne droite, c'est pas terrible ;)
Sinon, la détection est niquelle ;) Dès q'un pruneaux approche de très près le zinc, impact ;) Donc, bon, pour des
balles, y'a pas vraiment d'effets ... mais sur un missile, boum addforce et là, ca dégage ;)

Je te passe ca en PM... ca va etre du brut va falloir te debrouiller mais comme j'utilise des nom de variable très
évocateurs (hein pivto ;) ) ca devrait pas poser de problème, sinon demande.

A++

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #118 - 19 April 2007, 00:26:19
Quote
DanSteph a écrit:
Je te passe ca en PM... ca va etre du brut va falloir te debrouiller mais comme j'utilise des nom de variable très
évocateurs (hein pivto ;) ) ca devrait pas poser de problème, sinon demande.
Dan

C'est qui Pivto ? :wonder:
Je suppose que c'est à moi que tu t'adresse. :badsmile:
Mais oui, pour les noms de variables ... certaines sont assez drôles et évocatrices de ton humeur du moment :)


Pic

Offline korben62

  • Hero Member
  • *****
  • Posts: 561
  • Karma: 0
Reply #119 - 19 April 2007, 00:39:16
Moa aussi j'suis intéréssé par l'IA, rien que pour voir comment on fait en C
J'e pourrais p'tet transposer mes prog VLisp , j'ai quelque truc pas mal du type interpolation sphérique




Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #120 - 19 April 2007, 00:46:01
Passé aussi en PM...

En fait j'ai un doute que ca marche chez vous tel quel a cause du model de vol
il faudra tripoter tout les coefficients (dans les 16 lignes) et tester pour que ca marche bien.
Je peut vous paser la beta du DGIV si vous voulez voir ce que ca donne ?

Quote
picto a écrit:
C'est qui Pivto ? :wonder:
Je suppose que c'est à moi que tu t'adresse. :badsmile:
Mais oui, pour les noms de variables ... certaines sont assez drôles et évocatrices de ton humeur du moment :)

J'ai renommé la variable ;)  (elle s'appelait "merde" pour les curieux)

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #121 - 19 April 2007, 01:06:25
Pourquoi vous appellez ça une IA, c'est un autopilot. :wonder:


Pic

Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #122 - 19 April 2007, 07:06:26
Intelligence Artificielle :) Mais tu es toujours dans le vrai ! Un autopilot, c'est une forme d'intelligence artificielle dédié au vol ...
enfin, un autopilot, ca va là ou on lui dit d'aller ... ici, ca choisit la direction, règle l'altitude si je dis pas de bétises, donc c un peu plus évolué qu'un simple autopilot ;)

[EDIT] Bon, en fait, c'est bien un autopilot ... ;) Mais si je trouve le moyen de rendre sa direction plus ou moins aléatoire (enfin, si on peut lui faire décider d'une direction en fonction de certains paramètres), là, ca pourra s'apparenter plus à de l'IA qu'à un simple autopilot ...



Message modifié ( 19-04-2007 08:50 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #123 - 19 April 2007, 12:17:29
Un truc sympa serait de pouvoir entrer les données de vol du drône par un fichier texte tout simple, genre : durée, cap, altitude, vitesse, attitude ...
On pourrait alors préprogrammer des figures au choix ... comme un véritable entrainement ... joli challenge pour le
pilote du 109 que de suivre ces figures et d'essayer de le zigouiller....malheureusement il ne permet pas le looping je
crois.

Ca donnerait des scenarios dans ce genre ...
Boucle
Tonneau
Vrille
Immelman
Renversement  
Déclenché
Retournement
Rétablissement normal
Rétablissement tombé
Remontée dos
Passage par l'avant  

Puis des mixs ....
Puis des scenariis avec plusieurs cibles.
Etc ... etc ...

Tu es dans l'aviation militaire si je me souviens bien  :wonder:

Quand tout celà sera au point ... phase suivante, doter les clones d'une IA qui leur donnera envie de s'échapper en fonction des manoeuvres du 109, et ou de te farcir à leur tour aux pruneaux .... un chti coup de bullet.dll pour l'affichage et là on l'a la base su SWBattle



Message modifié ( 19-04-2007 13:04 )

Pic

Offline brainstorm

  • Legend
  • ******
  • Posts: 2694
  • Karma: 0
Reply #124 - 19 April 2007, 13:05:38
C'est bien ce que je souhaite ;) (vivi armée de l'air, m'enfin, là où je suis, ça vole pas vraiment ;))

Modification du cap en fonction du me109 ;) Bon, va ya voir triche lol, vu que
le "drone" devra connaitre le cap de son ennemi. Exemple, je chasse un spit (héhé) et celui se rend compte que mon
cap et mon altitude se rapproche de la sienne. Par extrapolation de la distance avec moi, il change de cap et
d'altitude. Bon, pour ça, il faudra un mode "lock" pour qu'il sache que je le suis ;)
Pour la chasse, mode tête chercheuse, je bosse dessus pour des futurs missiles ;) Dès que je finis de paramètrer
l'autopilot, je m'y attaque, et j'ai quelques idées sur la façon de m'y prendre ;)

Tant que j'en parle, mes Bullets seront compatibles pour qui voudra. Juste un peu de code à ajouter dans le code
du "tireur" (que je préciserai dans la doc).
Après, en fonction du scénar, on peut imaginer un nombre de balles limités (ou infini ;)) et un nombre de missile
définis dans le scénar.

Pour le coup de l'impact, bon, vous vous doutez que les balles traverses un avion, on peut dégommer 2 avions l'un
devant l'autre .... ma balle détecte le premier (impact !!) et détecte ensuite le 2ème (re impact !!) ;) Donc, ça c'est
niquel. Vu le poid d'une balle, pas de mvt proportionnel au poids de la balle.
Mais pour un missile, on peut imaginer que le zinc par dans le décor, ça c'est pas trop dur à gérer, korben nous en a
fait l'expérience ;)

Bref, de belles perspectives tout ça ! Je sais pas encore où ca va nous mener, mais j'ai hâte d'y être en tout cas ...
Quelqu'un pense à nous ressortir une DLL pour multiplayer ??? ;)



Message modifié ( 19-04-2007 13:06 )