Dan's Orbiter page

Orbiter Francophone => Création Orbiter Francophone => Topic started by: DanSteph on 10 September 2007, 13:59:57

Title: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 10 September 2007, 13:59:57

Cliquez le lien ci-dessous pour retourner au sommaire des "tutorials pour créer une DLL Orbiter"
http://orbiter.dansteph.com/forum/index.php?topic=6335.msg95352#msg95352


La SDK d'UMMU est disponible avec l'addon UMMU, une fois installé regarder dans le repertoire "doc" d'orbiter un exemple fonctionnel du SHuttlePB avec commentaires est fourni: http://orbiter.dansteph.com/index.php?disp=d

Cet exemple ne montre toutefois pas comment utiliser UMMU quand vous avez plusieurs dock, ce post est la pour combler cette lacune.


Pour utiliser UMMU dans votre addon avec plusieurs docks c'est facile, il faut juste permettre à l'utilisateur de définir le
dock actif pour UMMU et redéfinir à ce moment la position/detection de l'EVA pour qu'elle soit devant le dock. Accessoirement on peut *si c'est une station* redefinir aussi la position de la camera pour qu'elle montre l'exterieur du dock, voir comment ca marche sur l'ISS compatible UMMU disponible ici:
http://orbiter.dansteph.com/index.php?disp=dgIVMore&DId=31


Fonction UMMU requise

SetActiveDockForTransfer()
DefineAirLockShape()

Optionnel pour caméras:

SetCameraOffset();
SetCameraDefaultDirection();


Comment faire

Premierement déclarer une variable de votre classe qui contiendra le no de dock actif, donc dans le header de votre
projet:

Code: [Select]
int iActiveDockNumber;
Deuxiemement creer une nouvelle fonction dans votre projet qui sera responsable de redefinir la position d'un UMMU
en fonction du numéro de dock actif, accessoirement c'est le bon endroit pour redefinir une caméra.

Code: [Select]
[color=green]///////////////////////////////////////////////////////////////////////////////////////////
// SetUMMUAirlockPos - example with two dock
///////////////////////////////////////////////////////////////////////////////////////////[/color]
void MyAddon::SetUMMUAirlockPos(void)
{

int AirlockStatus=Crew.GetAirlockDoorState();
Crew.SetActiveDockForTransfer(iActiveDockNumber);

switch(iActiveDockNumber)
{
case 0:

Crew.DefineAirLockShape(AirlockStatus,-1,1,-6.8,-4.8,15,20);
Crew.SetMembersPosRotOnEVA(_V(0,-5.8,16.0),_V(0,0,0));
[color=green]//definissez ici la position de la camera pour ce dock[/color]
break;
case 1:
Crew.DefineAirLockShape(AirlockStatus,-1,1,-22.9,-17.9,-5,-2);
Crew.SetMembersPosRotOnEVA(_V(0,-18.9,-3.8 ),_V(-1.6,0,0));
[color=green]//definissez ici la position de la camera pour ce dock[/color]
break;
}
}


Dans clbkConsumeBufferedKey ou dans votre panel definissez les deux touches (ou les boutons) qui
permettrons à l'utilisateur de changer le dock actif:

Code: [Select]
// change active dock
if(key==OAPI_KEY_SUBTRACT)
{
if(iActiveDockNumber>0)
iActiveDockNumber--;
sprintf(SendFocusScreenMessage(),"Active dock number changed to: %i",iActiveDockNumber);
SetUMMUAirlockPos();
return 1;
}
//---------------------------------------------------------------------------
// change active dock
if(key==OAPI_KEY_ADD)
{
if(iActiveDockNumber<2)
iActiveDockNumber++;
sprintf(SendFocusScreenMessage(),"Active dock number changed to: %i",iActiveDockNumber);
SetUMMUAirlockPos();
return 1;
}


N'oubliez pas dans clbkSetClassCap d'initialiser votre variable dock actif et d'appeller la fonction pour que
UMMU sache ou sortir au lancement de votre addon:

Code: [Select]
iActiveDockNumber=0;
SetUMMUAirlockPos();


Voila, bon UMMUing !

Dan



Message modifié ( 18-09-2007 04:09 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 10 September 2007, 15:23:11
Holly cow ! Zats pretty cool !!! :)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: yoann on 10 September 2007, 15:37:05
j'ai vu sur la partie anglophone t'a fait un sujet épinglé, avec la liste des addon compatible UMMU, pourquoi pas faire
ca ici ? ou a la fin de ton tuto peut etre ?

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: no matter on 10 September 2007, 15:41:27
Çà me rappelle qu'il faut que je fasse çà sur l'ATV2!!

Quote
Holly cow ! Zats pretty cool !!!
Jeez, it rocks!!!



Message modifié ( 10-09-2007 15:42 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 10 September 2007, 16:04:52
Bon, va falloir que je fasse une mise à jour pour Ceres :)

Si je comprend bien, pour chaque docks (dans mon cas douze) il faut définir une "poche d'air", je voulais dire "Airlock" bien
sur 8)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 10 September 2007, 20:31:19
Salut c'est la quiche :badsmile:  (copyright Siriusfett)

Avec l'aide de mon ami momo il ne me reste que trois erreurs:

error C2065: 'gt0' : identificateur non déclaré
error C2065: 'lt2' : identificateur non déclaré

error C2660: 'MonAddon::SetCameraOffset' : la fonction ne prend pas 1 arguments

La dernière erreur me renvoie sur SetCameraOffset (_V(0,0,10)); dans classecap :wonder:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 10 September 2007, 20:49:22
Quote
siriusfett a écrit:
error C2065: 'gt0' : identificateur non déclaré
error C2065: 'lt2' : identificateur non déclaré

Ce serais pas un code html du forum ca ? :doubt:
Genre ca:
if(iActiveDockNumber>0)

qui après copié collé devient ca:

if(iActiveDockNumber& gt0)

Bizarre si je copie/colle dans mon projet ca me mets bien le code juste avec > et <

Quote
error C2660: 'MonAddon::SetCameraOffset' : la fonction ne prend pas 1 arguments
SetCameraOffset (_V(0,0,10));

Ca c'est juste normalement... z'auriez pas tripoté genre declarer cette fonction dans le header ? (alors que c'est une
fonction d'Orbiter)

Si vous z'ête bloqué envoyez moi les sources completes que je'investigue...

Dan



Message modifié ( 10-09-2007 21:02 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 10 September 2007, 21:59:44

Chez moi aussi ... Nickel le copié collé .... mais directement sur la page affichée.
Si tu fais le copier coller à partir de citer le message tu te retrouves avec les gt0 et compagnie.

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 11 September 2007, 00:13:26
effectivement, ça fonctionne mieux :)

J'ai virais void SetCameraOffset(void); dans mon header :top:

Il me reste 4 warning, mais ça compile...

 warning C4305: 'argument' : troncation de 'double' à 'float'
il me renvois sur cette ligne:

Crew.DefineAirLockShape(AirlockStatus,-1,1,-6.8,-4.8,15,20);

Je vais lui en foute moi de la troncation :badsmile:   

Me reste plus qu'a définir douze poches d'air :ptdr:



Message modifié ( 11-09-2007 00:18 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:05:32
Tu ne veux plus de warnings ?  :badsmile:
Utilise cette fonction ... ça te convertit une float en int ...



Code: [Select]
int ftoi(float flt)
{
    int i;
    _asm
    {
        mov  eax,flt; //charge la mémoire à laquelle tu veux acceder
        rcl  eax,1;   //shift vers la gauche pour enlever le signe
        mov  ebx,eax; //sauve l'acces
        mov  edx,4278190080; //nettoie le registre edx
        and  eax,edx; //recharge l'exposant
        shr  eax,24;
        sub  eax,7fh; //enlève 7fh(127) pour avoir la puissance actuelle
        mov  edx,eax; //sauve la valeur de la puissance
        mov  eax,ebx; //recharge depuis ebx
        rcl  eax,8;     //équilibre les 8 derniers bits qui contiennent la puissance
        mov  ebx,eax; //stocke le résultat
        mov  ecx, 1fh; //soustrait 17 h
        sub  ecx,edx;
        mov  edx,00000000h;
        cmp  ecx,0;
        je   loop2;
        shr  eax,1;
        or   eax,80000000h;        
loop1:    
        shr  eax,1; //shift (total bits - power bits);
        sub  ecx,1;
        add  edx,1;
        cmp  ecx,0;
        ja   loop1;
loop2:  
        mov  i, eax;        
   
//check sign +/-        
sign:
        mov  eax,flt;
        and  eax,80000000h;
        cmp  eax,80000000h;
        je     putsign;
    }

    return i;

putsign:
    return -i;
}

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 11 September 2007, 01:17:07
Tu ne m'aide pas beaucoup Pic :sad:, j'y pense tu ne travailler pas sur un spacecraft :wonder:

:lol:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:23:59
Quote
siriusfett a écrit:
Crew.DefineAirLockShape(AirlockStatus,-1,1,-6.8,-4.8,15,20);

Je vais lui en foute moi de la troncation :badsmile:   

Il attend des float et tu lui passe des doubles il te previent que ca peut ne pas marcher...
La ca iras sans warning, tu lui passe des floats: (un chiffre après le point et un f à la fin)

Code: [Select]
Crew.DefineAirLockShape(AirlockStatus,-1.0f,1.0f,-6.8f,-4.8f,15.0f,20.0f);

Après on peut critiquer pourquoi on doit ce faire ch.. à mettre de la levure dans le
pains et pas du sable mais pour le faire il faudrais déjà avoir bien compris le métier
(et dans ce cas on ne dirait plus ca) ;)

(je te rassure ca m'arrive de pester aussi, c'est le metier qui rentre :badsmile: )


Quote
picto a écrit:
Tu ne veux plus de warnings ?  :badsmile:
Utilise cette fonction ... ça te convertit une float en int ...

Cool, comme ca tout le monde mesure un metre ou deux metre... pratique pour les cartes d'identité ;)

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:27:02
Quote
siriusfett a écrit:
Tu ne m'aide pas beaucoup Pic :sad:, j'y pense tu ne travailler pas sur un spacecraft :wonder:

Ouais mais il est sur un bug depuis trois semaine: il veut
absolument qu'il mesure 1.5 metres et il en fait deux :ptdr:

Nan je rig.. et les gars non à deux sur un c'est pas symp... pas sur la tête nooon aaaahhhh

Dan



Message modifié ( 11-09-2007 01:27 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:27:07
La fonction en asm, c'est une déconnade, pas la fonction, mais la réponse ....
Vi, j'ai un bidule à faire .... j'arrête pas .... mais faut bien se défouler un peu ... ;)

Regarde comment est écrite la fonction de Dan ... ( infobulle )
Te demande t'elle des floats ou des doubles ?
Qu'est ce que te demande  le compilateur ?
Regarde le type d'écriture que tu lui balance au moment de l'appel ...
Compare les écritures d'une double et d'une float ...
Fais ton choix camarade ...

Perso, je m'en bat les sb ... de ce genre de warnings ( dans ce genre de cas ) ;)
On te demande pas une précision au micropoil de c.. prêt pour tes poches d'air ....

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:29:52

PPPffff .... je me casse pour faire une réponse intelligente et je me fais griller :sad:

Sur la tête !!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:30:08
Quote
picto a écrit:
Perso, je m'en bat les sb ... de ce genre de warnings ( dans ce genre de cas ) ;)
On te demande pas une précision au micropoil de c.. prêt pour tes poches d'air ....

Sans déconnade,outre le fait que tu peux manquer des warning plus sérieux
(a cause de ta liste qui s'allonge de plus en plus) ca peut  créer de vrais bug et
problèmes et c'est pas une question de précision.... vaudrait mieux regler tout
les warnings. (c'est simple en plus si on le fait tout de suite)

En plus c'est bô un truc qui compile sans aucun warning :love:

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:33:02
Quote
picto a écrit:
PPPffff .... je me casse pour faire une réponse intelligente et je me fais griller :sad:
Sur la tête !!!

Mheuu non allez viens la...

(http://orbiter.dansteph.com/screenshot/dansteph/bisous.jpg)

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:35:11

T'as de beaux yeux tu sais !!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:36:48
Quote
picto a écrit:
T'as de beaux yeux tu sais !!!

Mais mon atout principal c'est quand même mon ventre plats et soyeux ;)

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:37:58

Et ta bouche lippue !!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:38:54
Quote
picto a écrit:
Et ta bouche lippue !!!

Et mon pied charnu

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:41:08

Et ton air bourru !

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 11 September 2007, 01:43:44
Quote
DanSteph a écrit:
Quote
siriusfett a écrit:
Tu ne m'aide pas beaucoup Pic :sad:, j'y pense tu ne travailler pas sur un spacecraft :wonder:

Ouais mais il est sur un bug depuis trois semaine: il veut
absolument qu'il mesure 1.5 metres et il en fait deux :ptdr:

Dan

:lol:

Pas facile ça :ptdr:

Merci pour la réponse Dan :wor: moi j'aime pas les warning :)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 01:49:17

Quote
Merci pour la réponse Dan

Et moi, j'ai pas l'droit à un merci :sad:
PPPfffff .....

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:49:51
Quote
yoann a écrit:
j'ai vu sur la partie anglophone t'a fait un sujet épinglé, avec la liste des addon compatible UMMU, pourquoi pas faire
ca ici ? ou a la fin de ton tuto peut etre ?

Comme ca doit etre mis à jour régulièrement et que c'est ch... (donc j'aurais de la peine à le faire)
je prefère n'avoir qu'un fil à maintenir.  En plus c'est "in topic" dans "dan's addon" ici ce serait plutot
de la self promotion.

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 01:51:22
Quote
picto a écrit:
Quote
Merci pour la réponse Dan
Et moi, j'ai pas l'droit à un merci :sad:
PPPfffff .....

T'en veux toujours plus grand fou.. :badsmile:

Tient siriusfett , fait ton choix pour picto:
http://smileys.sur-la-toile.com/categorie6-Amour.html

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 11 September 2007, 02:29:41
Je suis ton plus grand fan Pic ;)

(http://img62.imageshack.us/img62/4185/cindyqf0.gif)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 02:33:38
Je rappelle qu'il y a des mineurs sur ce forum, allez faire vos cochonneries ailleurs :doubt:

Flatche <- douche froide :badsmile:

Dan



Message modifié ( 11-09-2007 02:34 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 02:40:13
Oh oui !!! :) C'est bon !!!

Brrrr .... 'tain de douche froide ...
Bon, ben redevenons sérieux puisque le patron l'exige ... :badsmile:

Ok pour les warnings, mais dans certains cas ...
Par exemple, sur une fonction de dessin avec GDI ...
J'écris ça ...

Data.dThrustMainOne=GetThrusterLevel (th_main[0]);
LineTo (hDC, 3+x, 98-Data.dThrustMainOne*73);
Sachant que GetThrusterLevel est forcément une double ...

Ca fonctionne mais j'ai évidamment un warning !
conversion de 'double' en 'int', perte possible de données
Evidamment que je veux un int à la fin ...
J'vois mal l'ordi dessinner sur 0.2 pixel ...

Et ou que je fasse la conversion, j'aurais un warning !



Message modifié ( 11-09-2007 03:06 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 11 September 2007, 02:58:11
Quote
picto a écrit:
Data.dThrustMainOne=GetThrusterLevel (th_main[0]);
LineTo (hDC, 3+x, 98-Data.dThrustMainOne*73);
Sachant que GetThrusterLevel est forcément une double ...

Ca fonctionne mais j'ai évidamment un warning !
conversion de 'double' en 'int', perte possible de données
Evidamment que je veux un int à la fin ...
J'vois mal l'ordi dessinner sur 0.2 pixel ...

Dans ce cas tu force le type implicitement, le compilo admettra que tu est grand et sais ce que tu fait...

LineTo veux un int comme parametre, t'a qu'a faire comme ca, tu rajoute (int) devant le *résultat* du calcul.

Code: [Select]
LineTo (hDC, 3+x, [color=blue](int)[/color](98-Data.dThrustMainOne*73));
Le résultat de la parenthese sera forcé au type int (tu perd les fractions si il y en a)
Faut quand meme ce gaffer juste ou tu le met ici ca fera pas la meme chose du tout:

Code: [Select]
LineTo (hDC, 3+x, 98-[color=blue](int)[/color]Data.dThrustMainOne*73);Le compilo gueule plus non plus mais si Data.dThrustMainOne=1.8 par exemple:

premier cas:  98-1.8*73=33  (33.4 converti en int, résultat probablement juste)
deuxieme cas: 98-2*73=48  (le 1.8 a été converti en int avant le calcul, plus du tout ce qu'on voulais)


Ca marche avec tout:

Code: [Select]
GetMyFloat([color=blue](float)[/color]iMonInt);
Dan



Message modifié ( 11-09-2007 03:05 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 11 September 2007, 03:16:54
(http://smileys.sur-la-toile.com/repository/Respect/thanksfortheinfo.jpg)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: Pagir on 11 September 2007, 05:33:58
Hé!

(http://smileys.sur-la-toile.com/repository/Surpris/surpris-yeux-crie.gif)
C'est cool, c'te banque de Smiley à insertion automatique!!!

Pagir

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 12 September 2007, 00:20:07
Bon je suis sur la bonne voie, j'ai défini deux poches d'air et je peux transférai mes mmu d'un DGIV à Ceres, par contre je
n'arrive pas à changer le dock actif, j'ai défini les touches 4 et 5 (elles fonctionnent) mais il ne me donne que le dock
zéro comme actif :wonder:

Question subsidiaire : comment je peux faire retourné mes mmu's dans leur Dg sans le dé docker ?

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 12 September 2007, 04:41:13
Quote
siriusfett a écrit:
Bon je suis sur la bonne voie, j'ai défini deux poches d'air et je peux transférai mes mmu d'un DGIV à Ceres, par
contre je
n'arrive pas à changer le dock actif, j'ai défini les touches 4 et 5 (elles fonctionnent) mais il ne me donne que le dock
zéro comme actif :wonder:

Question subsidiaire : comment je peux faire retourné mes mmu's dans leur Dg sans le dé docker ?


Sans voir le code impossible à dire, pour la deuxieme question simplement si tu fait une eva sur le dock actif le MMU
sera transferé si le dock est occupé par un vaisseau "UMMU"

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 12 September 2007, 12:39:31
J'ai trouvé pour les touches, c'est de ma faute :badsmile:   

if(iActiveDockNumber>2)

au lieu de :

if(iActiveDockNumber<2)

Par contre, quand je navigue avec les touches il me trouve trois docks actifs, je penser qu'il prenez en compte la poche
d'air que j'avais définie par défaut dans mon premier code mais non si je choisie le dock actif 1 ou 2 je fais mon EVA au
même endroit !!! :wonder:

Par contre si je transfert un mmu d'un DGIV à Ceres pas de problème après je le sélectionne dans Ceres et la je le re
transfert sur le dock occupé par le DG il se retrouve à côté, la ou j'ai définie la position dans mon code pour l'EVA.

Je continue mon investigation  ;)

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: no matter on 12 September 2007, 13:57:40
Quote
Par contre, quand je navigue avec les touches il me trouve trois docks actifs, je penser qu'il prenez en compte
la poche d'air que j'avais définie par défaut dans mon premier code mais non si je choisie le dock actif 1 ou 2 je fais
mon EVA au même endroit !!

Les EVA sont directement définies par la position où elle vont se produire, il suffit qu'un port soit actif avec son airlock ouvert. Par erreur, deux ports peuvent se retrouver avec un EVA qui sort au même endroit.

Normalement, tous tes Crew.DefineAirLockShape(...) et Crew.SetMembersPosRotOnEVA(...) doivent se
retrouver dans la nouvelle fonction SetUMMUAirlockPos avec un CASE pour chacun.

Aucun ne doit subsister dans clbkSetClassCaps, en revanche n'oublie pas iActiveDockNumber=0; qui doit s'y
trouver pour définir le port par défaut (çà renvoit au CASE 0 défini dans la nouvelle fonction).

Fais F4 ->"Object info", pour voir tous les ports de ton vaisseau courant. Tu verras vite si tu en as effectivement trois
de définis.
Vérifie aussi que tu n'as pas oublié la ligne Crew.SetActiveDockForTransfer(iActiveDockNumber);

En tout cas, sans voir le code, c'est un peu compliqué de trouver ce qui ne va pas.



Message modifié ( 12-09-2007 14:05 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 12 September 2007, 16:53:39
J'y et pensé à clbkSetClassCaps mais je n'ai pas tous désactivé, je vais continué à faire des essais, merci pour l'astuce F4
je n'y pense jamais.

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 13 September 2007, 16:25:34
Y'a t'il moyen de "forcer" le slot attribué à un astro ?
Je pensais naïvement que l'ordre de déclaration des AddCrewMember allait
créer les astro dans des slots incrémentés dans le même ordre que la déclaration.
Mais visiblement, c'est plus compliqué que ça ...


Dans l'ordre...

   Crew.AddCrewMember("Andy Penck",41,70,72,"Sci" );
   Crew.AddCrewMember("Anna Blume",27,70,58,"Ast" );

      srf[5] = oapiCreateSurface (LOADBMP (IDB_TETE01));
      srf[6] = oapiCreateSurface (LOADBMP (IDB_TETE02));

IDB_TETE01          BITMAP        ".\\Tetes\\AndyPenck.bmp"
IDB_TETE02          BITMAP        ".\\Tetes\\AnnaBlume.bmp"

Et pourtant, quand je fais ça ...

char *Name=Crew.GetCrewNameBySlotNumber(SelectedUmmuMember);
sprintf (cbuf, "Astro %i \"%s\" ",SelectedUmmuMember,Name);
oapiBlt (surf, srf[5+SelectedUmmuMember], 0, 20, 0, 0, 100, 100);

Le nom affiché ne correspond pas du tout à la bitmap concernée :sad:
J'obtiens

Astro 0 "Richard Long" avec  AndyPenck.bmp
Astro 1 "Eric Wall" avec AnnaBlume.bmp

Par contre, ce qui est bizarre c'est que le slot correspond
bien à la bitmap que je voulais mais pas le nom de l'astro.... 8o

Il y aurait bien une méthode plus fiable qui serait de comparer les chaines de caractères obtenues
par GetCrewNameBySlotNumber(int Slot) avec le titre de la bitmap que j'ai pris soin de nommer de
la même façon que l'astro .... mais je ne sais pas faire ça .... :sad:



Message modifié ( 13-09-2007 16:38 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 13 September 2007, 19:13:09
Non les slots bougent...

1 patrick
2 albert
3 sonia

suprime albert ca donne:

1 patrick
2 sonia
3 autretype


Donc seul moyen, comparaison avec par exemple un tableau qui contient
les noms et tu compare avec le nom du crew à afficher.

Comme les equipages sont censé bougé attribuer un "slot" a un nom aurait été idiot.

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 13 September 2007, 20:03:24
Je ne sais pas comment "comparer" des chaines de caractères :sick:
Euuuuhhh .... en fait , c'est pas très compliqué .... :sick:



Message modifié ( 13-09-2007 20:12 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 13 September 2007, 20:17:06
strcmp (si tu pensais à autre chose ;) )

pour le tableau de chaine regarde le header de Ummu.
Je crois qu'il y a d'ailleurs le genre que tu veux dans l'exemple shuttlepb
a la fin: un tableau de chaine comparé au misc ID qui decide quel
spacesuit avoir.

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 13 September 2007, 20:49:05

Ca y est, c'est fini ... avec strcmp ... c'est nickel ...
C'est bien Missiou d'avoir pensé à faire des GetByName ... :wor:

Puis je suggérer deux trucs à ajouter plus tard à la structure des MMUs ...
Le genre  ... utile pour faire une photo d'identité au hasard aux invités à bord.
Et la taille ... pour que j'ai pas à redessiner un bouton sur Tochope :badsmile:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 13 September 2007, 21:07:33
Quote
picto a écrit:
Puis je suggérer deux trucs à ajouter plus tard à la structure des MMUs ...
Le genre  ... utile pour faire une photo d'identité au hasard aux invités à bord.
Et la taille ... pour que j'ai pas à redessiner un bouton sur Tochope :badsmile:

A ma connaissance il n'y a aucun addon qui integre UMMU via un panel
(à part le tiens à venir)

En plus la carte d'identité c'est une spécificité sympa mais qui a trop de
défauts pour être généralisée. Dès qu'un nom est différent il n'y a plus
de carte ce qui rend les échanges entre addons ou les changements
de noms moins souple.

Et attendre que les gens fournissent des cartes en jpg à mon avis...

En bref c'est souple pour peu de boulot (UMMu epargne entre un et deux mois de boulot
à un programmeur confirmé), ceux qui ont envie peuvent à peu de frais (normalement, strcmp
c'est du basique) ce faire une chouette interface. Pour les autres l'interface doit rester simple.
(un progeux confirmé doit pouvoir ajouter UMMU en 20mn et 3-6h avec des features genre
carte d'id)

C'est toujours une balance, plus on complique l'interface en lui donnant des possibilités
plus il y a de risque que les gens ne l'utilisent pas car trop "touffue", la compliquer
pour des truc hyper specifique n'est pas une bonne idée.

Quel loghorrée ;)

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 13 September 2007, 21:21:35

Oui, je n'avais pas vu les choses sous cet angle ... la simplicité ...

Il est vrai qu'en bossant un peu je parviens à ajouter des trucs sympas à l'interface.
Pas aussi vite que les progueux pros par contre ... :sad:
Pour les invités, il y aura un "sorry no photo available for
this member" sur le display pour la première version ...

Mais en tout cas, MMU et OrbiterSound sont deux super programmes
pour faire pas mal de wow effet à peu de frais de prog ...

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 14 September 2007, 00:04:13
J'ai trouvé pour mon problème de sélection de dock actif, la solution se trouvé dans clbkConsumeBufferedKey :pfff:

J'ai une question  pour le moment :)

Quand je veux transférer un mmu d'un DGIV dans ma station, je dois d'abord faire une EVA de ma station vers le dock ou se trouve mon DG pour pouvoir ensuite faire mon transfert ?? Je pense que c'est une histoire de dock actif, pourtant si je
sélectionne le dock actif à partir de ma station je devrais pouvoir faire ensuite mon transfert à partir du DG :wonder:

Je repart dans mes investigations.  ;)



Message modifié ( 14-09-2007 00:08 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: no matter on 14 September 2007, 05:03:26
Quote
Quand je veux transférer un mmu d'un DGIV dans ma station, je dois d'abord faire une EVA de ma station vers
le dock ou se trouve mon DG pour pouvoir ensuite faire mon transfert ?? Je pense que c'est une histoire de dock actif,
pourtant si je sélectionne le dock actif à partir de ma station je devrais pouvoir faire ensuite mon transfert à partir du
DG.

Non, t'es sûr qu'il y a quelqu'un dans ton DGIV?
Normalement, çà devrait transférer, tu n'as même pas besoin d'aller activer le port de ta station (par contre pour
revenir dans le DGIV, il faudra).
:trucdeouf:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 14 September 2007, 11:20:01
Il y a bien du monde, :) je pense que le problème vient peut être de mon initialisation, car sur le doc 0 ça fonctionne
nickel, de toute façon pour le moment je n'ai pas défini toutes mes poches d'air.
Dans le genre bordélique, mon code se pose là    :badsmile:



Message modifié ( 14-09-2007 11:45 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 15 September 2007, 17:26:22
En farfouillant dans MMU je vois tous ces case pour returned.

Code: [Select]
#define TRANSFER_TO_DOCKED_SHIP_OK 2
#define EVA_OK 1
#define ERROR_NO_ONE_ON_BOARD 0
#define ERROR_AIRLOCK_CLOSED -1
#define ERROR_DOCKED_SHIP_HAVE_AIRLOCK_CLOSED                  -2
#define ERROR_DOCKED_SHIP_IS_FULL -3
#define ERROR_CREW_MEMBER_NOT_FOUND -4  
#define ERROR_DOCKEDSHIP_DONOT_USE_UMMU -5
#define ERROR_MISC_ERROR_EVAFAILED -6

Quelle tambouille fais tu pour returned ?
J'aimerais ajouter des case à l'interface ...
Et, si c'est possible juste en modifiant un peu la fonction qui gère ces
define, ce serait plus clean que par des séries interminables de if ...else
et autres else if



Message modifié ( 15-09-2007 17:28 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 15 September 2007, 18:02:22
si tu me dis pourquoi tu veux faire ca je pourrais etre plus precis dans ma réponse...

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 15 September 2007, 18:12:41
Code: [Select]
#define ERROR_NO_CREW_SELECTED -7
#define ERROR_CREW_PULSE_TOO_HIGH                                -8
#define ERROR_CREW_IS_EATING                                     -9

Etc ... Etc ...
Pour rendre l'équipage actif ...
Mais je ne parle pas de modifier MMU, juste de savoir si je peux développer
l'interface plus tard une fois que les MMUs sont dans Boulinium ...

Tu me diras que je pourrais me faire une petite fonction interne avec ma propre
tambouille par slot number ou par name et faire des case tout simples ou l'eva est
ou n'est pas possible.

Mais bon, vu qu'une fonction existe déjà, je me disais que peut être il était très simple de rajouter ces case ...



Message modifié ( 15-09-2007 19:46 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 15 September 2007, 19:20:23
en fait il ne faut pas "complexifier" la couche UMMU mais develloper une nouvelle couche en dessus,
comme les peaux d'un oignon en fait... la gestion de vie ce fera avec ta nouvelle couche qui ce servira
pour les tache plus "basique" comme EVA et transfert de la couche "low level" UMMU.

UMMU est lui même composé de deux couches: une couche très low level qui s'occupe
des détails et une couche high level qui est la SDK que vous connaissez.

Je sais pas si c'est clair ? :wonder:

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 15 September 2007, 19:55:12
Si si ... je vois bien l'image de la couche.
Comme ce qui se passe sur le panel, panel par défaut première couche.
Seconde couche, un panel travaillé mais le panel travaillé se sert des fonctionnalités
du panel de base comme les MFDS ou quelques boutons dans le genre attitude .

Mais en fait, j'ai un truc super simple à faire.
Une structure pour MMU quand il est dans Boulinium ;
Genre Mange, dort, travaille, trop stressé ... etc ...
Et un tableau dont la taille est le MaxSeatAvailable pour stocker
les états de chaque MMU en fonction d'actions.

Pour rendre ça attractif et jouable c'est une autre histoire, mais la base est simple.



Message modifié ( 15-09-2007 19:58 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 15 September 2007, 20:09:51
Quote
picto a écrit:
Mais en fait, j'ai un truc super simple à faire.
Une structure pour MMU quand il est dans Boulinium ;
Genre Mange, dort, travaille, trop stressé ... etc ...

Cela dis.. une bonne gestion de vie qui soit autre chose que de
la poudre au yeux ou buggé ca peut prendre un bon mois...
Sinon ce n'est qu'un affichage assez inintéressant car sans
interactivité au final... "x fait caca" "x joue à la marelle"

Je dis ca je dis rien mais il me semble...comment dire ? :siffle:

:badsmile:

Dan
"raba-joie"



Message modifié ( 15-09-2007 20:37 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 15 September 2007, 21:37:11

PPPfffff ...  :sad:
J'ai pas dit que j'allais faire tout de suite ...
Dan .... Ejected !!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 16 September 2007, 06:27:58
Quote
picto a écrit:
J'ai pas dit que j'allais faire tout de suite ...

Ca avait pas l'air évident au début :badsmile:

Mais bon je veux pas géner non plus hein...

Dan
"Ejected"
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 16 September 2007, 16:41:34
Quote
Dan a rajouté ça ....
Ca avait pas l'air évident au début :badsmile:


Quote
Alors que j'avais dit ça un peu plus haut .... :siffle:

Mais je ne parle pas de modifier MMU, juste de savoir si je peux développer
l'interface plus tard une fois que les MMUs sont dans Boulinium ...

donc ...
Dan .... Warped !!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 16 September 2007, 21:36:46
Quote
picto a écrit:
donc ...
Dan .... Warped !!!

Laisse tomber les pilules rose et essaie les carottes peut etre... ? :badsmile:

Dan
"warped"



Message modifié ( 16-09-2007 21:41 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: Momo on 16 September 2007, 21:55:26
Quote
DanSteph a écrit:
Quote
picto a écrit:
donc ...
Dan .... Warped !!!

Laisse tomber les pilules rose et essaie les carottes peut etre... ? :badsmile:

Dan
"warped"

:wonder: :turning: :ptdr:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 16 September 2007, 22:37:00
Depuis que je me suis mis aux carottes j'ai envie de faire
une gestion des collisions beaucoup, beaucoup plus tard ! :badsmile:

Dan .... Light speeded!!!

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 16 September 2007, 22:52:15
Ca a toujours été une idée ca... un intérieur ou tu *peux* te balader
sur une base au sol c'est pas dur... en orbite c'est un peu plus
coton mais pas impossible... J'ai déjà ma petite idée la dessus,
faudrais quelques tests pour voir "comment ca donnerais"...

Mais bon faudrais aussi un intérieur intteressant psqeu sinon
faire "boing" "boing" contre les parois ca va 5mn niveau interet...

Tu va vers le siege, touche, click attaché, tu te detache, va vers la consoles
du fond, touche, tu accede au panel "vie" tu va ailleurs,
Si detaché et accéleration tu "tombe" te casse une jambe et la un autre
peut ce détacher il t'amene à la salle d'operation, touche, instruments,
radiographie, platres etc etc...

En bref plein d'idée d'addons pour 2019 :badsmile:

Dan



Message modifié ( 16-09-2007 23:00 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 16 September 2007, 23:34:04

Ben .... faudrait commencer maintenant ! :badsmile:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 17 September 2007, 00:49:44
C'est prévu: "in space platre simulator 1.0" (sortie prévue 1019) :badsmile:

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 17 September 2007, 00:58:13
Quote
DanSteph a écrit:
 (sortie prévue 1019)
Dan

1019 ? :wonder:
Après qui ?

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 17 September 2007, 01:06:59
Quote
picto a écrit:
1019 ? :wonder:
Après qui ?

Abus de pilule rose ? :wonder:
Bon à ma décharge (ah c'est bon) j'ai lu quelques articles de créationnistes juste
avant, ca explique que je me suis cru revenu en l'an 1000 :badsmile:

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 17 September 2007, 06:41:23
J'ai plus d'pppilllluuuulllllleeesss !!!

(http://img35.picoodle.com/img/img35/9/9/16/f_025Jupiterm_467acaf.jpg)



Message modifié ( 17-09-2007 06:42 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 19 September 2007, 11:52:07
J'ai progresser dans ma mise à jour, mais il reste pas mal de problèmes, je peux transfère un mmu du DG à Ceres, mais juste
un, si je veux en transférais un autre à la suite (not possible) de plus je n'arrive pas a faire rentré mon capitaine dans
sont DG
 
Quote
Dans mon header:

       int iActiveDockNumber;
   void clbkSetClassCaps_UMMu(void);   
   int SelectedUmmuMember;            
   int UmmuSdKInitReturnCode;         
   char cOurMessage[1000];
   char *SendFocusScreenMessage();   
   int EvaCrewMemberWithStandardSpacesuit(char* CrewName);
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Quote
void MonAddon::clbkSetClassCaps_UMMu(void)

   iActiveDockNumber=0;
    SetUMMUAirlockPos();
    UmmuSdKInitReturnCode=Crew.InitUmmu(GetHandle());   
    float UMmuVersion=Crew.GetUserUMmuVersion();
    Crew.DefineAirLockShape(TRUE,-600,600,-600,600,-600,600);
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Quote
int MonAddon::clbkConsumeBufferedKey

if(key==OAPI_KEY_3)
   {
      Crew.SetActiveDockForTransfer(1);
      sprintf(SendFocusScreenMessage(),"EVA Hatch selected");
      return 1;
   }
   // change active dock
   if(key==OAPI_KEY_4)
   {
      if(iActiveDockNumber>1)
      iActiveDockNumber--;
      sprintf(SendFocusScreenMessage(),"Active dock number changed to: %i",iActiveDockNumber);
      SetUMMUAirlockPos();
      return 1;
   }
   //---------------------------------------------------------------------------
   // change active dock
   if(key==OAPI_KEY_5)
   {
      if(iActiveDockNumber<12)
      iActiveDockNumber++;
      sprintf(SendFocusScreenMessage(),"Active dock number changed to: %i",iActiveDockNumber);
      SetUMMUAirlockPos();
      return 1;
   }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Quote
void MonAddon::clbkSetClassCaps (FILEHANDLE cfg)

        SelectedUmmuMember=0;
   clbkSetClassCaps_UMMu();
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Quote
void MonAddon::SetUMMUAirlockPos(void)

int AirlockStatus=Crew.GetAirlockDoorState();
   Crew.SetActiveDockForTransfer(iActiveDockNumber);
   
   switch(iActiveDockNumber)
   {
   case 0:   
      Crew.DefineAirLockShape(AirlockStatus,5.0f,115.0f,530.0f,630.0f,5.0f,-65.0f);         
      Crew.SetMembersPosRotOnEVA(_V(85,565,-42),_V(-1.5,-3,0));   
      SetCameraOffset (_V(85,600,-42));
      SetCameraDefaultDirection(_V(1.0,0.0,0.0));
      break;

:help:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: no matter on 19 September 2007, 12:40:34
Juste un petit truc qui n'est pas la cause de ton problème mais je trouve étonnant que tu utilise la touche 3
pour activer ton dock n°1 pour UMMU.

Rien ne t'empêche de placer
sprintf(SendFocusScreenMessage(),"EVA Hatch selected"); avec les définitions camera et position ummu
dans un CASE listés dans  switch(iActiveDockNumber){...}

Sinon, dans clbkSetClassCaps_UMMu, il ne manque pas un :
Crew.SetMaxSeatAvailableInShip(x) avec x étant le nombre de personnes pouvant rentrer dans la station.



Message modifié ( 19-09-2007 12:41 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 19 September 2007, 13:08:51
Quote
no matter a écrit:
Juste un petit truc qui n'est pas la cause de ton problème mais je trouve étonnant que tu utilise la touche 3
pour activer ton dock n°1 pour UMMU.

Je fais des essais ;)

Quote
Rien ne t'empêche de placer
sprintf(SendFocusScreenMessage(),"EVA Hatch selected"); avec les définitions camera et position ummu
dans un CASE listés dans switch(iActiveDockNumber){...}

comme ça ? :

Quote
case 0:   
      Crew.DefineAirLockShape(AirlockStatus,5.0f,115.0f,530.0f,630.0f,5.0f,-65.0f);         
      Crew.SetMembersPosRotOnEVA(_V(85,565,-42),_V(-1.5,-3,0));   
      SetCameraOffset (_V(85,600,-42));
      SetCameraDefaultDirection(_V(1.0,0.0,0.0));
      sprintf(SendFocusScreenMessage(),"EVA Hatch selected");
      break;
[/b]

Quote
Sinon, dans clbkSetClassCaps_UMMu, il ne manque pas un :
Crew.SetMaxSeatAvailableInShip(x) avec x étant le nombre de personnes pouvant rentrer dans la station.

ça ne résout pas mon problème :sad:



Message modifié ( 19-09-2007 13:09 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: no matter on 19 September 2007, 13:18:20
Quote
comme ça ? :

case 0:
Crew.DefineAirLockShape(AirlockStatus,5.0f,115.0f,530.0f,630.0f,5.0f,-65.0f);
Crew.SetMembersPosRotOnEVA(_V(85,565,-42),_V(-1.5,-3,0));
SetCameraOffset (_V(85,600,-42));
SetCameraDefaultDirection(_V(1.0,0.0,0.0));
sprintf(SendFocusScreenMessage(),"EVA Hatch selected");
break;
Oui et çà évite d'avoir une touche requise en plus. Il s'agit juste de mettre les bonnes infos pour la position de la
caméra et pour la position de sortie de l'ummu en fonction de la position de ton hatch.

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 19 September 2007, 15:42:23
Quote
siriusfett a écrit:
iActiveDockNumber=0;
SetUMMUAirlockPos();
UmmuSdKInitReturnCode=Crew.InitUmmu (GetHandle());
float UMmuVersion=Crew.GetUserUMmuVersion();
Crew.DefineAirLockShape(TRUE,-600,600,-600,600,-600,600);

En général les inits ca va avant toutes choses... la ton SetUMMUAirlock ne fait vraisemblablement
rien UMMU n'est pas encore initialisé.

bouges les lignes en rouge en dessous, ca ira mieux. En passant tu peux supprimer
"Crew.DefineAirLockShape(TRUE,-600,600,-600,600,-600,600);"

J'ai l'impression que tu comprend pas grand chose a ce que fait le code je me trompe ? :)


Dan



Message modifié ( 19-09-2007 15:50 )
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 19 September 2007, 16:11:24
Quote
DanSteph a écrit:
Quote
siriusfett a écrit:
iActiveDockNumber=0;
SetUMMUAirlockPos();
UmmuSdKInitReturnCode=Crew.InitUmmu (GetHandle());
float UMmuVersion=Crew.GetUserUMmuVersion();
Crew.DefineAirLockShape(TRUE,-600,600,-600,600,-600,600);

En général les inits ca va avant toutes choses... la ton SetUMMUAirlock ne fait vraisemblablement
rien UMMU n'est pas encore initialisé.

bouges les lignes en rouge en dessous, ca ira mieux. En passant tu peux supprimer
"Crew.DefineAirLockShape(TRUE,-600,600,-600,600,-600,600);"

J'ai l'impression que tu comprend pas grand chose a ce que fait le code je me trompe ? :)


Dan

M**** je suis démasqué, moi qui voulais faire illusion  :badsmile:

effectivement, ça marche mieux :) par contre si je supprime la ligne que tu me dis il refuse le transfert du DG vers Ceres
(not compatible mmu) :wonder:

je peux maintenant transféré plusieurs mmu, mon code contenait bien la ligne "Crew.SetMaxSeatAvailableInShip(40)" 40
correspondant au nombre de mmu déjà présent dans Ceres :badsmile:

Je n'arrive pas non plus à placer les caméras comme tu la fais sur l'ISS j'ai beau les retournés dans tous les sens rien à
faire :wall:

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: DanSteph on 19 September 2007, 16:15:26
Quote
siriusfett a écrit:
Je n'arrive pas non plus à placer les caméras comme tu la fais sur l'ISS j'ai beau les retournés dans tous les sens rien
à faire :wall:

Si t'est vraiment bloqué envoie moi le projet complet, je regarde et je te dis

Dan
Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: siriusfett on 19 September 2007, 16:30:21
Oui je vais te le faire parvenir, ça fonctionne bizarrement, quelque fois il me dit qu'il n'y personne à bord de Ceres alors
qu'elle contient 40 mmu. Je ne peux pas lâcher un code aussi bâcler, il a besoin d'un bon coup de balai :badsmile: et ça me
permettra de repartir sur de bonne base pour ma nouvelle station.

Title: Re: [tuto] programmer UMMU avec plusieurs docks
Post by: picto on 30 September 2007, 03:57:56
Encore des bricoles à régler sur MMu et ce devrait être bon, y compris panel et affichages.

J'ai un truc assez bizarre à la création de MMU.
Sur ces trois images, on voit MMU sortant par trois sas différents et les mouvements qu'il fait après sa création sans rien toucher ni sur Irridium ni sur MMU
dans un laps de temps équivalent ( a peu près ) pour les trois cas.
J'ai l'impression que c'est lié à la distance au COG du Vessel origine mais je n'ai rien fait dans le code MMU qui puisse
déclencher ces mouvements relatifs ...

Et même si c'est lié au mouvement de Irridium, MMU devrait suivre normalement non ? :wonder
étrange ...

Le dock le plus avant ( 50 mètres du cog )
(http://img39.picoodle.com/img/img39/9/9/29/f_024Jupiterm_5c2afe0.jpg)

30 mètres du cog
(http://img39.picoodle.com/img/img39/9/9/29/f_025Jupiterm_fef46cc.jpg)

5 mètres  du cog
(http://img39.picoodle.com/img/img39/9/9/29/f_026Jupiterm_1a38503.jpg)



Message modifié ( 30-09-2007 12:44 )