SA-MP Forums Archive
Проверка в радиусе машины. - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Русский/Russian (https://sampforum.blast.hk/forumdisplay.php?fid=32)
+---- Thread: Проверка в радиусе машины. (/showthread.php?tid=314990)



Проверка в радиусе машины. - Skinni - 01.02.2012

Здравствуйте, что то вот у меня не получается проверить позицию игрока.
нужно что бы при действии команды проверялось что игрок возле машины, а если его нет в радиусе авто, то выводило сообщение.
помогите, всю голову сломал, даже цикл делал не получилось.

Вот собственно моя команда.

PHP код:
if(strcmp(cmd,"/materialsput",true)==0)
    {
        new 
tmpcar GetPlayerVehicleID(playerid);
        if(
GetVehicleModel(GetPlayerVehicleID(playerid)) != 482)  return SendClientMessage(playerid,COLOR_GREY,"Вы не в фургоне!");
        switch(
PlayerInfo[playerid][pMember])
        {
        case 
12:
            {
                if(
PlayerInfo[playerid][pMats] < 250)
                {
                    
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет материалов");
                    
format(stringsizeof(string), "Материалы в фургоне: %d/5000"Furi[tmpcar-matsfura[0]][gBallas]);
                    
SendClientMessage(playeridTEAM_GROVE_COLORstring);
                    return 
true;
                }
                if(
Furi[tmpcar-matsfura[0]][gBallas] >= 5000) return SendClientMessage(playerid,COLOR_GRAD1,"Фургон заполнен");
                
SendClientMessage(playeridCOLOR_WHITE"Вы положили в фургон 250 матов");
                
Furi[tmpcar-matsfura[0]][gBallas] += 250;//
                
PlayerInfo[playerid][pMats] -=250;
                
usemats[playerid] = false;
                
usegruz[playerid] = false;
                
RemovePlayerAttachedObject(playerid1);
                
format(stringsizeof(string), "Материалы в фургоне: %d/5000"Furi[tmpcar-matsfura[0]][gBallas]);
                
SendClientMessage(playeridTEAM_GROVE_COLORstring);
            }
        case 
13:
            {
                if(
PlayerInfo[playerid][pMats] < 250)
                {
                    
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет материалов");
                    
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuravagos[0]][gVagos]);
                    
SendClientMessage(playeridTEAM_GROVE_COLORstring);
                    return 
true;
                }
                if(
Furi[tmpcar-matsfuravagos[0]][gVagos] >= 5000) return SendClientMessage(playerid,COLOR_GRAD1,"Фургон заполнен");
                if(
GetVehicleModel(GetPlayerVehicleID(playerid)) != 482)  return SendClientMessage(playerid,COLOR_GREY,"Вы не в фургоне!");
                
SendClientMessage(playeridCOLOR_WHITE"Вы положили в фургон 250 матов");
                
Furi[tmpcar-matsfuravagos[0]][gVagos] += 250;//
                
PlayerInfo[playerid][pMats] -=250;
                
usemats[playerid] = false;
                
usegruz[playerid] = false;
                
RemovePlayerAttachedObject(playerid1);
                
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuravagos[0]][gVagos]);
                
SendClientMessage(playeridTEAM_GROVE_COLORstring);
            }
        case 
15:
            {
                if(
PlayerInfo[playerid][pMats] < 250)
                {
                    
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет материалов");
                    
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuragrove[0]][gGrove]);
                    
SendClientMessage(playeridTEAM_GROVE_COLORstring);
                    return 
true;
                }
                if(
Furi[tmpcar-matsfuragrove[0]][gGrove]  >= 5000) return  SendClientMessage(playerid,COLOR_GRAD1,"Фургон заполнен");
                
SendClientMessage(playeridCOLOR_WHITE"Вы положили в фургон 250 матов");
                
Furi[tmpcar-matsfuragrove[0]][gGrove] += 250;//
                
PlayerInfo[playerid][pMats] -=250;
                
usemats[playerid] = false;
                
usegruz[playerid] = false;
                
RemovePlayerAttachedObject(playerid1);
                
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuragrove[0]][gGrove]);
                
SendClientMessage(playeridTEAM_GROVE_COLORstring);
            }
        case 
17:
            {
                if(
PlayerInfo[playerid][pMats] < 250)
                {
                    
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет материалов");
                    
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuraactek[0]][gAztek]);
                    
SendClientMessage(playeridTEAM_GROVE_COLORstring);
                    return 
true;
                }
                if(
Furi[tmpcar-matsfuraactek[0]][gAztek]  >= 5000)return SendClientMessage(playerid,COLOR_GRAD1,"Фургон заполнен");
                
SendClientMessage(playeridCOLOR_WHITE"Вы положили в фургон 250 матов");
                
Furi[tmpcar-matsfuraactek[0]][gAztek] += 250;//
                
PlayerInfo[playerid][pMats] -=250;
                
usemats[playerid] = false;
                
usegruz[playerid] = false;
                
RemovePlayerAttachedObject(playerid1);
                
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfuraactek[0]][gAztek]);
                
SendClientMessage(playeridTEAM_GROVE_COLORstring);
            }
        case 
18:
            {
                if(
PlayerInfo[playerid][pMats] < 250)
                {
                    
SendClientMessage(playerid,COLOR_GRAD1,"У вас нет материалов");
                    
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfurarifa[0]][gRifa]);
                    
SendClientMessage(playeridTEAM_GROVE_COLORstring);
                    return 
true;
                }
                if(
Furi[tmpcar-matsfurarifa[0]][gRifa]   >= 5000)return     SendClientMessage(playerid,COLOR_GRAD1,"Фургон заполнен");
                
SendClientMessage(playeridCOLOR_WHITE"Вы положили в фургон 250 матов");
                
Furi[tmpcar-matsfurarifa[0]][gRifa] += 250;//
                
PlayerInfo[playerid][pMats] -=250;
                
usemats[playerid] = false;
                
usegruz[playerid] = false;
                
RemovePlayerAttachedObject(playerid1);
                
format(stringsizeof(string), "Материалы: %d/5000"Furi[tmpcar-matsfurarifa[0]][gRifa]);
                
SendClientMessage(playeridTEAM_GROVE_COLORstring);
            }
        }
        return 
true;
    } 



Re: Проверка в радиусе машины. - Norck - 01.02.2012

Вот функция:
pawn Код:
IsPlayerInRangeOfVehicle(playerid,Float:range,vehicleid)
{
    new Float:x,Float:y,Float:z;
    GetVehiclePos(vehicleid,x,y,z);
    return IsPlayerInRangeOfPoint(playerid,range,x,y,z);
}
Очевидно, что в качестве параметров нужно передать айди игрока, необходимый радиус и айди нужного транспортного средства.


Re: Проверка в радиусе машины. - Skinni - 01.02.2012

Quote:
Originally Posted by Norck
Посмотреть сообщение
Вот функция:
pawn Код:
IsPlayerInRangeOfVehicle(playerid,Float:range,vehicleid)
{
    new Float:x,Float:y,Float:z;
    GetVehiclePos(vehicleid,x,y,z);
    return IsPlayerInRangeOfPoint(playerid,range,x,y,z);
}
Очевидно, что в качестве параметров нужно передать айди игрока, необходимый радиус и айди нужного транспортного средства.
Огромное спасибо, сейчас буду пробовать.