Проверка городов
#6

Можно типа этого:
pawn Код:
stock IsPlayerInRangeOfCube(playerid,Float:x,Float:y,Float:z,Float:rad)
{
    new Float:px,Float:py,Float:pz;
    GetPlayerPos(playerid,px,py,pz);
    if(floatabs(px-x)>rad)return 0;
    if(floatabs(py-y)>rad)return 0;
    if(floatabs(pz-z)>rad)return 0;
    return 1;
}
stock IsPlayerInRangeOfParallepiped(playerid,Float:x,Float:y,Float:z,Float:radx,Float:rady,Float:radz)
{
    new Float:px,Float:py,Float:pz;
    GetPlayerPos(playerid,px,py,pz);
    if(floatabs(px-x)>radx)return 0;
    if(floatabs(py-y)>rady)return 0;
    if(floatabs(pz-z)>radz)return 0;
    return 1;
}
Не очень удобно но вычислений меньше.

Но для этого есть конвертатор из максимальных/минимальных значений.
pawn Код:
stock ConvertMMCToCentralC(filename[],Float:minX,Float:maxX,Float:minY,Float:maxY,Float:minZ,Float:maxZ,comment[])
{
    new str[128];
    format(str,128,"%s_list.txt",filename);
    new File:f=fopen(str,io_append);
    if(maxX-minX == maxY-minY && maxX-minX==maxZ-minZ)
    {
        format(str,128,"IsPlayerInRangeOfCube(playerid,%f,%f,%f,%f);//%s\n",(maxX+minX)/2,(maxY+minY)/2,(maxZ+minZ)/2,maxX-minX,comment);
    }
    else
    {//
        format(str,128,"IsPlayerInRangeOfParallepiped(playerid,%f,%f,%f,%f,%f,%f);//%s\n",(maxX+minX)/2,(maxY+minY)/2,(maxZ+minZ)/2,maxX-minX,maxY-minY,maxZ-minZ,comment);
    }
    fwrite(f,str);
    fclose(f);
}
Reply


Messages In This Thread
Проверка городов - by Hawkins - 02.11.2011, 13:19
Re: Проверка городов - by EvgeN 1137 - 02.11.2011, 13:42
Re: Проверка городов - by Alllexxx - 03.11.2011, 18:45
Re: Проверка городов - by -Stranger- - 04.11.2011, 00:06
Re: Проверка городов - by Stepashka - 04.11.2011, 05:51
Re: Проверка городов - by Mutha_X - 04.11.2011, 07:18
Re: Проверка городов - by -Stranger- - 04.11.2011, 19:20
Re: Проверка городов - by Alllexxx - 04.11.2011, 21:03
Re: Проверка городов - by -Stranger- - 06.11.2011, 01:17
Re: Проверка городов - by OKStyle - 06.11.2011, 05:03

Forum Jump:


Users browsing this thread: 2 Guest(s)