Проблема с покупкой машины (ARIZONA RP MOD)

Добро пожаловать!

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
3 Янв 2025
Сообщения
98
Здравствуйте, уже несколько дней пытаюсь фиксануть покупку машини (например, через /addcar или в автосалоне). Кажется, что достаточно даже просто поменять код с другого робочего мода, но все равно ничего не получается. Буду очень благодарен за вашу помощь.
Код покупки машины:

case 11:
{
new carid = GetPlayerVehicleID(playerid);
if(response)
{
if(IsASellCar(carid))
{
if(IsValidPassport(playerid))
{
if(PI[playerid][pMoney] >= GetCarPrice(GetVehicleModelEx(carid)))
{
if(IsValidNumberCars(playerid))
{
new Float:x, Float:y, Float:z, model = GetVehicleModelEx(carid);
GetCoordBonnetVehicle(carid, x, y, z, 6.0);
SetVehiclePos(carid, x, y, z);
PlayerPlaySound(playerid, 30800, 0.0, 0.0, 0.0);
SPD(playerid,0,0,!""," ---------( {FF2121}Обратите внимание!{FFFFFF})---------\n\nЕсли вы не припаркуете свою машину, то в течение определенного времени её отвезут на штрафстоянку!\n{d7d27f}Для того чтобы припарковать машину используйте: /park.{FFFFFF}\nКогда вы припаркуете машину, она будет спавнится в том месте, после каждого входа в игру.\nРекомендуем парковать машину:\n\n {A7A7A4}-Возле дома\n -На парковке\n -В гараже.{a25552}\n\nМашины запрещено парковать в общественных местах!", !"Принять","");
SCM(playerid,-1, !"{73B461}Поздравляем! Теперь этот транспорт принадлежит вам!");
SCM(playerid,-1, !"Чтобы вставить/вытащить ключи в зажигание введите {73B461}/key");
SCM(playerid,-1, !"Для управления своим транспортом используйте {73B461}/cars");

switch GetCarSalon(model) do
{
case 1: FirstGiveBizMoney(-479.3823,-542.8606,25.5634, GetCarPrice(model)), global_str = "Эконом";
case 2: FirstGiveBizMoney(959.6949,2089.2361,10.8409, GetCarPrice(model)), global_str = "Премиум";
case 3: FirstGiveBizMoney(-2666.3237,12.3889,4.3339, GetCarPrice(model)), global_str = "Элитного";
case 4: FirstGiveBizMoney(-553.85,2593.81,53.9, GetCarPrice(model)), global_str = "Luxe";
default: global_str = "None";
}

f(global_str, 150,"[A] %s[%d] купил транспорт по госу (%s), цена: %d$, салон: Автосалон %s класса", PN(playerid), playerid, GetVehicleName(carid), GetCarPrice(model), global_str);
SendAdminsMessage(COLOR_GREEN,global_str);
f(global_str, 200, "%s[%i] словил автомобиль по гос. цене: %d$", PN(playerid), playerid, GetCarPrice(model));
ProxDetector(25.0, playerid, global_str, COLOR_PURPLE);

if(!IsAOwnableCar(carid))
{
SetNull(model);
SellCard[carid] = -1;

new ID = FindFreeCarSlot();
CarInfo[ID][cModel] = model;
CarInfo[ID][cColor_1] = 1;
CarInfo[ID][cColor_2] = 1;
CarInfo[ID][cParkedInPark] = 1;
CarInfo[ID][cCost] = GetCarPrice(model);
CarInfo[ID][cInterior] = GetPlayerInterior(playerid);
CarInfo[ID][cVirtualWorld] = GetPlayerVirtualWorld(playerid);
VehicleInfo[carid][vID] = ID;
GiveMoney(playerid, -CarInfo[ID][cCost]);
SetString(CarInfo[ID][cOwner], PN(playerid));
SetString(CarInfo[ID][cKeyer], "The State");
OwnableCar[ID] = carid;

f(global_str, 2000, "INSERT INTO `ownable` (`Model`, `Owner`,`Cost`,`Keyer`, `Milage`, `Shtraf`, `VirtualWorld`, `Interior`, `ParkedInGarage`, `ParkedInParking`, `Color_1`, `Color_2`) VALUES ('%d', '%s','%d','%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
model,
CarInfo[ID][cOwner],
CarInfo[ID][cCost],
CarInfo[ID][cKeyer],
CarInfo[ID][cMilage],
CarInfo[ID][cShtraf],
CarInfo[ID][cVirtualWorld],
CarInfo[ID][cInterior],
CarInfo[ID][cParkedInGarage],
CarInfo[ID][cParkedInParking],
CarInfo[ID][cColor_1],
CarInfo[ID][cColor_2]);

new Cache:result = mysql_query(mysql, global_str);

CarInfo[ID][cID] = cache_insert_id();

cache_delete(result);

GetNumberCars(playerid, PI[playerid][pCars]);
UpdateCarInfo(carid);
}
else
{
new numberd = GetVehicleID(carid);

SetCarOwner(carid, PN(playerid));
SetCarKeyer(carid, "The State");
SaveOwnableCar(numberd);

GetNumberCars(playerid, PI[playerid][pCars]);
GiveMoney(playerid, -CarInfo[numberd][cCost]);
UpdateCarInfo(carid);
CarInfo[numberd][cParkedInPark] = 1;
}

//amlf("[%d] словил автомобиль <a href=../pages/carlog.php?id=%d>%d</a> по гос. цене: %d$", 0, PN(playerid), "", playerid, CarInfo[GetVehicleID(carid)][cID], CarInfo[GetVehicleID(carid)][cID], CarInfo[GetVehicleID(carid)][cCost]);
}
else
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid, COLOR_GREY, !"[Ошибка] {FFFFFF}Ваш уровень VIP недостаточно высок чтобы иметь столько авто!");
SCM(playerid, COLOR_GREY, !"[Ошибка] {FFFFFF}Возможно у вас нет дома, он даст вам +1 слот к авто");
RemovePlayerFromVehicle(playerid);
}
}
else
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid,COLOR_RED,"[Ошибка] {FFFFFF}У вас недостаточно денег. Вы можете пополнить свой баланс [/donate]");
RemovePlayerFromVehicle(playerid);
}
}
else
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid,COLOR_GREY, !"[Ошибка] {FFFFFF}У вас нет паспорта для покупки этого транспорта, получить его можно в мэрии.");
RemovePlayerFromVehicle(playerid);
}
}
else
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid,COLOR_GREY, !"[Ошибка] {FFFFFF}Этот транспорт не для продажи.");
RemovePlayerFromVehicle(playerid);
}
}
else
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
RemovePlayerFromVehicle(playerid);
}
return 1;
}
 
