Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 16

Тема: [ALL] Progress Bar

  1. #1
    Активный пользователь Аватар для LMapper
    Регистрация
    01.04.2011
    Адрес
    != true
    Сообщений
    991
    Репутация: 91

    Звание: скоро придёт к известности

    [ALL] Progress Bar



    Описание:
    Практически во всех модах игроку приходится ждать при выполнении различного рода действий,
    (от замены колеса, до скидывания денег с кассы в мешок при ограблении).
    Но нигде я не видел использования прогресс бара, что странно.
    Предлагаю свое решение к рассмотрению.

    Итак:
    При вызове функции выбрасывает на экран игрока прогресс бар (load bar).
    Функции двух типов:

    Одна вызывается с указанием значение времени (в мсек (сек * 1000)),
    в течении которых бар заполняется, и по истечению которых - бар убирается.
    LoadBarTime(playerid,10)


    Вторая функция вызывается с указанием кол-ва заполненных секторов (0-10), при указание
    в аргументе любого другого числа - бар убирается.
    LoadBarProgress(playerid,1)


    Я показал сам простенький алгоритм в самом простом исполнении, с готовыми текстами.
    Как его использоваться в своем коде - дело ваше.

    В начало:
    PHP код:
    new LoadBarSection[MAX_PLAYERS];
    new 
    LoadBarToPlayer[MAX_PLAYERS];
    new 
    Text:TextDraw0;
    new 
    Text:TextDraw[11];

    К форвардам:
    [
    PAWN]forward LoadBarProgress(playerid,progress);
    forward LoadBarTime(playerid,time);
    forward LoadBarTimer(playerid); //thx, LMapper, bro 
    В public OnGameModeInit:
    PHP код:
            TextDraw0 TextDrawCreate(398.000000309.000000"New TextDraw");
        
    TextDrawBackgroundColor(TextDraw0255);
        
    TextDrawFont(TextDraw01);
        
    TextDrawLetterSize(TextDraw00.5000001.100000);
        
    TextDrawColor(TextDraw0, -1);
        
    TextDrawSetOutline(TextDraw00);
        
    TextDrawSetProportional(TextDraw01);
        
    TextDrawSetShadow(TextDraw01);
        
    TextDrawUseBox(TextDraw01);
        
    TextDrawBoxColor(TextDraw0200);
        
    TextDrawTextSize(TextDraw0239.0000000.000000);

        
    TextDraw[1] = TextDrawCreate(257.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[1], 255);
        
    TextDrawFont(TextDraw[1], 1);
        
    TextDrawLetterSize(TextDraw[1], 0.5000001.500000);
        
    TextDrawColor(TextDraw[1], -1);
        
    TextDrawSetOutline(TextDraw[1], 0);
        
    TextDrawSetProportional(TextDraw[1], 1);
        
    TextDrawSetShadow(TextDraw[1], 1);
        
    TextDrawUseBox(TextDraw[1], 1);
        
    TextDrawBoxColor(TextDraw[1], 1966250);
        
    TextDrawTextSize(TextDraw[1], 242.0000000.000000);

        
    TextDraw[2] = TextDrawCreate(272.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[2], 255);
        
    TextDrawFont(TextDraw[2], 1);
        
    TextDrawLetterSize(TextDraw[2], 0.5000001.500000);
        
    TextDrawColor(TextDraw[2], -1);
        
    TextDrawSetOutline(TextDraw[2], 0);
        
    TextDrawSetProportional(TextDraw[2], 1);
        
    TextDrawSetShadow(TextDraw[2], 1);
        
    TextDrawUseBox(TextDraw[2], 1);
        
    TextDrawBoxColor(TextDraw[2], 1966250);
        
    TextDrawTextSize(TextDraw[2], 256.0000000.000000);

        
    TextDraw[3] = TextDrawCreate(287.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[3], 255);
        
    TextDrawFont(TextDraw[3], 1);
        
    TextDrawLetterSize(TextDraw[3], 0.5000001.500000);
        
    TextDrawColor(TextDraw[3], -1);
        
    TextDrawSetOutline(TextDraw[3], 0);
        
    TextDrawSetProportional(TextDraw[3], 1);
        
    TextDrawSetShadow(TextDraw[3], 1);
        
    TextDrawUseBox(TextDraw[3], 1);
        
    TextDrawBoxColor(TextDraw[3], 1966250);
        
    TextDrawTextSize(TextDraw[3], 271.0000000.000000);

        
    TextDraw[4] = TextDrawCreate(302.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[4], 255);
        
    TextDrawFont(TextDraw[4], 1);
        
    TextDrawLetterSize(TextDraw[4], 0.5000001.500000);
        
    TextDrawColor(TextDraw[4], -1);
        
    TextDrawSetOutline(TextDraw[4], 0);
        
    TextDrawSetProportional(TextDraw[4], 1);
        
    TextDrawSetShadow(TextDraw[4], 1);
        
    TextDrawUseBox(TextDraw[4], 1);
        
    TextDrawBoxColor(TextDraw[4], 1966250);
        
    TextDrawTextSize(TextDraw[4], 286.0000000.000000);

        
    TextDraw[5] = TextDrawCreate(317.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[5], 255);
        
    TextDrawFont(TextDraw[5], 1);
        
    TextDrawLetterSize(TextDraw[5], 0.5000001.500000);
        
    TextDrawColor(TextDraw[5], -1);
        
    TextDrawSetOutline(TextDraw[5], 0);
        
    TextDrawSetProportional(TextDraw[5], 1);
        
    TextDrawSetShadow(TextDraw[5], 1);
        
    TextDrawUseBox(TextDraw[5], 1);
        
    TextDrawBoxColor(TextDraw[5], 1966250);
        
    TextDrawTextSize(TextDraw[5], 301.0000000.000000);

        
    TextDraw[6] = TextDrawCreate(332.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[6], 255);
        
    TextDrawFont(TextDraw[6], 1);
        
    TextDrawLetterSize(TextDraw[6], 0.5000001.500000);
        
    TextDrawColor(TextDraw[6], -1);
        
    TextDrawSetOutline(TextDraw[6], 0);
        
    TextDrawSetProportional(TextDraw[6], 1);
        
    TextDrawSetShadow(TextDraw[6], 1);
        
    TextDrawUseBox(TextDraw[6], 1);
        
    TextDrawBoxColor(TextDraw[6], 1966250);
        
    TextDrawTextSize(TextDraw[6], 316.0000000.000000);

        
    TextDraw[7] = TextDrawCreate(347.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[7], 255);
        
    TextDrawFont(TextDraw[7], 1);
        
    TextDrawLetterSize(TextDraw[7], 0.5000001.500000);
        
    TextDrawColor(TextDraw[7], -1);
        
    TextDrawSetOutline(TextDraw[7], 0);
        
    TextDrawSetProportional(TextDraw[7], 1);
        
    TextDrawSetShadow(TextDraw[7], 1);
        
    TextDrawUseBox(TextDraw[7], 1);
        
    TextDrawBoxColor(TextDraw[7], 1966250);
        
    TextDrawTextSize(TextDraw[7], 331.0000000.000000);

        
    TextDraw[8] = TextDrawCreate(363.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[8], 255);
        
    TextDrawFont(TextDraw[8], 1);
        
    TextDrawLetterSize(TextDraw[8], 0.5000001.500000);
        
    TextDrawColor(TextDraw[8], -1);
        
    TextDrawSetOutline(TextDraw[8], 0);
        
    TextDrawSetProportional(TextDraw[8], 1);
        
    TextDrawSetShadow(TextDraw[8], 1);
        
    TextDrawUseBox(TextDraw[8], 1);
        
    TextDrawBoxColor(TextDraw[8], 1966250);
        
    TextDrawTextSize(TextDraw[8], 346.0000000.000000);

        
    TextDraw[9] = TextDrawCreate(379.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[9], 255);
        
    TextDrawFont(TextDraw[9], 1);
        
    TextDrawLetterSize(TextDraw[9], 0.5000001.500000);
        
    TextDrawColor(TextDraw[9], -1);
        
    TextDrawSetOutline(TextDraw[9], 0);
        
    TextDrawSetProportional(TextDraw[9], 1);
        
    TextDrawSetShadow(TextDraw[9], 1);
        
    TextDrawUseBox(TextDraw[9], 1);
        
    TextDrawBoxColor(TextDraw[9], 1966250);
        
    TextDrawTextSize(TextDraw[9], 362.0000000.000000);

        
    TextDraw[10] = TextDrawCreate(395.000000312.000000"  ");
        
    TextDrawBackgroundColor(TextDraw[10], 255);
        
    TextDrawFont(TextDraw[10], 1);
        
    TextDrawLetterSize(TextDraw[10], 0.5000001.500000);
        
    TextDrawColor(TextDraw[10], -1);
        
    TextDrawSetOutline(TextDraw[10], 0);
        
    TextDrawSetProportional(TextDraw[10], 1);
        
    TextDrawSetShadow(TextDraw[10], 1);
        
    TextDrawUseBox(TextDraw[10], 1);
        
    TextDrawBoxColor(TextDraw[10], 1966250);
        
    TextDrawTextSize(TextDraw[10], 378.0000000.000000); 
    В конец мода:
    PHP код:
    LoadBarProgress(playerid,progress)
    {
        for (new 
    i=1i<11++) TextDrawHideForPlayer(playeridTextDraw[i]);
        
    TextDrawHideForPlayer(playeridTextDraw0);
        if ((
    progress 0) && (progress 11))
        {
            
    TextDrawShowForPlayer(playeridTextDraw0);
            for (new 
    i=1i<progress+1++) TextDrawShowForPlayer(playeridTextDraw[i]);
        }
    }

    public 
    LoadBarTime(playerid,time)
    {
        
    LoadBarSection[playerid] = 0;
        
    TextDrawShowForPlayer(playeridTextDraw0);
        
    LoadBarToPlayer[playerid] = SetTimerEx("LoadBarTimer"time/10true"i"playerid);
    }

    public 
    LoadBarTimer(playerid)
    {
        if(
    LoadBarSection[playerid] == 10)
        {
            for (new 
    1i<11i++) TextDrawHideForPlayer(playeridTextDraw[i]);
            
    TextDrawHideForPlayer(playeridTextDraw0);
            
    KillTimer(LoadBarToPlayer[playerid]);
        }
        else
        {
            
    LoadBarSection[playerid]++;
            
    TextDrawShowForPlayer(playeridTextDraw[LoadBarSection[playerid]]);
        }



    p.s. - писал код около полугода назад, тогда все работало, но возможности выложить не было. Сейчас откопал сей код, решил поделиться.
    Возможны косяки.
    Pawn,Sourcepawn,ArmA.
    Delphi,Pascal,etc..
    Досье:
    ...У ДЦ были проблемы с электроснабжением, никак не связанные с тем, что я играю в лол....
    С уважением,
    Команда Ru-hoster
    Психически не устойчив, на таблетках.

  2. 1 пользователь сказал cпасибо LMapper за это полезное сообщение:

    MAY (30.06.2015)

  3. #2
    Джентльмен лжец Аватар для Fallen A.
    Регистрация
    03.09.2011
    Адрес
    Минск, БССР
    Возраст
    30
    Сообщений
    2,409
    Репутация: 337

    Звание: как роза среди колючек

    Re: [ALL] Progress Bar

    К примеру: я не хочу ставить все это ради того, чтобы посмотреть внешний вид. Хотелось бы скриншот.

  4. #3
    Активный пользователь Аватар для LMapper
    Регистрация
    01.04.2011
    Адрес
    != true
    Сообщений
    991
    Репутация: 91

    Звание: скоро придёт к известности

    Re: [ALL] Progress Bar

    Цитата Сообщение от Fallen A. Посмотреть сообщение
    К примеру: я не хочу ставить все это ради того, чтобы посмотреть внешний вид. Хотелось бы скриншот.
    Цитата Сообщение от LMapper Посмотреть сообщение
    (Скринчик скоро будет, тема редактируется)
    sas
    Pawn,Sourcepawn,ArmA.
    Delphi,Pascal,etc..
    Досье:
    ...У ДЦ были проблемы с электроснабжением, никак не связанные с тем, что я играю в лол....
    С уважением,
    Команда Ru-hoster
    Психически не устойчив, на таблетках.

  5. #4
    Проверенный Аватар для PawnoKokolotov
    Регистрация
    12.08.2010
    Адрес
    Пермский край
    Возраст
    28
    Сообщений
    1,205
    Репутация: 161

    Звание: - весьма и весьма положительная личность

    Re: [ALL] Progress Bar

    Y

  6. 1 пользователь сказал cпасибо PawnoKokolotov за это полезное сообщение:

    LMapper (29.06.2015)

  7. #5
    Активный пользователь Аватар для LMapper
    Регистрация
    01.04.2011
    Адрес
    != true
    Сообщений
    991
    Репутация: 91

    Звание: скоро придёт к известности

    Re: [ALL] Progress Bar

    Обсуждаем?
    Pawn,Sourcepawn,ArmA.
    Delphi,Pascal,etc..
    Досье:
    ...У ДЦ были проблемы с электроснабжением, никак не связанные с тем, что я играю в лол....
    С уважением,
    Команда Ru-hoster
    Психически не устойчив, на таблетках.

  8. #6
    Истеричка
    Регистрация
    11.12.2011
    Возраст
    27
    Сообщений
    2,324
    Репутация: 323

    Звание: как роза среди колючек

    Re: [ALL] Progress Bar

    Ваааай, прогресс бар делается из 2х текстдравов, один из которых статический фон.

  9. 1 пользователь сказал cпасибо Seregamil за это полезное сообщение:

    spc. (29.06.2015)

  10. #7
    Активный пользователь Аватар для LMapper
    Регистрация
    01.04.2011
    Адрес
    != true
    Сообщений
    991
    Репутация: 91

    Звание: скоро придёт к известности

    Re: [ALL] Progress Bar

    Цитата Сообщение от Seregamil Посмотреть сообщение
    Ваааай, прогресс бар делается из 2х текстдравов, один из которых статический фон.
    Молодец какой, а если бар необходимо выкинуть сотке игрокам, как ты его менять будешь для каждого ?
    У меня все дравы статические, и просто показываются по необходимости кому надо.
    Pawn,Sourcepawn,ArmA.
    Delphi,Pascal,etc..
    Досье:
    ...У ДЦ были проблемы с электроснабжением, никак не связанные с тем, что я играю в лол....
    С уважением,
    Команда Ru-hoster
    Психически не устойчив, на таблетках.

  11. #8
    Почетный пользователь LC Аватар для ziggi
    Регистрация
    15.07.2010
    Адрес
    St. Petersburg
    Возраст
    30
    Сообщений
    370
    Репутация: 151

    Звание: - весьма и весьма положительная личность

    Re: [ALL] Progress Bar

    Цитата Сообщение от LMapper Посмотреть сообщение
    Молодец какой, а если бар необходимо выкинуть сотке игрокам, как ты его менять будешь для каждого ?
    У меня все дравы статические, и просто показываются по необходимости кому надо.
    Очень просто: статичный фон - глобальный, полоса прогресса - для каждого игрока своя (PlayerTextDraw).
    Хотя и ваш вариант довольно хорош.

  12. #9
    Активный пользователь Аватар для LMapper
    Регистрация
    01.04.2011
    Адрес
    != true
    Сообщений
    991
    Репутация: 91

    Звание: скоро придёт к известности

    Re: [ALL] Progress Bar

    Цитата Сообщение от ziggi Посмотреть сообщение
    Очень просто: статичный фон - глобальный, полоса прогресса - для каждого игрока своя (PlayerTextDraw).
    Хотя и ваш вариант довольно хорош.
    Я понимаю, но это для каждого игрока необходимо создавать отдельный динамический текстдрав, а тут набор статических дравов, что на мой взгляд намного более эффективно.
    Pawn,Sourcepawn,ArmA.
    Delphi,Pascal,etc..
    Досье:
    ...У ДЦ были проблемы с электроснабжением, никак не связанные с тем, что я играю в лол....
    С уважением,
    Команда Ru-hoster
    Психически не устойчив, на таблетках.

  13. #10
    Перевыпроверенный Аватар для LINKINPARK
    Регистрация
    29.08.2011
    Сообщений
    1,732
    Репутация: 210

    Звание: - весьма и весьма положительная личность

    Re: [ALL] Progress Bar

    Цитата Сообщение от LMapper Посмотреть сообщение
    Молодец какой, а если бар необходимо выкинуть сотке игрокам, как ты его менять будешь для каждого ?
    У меня все дравы статические, и просто показываются по необходимости кому надо.
    http://pastebin.com/8mYP8eVp очень просто, там и цвет для каждого свой и размер.
    админка 100 уровней(1-модер, 2 крутой модер, 3 главный модер, 4 пздц главный модер, 5 создатель модеров, 6 младший админ, 7 так себе админ, 8 админ, 9-злой одмин, 10 старший админ, 11 пздц какой админ, 12 главный админ, 13 пздец какой главный админ, 14 ну просто пиздец какой глаынй, 15 создатель скрипта, 16 создатель второго скрипта) - не помню кто ©
    [Начинающий скриптер]
    Сообщение от free1715
    Ну я вот как сделал слил все входы и выходы в пикапы которы были на сервере,и начало все норм работать,но не знаю все же таки как мне делать так что бы они не конфликтовали.И беда в том что если я удаляю полицейских а оставляю другие то оно меня кидало в бар в первом городе на улицу.

Страница 1 из 2 12 ПоследняяПоследняя

Похожие темы

  1. [Include] Progress Bar
    от Sanders в разделе Инклюды
    Ответов: 6
    Последнее сообщение: 04.07.2013, 20:39

Ваши права

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