Dan's Orbiter page
Orbiter Francophone => Création Orbiter Francophone => Topic started 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 )
-
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:)
-
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
-
Merci!
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...
-
if (GetAttachmentStatus (payload_attachment))
setfuelmass(xx)
else
setfuelmass(xx)
:)
-
:)
j'étais parti plus loin moi...
Merci!
:)
-
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...)
-
T'a mis des vis toi aussi ?
:)
-
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:
-
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 )
-
vi, vi, faut que je trouve la solus tous de même...
M'enfin merci pour l'idée!
-
Dans
GetAttachmentStatus (payload_attachment)
payload_attachment c'est le handle de l'attachement qu'il faut utiliser, pas l' Id
-
tu utilise peut étre plusieurs réservoir ?
-
heum... c'est donc la causse du ctd...
j'ai fais sa comme sa:
le .h
protected:
ATTACHMENTHANDLE payload_attachment ;
le .cpp
void module1::clbkPostStep (double simt, double simdt, double mjd)
{
if (GetAttachmentStatus (payload_attachment))
{
SetFuelMass(7500.0);
}
else
{
SetFuelMass(7500.0);
}
}
... :bug:
-
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
-
oh yes!!!!!! mais bien sur!!!!!! voila sa marche maintenant!!!!!! (je dois etre bete....)
MERCI!!! j'ai pigé le truc!!!