←  Pytania

AMXX.pl: Support AMX Mod X i SourceMod

»

Odliczanie czasu w minutach

Zablokowany

palarie - zdjęcie palarie 04.11.2013

Witam.

 

Mam taki kod:

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "New Plug-In"
#define VERSION "1.0"
#define AUTHOR "author"


#define ZADANIE 3481

new timer[33]

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR)
}
public zegar(id)
{    
    timer[id] = 30
    
    if(task_exists(id + ZADANIE))
    {
        remove_task( id + ZADANIE )
    }
    set_task( 1.0, "licz", id + ZADANIE, _, _, "b" )
    
    return PLUGIN_CONTINUE
}
public licz(task_id)
{
    new id = task_id - ZADANIE
    
    set_hudmessage( 255, 255, 255, 0.03, 0.3, 2, 0.02, 1.0, 0.01 )
    show_hudmessage( id, "Do konca pozostalo: %d", timer[id] )
    
    timer[id] -= 1
    
    if(timer[id] <= 0)
    {
        if( task_exists(task_id) )
        {
            remove_task( task_id )
        }
    }
}

W jaki sposób go zmienić, aby liczył minuty, nie sekundy.

 

Przykład: 30 minut (HUD ciągle się wyświetla i zmienia liczby co minutę, np: 30>29>28, itd, bez sekund)


Użytkownik palarie edytował ten post 04.11.2013 03:04
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 04.11.2013

set_task( 60.0, "licz", id + ZADANIE, _, _, "b" )
Odpowiedz

palarie - zdjęcie palarie 04.11.2013

Teraz odliczanie jest co minutę, ale w ten sposób, że HUD wyświetla się raz na minutę, pokaże czas i znika, poza tym chciałbym aby HUD pojawiał się od początku wywołania, a nie dopiero po 60 sec.

Odpowiedz

  • +
  • -
MAGNET - zdjęcie MAGNET 04.11.2013

No to wywoluj huda przy spawnie z czestotliwoscia 0.1s
@EDIT
Albo czas trwania HUDA na 60s lepiej :D
Odpowiedz

  • +
  • -
Droso - zdjęcie Droso 05.11.2013

public licz(task_id)
{
    new id = task_id - ZADANIE
    
    set_hudmessage( 255, 255, 255, 0.03, 0.3, 2, 0.02, 1.0, 0.01 )
    show_hudmessage( id, "Do konca pozostalo: %d", timer[id] )
    
    timer[id] -= 1
    
    if(timer[id] <= 0)
    {
        if( task_exists(task_id) )
        {
            remove_task( task_id )
        }
    }
}

->

public licz(task_id)
{
    new id = task_id - ZADANIE
    static sSekundy[33];

    if(!is_user_connected(id))
    return;

    set_hudmessage( 255, 255, 255, 0.03, 0.3, 2, 0.02, 1.0, 0.01 )
    show_hudmessage( id, "Do konca pozostalo: %d", timer[id] )
    
    sSekundy[id]++;
    if(sSekundy[id] && sSekundy[id]%60==0)
    timer[id] -= 1
    
    if(timer[id] <= 0)
    {
        if( task_exists(task_id) )
        {
            remove_task( task_id )
        }
    }
}

Sprawdź jak tam kompilacja, bo pisane w edytorze tekstu IPB :D

Trochę można to było lepiej zrobić, ale i tak jest lepiej chyba niż dwa taski na raz :D


Użytkownik HubertTM edytował ten post 05.11.2013 21:18
Odpowiedz
Zablokowany