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

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 8 из 8
  1. #1
    Аватар для denis01
    Пользователь

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

    как сделать сколько игрок находился времени в игре

    Ув. знатоки pro-pawn.
    Как сделать так чтобы к примеру игрок заходил в игру у него началось считать сколько времени он проводит в игре а при выходе с игры обнулялось.

    К примеру игрок водит команду /time у него выводит сообщени нахождение в игре: час/минут а потом игрок вышел у него обнуляеться время

  2. #2
    Аватар для Londlem
    Модератор

    Статус
    Оффлайн
    Регистрация
    19.10.2013
    Сообщений
    1,360
    Репутация:
    767 ±
    NetStats_GetConnectedTime

    Либо через массив. При коннекте устанавливаете значение переменной игрока значению: GetTickCount() и потом сравниваете так:
    PHP код:
    (GetTickCount() - переменная_игрока[playerid]) / 1000 
    Выведет количество секунд, сколько игрок провёл в игре.

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

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    В начало мода
    PHP код:
    #define ShowTimeOfPlayerInGame(%0,%1,%2,%3) ConvertSeconds(gettime() - GetPVarInt(%0, "Time Of Player In Game"), %1, %2, %3) 
    В OnPlayerConnect
    PHP код:
    SetPVarInt(playerid"Time Of Player In Game"gettime()); 
    После новую функцию для конвертации секунд в формат "час/минута/секунда"
    PHP код:
    stock ConvertSeconds(conv_time, &conv_hour, &conv_minute,&conv_second)
    {
        if(
    conv_time <= 60)
        {
            
    conv_hour 0;
            
    conv_minute 0;
            
    conv_second conv_time;
        }
        else if(
    conv_time 60 && conv_time 3600)
        {
            
    conv_hour 0;
            
    conv_minute conv_time 60;
            
    conv_second floatround(conv_time 60floatround_tozero);
        }
        else if(
    conv_time == 3600){ conv_hour 1conv_minute 0conv_second 0; }
        else if(
    conv_time 3600)
        {
            new 
    conv_minute_int;
            
    conv_hour conv_time 3600;
            
    minutes_int floatround(conv_time 3600floatround_tozero);
            
    conv_minute conv_minute_int 60;
            
    conv_second floatround(conv_minute_int 60floatround_tozero);
        }
        return 
    1;

    И пример вывода времени:
    PHP код:
    new hour_in_game,
        
    minute_in_game,
        
    seconds_in_game;

    ShowTimeOfPlayerInGame(playeridhour_in_gameminute_in_gameseconds_in_game);
    printf("Игрок с ID %d провёл в игре %d часов, %d минут и %d секунд"playeridhour_in_gameminute_in_gameseconds_in_game); 
    Как-то так. В теории должно работать. Кто проверит - отпишитесь
    Связаться со мной можно в личных сообщениях этой группы

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

    Steve Pavlina

  5. 2 пользователя(ей) сказали cпасибо:
    denis01 (09.06.2014)Mr.DeViLsS (09.06.2014)
  6. #4
    Аватар для Mr.DeViLsS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.03.2014
    Сообщений
    129
    Репутация:
    -2 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение

    Как-то так. В теории должно работать. Кто проверит - отпишитесь
    Работает!

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

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Вот скриншот:

    Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?

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

    Статус
    Оффлайн
    Регистрация
    03.05.2013
    Сообщений
    242
    Репутация:
    6 ±
    Цитата Сообщение от denis01 Посмотреть сообщение
    Вот скриншот:

    Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?
    в PlayerInfo:
    PHP код:
    pTimeGame 
    в public Refresh либо его аналог:
    PHP код:
    PlayerInfo[i][pTimeGame] +=1
    в public PayDay:
    PHP код:
    if(PlayerInfo[i][pTimeGame] < 1800)
                    {
                        if(
    PlayerInfo[i][pMember] !=0) { checks checks 2;  }
                    } 
    а в команду /time там где формат:
    PHP код:
    Convert(PlayerInfo[playerid][pTimeGame]) 
    Примерно будет так:
    PHP код:
    format(stringsizeof(string), "Нахождение в игре: {2BD639}%s"Convert(PlayerInfo[playerid][pTimeGame])); 
    В OnPlayerConnect это:
    PHP код:
    PlayerInfo[playerid][pTimeGame] = 0

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

    Статус
    Оффлайн
    Регистрация
    17.05.2014
    Сообщений
    70
    Репутация:
    0 ±
    Цитата Сообщение от Maks5 Посмотреть сообщение
    в PlayerInfo:
    PHP код:
    pTimeGame 
    в public Refresh либо его аналог:
    PHP код:
    PlayerInfo[i][pTimeGame] +=1
    в public PayDay:
    PHP код:
    if(PlayerInfo[i][pTimeGame] < 1800)
                    {
                        if(
    PlayerInfo[i][pMember] !=0) { checks checks 2;  }
                    } 
    а в команду /time там где формат:
    PHP код:
    Convert(PlayerInfo[playerid][pTimeGame]) 
    Примерно будет так:
    PHP код:
    format(stringsizeof(string), "Нахождение в игре: {2BD639}%s"Convert(PlayerInfo[playerid][pTimeGame])); 
    В OnPlayerConnect это:
    PHP код:
    PlayerInfo[playerid][pTimeGame] = 0
    Вы же при payday заного начинаете читать! а мне надо чтобы к примеру если он 5 часов или 10 часов, то ему это показывало а не в payday обратно с 0 отчёт шел

  10. #8
    Аватар для Mr.DeViLsS
    Пользователь

    Статус
    Оффлайн
    Регистрация
    30.03.2014
    Сообщений
    129
    Репутация:
    -2 ±
    Цитата Сообщение от denis01 Посмотреть сообщение
    Вот скриншот:

    Хотелось бы так сделать, DeimoS а твоим способом в диалоге что надо использовать?
    PHP код:
    new string[30]; new hour_in_game,minute_in_game,seconds_in_game;
    ShowTimeOfPlayerInGame(playeridhour_in_gameminute_in_gameseconds_in_game);
    format(string,30"Нахождение в игре: %d часов, %d минут и %d секунд",hour_in_gameminute_in_gameseconds_in_game);
    ShowPlayerDialog(playerid,ид_диалога,стиль_диалога,"Название",string"кнопка1","кнопка2"); 

 

 

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

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

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

Ваши права

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