Advertisement
Julian90

Camaras de seguridad.

Jul 27th, 2011
709
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.96 KB | None | 0 0
  1. /*
  2.     - Sistema de Camaras de Seguridad -
  3.     - Tipo: Base.
  4.     - Autor: [J]ulian.
  5.     - Para: sa-mp.com
  6. - Updates -
  7. 1.
  8.     Mejora en el código.
  9.     Utilización de expresión switch en la totalidad del código.
  10. 2.
  11.     Si la cámara está fija ( /camarafijar ) permite moverla en 360°, beta.
  12.     Tiempo Configurable, "#define TIEMPO_SEG time", en segundos.
  13. */
  14.  
  15. #include <a_samp>
  16.  
  17. new NumCamara[MAX_PLAYERS];
  18. new JugEnCamara[MAX_PLAYERS];
  19. new TimerCamara[MAX_PLAYERS];
  20. new TimerMover[MAX_PLAYERS];
  21. new CamaraFijada[MAX_PLAYERS];
  22. #define MAX_CAMARAS 10
  23. #define TIEMPO_SEG 5
  24.  
  25. public OnPlayerConnect(playerid)
  26. {
  27.     NumCamara[playerid] = 0; CamaraFijada[playerid] = 0;
  28.     JugEnCamara[playerid] = 0; TimerCamara[playerid] = 0;
  29. }
  30.  
  31. public OnPlayerCommandText(playerid, cmdtext[])
  32. {
  33.     if(!strcmp(cmdtext, "/camaras", true))
  34.     {
  35.         if(JugEnCamara[playerid] == 0)
  36.         {
  37.             TimerCamaras(playerid);
  38.             TimerCamara[playerid] = SetTimerEx("TimerCamaras", TIEMPO_SEG*1000, 1, "i", playerid);
  39.             JugEnCamara[playerid] = 1;
  40.             NumCamara[playerid] = 0;
  41.             SendClientMessage(playerid, -1, "* Has comenzado a ver la secuencia de camaras de seguridad.");
  42.             TogglePlayerControllable(playerid, 0);
  43.             return 1;
  44.         }
  45.         else if(JugEnCamara[playerid] == 1)
  46.         {
  47.             KillTimer(TimerCamara[playerid]);
  48.             JugEnCamara[playerid] = 0;
  49.             NumCamara[playerid] = 0;
  50.             CamaraFijada[playerid] = 0;
  51.             SendClientMessage(playerid, -1, "* Has finalizado de ver la secuencia de camaras de seguridad.");
  52.             SetCameraBehindPlayer(playerid);
  53.             TogglePlayerControllable(playerid, 1);
  54.             return 1;
  55.         }
  56.     }
  57.     if(!strcmp(cmdtext, "/camarafijar", true))
  58.     {
  59.         if(JugEnCamara[playerid] == 0) return SendClientMessage(playerid, -1, "* No estás mirando ninguna secuencia de cámaras.");
  60.         if(CamaraFijada[playerid] == 0)
  61.         {
  62.             KillTimer(TimerCamara[playerid]);
  63.             TimerMover[playerid] = SetTimerEx("MoverCamaras", 60, 1, "i", playerid);
  64.             SendClientMessage(playerid, -1, "* Has fijado la cámara en esta secuencia.");
  65.             CamaraFijada[playerid] = 1;
  66.             return 1;
  67.         }
  68.         else if(CamaraFijada[playerid] == 1)
  69.         {
  70.             CamaraFijada[playerid] = 0;
  71.             SendClientMessage(playerid, -1, "* Has reanudado la cámara en las secuencias.");
  72.             TimerCamaras(playerid);
  73.             TimerCamara[playerid] = SetTimerEx("TimerCamaras", TIEMPO_SEG*1000, 1, "i", playerid);
  74.             KillTimer(TimerMover[playerid]);
  75.             return 1;
  76.         }
  77.     }
  78.     if(!strcmp(cmdtext, "/camaraant", true))
  79.     {
  80.         SendClientMessage(playerid, -1, "* Has retrocedido la secuencia de las cámaras.");
  81.         TimerCamaras(playerid);
  82.     }
  83.     if(!strcmp(cmdtext, "/camarasig", true))
  84.     {
  85.         SendClientMessage(playerid, -1, "* Has avanzado la secuencia de las cámaras.");
  86.         NumCamara[playerid] -= 2;
  87.         TimerCamaras(playerid);
  88.     }
  89.     return 1;
  90. }
  91.  
  92. forward MoverCamaras(playerid);
  93. public MoverCamaras(playerid)
  94. {
  95.     if(CamaraFijada[playerid] == 1 && JugEnCamara[playerid] == 1)
  96.     {
  97.         new teclas, eje[2], Float:cam_x[3], Float:cam_y[3], Float:cam_z[3];
  98.         GetPlayerKeys(playerid, teclas, eje[0], eje[1]);
  99.         GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
  100.         GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
  101.         cam_x[2] = cam_x[0] + floatmul(cam_x[1], 3);
  102.         cam_y[2] = cam_y[0] + floatmul(cam_y[1], 3);
  103.         cam_z[2] = cam_z[0] + floatmul(cam_z[1], 3);
  104.         if(eje[0] > 0)
  105.         {
  106.             SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2], cam_z[2]-0.3);
  107.             GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
  108.             GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
  109.             return 1;
  110.         }
  111.         else if(eje[0]  < 0)
  112.         {
  113.             SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2], cam_z[2]+0.3);
  114.             GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
  115.             GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
  116.             return 1;
  117.         }
  118.         if(eje[1]  > 0)
  119.         {
  120.             SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2]-0.3, cam_z[2]);
  121.             GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
  122.             GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
  123.             return 1;
  124.         }
  125.         else if(eje[1]  < 0)
  126.         {
  127.             SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2]+0.3, cam_z[2]);
  128.             GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
  129.             GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
  130.             return 1;
  131.         }
  132.     }
  133.     return 1;
  134. }
  135.  
  136. forward TimerCamaras(playerid);
  137. public TimerCamaras(playerid)
  138. {
  139.     switch(NumCamara[playerid])
  140.     {
  141.         case 0:
  142.         {
  143.             SetPlayerCameraPos(playerid, 0, 0, 0);
  144.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  145.         }
  146.         case 1:
  147.         {
  148.             SetPlayerCameraPos(playerid, 0, 0, 0);
  149.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  150.         }
  151.         case 2:
  152.         {
  153.             SetPlayerCameraPos(playerid, 0, 0, 0);
  154.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  155.         }
  156.         case 3:
  157.         {
  158.             SetPlayerCameraPos(playerid, 0, 0, 0);
  159.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  160.         }
  161.         case 4:
  162.         {
  163.             SetPlayerCameraPos(playerid, 0, 0, 0);
  164.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  165.         }
  166.         case 5:
  167.         {
  168.             SetPlayerCameraPos(playerid, 0, 0, 0);
  169.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  170.         }
  171.         case 6:
  172.         {
  173.             SetPlayerCameraPos(playerid, 0, 0, 0);
  174.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  175.         }
  176.         case 7:
  177.         {
  178.             SetPlayerCameraPos(playerid, 0, 0, 0);
  179.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  180.         }
  181.         case 8:
  182.         {
  183.             SetPlayerCameraPos(playerid, 0, 0, 0);
  184.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  185.         }
  186.         case 9:
  187.         {
  188.             SetPlayerCameraPos(playerid, 0, 0, 0);
  189.             SetPlayerCameraLookAt(playerid, 0, 0, 0);
  190.         }
  191.     }
  192.     NumCamara[playerid]++;
  193.     new camara_str[14];
  194.     switch(NumCamara[playerid])
  195.     {
  196.         case 0 .. 9: format(camara_str, sizeof(camara_str), "~b~Camara 00%i", NumCamara[playerid]);
  197.         case 10 .. 99: format(camara_str, sizeof(camara_str), "~b~Camara 0%i", NumCamara[playerid]);
  198.         case 100 .. 999: format(camara_str, sizeof(camara_str), "~b~Camara %i", NumCamara[playerid]);
  199.     }
  200.     GameTextForPlayer(playerid, camara_str, 1000, 1);
  201.     if(NumCamara[playerid] > MAX_CAMARAS) return NumCamara[playerid] = 0;
  202.     return 1;
  203. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement