Advertisement
blankkor

Script Request by MatelJoker

Apr 4th, 2012
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 2.22 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #define MAX_RADIOS 50
  4. #define COLOR_GREY 0x33aa33FF
  5. enum RADIOX
  6.     {
  7.     rObject,
  8.     rURL[128]
  9.     }
  10. new Radio[MAX_RADIOS][RADIOX];
  11. new Radio_Index;
  12. stock GetXYInFrontOfPlayer(playerid, &Float:x, &Float:y, Float:distance)
  13. {
  14.     new Float:a;
  15.     GetPlayerPos(playerid, x, y, a);
  16.     GetPlayerFacingAngle(playerid, a);
  17.     if (GetPlayerVehicleID(playerid))
  18.     {
  19.         GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
  20.     }
  21.     x += (distance * floatsin(-a, degrees));
  22.     y += (distance * floatcos(-a, degrees));
  23. }
  24. public OnPlayerUpdate(playerid)
  25.     {
  26.     new Float:X,Float:Y,Float:Z,Float:dist;
  27.     for(new i = 0;i<MAX_RADIOS;i++)
  28.         {
  29.         if(Radio[i][rObject] == INVALID_OBJECT_ID) {}
  30.         else
  31.             {
  32.                
  33.                 GetObjectPos(Radio[i][rObject],X,Y,Z);
  34.                 dist = GetPlayerDistanceFromPoint(playerid,X,Y,Z);
  35.                 if(dist <= 30)
  36.                     {
  37.                     PlayAudioStreamForPlayer(playerid,Radio[i][rURL]);
  38.                     }
  39.                 else
  40.                     {
  41.                     StopAudioStreamForPlayer(playerid);
  42.                     }
  43.             }
  44.         }
  45.     }
  46. CMD:radio(playerid,params[])
  47.     {
  48.     if(!strlen(params))
  49.         {
  50.         return SendClientMessage(playerid,COLOR_GREY,"USAGE: /radio [url]");
  51.         }
  52.     new Float:X,Float:Y,Float:Z,Float:Xi,Float:Yi;
  53.     for(new i = 0;i<MAX_RADIOS;i++)
  54.         {
  55.         if(Radio[i][rObject] == INVALID_OBJECT_ID) {}
  56.         else
  57.             {
  58.                 GetObjectPos(Radio[i][rObject],X,Y,Z);
  59.                 if(IsPlayerInRangeOfPoint(playerid,X,Y,Z,30.0))
  60.                     {
  61.                     return SendClientMessage(playerid,COLOR_GREY,"Too close to another radio.");
  62.                     }
  63.             }
  64.         }
  65.     GetPlayerPos(playerid,Xi,Yi,Z);
  66.     GetXYInFrontOfPlayer(playerid,X,Y,3);
  67.     Radio[Radio_Index][rObject] = CreateObject(3031,X,Y,Z,0,0,0);
  68.     strmid(Radio[Radio_Index][rURL],params,0,strlen(params));
  69.     Radio_Index++;
  70.     return 1;
  71.     }
  72. CMD:remove(playerid)
  73.     {
  74.         new Float:X,Float:Y,Float:Z;
  75.         for(new i = 0;i<MAX_RADIOS;i++)
  76.         {
  77.         if(Radio[i][rObject] == INVALID_OBJECT_ID) {}
  78.         else
  79.             {
  80.                 GetObjectPos(Radio[i][rObject],X,Y,Z);
  81.                 if(IsPlayerInRangeOfPoint(playerid,X,Y,Z,30.0))
  82.                     {
  83.                     DestroyObject(Radio[i][rObject]);
  84.                     strdel(Radio[i][rURL],0,strlen(Radio[i][rURL]));
  85.                     Radio_Index--;
  86.                     return SendClientMessage(playerid,COLOR_GREY,"Radio removed");
  87.                     }
  88.             }
  89.         }
  90.         return SendClientMessage(playerid,COLOR_GREY,"No radios in range.");
  91.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement