LucasRed

Teclas combinadas sem timer

Aug 3rd, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.04 KB | None | 0 0
  1. /*
  2.     Script para combinação de teclas sem timer. Sequência: A, B, C e D
  3.     Obs: Não testado.
  4. */
  5. A <- BindKey( true, 0x41 );
  6. B <- BindKey( true, 0x42 );
  7. C <- BindKey( true, 0x43 );
  8. D <- BindKey( true, 0x44 );
  9.  
  10. pKeys <- {};
  11.  
  12. function onPlayerJoin( player )
  13. {
  14.     pKeys.rawset( player.ID, { IsRunning = false, KeyA = false, KeyB = false, KeyC = false, KeyD = false, LastKey = null, Time = 0 } );
  15. }
  16.  
  17. function onPlayerPart( player, reason )
  18. {
  19.     pKeys.rawdelete( player.ID );
  20. }
  21.  
  22. function onKeyDown( player, bindID )
  23. {
  24.     switch ( bindID )
  25.     {
  26.         case A:
  27.         {
  28.             pKeys[ player.ID ]["KeyA"] = true;
  29.         }
  30.         break;
  31.         case B:
  32.         {
  33.             pKeys[ player.ID ]["KeyB"] = true;
  34.         }
  35.         break;
  36.         case C:
  37.         {
  38.             pKeys[ player.ID ]["KeyC"] = true;
  39.         }
  40.         break;
  41.         case D:
  42.         {
  43.             pKeys[ player.ID ]["KeyD"] = true;
  44.         }
  45.         break;
  46.         default: break;
  47.     }
  48. }
  49.  
  50. function onKeyUp( player, bindID )
  51. {
  52.     switch ( bindID )
  53.     {
  54.         case A:
  55.         {
  56.             if ( pKeys[ player.ID ]["LastKey"] == "A" ) return KeyInfo( player, 1 );
  57.             else
  58.             {
  59.                 pKeys[ player.ID ]["IsRunning"] = true;
  60.                 pKeys[ player.ID ]["KeyA"] = false;
  61.                 pKeys[ player.ID ]["LastKey"] = "A";
  62.                 pKeys[ player.ID ]["Time"] = time();
  63.                 MessagePlayer( "Combinacao iniciada!", player );
  64.             }
  65.         }
  66.         break;
  67.         case B:
  68.         {
  69.             if ( pKeys[ player.ID ]["IsRunning"] )
  70.             {
  71.                 if ( ( time() - pKeys[ player.ID ]["Time"] ) <= 3  )
  72.                 {
  73.                     if ( pKeys[ player.ID ]["LastKey"] == "B" ) return KeyInfo( player, 1 );
  74.                     else
  75.                     {
  76.                         pKeys[ player.ID ]["KeyB"] = false;
  77.                         pKeys[ player.ID ]["LastKey"] = "B";
  78.                         pKeys[ player.ID ]["Time"] = time();
  79.                     }
  80.                 }
  81.                 else return KeyInfo( player, 2 );
  82.             }
  83.         }
  84.         break;
  85.         case C:
  86.         {
  87.             if ( pKeys[ player.ID ]["IsRunning"] )
  88.             {
  89.                 if ( ( time() - pKeys[ player.ID ]["Time"] ) <= 3  )
  90.                 {
  91.                     if ( pKeys[ player.ID ]["LastKey"] == "C" ) return KeyInfo( player, 1 );
  92.                     else
  93.                     {
  94.                         pKeys[ player.ID ]["KeyB"] = false;
  95.                         pKeys[ player.ID ]["LastKey"] = "C";
  96.                         pKeys[ player.ID ]["Time"] = time();
  97.                     }
  98.                 }
  99.                 else return KeyInfo( player, 2 );
  100.             }
  101.         }
  102.         break;
  103.         case D:
  104.         {
  105.             if ( pKeys[ player.ID ]["IsRunning"] )
  106.             {
  107.                 if ( ( time() - pKeys[ player.ID ]["Time"] ) <= 3  )
  108.                 {
  109.                     if ( pKeys[ player.ID ]["LastKey"] == "C" ) return KeyInfo( player, 3 );
  110.                     else
  111.                     {
  112.                         pKeys[ player.ID ]["KeyB"] = false;
  113.                         pKeys[ player.ID ]["LastKey"] = "D";
  114.                         pKeys[ player.ID ]["Time"] = time();
  115.                     }
  116.                 }
  117.                 else return KeyInfo( player, 2 );
  118.             }
  119.         }
  120.         break;
  121.         default: break;
  122.     }
  123. }
  124.  
  125. function KeyInfo( player, msgtype )
  126. {
  127.     switch ( msgtype )
  128.     {
  129.         case 1:
  130.         {
  131.             MessagePlayer( "Tecla errada!", player );
  132.         }
  133.         break;
  134.         case 2:
  135.         {
  136.             MessagePlayer( "Voce foi lento ao digitar a combinacao de teclas.", player );
  137.         }
  138.         break;
  139.         case 3:
  140.         {
  141.             MessagePlayer( "Combinacao finalizada!", player );
  142.         }
  143.         break;
  144.         default: break;
  145.     }
  146.  
  147.     pKeys.rawset( player.ID, { IsRunning = false, KeyA = false, KeyB = false, KeyC = false, KeyD = false, LastKey = null, Time = 0 } );
  148. }
Add Comment
Please, Sign In to add comment