15.03.2016, 05:23
IsObstacleOnPath
- http://forum.sa-mp.com/showpost.php?...&postcount=415
PHP код:
IsObstacleOnPath(Float:a[], Float:b[], Float:tolerance = 60.0) {
new Float:c[3];
new Float:d[3];
new Float: retn;
new Float:angle = (atan2(a[0]-b[0], a[1]-b[1]))+180.0;
if(angle > 360.0) angle -= 360.0;
new Float: i = 1.0;
new Float: j = VectorSize(a[0]-b[0], a[1]-b[1], 0.0);
new Float: x; new Float: y;
while( i <= (j) ) {
c[0]=a[0]+(i*floatsin(angle,degrees));
c[1]=a[1]+(i*floatcos(angle,degrees));
d[0]=a[0]+((i-1)*floatsin(angle,degrees));
d[1]=a[1]+((i-1)*floatcos(angle,degrees));
CA_FindZ_For2DCoord(c[0],c[1],c[2]);
CA_FindZ_For2DCoord(d[0],d[1],d[2]);
i += 1.0;
x= VectorSize(c[0]-d[0], c[1]-d[1], 0.0);
y = floatabs(d[2]-c[2]);
retn = atan2(y,x);
if(retn > tolerance) {
return true;
}
}
return false;
}