В итоге на момент написания статьи уже наплюсовалось 1320782311 секунд. Сразу возникает вопрос, а где же была первая секунда?
Вопрос правильный, а началась она 1 января 1970 года. О истории этой даты вы сможете найти на других сайтах.
Функция get_systime и возвращает значение количества секунд на данный момент.
Мы можем запомнить сколько секунд сейчас и затем,через какое то время, узнать его заново, разница этих двух значений будет количеством секунд прошедшим между этими двумя событиями. Таким образом можно считать например количество проведенного времени игроком на сервере.
Инфо из amxmodx.inc:
/* Returns system time in seconds elapsed since 00:00:00 on January 1, 1970.
* Offset is given in seconds.*/
native get_systime(offset = 0);
Синтаксис:
get_systime()
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[amxmodx.inc] get_systime"
#define VERSION "1.0"
#define AUTHOR "Admin"
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
//2 Команды для тестов
register_srvcmd("systime","systime")
register_srvcmd("systime2","systime2")
}
//Глобальная переменная
new g_sys_time
public systime(){
//Записываем системное время в переменную
g_sys_time = get_systime()
//вывод в консоль
server_print("Sys time: %d", g_sys_time)
}
public systime2(){
//новая переменная и получение разницы между моментом ( прямо сейчас)
// и записанным в предыдущей функции
new sec_time = get_systime() - g_sys_time
//Вывод результата в консоль
server_print("Sys time2: %d", sec_time)
}
Описание:
Данный пример позволяет получить текущее системное время и разницу времени в секундах между вводом команды systime и systime2.
В коде я постарался максимально подробно оставить комментарии.
Задача для самоконтроля:
После выхода игрока с сервера, в общи чат выводилась информация о времени проведенном этим игроком на сервере.
Новость отредактировал Admin - 10-06-2012, 18:13
Причина: Опечатка в примре (g_sys_time спасибо Hunter)
опечатка ?