Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.
Страница 2 из 2 ПерваяПервая 1 2
Показано с 11 по 15 из 15
  1. #11
    Аватар для vitalik6243
    Пользователь

    Статус
    Оффлайн
    Регистрация
    26.03.2014
    Сообщений
    1
    Репутация:
    0 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    А параметры newkeys и oldkeys для кого? Узнаём длительность этого вашего звука и запускаем таймер при нажатии на клавишу с тем интервалом, с которым играет наш звук. А после делаем какую-нибудь переменную, по которой будем отлавливать нажатие следующей клавиши и глушим звук. Ну что-то типа

    PHP код:
    public OnPlayerKeyStateChange(playeridnewkeysoldkeys)
    {
        new 
    vehicle_id GetPlayerVehicleId(playerid);
        if(
    vehicle_id)
        {
            if(
    newkeys KEY_FIRE && !(oldkeys KEY_FIRE))
            {
                
    SetTimerEx("SoundEngine"/*Интервал*/0"i"playerid);
                
    SetPVarInt(playerid"EngineStartPressed"1);
                
    //Запускаем наш звук и выполняем другие действия
            
    }
            else if(!(
    oldkeys KEY_FIRE) && !(newkeys KEY_FIRE))
            {
                
    DeletePVar(playerid"EngineStartPressed");
            }
        }
        return 
    1;
    }

    forward SoundEngine(playerid);
    public 
    SoundEngine(playerid)
    {
        if(
    Двигатель нужно завести)
        {
            
    DeletePVar(playerid"EngineStartPressed");
            
    //Запускаем двигатель
        
    }
        else
        {
            
    //Повторно запускаем звук
        
    }
        if(
    GetPVarInt(playerid"EngineStartPressed")) SetTimerEx("SoundEngine"/*Интервал*/0"i"playerid);
        return 
    1;

    Но не проверял
    Хм как вариант.
    просто oldkeys не когда не пользовался да и в общем не читал что она выполняет.

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

    Статус
    Оффлайн
    Регистрация
    02.03.2014
    Сообщений
    3
    Репутация:
    0 ±
    Большое спасибо,мне очень помог ваш мануал (хотя у меня уже есть готовая написанная система)

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

    Статус
    Оффлайн
    Регистрация
    26.01.2015
    Сообщений
    0
    Репутация:
    0 ±
    delll
    Последний раз редактировалось NEXT; 28.01.2015 в 12:35.

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

    Статус
    Оффлайн
    Регистрация
    25.11.2013
    Сообщений
    73
    Репутация:
    43 ±
    NEXT, Ваш код, безусловно, оставляет желать лучшего. Я с трудом разобрался, что к чему. Пишите, если будут проблемы:
    PHP код:
    else if(strcmp("/en"cmdtexttrue) == 0)
    {
        new 
    vehicle_ID GetPlayerVehicleID(playerid);
        if(
    vehicle_ID == INVALID_VEHICLE_ID \
            || 
    GetPlayerState(playerid) != PLAYER_STATE_DRIVER \
            || 
    IsABycicle(vehicle_ID) \
            || 
    GetPVarInt(playerid"Engining") > 0) return true;
        if(
    vehicle_ID <= MAX_BUYABLE_CARS)
        {
            if(
    CarsInfo[vehicle_ID-1][vOwned] == 0) return SendClientMessage(playeridCOLOR_GREY"Вы должны купить машину, чтобы ездить на ней!");
        }
        if(
    IsAArendCar(vehicle_ID))
        {
            new 
    rentid GetArendCarID(vehicle_ID);
            if(
    ArendInfo[rentid][aRentID] != playerid) return false;
        }
        if(
    zavodis[vehicle_ID] == 0)
        {
            if(
    vehicle_ID <= MAX_BUYABLE_CARS && PlayerInfo[playerid][pCarKey] != vehicle_ID-&& PlayerInfo[playerid][pCarKey2] != vehicle_ID-1) return SendClientMessage(playeridCOLOR_GREY"У вас нет ключей от этого автомобиля!");
            if(
    vehicle_ID <= MAX_BUYABLE_CARS && CarsInfo[vehicle_ID-1][vShtraf]) return SendClientMessage(playeridCOLOR_GREY"{ffffff}Ваша машина оштрафована, введите {FF6347}/payshtraf{ffffff} чтобы заплатить штраф");
            new 
    Float:hp,
                
    text[29+MAX_PLAYER_NAME];
            
    GetVehicleHealth(vehicle_IDhp);
            if(
    hp 400) return SendClientMessage(playerid, -1"Машина разбита. Двигатель не заводится. Вы можете вызвать механика {FF6347}(/service Вызвать механика)");
            if(
    Fuell[vehicle_ID] <= 0) return SendClientMessage(playerid, -1"В машине нет бензина. Вы можете вызвать механика {FF6347}(/service Вызвать механика){FFFFFF} или заправьтесь из канистры.");
            
    format(textsizeof(text), "*%s пытается завести двигатель."player_name); 
            
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            
    SetTimerEx("RandomEnginingCar"15000"%i"playerid); 
            
    SetPVarInt(playerid"Engining"1);
        }
        else
        {
            
    Engine(vehicle_ID,false);
            
    zavodis[vehicle_ID] = 0;
            
    Lights(vehicle_ID,false);
            
    LightPwr[vehicle_ID] = 0;
            new 
    text2[19+MAX_PLAYER_NAME];
            
    format(text2sizeof(text2), "%s глушит двигатель."sendername);
            
    ProxDetector(30.0playeridtext2COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            
    SetPlayerChatBubble(playeridtext2COLOR_PURPLE30.010000);
            if(
    Signal[vehicle_ID])
            {
                
    DestroyObject(LightsObject[vehicle_ID][0]);
                
    DestroyObject(LightsObject[vehicle_ID][1]);
                
    LightsObject[vehicle_ID][0] = -1;
                
    LightsObject[vehicle_ID][1] = -1;
                
    SignalTick[vehicle_ID][0] = 0;
                
    SignalTick[vehicle_ID][1] = -1;
                
    Signal[vehicle_ID] = 0;
            }
            if(
    vehicle_ID <= MAX_BUYABLE_CARS && CarsInfo[vehicle_ID-1][vNeon] != 0)
            {
                
    DestroyObject(neons[vehicle_ID][0]);
                
    DestroyObject(neons[vehicle_ID][1]);
                
    neons[vehicle_ID][0] = -1;
                
    neons[vehicle_ID][1] = -1;
            }
        }
        return 
    true;
    }

    //в конец мода
    forward RandomEnginingCar(playerid);
    public 
    RandomEnginingCar(playerid)
    {
        new 
    text[36+MAX_PLAYER_NAME],
            
    vehicle_ID GetPlayerVehicleID(playerid),
            
    Floatvehicle_health,
            
    player_name[MAX_PLAYER_NAME];
        
    GetVehicleHealth(vehicle_IDvehicle_health); 
        
    GetPlayerName(playeridplayer_namesizeof(player_name));
        if(
    vehicle_health >= 900)
        {
            
    Engine(vehicle_ID,true);
            
    zavodis[vehicle_ID] = 1;
            
    format(textsizeof(text), "%s завёл двигатель транспорта."player_name);
            
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
            
    SetPlayerChatBubble(playeridtextCOLOR_PURPLE,30.0,10000);
            if(
    LightsStatus(vehicle_ID) == 1)
            {
                
    LightPwr[vehicle_ID] = 0;
                if(
    vehicle_ID <= MAX_BUYABLE_CARS && CarsInfo[vehicle_ID-1][vNeon] != 0)
                {
                    
    DestroyObject(neons[vehicle_ID][0]);
                    
    DestroyObject(neons[vehicle_ID][1]);
                    
    neons[vehicle_ID][0] = -1;
                    
    neons[vehicle_ID][1] = -1;
                }
            }
        }
        else if(
    vehicle_health >= 500 || vehicle_health 900)
        {
            switch(
    random(5)) 
            {
                case 
    0..3:
                {
                    
    Engine(vehicle_ID,true);
                    
    zavodis[vehicle_ID] = 1;
                    
    format(textsizeof(text), "%s завёл двигатель транспорта."player_name);
                    
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    
    SetPlayerChatBubble(playeridtextCOLOR_PURPLE,30.0,10000);
                    if(
    LightsStatus(vehicle_ID) == 1)
                    {
                        
    LightPwr[vehicle_ID] = 0;
                        if(
    vehicle_ID <= MAX_BUYABLE_CARS && CarsInfo[vehicle_ID-1][vNeon] != 0)
                        {
                            
    DestroyObject(neons[vehicle_ID][0]);
                            
    DestroyObject(neons[vehicle_ID][1]);
                            
    neons[vehicle_ID][0] = -1;
                            
    neons[vehicle_ID][1] = -1;
                        }
                    }
                }
                case 
    4:
                {
                    
    format(textsizeof(text), "*У %s не получилось завести двигатель."player_name); 
                    
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            }
        }
        else if(
    vehicle_health 500)
        {
            switch(
    random(5))
            {
                case 
    34:
                {
                    
    Engine(vehicle_ID,true);
                    
    zavodis[vehicle_ID] = 1;
                    
    format(textsizeof(text), "%s завёл двигатель транспорта."player_name);
                    
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                    
    SetPlayerChatBubble(playeridtextCOLOR_PURPLE,30.0,10000);
                    if(
    LightsStatus(vehicle_ID) == 1)
                    {
                        
    LightPwr[vehicle_ID] = 0;
                        if(
    vehicle_ID <= MAX_BUYABLE_CARS && CarsInfo[vehicle_ID-1][vNeon] != 0)
                        {
                            
    DestroyObject(neons[vehicle_ID][0]);
                            
    DestroyObject(neons[vehicle_ID][1]);
                            
    neons[vehicle_ID][0] = -1;
                            
    neons[vehicle_ID][1] = -1;
                        }
                    }
                }
                case 
    0..2:
                {
                    
    format(textsizeof(text), "*У %s не получилось завести двигатель."player_name);
                    
    ProxDetector(30.0playeridtextCOLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                }
            }
        }
        
    SetPVarInt(playerid"Engining"0);
        return 
    true;

    А Вам рекомендую почитать рекомендации по написанию кода (в разделе "Уроки" вроде тема), да и другие работы модераторов форума.
    Hidden (Kenny Hellwood)

    Темы:
    [Мануал] Система двигателя [for new.pwn] - click.
    [Мануал] Запись нескольких значений в один столбец через запятую [mysql r7] - click.
    [Мануал] Табличка на прицепы - click.
    [Info] Выражения и операторы PAWN - click.

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

    Статус
    Оффлайн
    Регистрация
    26.01.2015
    Сообщений
    0
    Репутация:
    0 ±
    Hidden
    Спасибо вам большое, всё работает как положено (без перебоев) )))
    На счёт уроков, да читаю потихоньку хоть что то набирается в свой опыт но этого еще недостаточно))
    Последний раз редактировалось NEXT; 27.01.2015 в 23:54.

 

 
Страница 2 из 2 ПерваяПервая 1 2

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

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

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

Ваши права

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