garfield

[FS]: Easy Object Finder

Apr 28th, 2012
361
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.28 KB | None | 0 0
  1. #include a_samp
  2.  
  3.  
  4. // Configurações
  5. #define SHOW_DEBUG                  true                                        // Esta definição serve para exibir debugging, caso queira destaivar, coloque "false".
  6. #define SEMSIBILITY                 Float:5.0                                   // Default semsibilty
  7.  
  8.  
  9. new
  10.     ObjectToDestroy             =   -1,
  11.     PlayerObjectTime            =   -1,
  12.     TemObject                   =   -1
  13. ;
  14.  
  15.  
  16. forward iOnPlayerUpdate(playerid); public iOnPlayerUpdate(playerid)
  17. {
  18.  
  19.     new
  20.         string[128],
  21.         Float: pX,
  22.         Float: pY,
  23.         Float: pZ
  24.     ;
  25.    
  26.     for(new i; i != 2000; ++i) // 2000  == MAX_OBJECTS
  27.     {
  28.         GetObjectPos(i, pX, pY, pZ);
  29.  
  30.         if(IsPlayerInRangeOfPoint(playerid, SEMSIBILITY, pX, pY, pZ))
  31.         {
  32.             ObjectToDestroy = i;
  33.             format(string, sizeof(string),"Você está perto do Objeto ID:%i Pos: %f, %f, %f | Digite /delobject para deleta-lo.", i, pX, pY, pZ);
  34.             SendClientMessage(playerid, -1, string);
  35.            
  36.             DestroyPickup(TemObject);
  37.             TemObject = CreatePickup(1318, 23, pX, pY, pZ + 1.10, GetPlayerVirtualWorld(playerid));
  38.            
  39.  
  40.             #if SHOW_DEBUG == true
  41.             printf(string);
  42.             #endif
  43.            
  44.             break;
  45.         }
  46.     }
  47.    
  48.     PlayerObjectTime = SetTimerEx("iOnPlayerUpdate", 1000 * 2, false, "i", playerid);
  49.     return true;
  50. }
  51.  
  52.  
  53.        
  54. public OnPlayerCommandText(playerid, cmdtext[])
  55. {
  56.     if(!strcmp(cmdtext,"/delobject", true))
  57.     {
  58.         if(ObjectToDestroy != -1)
  59.         {
  60.             static
  61.                 Float: pX,
  62.                 Float: pY,
  63.                 Float: pZ
  64.             ;
  65.            
  66.            
  67.             GetObjectPos(ObjectToDestroy,  pX, pY, pZ);
  68.            
  69.             if(!IsPlayerInRangeOfPoint(playerid, 20.0, pX, pY, pZ))
  70.                 return SendClientMessage(playerid, -1,#Você tem que estar perto do objeto!);
  71.  
  72.             KillTimer(PlayerObjectTime);
  73.            
  74.            
  75.             DestroyPickup(TemObject);
  76.             DestroyObject(ObjectToDestroy);
  77.                
  78.            
  79.            
  80.             SendClientMessage(playerid, -1, #Deletado!);
  81.            
  82.             #if SHOW_DEBUG == true
  83.             {
  84.                 printf("OBJETO DELETADO: [ ID: %i | POSX: %f | POSY: %f | POSZ: %f ]", ObjectToDestroy, pX, pY, pZ);
  85.             }
  86.             #endif
  87.         }
  88.         else
  89.         {
  90.             SendClientMessage(playerid, -1, #Você nao está perto de nenhum objeto);
  91.         }
  92.         return true;
  93.     }
  94.  
  95.     if(!strcmp(cmdtext,"/ver", true))
  96.     {
  97.         iOnPlayerUpdate(playerid);
  98.         return 1;
  99.     }
  100.    
  101.     return false;
  102.    
  103. }
Add Comment
Please, Sign In to add comment