Русское сообщество по скриптингу

Не работает sleep  [Решено]

Все вопросы по скриптингу для AMXX, помощь в редактировании плагинов.

Модераторы: Subb98, liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только скриптинга для AMX Mod X.

Правила при создании новой темы:
1. При вставке кода плагина необходимо использовать тег [code=php].
2. Любые изображения должны быть загружены, как вложения к вашему сообщению.
3. При описании проблемы или запросе на помощь в редактировании плагина обязательно выкладывайте исходник sma плагина.

Re: Не работает sleep

Сообщение EbGiK » 13 июл 2017, 23:36

tickcount

не понял, как она работает, у меня она 0 всегда возвращает
Аватара пользователя
EbGiK
 
Сообщения: 192
Зарегистрирован: 05 фев 2016, 16:40
Благодарил (а): 43 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не работает sleep

Сообщение Dart_Begep » 13 июл 2017, 23:41

EbGiK писал(а):
tickcount

не понял, как она работает, у меня она 0 всегда возвращает

Забудь. Попробуй вариант
артист666 писал(а):
Код: Выделить всё
#include <amxmodx>

public plugin_init()
{
    _sleep(5)
}
_sleep(sec)
{
    static f; f = get_systime() + sec
    while
(get_systime() < f) {}

Я не проверял, но по идее должен работать. Только тут отсчет лишь в целых секундах, без долей секунды...
Аватара пользователя
Dart_Begep
 
Сообщения: 131
Зарегистрирован: 19 апр 2017, 22:29
Благодарил (а): 11 раз.
Поблагодарили: 27 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn
Php
JavaScript

Re: Не работает sleep

Сообщение EbGiK » 13 июл 2017, 23:44

Артист, твой код не ставит сервак на паузу почему то, функция до конца выполняется сразу
Код: Выделить всё
#include <amxmodx>

public plugin_init()
{
    _sleep(5)
}
_sleep(sec)
{
    static f; f = get_systime() + sec
    while
(get_systime() < f) {}
Аватара пользователя
EbGiK
 
Сообщения: 192
Зарегистрирован: 05 фев 2016, 16:40
Благодарил (а): 43 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не работает sleep

Сообщение NEoMASTERR » 13 июл 2017, 23:51

Код: Выделить всё

register_concmd
("sleep", "cmd_sleep")

public cmd_sleep(id)
{
    static str[11]; read_argv(1, str, charsmax(str))
    static x; x = str_to_num(str)
    _sleep(x);
}

_sleep(milisec)
{
    static f; f = tickcount() + milisec
    while 
(tickcount() < f) {}
    log_amx("sleep %d msec done", milisec)
}


Добавлено спустя 38 секунд:
Dart_Begep писал(а):Но эта функция, как написано в описании, является лишь отладочной.

EbGiK писал(а):вообще да, для теста надо
Аватара пользователя
NEoMASTERR
 
Сообщения: 832
Зарегистрирован: 05 янв 2015, 16:38
Благодарил (а): 43 раз.
Поблагодарили: 188 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6

Re: Не работает sleep

Сообщение RevCrew » 14 июл 2017, 00:05

EbGiK, где ты собрался использовать функцию эту?
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Не работает sleep

Сообщение артист666 » 14 июл 2017, 00:05

EbGiK писал(а):Артист, твой код не ставит сервак на паузу почему то, функция до конца выполняется сразу


Я только gametime заменил, потому, что в plugin_init время ещё не идет...
Паузы и не будет, эта функция "вешает" сервер.

На паузу поставить - amx_pause или просто pause...
На сервере, в конфиге должно быть pausable 1
Если вы хотите чему-то научиться, пробуйте, задавайте вопросы.
Иначе компенсируйте потраченное время на ваши "проблемы".
Аватара пользователя
артист666
 
Сообщения: 2706
Зарегистрирован: 09 апр 2013, 17:46
Благодарил (а): 284 раз.
Поблагодарили: 639 раз.
Опыт программирования: Больше трех лет
Языки программирования: С, C++
Delphi
HTML, CSS, Java Script
Pawn

Re: Не работает sleep

Сообщение EbGiK » 14 июл 2017, 00:09

артист666, я не в plugin_init проверял, через функцию уже в игре
Паузы и не будет, эта функция "вешает" сервер

Выразился не правильно, имел ввиду что функция до конца не должна выполниться, а у тебя полнстью выполняется
Аватара пользователя
EbGiK
 
Сообщения: 192
Зарегистрирован: 05 фев 2016, 16:40
Благодарил (а): 43 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не работает sleep  [Решено]

Сообщение Fedcomp » 14 июл 2017, 00:12

Что значит функция полностью выполняется? это ее задача.
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Re: Не работает sleep

Сообщение EbGiK » 14 июл 2017, 00:15

Что значит функция полностью выполняется? это ее задача.

ну мы же делали заменитель sleep-a, он не работает, она должна притормозить на нем, а она как будто его не видит
Аватара пользователя
EbGiK
 
Сообщения: 192
Зарегистрирован: 05 фев 2016, 16:40
Благодарил (а): 43 раз.
Поблагодарили: 3 раз.
Языки программирования: Counter-Strike 1.6
Counter-Strike: Source
Team Fortress II
Left 4 Dead

Re: Не работает sleep

Сообщение Fedcomp » 14 июл 2017, 01:50

зачем там gametime если он не будет обновляться пока мы в одном и том же кадре находимся? юзайте get_systime. Но вообще у меня сказывается ощущение что вы кому то хотите подвесить сервер.

Код: Выделить всё
public plugin_init()
{
    blocking_sleep(5)
}

blocking_sleep(sec)
{
    static f; f = get_systime() + sec
    while
(get_systime() < f) {noop()}
}
 

public noop
() {

}
 
Не помогаю в ЛС - есть форум.
Плагины тоже не пишу, на форуме достаточно хороших скриптеров.


"я ставлю зависимости потому что мне приятно" - subb98 @ 2017
Аватара пользователя
Fedcomp
Администратор
 
Сообщения: 4936
Зарегистрирован: 28 авг 2009, 20:47
Благодарил (а): 813 раз.
Поблагодарили: 1317 раз.
Языки программирования: =>
pawn / php / python / ruby
javascript / rust

Пред.След.

Вернуться в Скриптинг

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7