Dan's Orbiter page

Orbiter Francophone => Création Orbiter Francophone => Topic started by: Momo on 09 May 2007, 15:09:51

Title: Spacecraf3 et DLL [résolu]
Post by: Momo on 09 May 2007, 15:09:51
ben allé je continu...

je crée une dll (pour mon prj) pour chaque module sol de la base lunaire... j'ai réalisé avec mal plus de 90% de 2 modules

mon prb est avec le spacecraft3... pour des raisons évidente je suis obligé de passé par lui pour géré mes playloads dans les
cargos (comme sa c'est plus simple pour un orbinaute de changé la cargaison pour ces missions en 2 lignes)

le problème est simple... et déjà remonté a Vinka:
quand on libère une DLL d'un spc3, la DLL n'as pas de coco...

je me demandé si on pouvait pallié a ce bug via sa propre DLL...? pour forcé la DLL a avoir son fuel a 100% hormis sa ligne
PROPELLANT_HANDLE hpr = CreatePropellantResource (M1_FUELMASS);

voila...
Merci!



Message modifié ( 16-05-2007 15:55 )
Title: Re: Spacecraf3 et DLL
Post by: korben62 on 09 May 2007, 16:43:34
oui par
OBJHANDLE HV =oapigetvesselbyname ("name")
VESSEL *V = oapiGetVesselInterface (HV);
PROPELLANT_HANDLE hpr =V->CreatePropellantResource (M1_FUELMASS);
V->setfuelmass(xx)

par le méme biais tu peu créer des thruster aussi:)

Title: Re: Spacecraf3 et DLL
Post by: korben62 on 09 May 2007, 16:54:41
Heu sorry!:wall:
 ça c'est pour une spc3 détachée d'une dll
dans ton cas fait un test sur l'attachement par " GetAttachmentStatus "
et "if null" un setfuelmass(xx) si l'attachement est libéré du vaisseaux sous spc3
je te conseille de faire le test par le handle du vaisseaux sous spc3 , de maniére à ne pas réinitialiser ton fuelmass
si tu l'attache à un autre vaisseau

Title: Re: Spacecraf3 et DLL
Post by: Momo on 09 May 2007, 18:40:11
Merci!

Quote
korben62 a écrit:
dans ton cas fait un test sur l'attachement par " GetAttachmentStatus "
et "if null" un setfuelmass(xx) si l'attachement est libéré du vaisseaux sous spc3

bon la je vois pas trop... faut que je regarde sa... doit bien avoir un exp...

Title: Re: Spacecraf3 et DLL
Post by: korben62 on 10 May 2007, 01:06:48

      if (GetAttachmentStatus (payload_attachment))
         setfuelmass(xx)
      else
         setfuelmass(xx)
:)

Title: Re: Spacecraf3 et DLL
Post by: Momo on 10 May 2007, 09:53:48
:)

j'étais parti plus loin moi...
Merci!

:)

Title: Re: Spacecraf3 et DLL
Post by: Momo on 15 May 2007, 11:54:51
Arf.... j'ai un CTD a la séparation du module DLL...

(dsl pour le temps mort, je reviens juste de 4J a l'hosto...)

Title: Re: Spacecraf3 et DLL
Post by: MerciMartin on 15 May 2007, 20:01:28
T'a mis des vis toi aussi ?
:)
Title: Re: Spacecraf3 et DLL
Post by: Momo on 15 May 2007, 20:06:18
Quote
MerciMartin a écrit:
T'a mis des vis toi aussi ?
:)

:lol:
vi pour que sa tienne... j'en es pas fini...

sinon j'ai testé plein de truc sur ma DLL et rien marche... je comprend pas tous je crois... :bug:

Title: Re: Spacecraf3 et DLL
Post by: no matter on 15 May 2007, 23:17:58
Tu peux faire çà par le biais d'une touche dans le pire des cas si tu n'arrives pas à appliquer la méthode de
Korben:

if(key==OAPI_KEY_P):
{
   SetFuelMass (masse de fuel max en kg);
   return1;
}

Bien sûr çà ne sera pas automatique, il te faudra appuyer sur la touche P et chaque fois que tu l'utiliseras ton reservoir sera rerempli. Une solution temporaire qui n'est pas vraiment mieux que l'emploi du scenario editor.



Message modifié ( 15-05-2007 23:41 )
Title: Re: Spacecraf3 et DLL
Post by: Momo on 16 May 2007, 10:22:10
vi, vi, faut que je trouve la solus tous de même...
M'enfin merci pour l'idée!

Title: Re: Spacecraf3 et DLL
Post by: korben62 on 16 May 2007, 10:31:02
Dans
GetAttachmentStatus (payload_attachment)
payload_attachment c'est le handle de l'attachement  qu'il faut utiliser, pas l' Id

Title: Re: Spacecraf3 et DLL
Post by: korben62 on 16 May 2007, 10:36:24
tu utilise peut étre plusieurs réservoir ?

Title: Re: Spacecraf3 et DLL
Post by: Momo on 16 May 2007, 11:06:08
heum... c'est donc la causse du ctd...
j'ai fais sa comme sa:


le .h
Quote
protected:
ATTACHMENTHANDLE payload_attachment ;

le .cpp
Quote
void module1::clbkPostStep (double simt, double simdt, double mjd)
{
   if (GetAttachmentStatus (payload_attachment))
   {
   SetFuelMass(7500.0);
   }
        else
        {
        SetFuelMass(7500.0);
        }
}

... :bug:

Title: Re: Spacecraf3 et DLL
Post by: korben62 on 16 May 2007, 14:58:58
ah oui comme ça , ça risque pas de marcher
il te faut le createattachment
cpp

ATTACHMENTHANDLE CreateAttachment (
bool toparent,
const VECTOR3 &pos,
const VECTOR3 &dir,
const VECTOR3 &rot,
const char *id,
bool loose = false)  voir dans le SDK api reférence

regarde les exemples, shuttleA.cpp

Title: Re: Spacecraf3 et DLL
Post by: Momo on 16 May 2007, 15:54:59
oh yes!!!!!! mais bien sur!!!!!! voila sa marche maintenant!!!!!! (je dois etre bete....)
MERCI!!! j'ai pigé le truc!!!