Добавление времени.
|
|
IceMeN
|
Дата: Четверг, 26.04.2012, 20:20:37 | Сообщение # 1 |
|
Сообщений: 47
Репутация: 5 [ +/- ]
|
|
Какой командой или функцией можно узнать время, которое осталось до конца раунда?
Сообщение отредактировал IceMeN - Четверг, 26.04.2012, 22:58:43 |
|
| |
_wS_
|
Дата: Четверг, 26.04.2012, 23:15:47 | Сообщение # 2 |
|
Code new round_end_sec;
round_start { round_end_sec = GetTime() + GetEventInt(event, "timelimit"); }
// Осталось до конца раунда:
new last_sec = round_end_sec - GetTime(); if (last_sec < 1) { // время раунда вышло }
Можно блокировать завершение раунда в событии CS_OnTerminateRound (об этом есть тема в уроках), и в нужный момент завершить его с помощью CS_TerminateRound. Можно таймер сделать:
Code new Handle:RoundEndTimer;
round_start { if (RoundEndTimer != INVALID_HANDLE) KillTimer(RoundEndTimer); RoundEndTimer = CreateTimer(float(GetEventInt(event, "timelimit")), RoundEndTimer_Func); }
round_end { if (RoundEndTimer != INVALID_HANDLE) { KillTimer(RoundEndTimer); RoundEndTimer = INVALID_HANDLE; } }
public Action:RoundEndTimer_Func(Handle:timer, any:xz) { // тут завершай раунд RoundEndTimer = INVALID_HANDLE; }
|
|
| |
IceMeN
|
Дата: Четверг, 26.04.2012, 23:59:42 | Сообщение # 3 |
|
Сообщений: 47
Репутация: 5 [ +/- ]
|
|
Спасибо.
И еще что делает функция GetTime()? Есть предположения, но решил переспросить... Данная функция возвращает время на сервере(на машине сервера)?
|
|
| |
_wS_
|
Дата: Пятница, 27.04.2012, 00:37:09 | Сообщение # 4 |
|
Возвращает число секунд, прошедших с Эпохи Unix, которое растёт с каждой секундой (+1 сек) Ой, я там с таймером ошибся немного, надо так:
Code round_start { if (RoundEndTimer != INVALID_HANDLE) KillTimer(RoundEndTimer); RoundEndTimer = CreateTimer(float(GetEventInt(event, "timelimit")), RoundEndTimer_Func); }
round_end { if (RoundEndTimer != INVALID_HANDLE) { KillTimer(RoundEndTimer); RoundEndTimer = INVALID_HANDLE; } }
|
|
| |
IceMeN
|
Дата: Пятница, 27.04.2012, 08:01:04 | Сообщение # 5 |
|
Сообщений: 47
Репутация: 5 [ +/- ]
|
|
И еще. Можно ли изменить это оставшееся время использую: SetEventInt(event, "timelimit", 180);
|
|
| |
_wS_
|
Дата: Пятница, 27.04.2012, 09:00:46 | Сообщение # 6 |
|
Скорее всего нет (попробуй в pre hook'е)
|
|
| |
IceMeN
|
Дата: Пятница, 27.04.2012, 15:53:58 | Сообщение # 7 |
|
Сообщений: 47
Репутация: 5 [ +/- ]
|
|
Но мне нужно добавить время прямо в этот раунд. Или это невозможно?
|
|
| |
_wS_
|
Дата: Пятница, 27.04.2012, 19:26:46 | Сообщение # 8 |
|
Я же тебе сказал, как это можно сделать (CS_OnTerminateRound и CS_TerminateRound), а само время внизу как изменить, я не знаю, надо искать, да и это не поможет.
|
|
| |