home *** CD-ROM | disk | FTP | other *** search
/ CyberMycha 2008 January / Cybermycha 1_2008.iso / drappa / setup.exe / {app} / game / levels / Simus_mini / scripts / mycha.lcc < prev    next >
Encoding:
Text File  |  2005-08-18  |  2.6 KB  |  97 lines

  1. //JB - przygotowanie skryptu finalnego - proszΩ o logowanie ew. zmian
  2.  
  3. uint action_return           = 0x1c;    /* enter on main keyboard */
  4.  
  5. import void LevelDecreaseLifesBy( uint ) from "Level";
  6.  
  7. geCRenderableObject* g_pThis = 0;
  8. geCBaseNode* g_pNode = 0;
  9.  
  10. uint COLLIZION_EMPTY = 0;
  11. uint COLLIZION_DEFAULT = 1;
  12. uint g_pCollided = 0;
  13. uint g_bVisible = 0;
  14.  
  15. bool g_bUnderground = false;
  16. bool g_bDuringUndergrounding = false;
  17.  
  18. float g_fUnderDistance = 0.0f;
  19. CVector3 g_vecLastCheckPoint;
  20. int ActiveSocket = 0;
  21.  
  22. //Wykrywanie i obs│uga kolizji
  23. float fTimeAfterCollision = 0.0f;
  24. bool bIsFirstTimeCollided = true;
  25.  
  26. //Zmienne do strzelania
  27. geCBaseNode* bullet = 0;
  28.  
  29. //Zmienne do gaszenia £wiat│a
  30. CSceneInterface* pScene = 0;
  31. CLightInterface *pLight = 0;
  32.  
  33.  
  34. void geCBaseNode_ProcessMessage( geMessage* pMsg )
  35. {
  36.   if( g_pCollided == COLLIZION_EMPTY && pMsg->MessageID == 100 ) //colizja
  37.   {
  38.     g_pCollided = COLLIZION_DEFAULT;
  39.     //Wykrywanie sprawcy kolizji
  40.     geCBaseNode* pEnemyNode = GameCore->GetRootNode()->GetNodeByID( pMsg->SenderID );
  41.     geCRenderableObject* pEnemy = GetRenderableObject(pEnemyNode);
  42.     //Zmieniszamy liczbΩ ┐yµ
  43.     LevelDecreaseLifesBy( 1 );
  44.   }
  45. }
  46.  
  47. void geCRenderableObject_Update( geSUpdateArgument* a_pArg )
  48. {
  49.   if( g_pNode->IsFistTimeUpdate() == TRUE )
  50.   {
  51.     g_pCollided = COLLIZION_EMPTY;
  52.     return;
  53.   }
  54.   
  55.   if( g_pCollided != COLLIZION_EMPTY && bIsFirstTimeCollided )
  56.   {
  57.     bIsFirstTimeCollided = false;
  58.     GetPlayerObject(g_pNode)->SetPosition( g_vecLastCheckPoint );
  59.     g_pThis->StopMusiqueByName( String("collide") );
  60.     g_pThis->PlayMusiqueByName( String("collide") );
  61.     fTimeAfterCollision = a_pArg->m_fCurrentTime;
  62.     g_pThis->GetMesh(0)->SetVisibility( g_bVisible, 0, 0 );
  63.     if( g_bVisible == 1 )
  64.       g_bVisible = 0;
  65.     else
  66.       g_bVisible = 1;
  67.   }
  68.   else if( g_pCollided != COLLIZION_EMPTY && !bIsFirstTimeCollided )
  69.   { //mamy kolizje
  70.     g_pThis->GetMesh(0)->SetVisibility( g_bVisible, 0, 0 );
  71.     if( g_bVisible == 1 )
  72.       g_bVisible = 0;
  73.     else
  74.       g_bVisible = 1;
  75.     if( a_pArg->m_fCurrentTime - fTimeAfterCollision > 3.0f )
  76.     {
  77.       bIsFirstTimeCollided = true;
  78.       g_pCollided = COLLIZION_EMPTY;
  79.       g_bVisible = 1;
  80.       g_pThis->GetMesh(0)->SetVisibility( g_bVisible, 1, 1 );
  81.       g_pThis->StopMusiqueByName( String("collide") );
  82.     }
  83.   }
  84.  
  85.   if( GameCore->CheckForKey(action_return) )
  86.   {
  87.           GameCore->SendMessage( String("jump"), g_pNode->GetID(), g_pNode->GetID(), 8, 0 );
  88.   }
  89. }
  90.  
  91.  
  92. void main( geCBaseNode* a_pNode )
  93. {
  94.     g_pNode = a_pNode;
  95.     g_pThis = GetRenderableObject( a_pNode );
  96. }
  97.