Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Показано с 1 по 5 из 5
  1. #1
    Аватар для Unknown
    Пользователь

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

    проверка на аренду

    Как сунуть проверку, если игрок арендовал машину, что бы он не мог арендовать следующую, пока не откажеться от этой )

    Пробовал так, чет не выходит)
    PHP код:
    if(IsRentableVehicle[GetPlayerVehicleID(playerid)])return RemovePlayerFromVehicle(playerid) && SendClientMessage(playerid,COLOR_WHITE"Вы уже арендовали транспорт."); 
    Ниже public OnPlayerStateChange и Stock мб пригодится)
      Открыть/закрыть
    PHP код:
    public OnPlayerStateChange(playeridnewstateoldstate)
    {
        new 
    rcs[205];
        if(
    newstate == 2)
        {
            if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] == && IsRentableVehicle[GetPlayerVehicleID(playerid)]) 
            {
                
    format(rcssizeof(rcs), "{ffffff}Здравствуйте! Этот автомобиль сдаётся в аренду!\n Порядковый номер - [{00ceff}%d{ffffff}]\n Цена аренды [{5da130}$%d{ffffff}]\n\nВы хотите арендовать данный автомобиль?",RentCar[GetPlayerVehicleID(playerid)][Rcarid],RentCar[GetPlayerVehicleID(playerid)][Rprice]);
                
    Dialog(playerid,R_F,DIALOG_STYLE_MSGBOX,"Аренда",rcs,"Арендовать","Отмена");
            }
            if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] != && IsRentableVehicle[GetPlayerVehicleID(playerid)]) 
            {
                if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] == GetPlayerName(playeridOwnedNamesizeof(OwnedName)))
                {
                     
    GetPlayerName(playeridOwnedNamesizeof(OwnedName));
                     
    format(rcssizeof(rcs), "Это транспортное средство арендовано на Вас, {ff8700}%s{ffffff}.",OwnedName);
                     
    SendClientMessage(playerid,COLOR_WHITE,rcs);
                }
                if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] != GetPlayerName(playeridOwnedNamesizeof(OwnedName)))
                {
                     
    SendClientMessage(playerid,COLOR_WHITE,"Это транспортное средство уже арендовано другим игроком.");
                     
    RemovePlayerFromVehicle(playerid);
                     
    TogglePlayerControllable(playerid,1);
                }
            }
        }
        return 
    1;




      Открыть/закрыть
    PHP код:
    stock AddRentVehicle(id ,modelFloat:XFloat:YFloat:ZFloat:Anglecolor1color2price)
    {
        new 
    newvid;
        
    newvid AddStaticVehicle(modelXYZAnglecolor1color2);
        
    RentCar[newvid][Rprice] = price;
        
    RentCar[newvid][Rcarid] = id;
        
    RentCar[newvid][ROwned] = 0;
        
    IsRentableVehicle[newvid] = 1;
        
    SetVehicleNumberPlate(newvid,"RENT");


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

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    PHP код:
    IsRentableVehicle 
    Что за функция?
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

    Критик должен быть готов и способен в любой момент и по первому требованию занять место критикуемого им и выполнять его дело продуктивно и компетентно. В противном случае критика превращается в наглую, самодовлеющую силу и становится тормозом на пути прогресса. (с) AXE

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

    Статус
    Оффлайн
    Регистрация
    15.07.2014
    Сообщений
    106
    Репутация:
    0 ±
    Цитата Сообщение от underwoker Посмотреть сообщение
    PHP код:
    IsRentableVehicle 
    Что за функция?
    с этим уже разобрался, теперь уже в другом проблема, команду /unrent сделать не получается)




    PHP код:
    if(dialogid == ...........
        {
            if(
    response)
            {
                new 
    carprice RentCar[GetPlayerVehicleID(playerid)][Rprice];
                if(
    GetPlayerMoney(playerid) < carprice)
                {
                    
    RemovePlayerFromVehicle(playerid);
                    
    TogglePlayerControllable(playerid,1);
                    
    SendClientMessage(playerid,COLOR_GREEN,"У вас недостаточно средств для аренды транспорта.");
                    return 
    1;
                }
                
    format(stringsizeof(string), "Вы арендовали это транспортное средство за  - {5da130}$%d{ffffff}."carprice);
                
    SendClientMessage(playerid,COLOR_GREEN,string);
                
    TogglePlayerControllable(playerid,1);
                
    SetPVarInt(playerid"AlreadyRent"1);
                
    GivePlayerMoney(playerid,-carprice);
                
    RentCar[GetPlayerVehicleID(playerid)][ROwned] = GetPlayerName(playeridOwnedNamesizeof(OwnedName));
                
    SetVehicleNumberPlate(GetPlayerVehicleID(playerid),"RENTED");
            }
            else
            {
                
    RemovePlayerFromVehicle(playerid);
                
    TogglePlayerControllable(playerid,1);
            }
        } 

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

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Адрес
    Ярославль
    Сообщений
    1,366
    Репутация:
    774 ±
    Как-то выборочно нам код показали, напишите хотя бы как и что должно быть.

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

    Статус
    Оффлайн
    Регистрация
    15.07.2014
    Сообщений
    106
    Репутация:
    0 ±
    Цитата Сообщение от Londlem Посмотреть сообщение
    Как-то выборочно нам код показали, напишите хотя бы как и что должно быть.
    PHP код:
           
    //==================================================================================================
     
    if(GetPVarInt(playerid"AlreadyRent") == 1)
            if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] == && IsRentableVehicle[GetPlayerVehicleID(playerid)])
            {
                
    format(rcssizeof(rcs), "Здравствуйте! Этот автомобиль сдаётся в аренду!\n Порядковый номер - [{00ceff}%d{ffffff}]\n Цена аренды [{5da130}$%d{ffffff}]\n\nВы хотите арендовать данный автомобиль?",RentCar[GetPlayerVehicleID(playerid)][Rcarid],RentCar[GetPlayerVehicleID(playerid)][Rprice]);
                
    Dialog(playerid,1313,DIALOG_STYLE_MSGBOX,"Аренда",rcs,"Арендовать","Отмена");
            }
            if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] != && IsRentableVehicle[GetPlayerVehicleID(playerid)])
            {
                if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] == GetPlayerName(playeridOwnedNamesizeof(OwnedName)))
                {
                     
    GetPlayerName(playeridOwnedNamesizeof(OwnedName));
                     
    format(rcssizeof(rcs), "Это транспортное средство арендовано на Вас, {ff8700}%s{ffffff}.",OwnedName);
                     
    SendClientMessage(playerid,COLOR_GREEN,rcs);
                }
                if(
    RentCar[GetPlayerVehicleID(playerid)][ROwned] != GetPlayerName(playeridOwnedNamesizeof(OwnedName)))
                {
                     
    SendClientMessage(playerid,COLOR_GREEN,"Это транспортное средство уже арендовано другим игроком.");
                     
    RemovePlayerFromVehicle(playerid);
                     
    TogglePlayerControllable(playerid,1);
                }
            }
        }
    //==================================================================================================


        
    if(dialogid == 1313)
         {
             if(
    response)
             {
                 new 
    carprice RentCar[GetPlayerVehicleID(playerid)][Rprice],string[80];
                 if(
    GetPlayerMoney(playerid) < carprice)
                 {
                     
    RemovePlayerFromVehicle(playerid);
                     
    TogglePlayerControllable(playerid,1);
                     
    SendClientMessage(playerid,COLOR_GREEN,"У вас недостаточно средств для аренды транспорта.");
                     return 
    1;
                 }
                 
    format(stringsizeof(string), "Вы арендовали это транспортное средство за  - {5da130}$%d{ffffff}."carprice);
                 
    SendClientMessage(playerid,COLOR_GREEN,string);
                 
    TogglePlayerControllable(playerid,1);
                 
    SetPVarInt(playerid"AlreadyRent"1);
                 
    GivePlayerMoney(playerid,-carprice);
                 
    RentCar[GetPlayerVehicleID(playerid)][ROwned] = GetPlayerName(playeridOwnedNamesizeof(OwnedName));
                 
    SetVehicleNumberPlate(GetPlayerVehicleID(playerid),"RENTED");
            }
                else
            {
                
    RemovePlayerFromVehicle(playerid);
                
    TogglePlayerControllable(playerid,1);
    //==================================================================================================

    stock RentVehicle(id ,modelFloat:XFloat:YFloat:ZFloat:Anglecolor1color2price)
    {
        new 
    newvid;
        
    newvid AddStaticVehicle(modelXYZAnglecolor1color2);
        
    RentCar[newvid][Rprice] = price;
        
    RentCar[newvid][Rcarid] = id;
        
    RentCar[newvid][ROwned] = 0;
        
    IsRentableVehicle[newvid] = 1;
        
    SetVehicleNumberPlate(newvid,"RENT");
    }
    //==================================================================================================
    TotalVehicles()
    {
        new 
    vid;
        
    vid CreateVehicle(4110000, -1, -110);
        
    DestroyVehicle(vid);
        
    vid--;
        return 
    vid;
    }
    forward CountRentedVehicles();
    public 
    CountRentedVehicles()
    {
        new 
    count;
        for(new 
    R=1R<TotalVehicles(); R++)
        {
            if(
    IsRentableVehicle[R] == 1)
            {
                
    count++;
            }
        } 
    не получается сделать команду unrent

 

 

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

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

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

Ваши права

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