get_time prośba o wytłumaczenie
Drzanas
05.11.2011
Witam.
Chciałbym zrobić w pluginie aby o godzinie 12:00 działo się coś, o godzinie 13:00 działo się coś i tak dalej.
Za sprawdzenie godziny odpowiada (chyba) funkcja
Czy mógłby mi ktoś wytłumaczyć na jakimś przykładzie jak używać tego?
Załóżmy że jeżeli jest godzina 13:00 na serwerze pojawia się napisa w say
Z góry dziękuję za odpowiedź.
Użytkownik Drzanas edytował ten post 05.11.2011 14:34
Chciałbym zrobić w pluginie aby o godzinie 12:00 działo się coś, o godzinie 13:00 działo się coś i tak dalej.
Za sprawdzenie godziny odpowiada (chyba) funkcja
get_time.
Czy mógłby mi ktoś wytłumaczyć na jakimś przykładzie jak używać tego?
Załóżmy że jeżeli jest godzina 13:00 na serwerze pojawia się napisa w say
Mamy godzinę 13:00. A jak jest godzina 14:00 pojawia się tekst
Wybiła godzina 14:00Proszę mi nie podawać linku do tego pluginu http://forums.allied...read.php?t=1263 oraz tego http://amxx.pl/topic...-by-justinhomi/
Z góry dziękuję za odpowiedź.
Użytkownik Drzanas edytował ten post 05.11.2011 14:34
MarWit
05.11.2011
Możesz zrobić to np. tak:
Działa to na takiej zasadzie:
Tworzysz byt i ustawiasz mu nextthinka co sekunde. Wtedy pobierany jest czas ( format: gg:mm:ss ) i sprawdzany
Jak chcesz aby coś się stało np. o 18:30, tworzysz następnego if'a ( analogicznie do pierwszego ) np.
Użytkownik MarWit edytował ten post 05.11.2011 14:56
#include <amxmodx>
#include <engine>
new szDate[64];
public plugin_init() {
register_plugin("Test", "0.1", "MarWit")
register_think("msgent", "MsgEnt_Think")
new g_iMsgEnt = create_entity("info_target")
entity_set_string(g_iMsgEnt, EV_SZ_classname, "msgent")
entity_set_float(g_iMsgEnt, EV_FL_nextthink, get_gametime() + 1.0)
}
public MsgEnt_Think(iEnt)
{
get_time("%X", szDate, 63)
if(equali(szDate, "15:00:00"))
{
// Tu dajesz kod co ma sie wykonac o godzinie 15:00:00
}
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}
Działa to na takiej zasadzie:
Tworzysz byt i ustawiasz mu nextthinka co sekunde. Wtedy pobierany jest czas ( format: gg:mm:ss ) i sprawdzany
if(equali(szDate, "15:00:00"))
Jak chcesz aby coś się stało np. o 18:30, tworzysz następnego if'a ( analogicznie do pierwszego ) np.
if(equali(szDate, "18:30:00"))
{
// Tu dajesz kod co ma sie wykonac o godzinie 18:30:00
}
Użytkownik MarWit edytował ten post 05.11.2011 14:56
Drzanas
05.11.2011
public MsgEnt_Think(iEnt)
{
get_time("%X", szDate, 63)
if(equali(szDate, "15:00:00"))
{
// Tu dajesz kod co ma sie wykonac o godzinie 15:00:00
}
if(equali(szDate, "16:00:00"))
{
//cod
}
entity_set_float(iEnt, EV_FL_nextthink, get_gametime() + 1.0)
}
I będzie dobrze?
Użytkownik Drzanas edytował ten post 05.11.2011 15:15
Drzanas
07.11.2011
Dziękuje.
Można zamknąć.
A jednak jeszcze mam jedno pytanie.
Jak zrobić obliczanie ile zostało do danej godziny?
Jest 12:15 a chce aby wyświetlało (w minutach) ile pozostało czasu czasu do 13?
Albo ile zostało do godziny 14:05 jak mamy np 13:58.
Najlepiej żeby w hud to było, ale mogę sobie przerobić.
Użytkownik Drzanas edytował ten post 07.11.2011 16:20
Można zamknąć.
A jednak jeszcze mam jedno pytanie.
Jak zrobić obliczanie ile zostało do danej godziny?
Jest 12:15 a chce aby wyświetlało (w minutach) ile pozostało czasu czasu do 13?
Albo ile zostało do godziny 14:05 jak mamy np 13:58.
Najlepiej żeby w hud to było, ale mogę sobie przerobić.
Użytkownik Drzanas edytował ten post 07.11.2011 16:20
MarWit
07.11.2011
Wyliczyć ile zostało do danej godziny nie jest trudno. Przykładowy kod:
Po wpisaniu w say'u komendy /do16 w chacie wyświetli sie ile zostało minut do 16:00
#include <amxmodx>
#include <amxmisc>
public plugin_init()
register_clcmd("say /do16", "cmdDo16")
public cmdDo16(id)
{
new szDate[64], szTemp[2][5]
new iNum[3]
get_time("%H:%M", szDate, 63)
split(szDate, szTemp[0], charsmax(szTemp[]), szTemp[1], charsmax(szTemp[]), ":")
iNum[0] = (str_to_num(szTemp[0]) * 60 ) + str_to_num(szTemp[1])
iNum[1] = (16 * 60)
if(iNum[0] < iNum[1])
iNum[2] = iNum[1] - iNum[0]
else
iNum[2] = ( 24 * 60 ) + ( iNum[0] - iNum[1] )
client_print(id, print_chat, "Do godziny 16:00 zostalo: %d min. !", iNum[2])
}
Po wpisaniu w say'u komendy /do16 w chacie wyświetli sie ile zostało minut do 16:00
Użytkownik MarWit edytował ten post 07.11.2011 17:15