Advertisement
ricop522

[PAWN] Sistema de escutas

Aug 27th, 2011
293
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.08 KB | None | 0 0
  1. enum escuta_info {
  2.     eTipo,
  3.     eUsada,
  4.     Float:ePosX,
  5.     Float:ePosY,
  6.     Float:ePosZ,
  7.     escCarro,
  8. }
  9. #define MAX_ESCUTAS 10
  10.  
  11. new escutaInfo[MAX_ESCUTAS][escuta_info];
  12. new eID = 0, eString[0x80];
  13.  
  14. #define TIPO_NENHUM 0
  15. #define TIPO_LUGAR 1
  16. #define TIPO_CARRO 2
  17.  
  18. stock adicionarEscuta( playerid, tipo ) {
  19.     if ( eID == MAX_ESCUTAS )
  20.         return SendClientMessage(playerid, COLOR_LIGHTBLUE, " Máximo de escutas excedida. ");
  21.  
  22.     if ( tipo == TIPO_CARRO )
  23.     {
  24.         ++eID;
  25.         escInfo[eID][eCarro] == GetPlayerVehicleID(playerid);
  26.         escutaInfo[eID][eUsada] = 1;
  27.         escutaInfo[eID][eTipo] = 1;
  28.     }
  29.     else if ( tipo == TIPO_LUGAR )
  30.     {
  31.         ++eID;
  32.         new Float:Pos[3];
  33.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  34.         escutaInfo[eID][ePosX] = Pos[0];
  35.         escutaInfo[eID][ePosY] = Pos[1];
  36.         escutaInfo[eID][ePosZ] = Pos[2];
  37.         escutaInfo[eID][eUsada] = 1;
  38.         escutaInfo[eID][escTipo] = TIPO_LUGAR;
  39.     }
  40.     format(escutaString, sizeof(escutaString), "* Você colocou uma escuta no seu local.");
  41.     SendClientMessage(playerid, COLOR_GREEN, escutaString);
  42.     OnPlayerCommandText(playerid, "/ame joga um objeto no chão.");
  43.     return 1;
  44. }
  45.  
  46.  
  47. stock removerEscuta( playerid, escutaid ) {
  48.     if ( escutaInfo[escutaid][eUsada] == 0 )
  49.         return SendCliendMessage(playerid, COLOR_LIGHTBLUE, " Escuta não está sendo usada !");
  50.     if(!IsPlayerInRangeOfPoint(playerid, 15.0, escutaInfo[escutaid][ePosX], escutaInfo[escutaid][ePosY], escutaInfo[escutaid][ePosZ] && escutaInfo[escutaid][eTipo] == TIPO_LUGAR)
  51.         return SendClientMessage(playerid, COLOR_LIGHTBLUE, " Você não está no local da escuta.");
  52.     else if ( escutaInfo[escutaid][eTipo] == TIPO_CARRO && !IsPlayerInVehicle(playerid, escutaInfo[escutaid][eCarro])
  53.         return SendClientMessage(playerid, COLOR_LIGHTBLUE, " Desculpe, você não está no carro da escuta. ");
  54.     --eID;
  55.     escutaInfo[escutaid][eUsada] = 0;
  56.     escutaInfo[escutaid][eTipo] = TIPO_NENHUM;
  57.     escutaInfo[escutaid][ePosX] = -1;
  58.     escutaInfo[escutaid][ePosY] = -1;
  59.     escutaInfo[escutaid][ePosZ] = -1;
  60.     escutaInfo[escutaid][eCarro] = INVALID_CAR_ID;
  61.     return 1;
  62. }
  63. stock listarEscutas(playerid) {
  64.     new escutaArea[25], escutaLoop = 0;
  65.     for ( ; escutaLoop < MAX_ESCUTAS; ++escutaLoop) {
  66.         if( escutaInfo[j][eUsada] != 0 )
  67.             GetXYZZone(escutaArea, escutaInfo[j][ePosX], escutaInfo[j][ePosY]);
  68.             format ( escutaString, sizeof(escutaString), "(%i) Local: %s [%s]", escutaArea, ( escutaInfo[j][eTipo] == TIPO_CARRO ? ( "Veículo" ) : ( "Lugar" ) ) );
  69.             SendClientMessage(playerid, COLOR_LIGHTBLUE, escutaString);
  70.         }
  71.     }
  72.     return 1;
  73. }
  74. stock localizarEscuta( playerid, escutaid ) {
  75.     if ( escutaid > MAX_ESCUTAS || escutaInfo[escutaid][eUsada] == 0 )
  76.         return SendClientMessage(playerid, COLOR_LIGHTBLUE, " Escuta inválida ou não está sendo usada. ");
  77.  
  78.     SetPlayerCheckpoint(playerid, escutaInfo[escutaid][ePosX],escutaInfo[escutaid][ePosY],escutaInfo[escutaid][ePosZ], 5.0);
  79.     return 1;
  80. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement