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

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

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

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

Обратный отсчет

Статус пользователя GOOD FELLOW
сообщение 6.3.2014, 22:06
Сообщение #1


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Допустим, у меня в файле date.ini прописано "30" (в смысле дней)
вывод этого я сделал, но нужно сделать счетчик в обратную сторону, то есть 30.. на след день 29 и т.д.

подскажите что юзать и как использовать??

UPD: искал в нете, ничего толкового...
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя Legenda
сообщение 6.3.2014, 22:15
Сообщение #2


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

и с какого момента отсчет вести?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 6.3.2014, 22:16
Сообщение #3


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Цитата(Legenda @ 6.3.2014, 22:15) *
и с какого момента отсчет вести?


с момента первого чтения файла (если такое реально конечно) в ином случае, что можете посоветовать?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 6.3.2014, 22:20
Сообщение #4


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(GOOD FELLOW @ 7.3.2014, 0:16) *
с момента первого чтения файла (если такое реально конечно) в ином случае, что можете посоветовать?

реально, но это извращение будет
в любом случаи придется хранить дополнительный параметра в базе или в файле

самое простое это из файла считать сразу же дату
в плагине получить текущею дату
одно "вычесть" из другого
получить число дней до окончания
показать его
что тут сложного?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя GOOD FELLOW
сообщение 6.3.2014, 22:22
Сообщение #5


Иконка группы

Стаж: 13 лет

Сообщений: 2294
Благодарностей: 1187
Полезность: 890

Цитата(Legenda @ 6.3.2014, 22:20) *
реально, но это извращение будет

самое простое это из файла считать дату
в плагине получить текущею дату
одно "вычесть" из другого
получить число дней до окончания
показать его
что тут сложного?


пример можно?

я в скриптинге недолго, только учусь. реализовать многое еще не могу, потому для меня все еще сложно :)
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 6.3.2014, 22:27
Сообщение #6


Иконка группы

Стаж: 16 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

вот пример, только с часами, а не днями
с днями почти то же самое можно сделать
принцип такой же
пример

Код:

#include <amxmodx>

#define hour_start 22
#define hour_end 7

new bool:p_pause = false
new hour, minute, secound, min_for_end

public plugin_init()
{
register_plugin("time_flags_plugins", "0.5", "legenda_bredit")
set_task(1.0, "check_time")
set_task(60.0, "check_time",5522,_,_,"b")
set_task(30.0, "adv_in_chat",5577,_,_,"b")
}

public adv_in_chat()
{
client_print(0,print_chat,"С %d:00 по %d:00 всем бесплатный vip",hour_start,hour_end)
}

public check_time()
{
time(hour,minute,secound)

if (hour_end > hour)
min_for_end = (hour_end - hour)*60 - minute;
else
min_for_end = (hour_end + 24 - hour)*60 - minute;

// (hour_end >= hour) ? { min_for_end = (hour_end - hour)*60 - minute } : { min_for_end = (hour_end + 24 - hour)*60 - minute };


(hour_start <= hour < hour_end) ? set_task(0.1, "pausePlugin") : set_task(0.1, "unpausePlugin")
}

public pausePlugin()
{
if (!p_pause) {
server_cmd("amx_default_access tz")
set_task(1.0, "r_admins")
p_pause = true
set_task(3.0,"hud_time",5566,_,_,"b")
}
}

public unpausePlugin()
{
if (p_pause) {
server_cmd("amx_default_access z")
set_task(1.0, "r_admins")
p_pause = false
remove_task (5566)
}
}

public r_admins()
{
server_cmd("amx_reloadadmins")
}

public hud_time()
{
set_hudmessage(200, 200, 200, -1.0, -0.27, 1, 1.0, 3.0, 0.1, 0.1, 3)
show_hudmessage(0, "Осталось %d мин", min_for_end)
}

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