public OnPlayerUpdate(playerid)
{
if(!BoomboxStream[playerid])
{
for(new i, j = GetMaxPlayers(); i < j; i++)
{
if(IsPlayerConnected(i))
{
if(Boombox[i])
{
if(IsPlayerInRangeOfPoint(playerid, 30, bpos[i][0], bpos[i][1], bpos[i][2]))
{
PlayAudioStreamForPlayer(playerid, BoomboxURL[i], bpos[i][0], bpos[i][1], bpos[i][2], 30, 1);
BoomboxPlayer[playerid] = i;
BoomboxStream[playerid] = 1;
SendClientMessage(playerid, COLOR_GREY, " You are listening to music coming out of a nearby boombox.");
}
}
}
}
}
else
{
new i = BoomboxPlayer[playerid];
if(!IsPlayerInRangeOfPoint(playerid, 30, bpos[i][0], bpos[i][1], bpos[i][2]))
{
BoomboxStream[playerid] = 0;
BoomboxPlayer[playerid] = -1;
StopAudioStreamForPlayer(playerid);
SendClientMessage(playerid, COLOR_GREY, " You have went far away from the boombox.");
}
}
if(GetPlayerMoney(playerid) != PCash[playerid]) {
SetPlayerMoney(playerid,PCash[playerid]);
}
if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER && Speedlimit[playerid])
{
new a, b, c;
GetPlayerKeys(playerid, a, b ,c);
if(a == 8 && GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) > Speedlimit[playerid])
{
new newspeed = GetVehicleSpeed(GetPlayerVehicleID(playerid), 0) - Speedlimit[playerid];
ModifyVehicleSpeed(GetPlayerVehicleID(playerid), -newspeed);
}
}
if(PayDayAuth[playerid] == 1)
{
PayDayAuth[playerid] = 0;
PayDay(playerid);
}
return 1;
}
----------------------------------------------------------------------------------------------------------------------------
| Type | Name | Calls | Self Time (%)| Self Time (sec.)| Total Time (%)| Total Time (sec.)|
----------------------------------------------------------------------------------------------------------------------------
| native | GetPlayerPos | 23011 | 0.07 | 0.089 | 0.03 | 0.089 |
----------------------------------------------------------------------------------------------------------------------------
| native | floatadd | 186659 | 0.55 | 0.711 | 0.22 | 0.711 |
----------------------------------------------------------------------------------------------------------------------------
| native | floatsub | 556361 | 1.66 | 2.140 | 0.66 | 2.140 |
----------------------------------------------------------------------------------------------------------------------------
| normal | operator<=(Float:,Float:) | 92694 | 1.14 | 1.475 | 0.56 | 1.825 |
----------------------------------------------------------------------------------------------------------------------------
| native | strlen | 18229 | 0.05 | 0.062 | 0.02 | 0.062 |
----------------------------------------------------------------------------------------------------------------------------
| native | strmid | 176688 | 0.48 | 0.614 | 0.19 | 0.614 |
----------------------------------------------------------------------------------------------------------------------------
| native | IsPlayerConnected | 13214 | 0.04 | 0.056 | 0.02 | 0.056 |
----------------------------------------------------------------------------------------------------------------------------
| normal | operator>=(Float:,Float:) | 1741654 | 31.92 | 41.180 | 15.95 | 51.920 |
----------------------------------------------------------------------------------------------------------------------------
| native | floatcmp | 2480804 | 8.61 | 11.101 | 3.41 | 11.101 |
----------------------------------------------------------------------------------------------------------------------------
| native | floatstr | 34884 | 0.11 | 0.137 | 0.04 | 0.137 |
----------------------------------------------------------------------------------------------------------------------------
| normal | split | 11063 | 2.19 | 2.829 | 1.06 | 3.459 |
----------------------------------------------------------------------------------------------------------------------------
| native | fread | 11064 | 0.11 | 0.137 | 0.04 | 0.137 |
----------------------------------------------------------------------------------------------------------------------------
| native | floatmul | 370779 | 1.14 | 1.469 | 0.45 | 1.469 |
----------------------------------------------------------------------------------------------------------------------------
| native | strval | 130102 | 0.36 | 0.459 | 0.14 | 0.459 |
----------------------------------------------------------------------------------------------------------------------------
It would be much easier to simply use the streamer plugin to create areas. I don't know if it would help the CPU but it should more efficient than using OnPlayerUpdate.
You can attach dynamic areas to players too so that should be perfect for your use! Incognito's Streamer Plugin |
native CreateDynamicCircle(Float:x, Float:y, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicSphere(Float:x, Float:y, Float:z, Float:size, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicCube(Float:minx, Float:miny, Float:minz, Float:maxx, Float:maxy, Float:maxz, worldid = -1, interiorid = -1, playerid = -1);
native CreateDynamicPolygon(Float:points[], Float:minz = -FLOAT_INFINITY, Float:maxz = FLOAT_INFINITY, maxpoints = sizeof points, worldid = -1, interiorid = -1, playerid = -1);
native DestroyDynamicArea(areaid);
native IsValidDynamicArea(areaid);
native TogglePlayerDynamicArea(playerid, areaid, toggle);
native TogglePlayerAllDynamicAreas(playerid, toggle);
native IsPlayerInDynamicArea(playerid, areaid);
native IsPlayerInAnyDynamicArea(playerid);
native IsPointInDynamicArea(areaid, Float:x, Float:y, Float:z);
native IsPointInAnyDynamicArea(Float:x, Float:y, Float:z);
native AttachDynamicAreaToObject(areaid, objectid, type = STREAMER_OBJECT_TYPE_DYNAMIC, playerid = INVALID_PLAYER_ID);
native AttachDynamicAreaToPlayer(areaid, playerid);
native AttachDynamicAreaToVehicle(areaid, vehicleid);
native DestroyAllDynamicAreas();
native CountDynamicAreas();
public OnPlayerConnect(playerid)
{
if(playerid == 6)
{
Kick(playerid);
}
return 1;
}