Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.
Модераторы: Subb98, liFe iS GoOD
Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.
В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.
Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.
Jodi Redlot » 10 июн 2019, 17:49
Как такое реализовать? Зашёл человек на сервер, и через 20, скажем, минут игры, что-то происходит. Заранее спасибо.
"Just kiddin' around"
-
Jodi Redlot
-
- Сообщения: 33
- Зарегистрирован: 23 май 2017, 03:37
- Благодарил (а): 17 раз.
- Поблагодарили: 2 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: C, C#, C++, Pawn
xbass13 » 10 июн 2019, 20:12
Зашёл человек на сервер, ставим таймер на 20 минут через set_task.
Если точность не важна, когда игрок входит, запоминаем через Float:connectTime[id] =get_gametime() время входа, и в начале карты ставим всего один таймер (чаще вызывается - больше точность, больше нагрузка), который будет всех игроков обходить и сравнивать connectTime[id]+60.0*20.0 <= get_gametime()
-
xbass13
-
- Сообщения: 96
- Зарегистрирован: 13 июн 2012, 21:20
- Благодарил (а): 36 раз.
- Поблагодарили: 35 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: pawn, c++, js, php
Jodi Redlot » 14 июн 2019, 14:54
xbass13 писал(а):Зашёл человек на сервер, ставим таймер на 20 минут через set_task.
Если точность не важна, когда игрок входит, запоминаем через Float:connectTime[id] =get_gametime() время входа, и в начале карты ставим всего один таймер (чаще вызывается - больше точность, больше нагрузка), который будет всех игроков обходить и сравнивать connectTime[id]+60.0*20.0 <= get_gametime()
Спасибо, как-то сам не дошёл до этого) Если вдруг кому надо логику:
- Код: Выделить всё
public client_putinserver(id)
set_task(1.0, "t_CheckTimer", id + TASK_CHECKTIMER, _, _, "b")
public t_CheckTimer(taskid)
{
new id = ID_CHECKTIMER
i_Time[id]++
if(i_Time[id] == 60)
{
i_QuestState[id][0]++
i_Time[id] = 0
}
if(i_QuestState[id][0] == 10)
{
remove_task(id + TASK_CHECKTIMER)
i_QuestState[id][0] = -1
}
}
"Just kiddin' around"
-
Jodi Redlot
-
- Сообщения: 33
- Зарегистрирован: 23 май 2017, 03:37
- Благодарил (а): 17 раз.
- Поблагодарили: 2 раз.
- Опыт программирования: Больше трех лет
- Языки программирования: C, C#, C++, Pawn
Вернуться в Скриптинг
Кто сейчас на конференции
Сейчас этот форум просматривают: Google [Bot] и гости: 7