set_task для таймера
|
|
access | Дата: Вторник, 31.07.2007, 10:47:00 | Сообщение # 1 |
Лейтенант
Группа: Пользователи
Сообщений: 45
Статус: Не в сети
| Есть таймпроектор, плагин такой, но как поставить set_task, чтобы таймер отображался клиенту, допустим, только через 15 секунд после того, как клиент зашел на сервер? Code #include <amxmodx> #include <amxmisc> public the_main(){ new nextmap[32] get_cvar_string("amx_nextmap",nextmap,31) new timeleft = get_timeleft() new mapname[32] get_mapname(mapname, 31) set_hudmessage(0,255,255,-1.0,0.0,0, 1.0, 1.0, 0.1, 0.2, 13) show_hudmessage(0,"%s > %d:%02d > %s", mapname,timeleft / 60, timeleft % 60,nextmap) } return PLUGIN_CONTINUE }
public plugin_init() { register_plugin("TimeProjector","0.1","ST4life") set_task(1.0, "the_main",0,"",0,"b") return PLUGIN_CONTINUE }
|
|
| |
slogic | Дата: Среда, 01.08.2007, 15:46:45 | Сообщение # 2 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| show_hudmessage(0, ...) показывает всем игрокам. Вместо 0 надо использовать индекс нужного тебе игрока. Поэтому тебе придется перебрать в цикле каждого игрока и проверить его вермя на сервере, и если оно больше 15 сек. то ему можно отправить hud сообщение. В целях оптимизации (чтобы каждую сек. не обходить снова и снова игроков) надо сделать флаг, что все игроки находятся на сервере более 15 мнут (тогда в этом случае можно использовать show_hudmessage(0, ...)), и сбрасывать его если-кто кто приконнектился (или ввести такие флаги для каждого игрока). get_user_time() возвращает кол-во сек., проведенынх игроком на сервере.
|
|
| |
access | Дата: Четверг, 02.08.2007, 08:58:54 | Сообщение # 3 |
Лейтенант
Группа: Пользователи
Сообщений: 45
Статус: Не в сети
| Мда. Спасибо, конечно, но ответ слишком заумен. С моими знаниями по скриптингу я могу только попросить переделать этот плагин.
|
|
| |
AlMod | Дата: Четверг, 02.08.2007, 09:38:52 | Сообщение # 4 |
Сонный кодер
Группа: Админы
Сообщений: 600
Статус: Не в сети
| ХМ... Code public client_putinserver(id) { set_task(15.0,"hud_msg",id) }
public hud_msg(id) { set_hudmessage(....) show_hudmessage(id,"Some text") }
|
|
| |
slogic | Дата: Четверг, 02.08.2007, 12:47:14 | Сообщение # 5 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| AlMod, ну один раз покажет и все. К тому же если в течение 15 сек. игрок дисконнектится, то вывалится ошибка.
|
|
| |
slogic | Дата: Четверг, 02.08.2007, 12:49:21 | Сообщение # 6 |
Генералиссимус
Группа: Админы
Сообщений: 1941
Статус: Не в сети
| Quote (access) Спасибо, конечно, но ответ слишком заумен. Что именно не понятно? Если не знаешь, что такое циклы, то конечно, можно (и даже нужно) НЕ спрашивать тогда в этом разделе, а просить дописать плагин в обсуждении плагинов.
|
|
| |