Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 7 из 7

Тема: sellcar

  1. #1
    Аватар для 19GameR98
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    11
    Репутация:
    0 ±

    sellcar

    Добрый день. Нужна ваша помощь, с командной sellcar,
    машину игроку продаю, деньги передаются, а авто нет, помогите пожалуйста
    PHP код:
    CMD:sellcar(playeridparams[])
    {
        if(
    GetPlayerHouse(playerid) == 0) return SendClientMessage(playeridCOLOR_GREY"Вы не владеете домом!");
        else if(!
    IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playeridCOLOR_GREY"Вы должны находится в транспорте");
        else if(
    GetPlayerVehicleID(playerid) != PI[playerid][PlayerCarID]) return SendClientMessage(playeridCOLOR_GREY"Вы должны находиться в вашем личном транспорте!");
        else if(
    GetVehicleModel(GetPlayerVehicleID(playerid)) == 462) return SendClientMessage(playeridCOLOR_GREY"Вы не можете продать мопед!");
        else if(
    sscanf(params"ui"params[0], params[1])) return ShowPlayerDialog(playeridD_JOB+220"Продать транспорт""{ffffff}Вы хотите продать свой транспорт?\n\n{F04245}Внимание! Вам вернут только половину стоимости транспорта!\n\n!!! Для продажи авто игроку, введите /sellcar [id] [цена] !!!""Да""Нет");
        else if(!
    IsPlayerConnected(params[0])) return SendClientMessage(playeridCOLOR_GREYPlayerIsNotOnline);
        else if(
    PlayerLogged[params[0]] == false) return SendClientMessage(playeridCOLOR_GREYPlayerIsNotAuthorized);
        else if(
    params[0] == playerid) return SendClientMessage(playeridCOLOR_GREY"Вы не можете продать транспорт себе!");
        else if(
    GetPlayerHouse(params[0]) == 0) return SendClientMessage(playeridCOLOR_GREY"У игрока нет дома");
        else if(!
    IsPlayerInVehicle(params[0], GetPlayerVehicleID(playerid))) return SendClientMessage(playeridCOLOR_GREY"Игрок должен находиться с вами в транспорте!");
        else if(
    params[1] < || params[1] > 5000000) return SendClientMessage(playeridCOLOR_GREY"Стоимость от 1 до 5000000$!");
        
    SetPVarInt(params[0], "CarPlayer"playerid);
        
    SetPVarInt(params[0], "CarPrice"params[1]);
        
    SetPVarInt(params[0], "KeyCar"1);
        new 
    string[135];
        
    format(stringsizeof(string), "{FFFF00}%s [ID: %i] предложил вам продать свой транспорт\n\n\t\t{ffffff}[Модель: %s, Стоимость: %i]\n\n{FFFF00}Вы согласны?",GetName(playerid),playerid,VehicleNames[GetVehicleModel(PI[playerid][PlayerCarID])-400], params[1]);
        
    ShowPlayerDialog(params[0], D_JOB+250"Купить транспорт"string"Да""Нет");
        
    SendMes(playerid,-1,"Вы предложили продать свой транспорт %s, ожидайте подтверждения игрока!"GetName(params[0])      );
        return 
    1;

    PHP код:
            case D_JOB+25:
            {
                new 
    targetid GetPVarInt(playerid"CarPlayer"), price GetPVarInt(playerid"CarPrice");
                if(
    response)
                {
                    if(
    GetMoney(playerid) < price)
                    {
                        
    SendClientMessage(playeridCOLOR_LGREY"У вас не хватает денег");
                        
    SendMes(targetidCOLOR_LIGHTBLUE"У %s недостаточно средств для покупки вашего транспорта"GetName(playerid));
                        
    DeletePVar(playerid"CarPrice");
                        
    DeletePVar(playerid"CarPlayer");
                        
    DeletePVar(playerid"KeyCar");
                        return 
    1;
                    }
                    
    PI[playerid][cModel] = PI[targetid][cModel];
                    
    PI[playerid][cClass] = PI[targetid][cClass];
                    
    PI[playerid][cFuel] = PI[targetid][cFuel];
                    
    PI[playerid][cColor][0] = PI[targetid][cColor][0];
                    
    PI[playerid][cColor][1] = PI[targetid][cColor][1];
                    
    PI[playerid][cCost] = PI[targetid][cCost];
                    
    PI[playerid][cVehcom] = PI[targetid][cVehcom];
                    
    sscanf(PI[targetid][cVehcom], "p<,>a<i>[14]",PI[targetid][cVehcoms]);
                    
    PI[playerid][cPaintjob] = PI[targetid][cPaintjob];
                    
    PI[playerid][cModel] = 0;
                    
    PI[playerid][cClass] = 0;
                    
    PI[playerid][cFuel] = 150;
                    
    PI[playerid][cColor][0] = 0;
                    
    PI[playerid][cColor][1] = 0;
                    
    PI[playerid][cCost] = 0;
                    
    format(PI[playerid][cVehcom],64,"0,0,0,0,0,0,0,0,0,0,0,0,0,0");
                    
    sscanf(PI[playerid][cVehcom], "p<,>a<i>[14]",PI[playerid][cVehcoms]);
                    
    PI[playerid][cPaintjob] = 3;
                    
    DestroyVehicle(GetPVarInt(playerid"PlayerCar"));
                    
    LoadMyCar(playerid);
                    
    DestroyVehicle(GetPVarInt(targetid"PlayerCar"));
                    
    LoadMyCar(targetid);
                    
    SendClientMessage(targetid, -1"Поздравляем с продажей транспортного средства");
                    
    SendClientMessage(playerid, -1"Поздравляем с приобретением транспортного средства");
                    
    PI[playerid][pRegVehicle] = PI[targetid][pRegVehicle] = 0;
                        
    MysqlUpdatePlayerInt(playerid"veh_reg"PI[playerid][pRegVehicle]);
                        
    strmid(PI[playerid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(playerid"veh_number"PI[playerid][pNumberVehicle]);
                        
    MysqlUpdatePlayerInt(targetid"veh_reg"PI[targetid][pRegVehicle]);
                        
    strmid(PI[targetid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(targetid"veh_number"PI[targetid][pNumberVehicle]);
                    
    SaveAccount(playerid);
                    
    SaveAccount(targetid);
                    
    TransferMoney(playerid, -1price);
                    
    TransferMoney(1targetidprice);
                    new 
    string[128];
                    
    format(stringsizeof(string), "Игрок %s купил транспорт %s[%i] за %d$ у игрока %s"GetName(playerid), VehicleNames[GetVehicleModel(PI[targetid][PlayerCarID])-400], GetPlayerVehicleID(targetid), priceGetName(targetid));
                    
    SendLog("BuyCar"string);
                    
    format(stringsizeof(string), "Игрок %s продал транспорт %s[%i] за %d$ игроку %s"GetName(targetid), VehicleNames[GetVehicleModel(PI[targetid][PlayerCarID])-400], GetPlayerVehicleID(targetid), priceGetName(playerid));
                    
    SendLog("SellCar"string);
                }
                else 
    SendMes(targetidCOLOR_LIGHTBLUE"%s отклонил предложение о продаже транспорта"GetName(playerid));
                
    DeletePVar(playerid"CarPrice");
                
    DeletePVar(playerid"CarPlayer");
                
    DeletePVar(playerid"KeyCar");
            } 
    PHP код:
            case D_JOB+22:
            {
                if(!
    response) return 1;
                if(
    GetPlayerHouse(playerid))
                {
                       
    PI[playerid][cModel] = 0;
                    
    PI[playerid][cLock] = 1;
                    
    PI[playerid][cColor][0] = 0;
                    
    PI[playerid][cColor][1] = 0;
                    
    PI[playerid][cClass] = 0;
                    
    PI[playerid][cFuel] = 150;
                    
    PI[playerid][cPaintjob] = 3;
                    
    PI[playerid][cVehcoms][0] = 0;
                    
    PI[playerid][cVehcoms][1] = 0;
                    
    PI[playerid][cVehcoms][2] = 0;
                    
    PI[playerid][cVehcoms][3] = 0;
                    
    PI[playerid][cVehcoms][4] = 0;
                    
    PI[playerid][cVehcoms][5] = 0;
                    
    PI[playerid][cVehcoms][6] = 0;
                    
    PI[playerid][cVehcoms][7] = 0;
                    
    PI[playerid][cVehcoms][8] = 0;
                    
    PI[playerid][cVehcoms][9] = 0;
                    
    PI[playerid][cVehcoms][10] = 0;
                    
    PI[playerid][cVehcoms][11] = 0;
                    
    PI[playerid][cVehcoms][12] = 0;
                    
    PI[playerid][cVehcoms][13] = 0;
                    
    format(PI[playerid][cVehcom], 64"%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d",
                    
    PI[playerid][cVehcoms][0],PI[playerid][cVehcoms][1],PI[playerid][cVehcoms][2],
                    
    PI[playerid][cVehcoms][3],PI[playerid][cVehcoms][4],PI[playerid][cVehcoms][5],
                    
    PI[playerid][cVehcoms][6],PI[playerid][cVehcoms][7],PI[playerid][cVehcoms][8],
                    
    PI[playerid][cVehcoms][9],PI[playerid][cVehcoms][10],PI[playerid][cVehcoms][11],
                    
    PI[playerid][cVehcoms][12],PI[playerid][cVehcoms][13]);
                    new 
    string[128];
                    
    format(stringsizeof(string), "Вы продали ваше транспортное средство за %d$"PI[playerid][cCost]  / 2);
                    
    SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                    
    TransferMoney(-1,playerid,PI[playerid][cCost] / 2);
                    
    PI[playerid][pRegVehicle] = 0;
                        
    MysqlUpdatePlayerInt(playerid"veh_reg"PI[playerid][pRegVehicle]);
                        
    strmid(PI[playerid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(playerid"veh_number"PI[playerid][pNumberVehicle]);
                    
    format(stringsizeof(string), "Игрок %s продал транспорт %s[%i] за %d$"GetName(playerid), VehicleNames[GetVehicleModel(PI[playerid][PlayerCarID])-400], GetPlayerVehicleID(playerid), PI[playerid][cCost] / 2);
                    
    SendLog("SellCar"string);
                    if(
    GetPVarInt(playerid,"PlayerCar") > 0)
                    {
                        
    DestroyVehicle(GetPVarInt(playerid,"PlayerCar"));
                        
    DeletePVar(playerid,"PlayerCar");
                    }
                    
    PI[playerid][cCost] = 0;
                    
    LoadMyCar(playerid);
                }
            } 

  2. #2
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Везде этот SendMes и одинаково ужасный код... Это что новый тренд на моды как в свое время РЛС все ставили?
    По проблеме - я конечно не понимаю как у тебя устроенно сохранение автомобилей и как оно происходит, но судя по коду - машина не передается вообще или после перезахода все нормально?
    PHP код:
    PI[playerid][pRegVehicle] = PI[targetid][pRegVehicle] = 0;
                        
    MysqlUpdatePlayerInt(playerid"veh_reg"PI[playerid][pRegVehicle]);
                        
    strmid(PI[playerid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(playerid"veh_number"PI[playerid][pNumberVehicle]);
                        
    MysqlUpdatePlayerInt(targetid"veh_reg"PI[targetid][pRegVehicle]);
                        
    strmid(PI[targetid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(targetid"veh_number"PI[targetid][pNumberVehicle]); 
    Подозреваю что проблема где то в этом участке кода, но пока понять я его не могу....

  3. #3
    Аватар для 19GameR98
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    11
    Репутация:
    0 ±
    Цитата Сообщение от qwezert Посмотреть сообщение
    Везде этот SendMes и одинаково ужасный код... Это что новый тренд на моды как в свое время РЛС все ставили?
    По проблеме - я конечно не понимаю как у тебя устроенно сохранение автомобилей и как оно происходит, но судя по коду - машина не передается вообще или после перезахода все нормально?
    PHP код:
    PI[playerid][pRegVehicle] = PI[targetid][pRegVehicle] = 0;
                        
    MysqlUpdatePlayerInt(playerid"veh_reg"PI[playerid][pRegVehicle]);
                        
    strmid(PI[playerid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(playerid"veh_number"PI[playerid][pNumberVehicle]);
                        
    MysqlUpdatePlayerInt(targetid"veh_reg"PI[targetid][pRegVehicle]);
                        
    strmid(PI[targetid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(targetid"veh_number"PI[targetid][pNumberVehicle]); 
    Подозреваю что проблема где то в этом участке кода, но пока понять я его не могу....
    PHP код:
                        MysqlUpdatePlayerInt(targetid"veh_reg"PI[targetid][pRegVehicle]);
                        
    strmid(PI[targetid][pNumberVehicle], "None"0strlen("None"), 20);
                        
    MysqlUpdatePlayerStr(targetid"veh_number"PI[targetid][pNumberVehicle]); 
    тут два раза, это случайно поставил,

    машина вообще не передается(

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

    - - - Добавлено - - -

    есть команда обмен автомобилем, она работает исправно, могу скинуть код, чтобы посмотрели
    Последний раз редактировалось 19GameR98; 03.01.2017 в 18:35.

  4. #4
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Скинь пожалуйста, будет понятнее что и куда

  5. #5
    Аватар для 19GameR98
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    11
    Репутация:
    0 ±
    Цитата Сообщение от qwezert Посмотреть сообщение
    Скинь пожалуйста, будет понятнее что и куда
    я разобрался, тут нужно было везде заменить playerid на targetid
    Код:
    PI[playerid][cModel] = 0;
    PI[playerid][cClass] = 0;
    PI[playerid][cFuel] = 150;
    PI[playerid][cColor][0] = 0;
    PI[playerid][cColor][1] = 0;
    PI[playerid][cCost] = 0;
    format(PI[playerid][cVehcom],64,"0,0,0,0,0,0,0,0,0,0,0,0,0,0");
    sscanf(PI[playerid][cVehcom], "p<,>a<i>[14]",PI[playerid][cVehcoms]);
    PI[playerid][cPaintjob] = 3;
    но появился маленький баг, машина передается, но у продавца, чтобы она пропала, нужно перезайти в игру как исправить ?)) буду очень благодарен

  6. #6
    Аватар для qwezert
    Пользователь

    Статус
    Оффлайн
    Регистрация
    13.06.2016
    Адрес
    Одесса, Украина
    Сообщений
    281
    Репутация:
    51 ±
    Функцией DestroyVehicle удаляй машину продавца и будет тебе счастье)

  7. #7
    Аватар для 19GameR98
    Пользователь

    Статус
    Оффлайн
    Регистрация
    03.01.2017
    Сообщений
    11
    Репутация:
    0 ±
    всё спасибо) с меня +, дал)
    Последний раз редактировалось 19GameR98; 04.01.2017 в 01:32.

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •