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

    Статус
    Оффлайн
    Регистрация
    16.08.2014
    Сообщений
    37
    Репутация:
    2 ±

    таймера для автобуса

    Здравствуйте!
    Я ищу таймер, что бы когда выходишь из автобуса, оно давало отсчёт в секундах, а по истечению времени - спавнило автобус(как на Ыаmp-Яр)

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

    Статус
    Оффлайн
    Регистрация
    07.03.2014
    Сообщений
    331
    Репутация:
    47 ±
    Эм, что то типо
    При начале работы
    PHP код:
    SetPVarInt(playerid"NaRabote"1); 
    В OnPlayerStateChange
    PHP код:
    if(GetPVarInt(playerid,"NaRabote") == 1)//(Если есть уже у вас переменная отвечающая за то работает ли игрок, замените проверку на свою)Если игрок работает автобусником, вышел на дежурство, то 
            
    {
                
    SetPVarInt(playerid,"TimeForPiss"16);//Задаем пвару значение 16. 
                
    SendClientMessage(playerid, -1"У вас есть 15 секунд, чтобы вернуться в транспорт! Иначе маршрут будет закончен!");
            } 
    В секундный таймер с циклом на игроков
    PHP код:
    if(GetPVarInt(i"TimeForPiss") > 0)
                {
                    
    SetPVarInt(i"TimeForPiss"GetPVarInt(i"TimeForPiss") - 1);
                    
    format(string,32,"~r~%d",GetPVarInt(i"TimeForPiss"));
                    
    GameTextForPlayer(istring20006);
                    if(
    GetPVarInt(i"TimeForPiss") == 0)
                    {
                        
    //Тут удаляем пвар с временем и о, даем ему деньги за работу спавним автобус и т.д.
                    
    }
                } 
    "Власть, кровь, няш-мяш, кровь, власть, Крым наш!" - (c) Наталья Поклонская.

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

  3. Пользователь сказал cпасибо:
    Vetalll (27.08.2014)
  4. #3
    Аватар для codeo
    Пользователь

    Статус
    Оффлайн
    Регистрация
    24.04.2014
    Сообщений
    108
    Репутация:
    9 ±
    PHP код:
    new TimerCar[MAX_PLAYERS];
    new 
    RespawnTimer[MAX_PLAYERS];
    new 
    vehicle[MAX_PLAYERS]; 
    PHP код:
    public OnPlayerExitVehicle(playeridvehicleid)
    {
        
    vehicle[playerid] = GetPlayerVehicleID(playerid);
        if(
    GetVehicleModel(vehicle[playerid]) == id автобуса)
        {
            
    /*if(RespawnTimer[playerid] > 0) KillTimer(TimerCar[playerid]);*/
            
    TimerCar[playerid] = SetTimerEx("Respawn_",1000,true,"i",playerid);
            
    RespawnTimer[playerid] = 60;
        }
        return 
    1;

    PHP код:
    public Respawn_(playerid)
    {
        if(--
    RespawnTimer[playerid] == 0)
        {
            
    SetVehicleToRespawn(vehicle[playerid]);
            
    KillTimer(TimerCar[playerid]);
        }
        return 
    1;


    Вроде бы так

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

    PHP код:
    public Respawn_(playerid)
    {
        if(--
    RespawnTimer[playerid] == 0)
        {
            
    SetVehicleToRespawn(vehicle[playerid]);
            
    KillTimer(TimerCar[playerid]);
        }
        else
        {
            new 
    string[4];
            
    valstr(stringRespawnTimer[playerid]);
            
    GameTextForPlayer(playeridstring10004);
        }
        return 
    1;


  5. Пользователь сказал cпасибо:
    Vetalll (27.08.2014)
  6. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    5,588
    Репутация:
    1984 ±
    Зачем тут KillTimer и запись ID таймера? Для кого придуман третий параметр в SetTimerEx?

    А вообще проще сделать как-то так:
    PHP код:
    public OnPlayerExitVehicle(playeridvehicleid)
    {
        if(
    GetVehicleModel(vehicleid) == /*id модели автобуса*/)
        {
            
    SetTimerEx("RespawnBus"1000false"iii"playeridvehicleidgettime()+30);
            
    SendClientMessage(playerid, -1"У вас есть 30 секунд для того, чтоб вернуться в автобус");
        }
        return 
    1;
    }


    forward RespawnBus(playeridvehicleidtime);
    public 
    RespawnBus(playeridvehicleidtime)
    {
        if(
    GetPlayerVehicleID(playerid) == vehicleid) return 1;
        new 
    get_time gettime();
        if(
    time get_time)
        {
            new 
    string[56];
            
    format(stringsizeof(string), "У вас есть %d секунд для того, чтоб вернуться в автобус"time-get_time);
            
    SendClientMessage(playerid, -1string);
            
    SetTimerEx("RespawnBus"1000false"iii"playeridvehicleidtime-1);
            return 
    1;
        }
        else return 
    SetVehicleToRespawn(vehicleid);

    Получится замкнутая система, которая не требует каких-либо левых переменных. Правда код не тестировал. Авось допустил где ошибку
    Связаться со мной в VK можно через личные сообщения этой группы
    Заказы не принимаю

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  7. Пользователь сказал cпасибо:
    Vetalll (27.08.2014)
  8. #5
    Аватар для Vetalll
    Пользователь

    Статус
    Оффлайн
    Регистрация
    16.08.2014
    Сообщений
    37
    Репутация:
    2 ±
    Вопрос решен! Большое спасибо, всем! Тема закрыта!

 

 

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

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

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

Ваши права

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