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: [tuto] programmer UMMU avec plusieurs docks  (Read 26613 times)

0 Members and 1 Guest are viewing this topic.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #50 - 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


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #51 - 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 )

Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #52 - 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 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #53 - 15 September 2007, 21:37:11

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


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #54 - 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"


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #55 - 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 !!!


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #56 - 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 )


Offline Momo

  • Legend
  • ******
  • Posts: 2682
  • Karma: 1
Reply #57 - 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:



Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #58 - 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!!!


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #59 - 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 )


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #60 - 16 September 2007, 23:34:04

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


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #61 - 17 September 2007, 00:49:44
C'est prévu: "in space platre simulator 1.0" (sortie prévue 1019) :badsmile:

Dan


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #62 - 17 September 2007, 00:58:13
Quote
DanSteph a écrit:
 (sortie prévue 1019)
Dan

1019 ? :wonder:
Après qui ?


Pic

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #63 - 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


Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #64 - 17 September 2007, 06:41:23
J'ai plus d'pppilllluuuulllllleeesss !!!





Message modifié ( 17-09-2007 06:42 )

Pic

Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #65 - 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:



Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #66 - 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 )

------------

no matter.

Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #67 - 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 )


Offline no matter

  • Legend
  • ******
  • Posts: 2826
  • Karma: 1
Reply #68 - 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.


------------

no matter.

Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #69 - 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 )


Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #70 - 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:



Offline DanSteph

  • Administrator
  • Legend
  • *****
  • Posts: 15407
  • Karma: 256
  • Hein, quoi !?
    • FsPassengers
Reply #71 - 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


Offline siriusfett

  • Legend
  • ******
  • Posts: 968
  • Country: France fr
  • Karma: 5
Reply #72 - 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.



Offline picto

  • Legend
  • ******
  • Posts: 5014
  • Country: France fr
  • Karma: 24
  • Criiii Crii Crii
Reply #73 - 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 )


30 mètres du cog


5 mètres  du cog




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

« Last Edit: 30 September 2007, 03:57:56 by picto »
Pic