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

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

Зарегистрироваться!
  • Если Вы желаете помогать развитию проекта, готовы заполнять раздел(-ы) и подсказывать другим пользователям на портале, есть возможность попасть в команду редакторов. Для этого следует обратиться в техническую поддержку
Пользователь
Регистрация
20 Фев 2023
Сообщения
40
Всех приветствую!
Пытаясь продать авто в гос через команду /sellcar, автомобиль просто выгружается с сервера, при этом игрок получает денежные средства с продажи авто.
Кто может помочь разобраться, в чем проблема?
Pawn:
CMD:sellcar(playerid)
{
    if(!pTemp[playerid][tAuthorized]) return 0;
    new
        carid = GetPlayerVehicleID(playerid);
    if(!IsAOwnableCar(carid))
        return 0;

    if(!GetString(CarInfo[GetVehicleID(carid)][cOwner], PN(playerid)))
        return SCM(playerid, COLOR_GREY, !"Вы должны сидеть в личном транспорте");

    if((pTemp[playerid][pSellCar] != -1 && autoBazarInfo[pTemp[playerid][pSellCar]][autoBazarCarID] == carid))
        return SCM(playerid, COLOR_RED, !"[Ошибка] {FFFFFF}Вы не можете продать транспорт, пока вы торгуете на автобазаре");

    return SPD(playerid, 803, DIALOG_STYLE_MSGBOX, !"Предупреждение", !"{FFFFFF}Вы действительно хотите продать свой автомобиль?\nВнимание при продаже авто вам дадут только\nне большую часть от его гос. стоимости", !"Дальше", !"Отмена");
}

Pawn:
case 803:
          {
              if !response *then
                return false;

            new carid = GetPlayerVehicleID(playerid);
            if !IsAOwnableCar(carid) *then
                return false;

            if(IsPlayerInHisVehicle(playerid))
            {
               if(IsPlayerRegCar(playerid,carid))
               {
                    new number = GetVehicleID(carid);
                    new cost = CarInfo[number][cCost]/2;
                    GiveMoney(playerid,cost);
                    ExitCar(playerid);

                    SellCar(carid);

                    SCMF(playerid, COLOR_LIGHTBLUE, "[Информация] {FFFFFF}Вы продали ваше транспортное средство за $%d",cost);

                    GetNumberCars(playerid,PI[playerid][pCars]);
                }
            }

            return true;
        }

Pawn:
stock GetVehicleID(carid)
{
    if(VehicleInfo[carid][vID] != -1 && IsValidVehicle(carid)) return VehicleInfo[carid][vID];
    return -1;
}

stock IsAOwnableCar(carid)
{
    if !(VehicleInfo[carid][vID] == -1) *then return 1;
    return 0;
}


Заранее благодарю.
 
Решение
Залез в другой мод, сравнил системы.
в stock SellCar(carid, bool:command = false, bool:family = false) не хватало
Pawn:
    SQL("UPDATE ownable SET Owner = 'The State' WHERE ID = %d;", CarInfo[number][cID]);
    SetString(CarInfo[number][cOwner], "The State");

Сейчас всё работает. Всем спасибо за оказание некой помощи! :)
Пользователь
Регистрация
20 Фев 2023
Сообщения
40
Pawn:
stock SellCar(carid, bool:command = false, bool:family = false)
{
    new number = GetVehicleID(carid);
    
    CarInfo[number][cVirtualWorld] =
    CarInfo[number][cInterior] = 0;
    CarInfo[number][cColor_1] =
    CarInfo[number][cColor_2] = 1;

    SetString(CarInfo[number][cKeyer], "The State");

    CarInfo[number][cShtrafer] =
    CarInfo[number][cLock] =
    CarInfo[number][cShtraf] =
    CarInfo[number][cKeyIN] =
    CarInfo[number][cAlarmON] = 0;
    CarInfo[number][cMilage] = 0;
    VehicleInfo[carid][vAntiRepair] = 2;
    VehicleHealth[carid] = 1000;
    SetVehicleVirtualWorld(carid, 0);
    DestroyVehicleEx(carid);

    if(!family)
        SetString(CarInfo[number][cOwner], "The State");

    if command == false *then
    {
        for new i; i < SELLCARS; i++ do
        {
            if SellInfo[i][scModel] == CarInfo[number][cModel]  *then
                SellInfo[i][scCount] ++,
                SaveSellCar(i);
        }
    }

    return SaveOwnableCar(number);
}

Pawn:
stock ExitCar(playerid)
{
    if(IsPlayerInAnyVehicle(playerid))RemovePlayerFromVehicle(playerid);
    else ClearAnimations(playerid);
    return 1;
}
 
Пользователь
Регистрация
20 Фев 2023
Сообщения
40
Пользователь
Регистрация
14 Авг 2023
Сообщения
111
Происходит выгрузка авто, зачисление вирт с продажи в гос. Потом ты можешь по новой загрузить это же авто и продать.
Скорее всего после продажи надо заново загрузить все авто игрока с БД
 
Пользователь
Регистрация
20 Фев 2023
Сообщения
40
Пользователь
Регистрация
14 Авг 2023
Сообщения
111
Например? Как это можно осуществить?
Ну у тебя уже должно быть где-то в моде загрузка авто, например при авторизации или при коннекте игрока к серверу, поищи что-то типо
Код:
SELECT * `cars` // Вместо cars название таблицы которая хранит данные авто
 
Пользователь
Регистрация
20 Фев 2023
Сообщения
40
Залез в другой мод, сравнил системы.
в stock SellCar(carid, bool:command = false, bool:family = false) не хватало
Pawn:
    SQL("UPDATE ownable SET Owner = 'The State' WHERE ID = %d;", CarInfo[number][cID]);
    SetString(CarInfo[number][cOwner], "The State");

Сейчас всё работает. Всем спасибо за оказание некой помощи! :)
 
Сверху