PDA

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



man876
21.02.2016, 20:38
Помогите решить проблему с номерами на авто.

Номера до парковки (http://imgdepo.com/id/i8982169)

Номера после парковки.
1 авто (http://imgdepo.com/id/i8982170)
2 авто (http://imgdepo.com/id/i8982171)
3 авто (http://imgdepo.com/id/i8982172)

Надо чтобы номера были как на первой картинке ( Номера до парковки (http://imgdepo.com/id/i8982169) )
Номера от 00-01 до 01-00 паркуются нормально(ид1 до 100), а уже от ида авто 101 номера 00-101
1 авто


if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN{000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN{000000}0%d-%d",g,d);

2 авто


if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN {000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN {000000}0%d-%d",g,d);

3 авто


if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN {000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN{000000}0%d-%d",g,d);

На авторынке 300 авто если что

man876
23.02.2016, 00:27
up up up

DeimoS
23.02.2016, 00:58
Пункт #7 (http://pro-pawn.ru/showthread.php?5249-Pawn-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5-%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B).
Вся формула для всех номеров будет выглядеть так:

format(number,sizeof(number),"{FF0000}NN{000000}%02d-%02d", d/100, d%100);
Где "d" - переменная с ID автомобиля (или согласно чему у тебя высчитывается номер).
Алгоритм прост: номера двузначные и каждая новая сотня означает новый "раздел" => чтоб узнать номер этого "раздела", достаточно разделить ID автомобиля на 100, а остатком от деления и будет наш номер (с помощью знака "процент" как раз и узнаём остаток от деления)
Если номера станут трёхзначными - дели на 1000, и т.д.

man876
23.02.2016, 02:28
Пункт #7 (http://pro-pawn.ru/showthread.php?5249-Pawn-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B5%D1%81%D0%BD%D1%8B%D0%B5-%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D1%8B-%D0%BE%D1%82%D0%B2%D0%B5%D1%82%D1%8B).
Вся формула для всех номеров будет выглядеть так:

format(number,sizeof(number),"{FF0000}NN{000000}%02d-%02d", d/100, d%100);
Где "d" - переменная с ID автомобиля (или согласно чему у тебя высчитывается номер).
Алгоритм прост: номера двузначные и каждая новая сотня означает новый "раздел" => чтоб узнать номер этого "раздела", достаточно разделить ID автомобиля на 100, а остатком от деления и будет наш номер (с помощью знака "процент" как раз и узнаём остаток от деления)
Если номера станут трёхзначными - дели на 1000, и т.д.
Помогите записать)
Все варианты уже испробовал.... Номера всё равно 00-250 ( на сервере 300 авто )


if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN {000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN {000000}0%d-%d",g,d);

DeimoS
23.02.2016, 03:03
Эмм, так дай полный код. Что мне этот огрызок?

man876
23.02.2016, 03:11
Тут номера на всех авто (до парковки всё норм )

new g=0,d=0,e=1,z=1,t=1,number[256];
for(new c = 1; c < CAR_AMOUNT; c++)
{
d++;
if(BoatVeh(c) || PlaneVeh(c) || BikeVeh(c)) { Gas[c] = GasMax*1000000000; }
else { Gas[c] = 50; }
EngineCar[c] = 0;
LightCar[c] = 0;
format(number,sizeof(number),"{FF0000}NN {000000}%d", 100000+random(99999));
SetVehicleNumberPlate(c, number);
if(MAX_BUYABLE_CARS > c)
{
if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN {000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN {000000}0%d-%d",g,d);
SetVehicleNumberPlate(c, number);
}
}
А тут уже парковка авто. Номера после парковки 00-120 или 00-222 ( Должно быть 02-22 )

else if(listitem == 2)
{
new number[256];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[playerid][pCarKey] != -1 && strcmp(sendername, CarsInfo[PlayerInfo[playerid][pCarKey]][vOwner], true) == 0)
{
if(IsPlayerInVehicle(playerid,PlayerInfo[playerid][pCarKey]+1))
{
new Float: X, Float: Y, Float: Z, Float: A;
GetVehiclePos(PlayerInfo[playerid][pCarKey]+1, X, Y, Z);
GetVehicleZAngle(PlayerInfo[playerid][pCarKey]+1, A);
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkX] = X;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkY] = Y;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkZ] = Z;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkAngle] = A;
DestroyVehicle(PlayerInfo[playerid][pCarKey]+1);
BuyableCar[PlayerInfo[playerid][pCarKey]] = CreateVehicle(CarsInfo[PlayerInfo[playerid][pCarKey]][vModel], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkX], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkY], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkZ], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkAngle], CarsInfo[PlayerInfo[playerid][pCarKey]][vColorOne], CarsInfo[PlayerInfo[playerid][pCarKey]][vColorTwo], -1);
new d,g;
d = PlayerInfo[playerid][pCarKey]+1;
if(d == 100) { g++; d=0;}
if(d<300)
{
if(d<10) format(number,sizeof(number),"{FF0000}NN {000000}0%d-0%d",g,d);
else format(number,sizeof(number),"{FF0000}NN {000000}0%d-%d",g,d);
SetVehicleNumberPlate(PlayerInfo[playerid][pCarKey]+1, number);
SetVehicleToRespawn(BuyableCar[PlayerInfo[playerid][pCarKey]]);
}
SendClientMessage(playerid, COLOR_LIGHTRED, "NN: Вы успешно припарковали свой транспорт.");
EngineCar[PlayerInfo[playerid][pCarKey]+1] = 0;
}

DeimoS
23.02.2016, 03:17
Эмм, ну вот

new g=0,d=0,e=1,z=1,t=1,number[256];
for(new c = 1; c < CAR_AMOUNT; c++)
{
d++;
if(BoatVeh(c) || PlaneVeh(c) || BikeVeh(c)) { Gas[c] = GasMax*1000000000; }
else { Gas[c] = 50; }
EngineCar[c] = 0;
LightCar[c] = 0;
format(number,sizeof(number),"{FF0000}NN {000000}%d", 100000+random(99999));
SetVehicleNumberPlate(c, number);
if(MAX_BUYABLE_CARS > c)
{
format(number,sizeof(number),"{FF0000}NN{000000}%02d-%02d", d/100, d%100);
SetVehicleNumberPlate(c, number);
}

else if(listitem == 2)
{
new number[256];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[playerid][pCarKey] != -1 && strcmp(sendername, CarsInfo[PlayerInfo[playerid][pCarKey]][vOwner], true) == 0)
{
if(IsPlayerInVehicle(playerid,PlayerInfo[playerid][pCarKey]+1))
{
new Float: X, Float: Y, Float: Z, Float: A;
GetVehiclePos(PlayerInfo[playerid][pCarKey]+1, X, Y, Z);
GetVehicleZAngle(PlayerInfo[playerid][pCarKey]+1, A);
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkX] = X;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkY] = Y;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkZ] = Z;
CarsInfo[PlayerInfo[playerid][pCarKey]][vParkAngle] = A;
DestroyVehicle(PlayerInfo[playerid][pCarKey]+1);
BuyableCar[PlayerInfo[playerid][pCarKey]] = CreateVehicle(CarsInfo[PlayerInfo[playerid][pCarKey]][vModel], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkX], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkY], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkZ], CarsInfo[PlayerInfo[playerid][pCarKey]][vParkAngle], CarsInfo[PlayerInfo[playerid][pCarKey]][vColorOne], CarsInfo[PlayerInfo[playerid][pCarKey]][vColorTwo], -1);
new d;
d = PlayerInfo[playerid][pCarKey]+1;
if(d<300)
{
format(number,sizeof(number),"{FF0000}NN{000000}%02d-%02d", d/100, d%100);
SetVehicleNumberPlate(PlayerInfo[playerid][pCarKey]+1, number);
SetVehicleToRespawn(BuyableCar[PlayerInfo[playerid][pCarKey]]);
}
SendClientMessage(playerid, COLOR_LIGHTRED, "NN: Вы успешно припарковали свой транспорт.");
EngineCar[PlayerInfo[playerid][pCarKey]+1] = 0;
}

man876
23.02.2016, 03:35
Все работает, большое спасибо)