Пользователь
Регистрация
8 Фев 2025
Сообщения
25
Какие проблемы при покупке? Крашит сервер? или что? Я заметил некоторые ошибки на твоем коде, чего неправильного увидел - исправил, попробуй этот код, если ошибки будут, напиши.
case 11:
{
new carid = GetPlayerVehicleID(playerid);
if (!response)
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
RemovePlayerFromVehicle(playerid);
return 1;
}

if (!IsASellCar(carid))
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid, COLOR_GREY, "[Ошибка] {FFFFFF}Этот транспорт не для продажи.");
RemovePlayerFromVehicle(playerid);
return 1;
}

if (!IsValidPassport(playerid))
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid, COLOR_GREY, "[Ошибка] {FFFFFF}У вас нет паспорта для покупки этого транспорта, получить его можно в мэрии.");
RemovePlayerFromVehicle(playerid);
return 1;
}

new model = GetVehicleModelEx(carid);
new price = GetCarPrice(model);

if (PI[playerid][pMoney] < price)
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}У вас недостаточно денег. Вы можете пополнить свой баланс [/donate]");
RemovePlayerFromVehicle(playerid);
return 1;
}

if (!IsValidNumberCars(playerid))
{
PlayerPlaySound(playerid, 30802, 0.0, 0.0, 0.0);
SCM(playerid, COLOR_GREY, "[Ошибка] {FFFFFF}Ваш уровень VIP недостаточно высок чтобы иметь столько авто!");
SCM(playerid, COLOR_GREY, "[Ошибка] {FFFFFF}Возможно у вас нет дома, он даст вам +1 слот к авто");
RemovePlayerFromVehicle(playerid);
return 1;
}

// Покупка автомобиля
new Float:x, Float:y, Float:z;
GetCoordBonnetVehicle(carid, x, y, z, 6.0);
SetVehiclePos(carid, x, y, z);
PlayerPlaySound(playerid, 30800, 0.0, 0.0, 0.0);

SPD(playerid, 0, 0, "Внимание!",
"Если вы не припаркуете свою машину, то в течение определенного времени её отвезут на штрафстоянку!\n" \
"Для того чтобы припарковать машину используйте: /park.\n" \
"Когда вы припаркуете машину, она будет спавнится в том месте, после каждого входа в игру.\n" \
"Рекомендуем парковать машину:\n\n" \
"- Возле дома\n" \
"- На парковке\n" \
"- В гараже.",
"Принять", "");

SCM(playerid, -1, "{73B461}Поздравляем! Теперь этот транспорт принадлежит вам!");
SCM(playerid, -1, "Чтобы вставить/вытащить ключи в зажигание введите {73B461}/key");
SCM(playerid, -1, "Для управления своим транспортом используйте {73B461}/cars");

// Логирование покупки
new global_str[256];
switch (GetCarSalon(model))
{
case 1: FirstGiveBizMoney(-479.3823, -542.8606, 25.5634, price), global_str = "Эконом";
case 2: FirstGiveBizMoney(959.6949, 2089.2361, 10.8409, price), global_str = "Премиум";
case 3: FirstGiveBizMoney(-2666.3237, 12.3889, 4.3339, price), global_str = "Элитного";
case 4: FirstGiveBizMoney(-553.85, 2593.81, 53.9, price), global_str = "Luxe";
default: global_str = "None";
}

format(global_str, sizeof(global_str), "[A] %s[%d] купил транспорт по госу (%s), цена: %d$, салон: Автосалон %s класса",
PN(playerid), playerid, GetVehicleName(carid), price, global_str);
SendAdminsMessage(COLOR_GREEN, global_str);

format(global_str, sizeof(global_str), "%s[%i] словил автомобиль по гос. цене: %d$", PN(playerid), playerid, price);
ProxDetector(25.0, playerid, global_str, COLOR_PURPLE);

// Сохранение автомобиля
if (!IsAOwnableCar(carid))
{
new ID = FindFreeCarSlot();
if (ID == -1)
{
SCM(playerid, COLOR_RED, "[Ошибка] {FFFFFF}Нет свободных слотов для автомобилей.");
return 1;
}

CarInfo[ID][cModel] = model;
CarInfo[ID][cColor_1] = 1;
CarInfo[ID][cColor_2] = 1;
CarInfo[ID][cParkedInPark] = 1;
CarInfo[ID][cCost] = price;
CarInfo[ID][cInterior] = GetPlayerInterior(playerid);
CarInfo[ID][cVirtualWorld] = GetPlayerVirtualWorld(playerid);
VehicleInfo[carid][vID] = ID;
GiveMoney(playerid, -price);
format(CarInfo[ID][cOwner], MAX_PLAYER_NAME, "%s", PN(playerid));
format(CarInfo[ID][cKeyer], 32, "The State");
OwnableCar[ID] = carid;

format(global_str, sizeof(global_str),
"INSERT INTO `ownable` (`Model`, `Owner`, `Cost`, `Keyer`, `Milage`, `Shtraf`, `VirtualWorld`, `Interior`, `ParkedInGarage`, `ParkedInParking`, `Color_1`, `Color_2`) " \
"VALUES ('%d', '%s', '%d', '%s', '%d', '%d', '%d', '%d', '%d', '%d', '%d', '%d')",
model, CarInfo[ID][cOwner], price, CarInfo[ID][cKeyer], CarInfo[ID][cMilage], CarInfo[ID][cShtraf],
CarInfo[ID][cVirtualWorld], CarInfo[ID][cInterior], CarInfo[ID][cParkedInGarage], CarInfo[ID][cParkedInParking],
CarInfo[ID][cColor_1], CarInfo[ID][cColor_2]);

new Cache:result = mysql_query(mysql, global_str);
if (result)
{
CarInfo[ID][cID] = cache_insert_id();
cache_delete(result);
}
else
{
printf("[Ошибка] Не удалось выполнить запрос: %s", global_str);
}
}
else
{
new numberd = GetVehicleID(carid);
SetCarOwner(carid, PN(playerid));
SetCarKeyer(carid, "The State");
SaveOwnableCar(numberd);
GiveMoney(playerid, -CarInfo[numberd][cCost]);
CarInfo[numberd][cParkedInPark] = 1;
}

GetNumberCars(playerid, PI[playerid][pCars]);
UpdateCarInfo(carid);
return 1;
}
 
Пользователь
Регистрация
3 Янв 2025
Сообщения
98
Какие проблемы при покупке? Крашит сервер? или что? Я заметил некоторые ошибки на твоем коде, чего неправильного увидел - исправил, попробуй этот код, если ошибки будут, напиши.
Спасибо за ответ <3 ,но проблема была в БД
 
Сверху