|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
Создание таймера
|
|
tavot | Дата: Среда, 09.12.2009, 10:10:18 | Сообщение # 1 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| Собственно понятно наверное и так что мне нужно ;), поюзав поиск нашел несколько тем, но там в основном используют set_task , но: Quote (DaTa) Попытаюсь примерно отсортировать, по тормознутости, сколько вспомню: 3)Очень много set_task Вопрос, можно ли как то организовать таймер не использую сет_таск, есть ли еще какие то функции? пока что таймер выглядит так: Взято из плагина zp_countdown. Code public funciya(id) new speak[ 10 ][] = { "fvox/one.wav", "fvox/two.wav", "fvox/three.wav", "fvox/four.wav", "fvox/five.wav", "fvox/six.wav", "fvox/seven.wav", "fvox/eight.wav", "fvox/nine.wav", "fvox/ten.wav" }
emit_sound( id, CHAN_VOICE, speak[ countdown ], 1.0, ATTN_NORM, 0, PITCH_NORM ) countdown-- set_hudmessage(179, 0, 0, -1.0, 0.28, 2, 0.02, 1.0, 0.01, 0.1, 10); show_hudmessage(id, "%i", time_s); --time_s; if(time_s >= 1) { set_task(1.0, "funciya") } А так же Драфт предлагал: Code new g_Time ... g_Time = 600 set_task(1.0, "enable_Timer", 777, _ , _ , "a", 600) // в функции начала игры создаём задание, которое выполнится 600 раз через каждую секунду. ... public enable_Timer() { g_Time-- // каждую секунду будет уменьшаться на 1, таким образом, всегда можно вывести, сколько секунд осталось } ...
|
|
| |
DaTa | Дата: Среда, 09.12.2009, 17:26:24 | Сообщение # 2 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Да и так нормально, ты быстрее способ и не найдешь. Я имел ввиду действительно огромное количество таймеров за фрейм, например, больше 32. Добавлено (09.12.2009, 17:26:24) --------------------------------------------- Остальные способы состоят в хуке постоянно вызывающихся функций, что еще хуже для быстродействия.
|
|
| |
tavot | Дата: Среда, 09.12.2009, 18:18:55 | Сообщение # 3 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| DaTa, Спасибо, значит тему можно закрывать ) Пошел прикручивать.
|
|
| |
Koka | Дата: Среда, 09.12.2009, 21:24:48 | Сообщение # 4 |
Полковник
Группа: Пользователи
Сообщений: 169
Статус: Не в сети
| а вообще, есть ли список где по порядку написано то, что нагружает сервер и даёт "лаг" ?
стал ощущать рефлексы тоньше, оставаясь как всегда с идеей той же...
|
|
| |
ZETA | Дата: Суббота, 12.12.2009, 21:53:07 | Сообщение # 5 |
Генерал-майор
Группа: Скриптеры
Сообщений: 369
Статус: Не в сети
| Разбирал ProKreedz и наткнулся на интересный таймер, синтаксис: Code new x,timer
public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_clcmd("say /time","needtime",ADMIN_ALL,"") x=get_systime() }
public needtime() { timer=get_systime()-x client_print(id,print_chat,"Time: %d",timer) } Такой таймер будет лучше чем set_task, как думаете?
Говори что думаешь и думай что говоришь...
Сообщение отредактировал ZETA - Суббота, 12.12.2009, 21:54:37 |
|
| |
PomanoB | Дата: Суббота, 12.12.2009, 22:22:04 | Сообщение # 6 |
Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Это не таймер, подходит для случаев когда надо узнать время между двумя событиями, а не выполнять каждую секунду к примеру
http://romanov4400.mybrute.com
|
|
| |
tavot | Дата: Суббота, 12.12.2009, 23:47:13 | Сообщение # 7 |
Генерал-майор
Группа: Пользователи
Сообщений: 256
Статус: Не в сети
| PomanoB, Верно. на сколько я понимаю это в кридзе используется от сатрта до финиша... А я ищу способы - что бы или был обратный отсчет - ну скажем как бомба тикает или карта меняется 10-9-8....0 или выполнение каких то действий показывающие тожде самое - что явлется set_task - пока что другого ни чего не знаюю..
|
|
| |
Richard | Дата: Четверг, 24.12.2009, 03:25:32 | Сообщение # 8 |
Лейтенант
Группа: Пользователи
Сообщений: 52
Статус: Не в сети
| Как на счёт такого таймера... Code ... Timer(42) - будет щитать от 42 до 0
public Timer(iTime) { new iCount for(iCount = iTime;iCount != 0;iCount--) { set_task(float(abs(iCount-iTime)),"...",iCount) } set_task(float(iTime),"...") } ... = функ. выполняющиеся каждую секунду обратного отщёта... поправьте если не прав... П.С. Вырезал из св. мод. shutdown плагина
Сообщение отредактировал Richard - Четверг, 24.12.2009, 12:01:06 |
|
| |
predator | Дата: Четверг, 24.12.2009, 13:20:35 | Сообщение # 9 |
Лейтенант
Группа: Пользователи
Сообщений: 54
Статус: Не в сети
| Вопрос ставился так: "Вопрос, можно ли как то организовать таймер не использую сет_таск, есть ли еще какие то функции?"
|
|
| |
| AMX Mod X Russian Community © 2006-2024 | |
|
| |