Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.
2 страниц V   1 2

[Поиск] Плагин выдает флаг игрокам в ночное время!

, Помогите найти данный плагин :)
Статус пользователя uin60211
сообщение 7.4.2015, 22:26
Сообщение #1


Стаж: 11 лет

Сообщений: 12
Благодарностей: 4
Полезность: 0

Привет, помогите найти плагин который выдавал бы определенный набор флагов ВСЕМ игрокам в определенное время, а именно ночное, желательно с 2:00-6:00 по МСК, искал на форуме - не нашел, только блокировка проходов карт и все связанное с картами :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 7.4.2015, 22:35
Сообщение #2


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Код:
#include <amxmodx>
#include <fun>

#define PLUGIN "set flags"
#define VERSION "1.0"
#define AUTHOR "Roman"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(30.0,"check",.flags="b")
}
public check(id)
{
new Time[32]
get_time("%H",Time, charsmax(Time))
new hour = str_to_num(Time)

if( hour >= 2 && hour <= 6 )
for(new id = 1;id <= get_maxplayers();id++)
{
new flags = read_flags("t")
set_user_flags(id,flags)
}
}


Проверь


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя uin60211
сообщение 7.4.2015, 22:49
Сообщение #3


Стаж: 11 лет

Сообщений: 12
Благодарностей: 4
Полезность: 0

Спасибо огромное, давно искал :)
И вопрос, строка
new flags = read_flags("t")
отвечает за выдачу флагов как я понял? Если нужно выдать 2 и более, то просто перечислить ? типо ..._flags("tsn") ?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 7.4.2015, 22:50
Сообщение #4


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

uin60211, за выдачу отвечает эта функция:
Код:
 set_user_flags(id,flags)
, но менять именно там, где ты указал:

Код:
read_flags("t")


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ellome
сообщение 7.4.2015, 22:51
Сообщение #5
Стаж: 13 лет

Сообщений: 40
Благодарностей: 55
Полезность: 555

Цитата(vovan4ik1997 @ 7.4.2015, 23:35) *
Код:
#include <amxmodx>
#include <fun>

#define PLUGIN "set flags"
#define VERSION "1.0"
#define AUTHOR "Roman"

public plugin_init()
{
register_plugin(PLUGIN, VERSION, AUTHOR)
set_task(30.0,"check",.flags="b")
}
public check(id)
{
new Time[32]
get_time("%H",Time, charsmax(Time))
new hour = str_to_num(Time)

if( hour >= 2 && hour <= 6 )
for(new id = 1;id <= get_maxplayers();id++)
{
new flags = read_flags("t")
set_user_flags(id,flags)
}
}


Проверь

new Time[ 2 ] ;
Будет предостаточно. Зачем тратить лишнее место в памяти?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 7.4.2015, 22:55
Сообщение #6
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Ellome, может быть 3? :)

Плагин требует доработки, каждые 30 минут это только проверка времени суток. А выдача флагов должна быть моментальной, а не раз в 30 минут. Поясню, вот захожу я и время получать флаги, но получу я их только минимум сразу (если повезет) максимум 30 минут.

Отредактировал: Radius, - 7.4.2015, 23:00
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ellome
сообщение 7.4.2015, 23:04
Сообщение #7
Стаж: 13 лет

Сообщений: 40
Благодарностей: 55
Полезность: 555

Цитата(Radius @ 7.4.2015, 23:55) *
Ellome, может быть 3? :)

Плагин требует доработки, каждые 30 минут это только проверка времени суток. А выдача флагов должна быть моментальной, а не раз в 30 минут. Поясню, вот захожу я и врем получать флаги, но получу я их только минимум сразу (если повезет) максимум 30 минут.

С каких пор в сутках больше 99 часов?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 7.4.2015, 23:06
Сообщение #8
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Ellome, с каких пор двузначное число как строка занимает 2 ячейки? :) 1 цифра, 2 цифра, 3 zero terminator (по-другому 0). Ой 3 получилось, как так?

Отредактировал: Radius, - 7.4.2015, 23:08
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 7.4.2015, 23:14
Сообщение #9


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Radius, может я и ошибаюсь, но с каких пор таск принимает время в минутах? Всегда же было в секундах. В моем случае проверка будет идти каждые 30 сек. Все верно?


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Radius
сообщение 7.4.2015, 23:18
Сообщение #10
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

