С помощью функции get_gametime, можно получить игровое время с плавающей точкой, что будет очень точным временем.
Инфо из amxmodx.inc:
/* Returns a game time. */
native Float:get_gametime();
Синтаксис:
get_gametime()
Тип функции:
Native
Пример:
/* Plugin generated by AMXX-Studio */
#include <amxmodx>
#include <amxmisc>
#define PLUGIN "[http://amxxmodx.ru] get_gametime"
#define VERSION "1.0"
#define AUTHOR "Admin"
new Float:g_time
public plugin_init() {
register_plugin(PLUGIN, VERSION, AUTHOR)
register_srvcmd("/start","start")
register_srvcmd("/finish","finish")
}
public start(){
g_time = get_gametime()
}
public finish(){
new Float:finish_time = get_gametime() - g_time
server_print("Finish time: %.2f",finish_time)
}
Описание:
Для начала поставим себе задачу:
Узнать время от команды старт, до команды финиш.
Реализация:
В функции которая выполняется по команде /start ( обратите внимания, работаем в консоли сервера)
Мы записываем в глобальную переменную время на текущий момент.
Дальше вызываем команду /finish.
В которой вычисляем разницу между временем текущем и записанным ранее в функции старт.
Результат и будет затраченным временем.
Обратите внимание - что если вы будете подряд выполнять команду финиш, время будет увеличиваться, так как старт остался на прежнем месте.
Можете добавить в функцию финиша start(), тогда функция старт будет вызываться сразу после финиша.
Запись:%.2f - %f означает что подставляем дробное число (число с плавающей точкой) .2 - сколько нулей после точки.
А функция полезная даже очень