Detaljan opis problema: Imam 2 štoka ali mi se cini da su malo stara i spora sto ce tice koda. Ako se netko razumije volio bih da ga usavršite ili da barem pomognete
Dio skripte: Dolje
Neke slike/video za lakse dobivanje pomoci(neobavezno): Tnx
stock DMV(playerid)
{
new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:a;
new Float:dx, Float:dy;
new Float:tmpdis;
new Float:dist = SHOOT * SHOOT;
new player = -1;
new Float:angle;
new MaxPlayers = GetMaxPlayers();
GetPlayerPos(playerid, x1, y1, z1);
if(IsPlayerInAnyVehicle(playerid)) GetVehicleZAngle(GetPlayerVehicleID(playerid), a);
else GetPlayerFacingAngle(playerid, a);
for(new i = 0; i < MaxPlayers; i++)
{
if(IsPlayerConnected(i) && i != playerid)
{
GetPlayerPos(i, x2, y2, z2);
angle = 180.0 - atan2(x1-x2, y1-y2);
if(IsAngleInsideSector(a, angle, 15.0))
{
dx = x2-x1;
dx *= dx;
dy = y2-y1;
dy *= dy;
tmpdis = dx+dy;
if(dist > tmpdis)
{
dist = tmpdis;
player = i;
}
}
}
}
return player;
}
stock IsAngleInsideSector(Float:angle, Float:sectormid, Float:size)
{
new Float:tmp;
if(size > 180.0) return false;
while(angle < 0.0) angle += 360.0;
while(angle > 360.0) angle -= 360.0;
while(sectormid < 0.0) sectormid += 360.0;
while(sectormid > 360.0) sectormid -= 360.0;
tmp = sectormid + size;
tmp = sectormid - size;
tmp = sectormid + size;
tmp = sectormid - size;
while(tmp > 360.0) tmp -= 360.0;
while(tmp < 0.0) tmp += 360.0;
if(angle >= tmp && angle <= tmp) return true;
if(angle >= tmp && angle <= tmp) return true;
if(angle >= tmp && angle <= tmp) return true;
if(angle >= tmp && angle <= tmp) return true;
return false;
}