vovan4ik1997, да ошибка. Но сути не меняет, каждые 30 секунд гонять, то что реально понадобится только несколько часов в сутки. Считайте это подсказкой при старте карты проверять не наступило ли время, отмечать сей момент и выдавать флаги в каком-нибудь форварде.

Отредактировал: Radius, - 7.4.2015, 23:19
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Ellome
сообщение 7.4.2015, 23:18
Сообщение #11
Стаж: 13 лет

Сообщений: 40
Благодарностей: 55
Полезность: 555

О ужас, казнить меня. Мы без него в этой ситуации не выживем.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 7.4.2015, 23:21
Сообщение #12
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

все нормально, 30 секунд никакой нагрузки не дает, есть плагины ( раньше писали ) с таском 0.1 сек для отлова колва выстрелов (*huck hunter) и были одобрены на оленях, вернее не одобрены изза малоеффективности отлова читов с помощью амхх, а не в плане написания.
а вы тут за 30 сек переживаете pardon.gif

Отредактировал: csnet, - 7.4.2015, 23:22


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 7.4.2015, 23:24
Сообщение #13
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Ellome, вообще-то это серьезная ошибка, может спровоцировать segmentation fault. Если строка не "закрыта" строкой будет считаться область памяти до момента пока не будет найден 0. А там может оказаться защищенная память, что и приведет к ошибке.

csnet, не нужно мне рассказывать что создает, а что нет. Есть грамотная оптимизация, а есть незнание принципов оптимизации кода.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.4.2015, 23:39
Сообщение #14
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

vovan4ik1997, можно заюзать мою 'платформу' для этой задачи, на Складе кода лежит.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя vovan4ik1997
сообщение 7.4.2015, 23:46
Сообщение #15


Стаж: 13 лет

Сообщений: 1087
Благодарностей: 433
Полезность: 718

Safety1st, сейчас с ней и мучаюсь) Для меня там черт ногу сломит. Хочу оставить только ночной режим. Если можно я в ПМ скину?


Представь, что ты заплатил однажды, а получаешь прибыль постоянно.
Закажи правильный контент тут
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Safety1st
сообщение 7.4.2015, 23:52
Сообщение #16
Стаж: 14 лет
Город: Moscow

Сообщений: 7228
Благодарностей: 8071
Полезность: 196

Так а что мучаться smile.gif

Код
#define NIGHT_MODE_START "2:00"
#define NIGHT_MODE_END "6:00"
И в кейсах ProcessCurrentMode() менять квар вашего плагина (enable/disable) (один из вариантов).

В ЛС можно, в принципе.
--

read_flags() делайте однократно при инициализации. Флаги игроку добавляйте после putinserver.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 7.4.2015, 23:56
Сообщение #17


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Лучше уж в новом раунде делать проверку, нежели таск лепить.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя csnet
сообщение 8.4.2015, 0:29
Сообщение #18
Стаж: 12 лет

Сообщений: 4808
Благодарностей: 3849
Полезность: 690

Да в том то беда , что почти все плагины юзают этот евент для своих целей, бывают случаи когда вначале раунда игроки вылетают с overflow


go v cs:go
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Radius
сообщение 8.4.2015, 0:41
Сообщение #19
Стаж: 12 лет

Сообщений: 454
Благодарностей: 418
Полезность: 330

Нужно сразу предусматривать ситуации и сервера, когда нет раундов. Продумывание идеи до момента начала написания кода, залог успеха. А то может получиться так: "Дурная голова, ногам покоя не дает".
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Andrei
сообщение 8.4.2015, 7:22
Сообщение #20


Стаж: 15 лет

Сообщений: 1335
Благодарностей: 693
Полезность: 740

Цитата(csnet @ 8.4.2015, 0:29) *
Да в том то беда , что почти все плагины юзают этот евент для своих целей, бывают случаи когда вначале раунда игроки вылетают с overflow

Ну так это проблема не в эвенте)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
2 страниц V   1 2
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 2 гостей читают эту тему: