Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- - Sistema de Camaras de Seguridad -
- - Tipo: Base.
- - Autor: [J]ulian.
- - Para: sa-mp.com
- - Updates -
- 1.
- Mejora en el código.
- Utilización de expresión switch en la totalidad del código.
- 2.
- Si la cámara está fija ( /camarafijar ) permite moverla en 360°, beta.
- Tiempo Configurable, "#define TIEMPO_SEG time", en segundos.
- */
- #include <a_samp>
- new NumCamara[MAX_PLAYERS];
- new JugEnCamara[MAX_PLAYERS];
- new TimerCamara[MAX_PLAYERS];
- new TimerMover[MAX_PLAYERS];
- new CamaraFijada[MAX_PLAYERS];
- #define MAX_CAMARAS 10
- #define TIEMPO_SEG 5
- public OnPlayerConnect(playerid)
- {
- NumCamara[playerid] = 0; CamaraFijada[playerid] = 0;
- JugEnCamara[playerid] = 0; TimerCamara[playerid] = 0;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- if(!strcmp(cmdtext, "/camaras", true))
- {
- if(JugEnCamara[playerid] == 0)
- {
- TimerCamaras(playerid);
- TimerCamara[playerid] = SetTimerEx("TimerCamaras", TIEMPO_SEG*1000, 1, "i", playerid);
- JugEnCamara[playerid] = 1;
- NumCamara[playerid] = 0;
- SendClientMessage(playerid, -1, "* Has comenzado a ver la secuencia de camaras de seguridad.");
- TogglePlayerControllable(playerid, 0);
- return 1;
- }
- else if(JugEnCamara[playerid] == 1)
- {
- KillTimer(TimerCamara[playerid]);
- JugEnCamara[playerid] = 0;
- NumCamara[playerid] = 0;
- CamaraFijada[playerid] = 0;
- SendClientMessage(playerid, -1, "* Has finalizado de ver la secuencia de camaras de seguridad.");
- SetCameraBehindPlayer(playerid);
- TogglePlayerControllable(playerid, 1);
- return 1;
- }
- }
- if(!strcmp(cmdtext, "/camarafijar", true))
- {
- if(JugEnCamara[playerid] == 0) return SendClientMessage(playerid, -1, "* No estás mirando ninguna secuencia de cámaras.");
- if(CamaraFijada[playerid] == 0)
- {
- KillTimer(TimerCamara[playerid]);
- TimerMover[playerid] = SetTimerEx("MoverCamaras", 60, 1, "i", playerid);
- SendClientMessage(playerid, -1, "* Has fijado la cámara en esta secuencia.");
- CamaraFijada[playerid] = 1;
- return 1;
- }
- else if(CamaraFijada[playerid] == 1)
- {
- CamaraFijada[playerid] = 0;
- SendClientMessage(playerid, -1, "* Has reanudado la cámara en las secuencias.");
- TimerCamaras(playerid);
- TimerCamara[playerid] = SetTimerEx("TimerCamaras", TIEMPO_SEG*1000, 1, "i", playerid);
- KillTimer(TimerMover[playerid]);
- return 1;
- }
- }
- if(!strcmp(cmdtext, "/camaraant", true))
- {
- SendClientMessage(playerid, -1, "* Has retrocedido la secuencia de las cámaras.");
- TimerCamaras(playerid);
- }
- if(!strcmp(cmdtext, "/camarasig", true))
- {
- SendClientMessage(playerid, -1, "* Has avanzado la secuencia de las cámaras.");
- NumCamara[playerid] -= 2;
- TimerCamaras(playerid);
- }
- return 1;
- }
- forward MoverCamaras(playerid);
- public MoverCamaras(playerid)
- {
- if(CamaraFijada[playerid] == 1 && JugEnCamara[playerid] == 1)
- {
- new teclas, eje[2], Float:cam_x[3], Float:cam_y[3], Float:cam_z[3];
- GetPlayerKeys(playerid, teclas, eje[0], eje[1]);
- GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
- GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
- cam_x[2] = cam_x[0] + floatmul(cam_x[1], 3);
- cam_y[2] = cam_y[0] + floatmul(cam_y[1], 3);
- cam_z[2] = cam_z[0] + floatmul(cam_z[1], 3);
- if(eje[0] > 0)
- {
- SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2], cam_z[2]-0.3);
- GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
- GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
- return 1;
- }
- else if(eje[0] < 0)
- {
- SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2], cam_z[2]+0.3);
- GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
- GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
- return 1;
- }
- if(eje[1] > 0)
- {
- SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2]-0.3, cam_z[2]);
- GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
- GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
- return 1;
- }
- else if(eje[1] < 0)
- {
- SetPlayerCameraLookAt(playerid, cam_x[2], cam_y[2]+0.3, cam_z[2]);
- GetPlayerCameraPos(playerid, cam_x[0], cam_y[0], cam_z[0]);
- GetPlayerCameraFrontVector(playerid, cam_x[1], cam_y[1], cam_z[1]);
- return 1;
- }
- }
- return 1;
- }
- forward TimerCamaras(playerid);
- public TimerCamaras(playerid)
- {
- switch(NumCamara[playerid])
- {
- case 0:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 1:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 2:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 3:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 4:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 5:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 6:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 7:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 8:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- case 9:
- {
- SetPlayerCameraPos(playerid, 0, 0, 0);
- SetPlayerCameraLookAt(playerid, 0, 0, 0);
- }
- }
- NumCamara[playerid]++;
- new camara_str[14];
- switch(NumCamara[playerid])
- {
- case 0 .. 9: format(camara_str, sizeof(camara_str), "~b~Camara 00%i", NumCamara[playerid]);
- case 10 .. 99: format(camara_str, sizeof(camara_str), "~b~Camara 0%i", NumCamara[playerid]);
- case 100 .. 999: format(camara_str, sizeof(camara_str), "~b~Camara %i", NumCamara[playerid]);
- }
- GameTextForPlayer(playerid, camara_str, 1000, 1);
- if(NumCamara[playerid] > MAX_CAMARAS) return NumCamara[playerid] = 0;
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement