Skripta koju koristim: Majne
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[4];
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[0] = sectormid + size;
tmp[1] = sectormid - size;
tmp[2] = sectormid + size;
tmp[3] = sectormid - size;
while(tmp[2] > 360.0) tmp[2] -= 360.0;
while(tmp[3] < 0.0) tmp[3] += 360.0;
if(angle >= tmp[1] && angle <= tmp[0]) return true;
if(angle >= tmp[3] && angle <= tmp[0]) return true;
if(angle >= tmp[1] && angle <= tmp[2]) return true;
if(angle >= tmp[3] && angle <= tmp[2]) return true;
return false;
}
ne mogu da ti ga ja pisem sad al koristi noviji loop imas na 0.3.7 verziji kalcor je objavio na samp forumu i ima i ovo
http://forum.sa-mp.com/showthread.php?t=580289
koristi foreach