PDA

Просмотр полной версии : [Вопрос] Проверка авто по координатам



Andrik851
07.07.2019, 15:58
Доброго времени суток помогите пожалуйста разобраться с этой системой. У меня есть система штрафстоянки как мне правильно прописать проверку на координаты имеется ли мое авто на этиз координатах или нет .Заранее огромное спасибо

вот код который я сделал но тут куча ошибок


if(pickupid == Pickup[46])// штрафстоянка
{
if(CarInfo[p][i][cModel], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2], SalonRandSpawn[r][3], CarInfo[p][i][cColor1], CarInfo[p][i][cColor2], 90000) return SendClientMessage(playerid, COLOR_GREY, "{BEBEBE}[INFO] Вашего авто нет на страфстоянке!");
{
ShowPlayerDialog(playerid, D_PODEZD+8,DIALOG_STYLE_MSGBOX,"{FFCC00}Штрафстоянка","{ffffff}Вы не припоркавали свое авто и Вам был выписан штраф в размере {FFCC00}5000 рублей?", "Забрать", "Нет");
}
}

Daniel_Cortez
07.07.2019, 19:14
Используйте GetVehiclePos (https://wiki.sa-mp.com/wiki/GetVehiclePos) и VectorSize (http://wiki.pro-pawn.ru/wiki/VectorSize).
Впрочем, не факт, что стоит сверять по координатам, ибо, если я правильно понял из кода в предыдущей вашей теме (http://pro-pawn.ru/showthread.php?16810), статус нахождения авто на штрафстоянке у вас уже записывается в PlayerInfo.

Andrik851
07.07.2019, 19:18
Используйте GetVehiclePos (https://wiki.sa-mp.com/wiki/GetVehiclePos) и VectorSize (http://wiki.pro-pawn.ru/wiki/VectorSize).
Впрочем, не факт, что стоит сверять по координатам, ибо, если я правильно понял из кода в предыдущей вашей теме (http://pro-pawn.ru/showthread.php?16810), статус нахождения авто на штрафстоянке у вас уже записывается в PlayerInfo.

Да при заходе он если не припаркован был автоматически отправлялся на стоянку возле автосалона я эти координаты изменил на штрафстоянку и теперь когда заходе на чекпомнт не зависимо ваше авто на страфстоянке или нет всеровно требует заплатить штраф вот я создал эту тему чтобы такого не было

punkochel
08.07.2019, 11:27
if(pickupid == Pickup[46])// штрафстоянка
{
// При условии что cId - Это ид авто (Не модель!), а r[0],r[1],r[2] - координаты x,y,z;
if(GetVehiclePos(CarInfo[p][i][cId], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2])) return SendClientMessage(playerid, COLOR_GREY, "{BEBEBE}[INFO] Вашего авто нет на страфстоянке!");
{
ShowPlayerDialog(playerid, D_PODEZD+8,DIALOG_STYLE_MSGBOX,"{FFCC00}Штрафстоянка","{ffffff}Вы не припоркавали свое авто и Вам был выписан штраф в размере {FFCC00}5000 рублей?", "Забрать", "Нет");
}
}
Дело в том, что непонятно откуда у вас взялся массив r[], если смотреть по предыдущему посту, у вас в CarInfo нет таких переменных. Очень много непонятных обращений к массивам... Я бы вам посоветовал разобраться в основах программирования, если вы хотите развиваться в pawn, то могу посоветовать учебники: http://pawn-wiki.ru/index.php?/topic/1653-uchebnik-pawn/ и http://pro-pawn.ru/showthread.php?4082

Andrik851
08.07.2019, 17:34
if(pickupid == Pickup[46])// штрафстоянка
{
// При условии что cId - Это ид авто (Не модель!), а r[0],r[1],r[2] - координаты x,y,z;
if(GetVehiclePos(CarInfo[p][i][cId], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2])) return SendClientMessage(playerid, COLOR_GREY, "{BEBEBE}[INFO] Вашего авто нет на страфстоянке!");
{
ShowPlayerDialog(playerid, D_PODEZD+8,DIALOG_STYLE_MSGBOX,"{FFCC00}Штрафстоянка","{ffffff}Вы не припоркавали свое авто и Вам был выписан штраф в размере {FFCC00}5000 рублей?", "Забрать", "Нет");
}
}
Дело в том, что непонятно откуда у вас взялся массив r[], если смотреть по предыдущему посту, у вас в CarInfo нет таких переменных. Очень много непонятных обращений к массивам... Я бы вам посоветовал разобраться в основах программирования, если вы хотите развиваться в pawn, то могу посоветовать учебники: http://pawn-wiki.ru/index.php?/topic/1653-uchebnik-pawn/ и http://pro-pawn.ru/showthread.php?4082

Все эти массивы били взяты от сюда. Это когда при заходе на сервер если вы перед выходом не припарковали авто его рандомно отправляет по координатам штрафстоянки. А все эти массывы бы находятс в загрузке авто при заходе на сервер


void LoadMyCar(p)
{
new rows, fields;
cache_get_data(rows, fields);
if(!rows) return true;
new c,bufer[70];
for(new i; i < rows; i++)
{
CarInfo[p][i][cId] = cache_get_field_content_int(i, "id");
CarInfo[p][i][cModel] = cache_get_field_content_int(i, "cModel");
CarInfo[p][i][cX] = cache_get_field_content_float(i, "cX");
CarInfo[p][i][cY] = cache_get_field_content_float(i, "cY");
CarInfo[p][i][cZ] = cache_get_field_content_float(i, "cZ");
CarInfo[p][i][cFa] = cache_get_field_content_float(i, "cFa");
CarInfo[p][i][cFuel] = cache_get_field_content_int(i, "cFuel");
CarInfo[p][i][cProbeg] = cache_get_field_content_int(i, "cProbeg");
cache_get_field_content(i, "cNumber", CarInfo[p][i][cNumber], ConBD, 40);
CarInfo[p][i][cCarAr] = cache_get_field_content_int(i, "cCarAr");
CarInfo[p][i][cClass] = cache_get_field_content_int(i, "cClass");
CarInfo[p][i][cColor1] = cache_get_field_content_int(i, "cColor1");
CarInfo[p][i][cColor2] = cache_get_field_content_int(i, "cColor2");
CarInfo[p][i][cLock] = cache_get_field_content_int(i, "cLock");
CarInfo[p][i][cCost] = cache_get_field_content_int(i, "cCost");
CarInfo[p][i][cHealth] = cache_get_field_content_float(i, "cHealth");
cache_get_field_content(i, "cDamage", bufer, ConBD, 70);
cache_get_field_content(i, "cVehcom", CarInfo[p][i][cVehcom], ConBD, 64);
sscanf(CarInfo[p][i][cVehcom], "p<,>a<i>[14]",CarInfo[p][i][cVehcoms]);
CarInfo[p][i][cPaintjob] = cache_get_field_content_int(i, "cPaintjob");
CarInfo[p][i][cMoney] = cache_get_field_content_int(i, "cMoney");
CarInfo[p][i][cKan] = cache_get_field_content_int(i, "cKan");
CarInfo[p][i][cDeer] = cache_get_field_content_int(i, "cDeer");

//========================= номера авто ========================================

if(CarInfo[p][i][cX] == 0 && CarInfo[p][i][cY] == 0 && CarInfo[p][i][cZ] == 0)
{
new r = aShop();
c = CreateVehicle(CarInfo[p][i][cModel], SalonRandSpawn[r][0], SalonRandSpawn[r][1], SalonRandSpawn[r][2], SalonRandSpawn[r][3], CarInfo[p][i][cColor1], CarInfo[p][i][cColor2], 90000);
ShowPlayerDialog(p, D_NULL, 0, "# Автосалон | {FFD700}FAQ", "{FFFFFF}Вы не припарковали Ваш автомобиль перед выходом.\n\
{FFFFFF}Забрать Ваш автомобиль вы можете на штрафстоянке ГиБДД .\n\
{CD5C5C}Постарайтесь не забыть припарковать Ваш автомобиль в этот раз.", "Закрыть", "");
}
else c = CreateVehicle(CarInfo[p][i][cModel], CarInfo[p][i][cX], CarInfo[p][i][cY], CarInfo[p][i][cZ], CarInfo[p][i][cFa], CarInfo[p][i][cColor1], CarInfo[p][i][cColor2], 90000);
sscanf(bufer, "p<,>a<i>[4]", DamageS[c]);
CarInfo[p][i][cCarId] = c;
CarDoors(c, CarInfo[p][i][cLock]);
Fuel[c] = CarInfo[p][i][cFuel];
Probeg[c] = CarInfo[p][i][cProbeg];
SetVehicleHealth(c, CarInfo[p][i][cHealth]);
UpdateVehicleDamageStatus(c, DamageS[c][0],DamageS[c][1],DamageS[c][2],DamageS[c][3]);
Engine[c] = false;
Lights[c] = false;
SetVehicleNumberPlate(c,CarInfo[p][i][cNumber]);
switch(CarInfo[p][i][cLock])
{
case 0: IsLocked[c] = false;
case 1: IsLocked[c] = true;
}
NumberCode(p, i, false);
SetCarNumber(c, CarInfo[p][i][cNumber]);//3D номера
SetVehicleTuning(p, i);
}
return true;
}