Advertisement
GArtem

ProxDetector Test

Oct 13th, 2013
185
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.68 KB | None | 0 0
  1. public OnGameModeInit()
  2. {
  3.     new count;
  4.     count = GetTickCount();
  5.     for(new i = 0; i < 5000; i++)
  6.     {
  7.         ProxDetector(30.0, 0, "Text", COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  8.     }
  9.     printf("by me %d", GetTickCount() - count);
  10.    
  11.     count = GetTickCount();
  12.     for(new i = 0; i < 5000; i++)
  13.     {
  14.     ProxDetector_OK(30.0, 0, "Text", COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  15.     }
  16.     printf("OKStyle %d", GetTickCount() - count);
  17.  
  18.     count = GetTickCount();
  19.     for(new i = 0; i < 50000; i++)
  20.     {
  21.         ProxDetector(30.0, 0, "Text", COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  22.     }
  23.     printf("by me %d", GetTickCount() - count);
  24.    
  25.     count = GetTickCount();
  26.     for(new i = 0; i < 50000; i++)
  27.     {
  28.         ProxDetector_OK(30.0, 0, "Text", COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
  29.     }
  30.     printf("by OKStyle %d", GetTickCount() - count);
  31.     return 1;
  32. }
  33.  
  34. stock ProxDetector(Float:range, playerid, text[], Color1, Color2, Color3, Color4, Color5)
  35. {
  36.         new Float: Pos[3], Float: Radius;
  37.         GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  38.         for(new i = 0; i < GetMaxPlayers(); i++)
  39.         {
  40.                 if(GetPlayerVirtualWorld(playerid) == GetPlayerVirtualWorld(i))
  41.                 {
  42.                     Radius = GetPlayerDistanceFromPoint(i, Pos[0], Pos[1], Pos[2]);
  43.                     if (Radius < range / 16) SendClientMessage(i, Color1, text);
  44.                     else if(Radius < range / 8) SendClientMessage(i, Color2, text);
  45.                     else if(Radius < range / 4) SendClientMessage(i, Color3, text);
  46.                     else if(Radius < range / 2) SendClientMessage(i, Color4, text);
  47.                     else if(Radius < range) SendClientMessage(i, Color5, text);
  48.                 }
  49.         }
  50.         return 1;
  51. }
  52.  
  53. stock ProxDetector_OK(Float:radius = 30.0, playerid, text[], col1 = 0xCECECEFF, col2 = 0xB8B7B7FF, col3 = 0x999999FF, col4 = 0x6B6B6BFF, col5 = 0x434343FF)
  54. {
  55.     new Float:x, Float:y, Float:z, virtualworld = GetPlayerVirtualWorld(playerid), interior = GetPlayerInterior(playerid);
  56.     GetPlayerPos(playerid, x, y, z);
  57.     for(new i = GetMaxPlayers() - 1; i != -1; i--)
  58.     {
  59.         if(virtualworld != GetPlayerVirtualWorld(i) || interior != GetPlayerInterior(i)) continue;
  60.         if(IsPlayerInRangeOfPoint(i, radius / 16, x, y, z)) SendClientMessage(i, col1, text);
  61.         else if(IsPlayerInRangeOfPoint(i, radius / 8, x, y, z)) SendClientMessage(i, col2, text);
  62.         else if(IsPlayerInRangeOfPoint(i, radius / 4, x, y, z)) SendClientMessage(i, col3, text);
  63.         else if(IsPlayerInRangeOfPoint(i, radius / 2, x, y, z)) SendClientMessage(i, col4, text);
  64.         else if(IsPlayerInRangeOfPoint(i, radius, x, y, z)) SendClientMessage(i, col5, text);
  65.     }
  66.     return 1;
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement