Сегодня призадумался о вариации функций и хочу определиться, все таки думаю что лучше использовать OnGameFrame или через TIMER_REPEAT сделать. OnGameFrame каждый фрейм будет проверять, а это в моем случае как минимум 66 раз в секунду с другой стороны TIMER_REPEAT можно всего 10 раз по 0.1 сотой указать, для моих нужд 10 раз в секунду, больше чем достаточно. Логически я склоняюсь к TIMER_REPEAT. Не люблю OnGameFrame и подобное конечно использовать но для моих целей это необходимо, я накидал два примера просто для наглядности, прошу дать совет, какой менее дает нагрузки на процессор сервера(вдруг есть подводные камни у OnGameFrame из за которых его предпочтительнее использовать). Просто хочу услышать ваши мнения по этому поводу.
Пример 1
Код
#pragma semicolon 1
#include <sourcemod>
new ClientHealth[MAXPLAYERS+1];
public OnGameFrame()
{
for (new client = 1; client <= MaxClients; client++)
{
if (IsClientInGame(client))
{
ClientHealth[client] = GetClientHealth(client);
}
}
}
Пример 2:
Код
#pragma semicolon 1
#include <sourcemod>
new ClientHealth[MAXPLAYERS+1];
public OnClientPutInServer(client)
{
CreateTimer(0.1, timer, client, TIMER_REPEAT);
}
public Action:timer(Handle:timer, any:client)
{
if (IsClientInGame(client))
{
ClientHealth[client] = GetClientHealth(client);
}
}