Възможно ли е да има "duration" за даден плъгин и как

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Възможно ли е да има "duration" за даден плъгин и как

Мнение от iv69 » 15 Апр 2020, 17:35

Искам да знам , може ли да се "добавя" към даден плъгин, допълнително квар или функция( не съм наясно точно как се казва...) за продължителност на действие на самия плъгин - да речем за дадена част от деня, и как точно става това?
Примерно: Имам ботове в сървъра си и ползвам простичък плъгин(посочен по долу) за контрол на: "броя на играчи+броя на ботове" в сървъра?
Искам например този плъгин да е включен само от 00.00h до 10.00h ? T.e. през останалото време не ми е необходим - т.е. ще ползвам съвсем друг плъгин за ботовете.
Може ли изобщо да се слага duration за действието на даден плъгин, и как става това?

Код за потвърждение: Избери целия код

#include <amxmodx>

new g_pFreq, g_pBots

public plugin_init()
{
	register_plugin("Bot Control", "1.0", "victory.km.ua + OciXCrom")
	g_pFreq = register_cvar("botcontrol_frequency", "120")
	g_pBots = register_cvar("botcontrol_bots", "22")
}

public plugin_cfg()
{
	set_task(get_pcvar_float(g_pFreq), "set_the_cvar", .flags = "b")
}

public set_the_cvar()
{
	new Players[32], CT_sum, TR_sum
	get_players(Players,CT_sum,"ce", "CT")
	get_players(Players,TR_sum,"ce", "TERRORIST")
	server_cmd("yb_quota %d", get_pcvar_num(g_pBots) - (CT_sum + TR_sum) )
}
Може би не се изразих точно: Не става дума да се сложат например квари от рода:
botcontrol_start и botcontrol_end, а просто има ли начин самия плъгин някак си да се "деактивира" и да работи само в определени часови интервали от деня(както например , мисля, че се прави с пускането и спирането на различни модове денем и нощем? Може би това е невъзможно, а може и да е правено досега, не знам ? И затова се интересувам , ако е възможно , как се прави?

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Възможно ли е да има "duration" за даден плъгин и как

Мнение от atmax » 15 Апр 2020, 18:47

Чрез set_task функцията можеш да зададеш duration
Rest in peace my friend I always will remember you! 🖤👊

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Възможно ли е да има "duration" за даден плъгин и как

Мнение от iv69 » 15 Апр 2020, 19:32

atmax написа: 15 Апр 2020, 18:47 Чрез set_task функцията можеш да зададеш duration
А ще може ли да ми дадеш пример със цитирания плъгин как точно ще трябва да изглежда това?

Аватар
OciXCrom
Извън линия
Администратор
Администратор
Мнения: 7206
Регистриран на: 06 Окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 117 пъти
Получена благодарност: 1295 пъти
Обратна връзка:

Възможно ли е да има "duration" за даден плъгин и как

Мнение от OciXCrom » 15 Апр 2020, 20:42

Не виждам какво общо има set_task в този случай.

Най-прост вариант е да провериш часа в plugin_init и да спреш плъгина ако не е от 00:00 до 10:00.

Код за потвърждение: Избери целия код

#include <amxmodx>

new g_pFreq, g_pBots

public plugin_init()
{
	register_plugin("Bot Control", "1.0", "victory.km.ua + OciXCrom")
	g_pFreq = register_cvar("botcontrol_frequency", "120")
	g_pBots = register_cvar("botcontrol_bots", "22")

	if(!is_current_time(0, 10))
	{
		pause("d")
	}
}

public plugin_cfg()
{
	set_task(get_pcvar_float(g_pFreq), "set_the_cvar", .flags = "b")
}

public set_the_cvar()
{
	new Players[32], CT_sum, TR_sum
	get_players(Players,CT_sum,"ce", "CT")
	get_players(Players,TR_sum,"ce", "TERRORIST")
	server_cmd("yb_quota %d", get_pcvar_num(g_pBots) - (CT_sum + TR_sum) )
}

bool:is_current_time(const iStart, const iEnd)
{
    static iHour; time(iHour)
    return bool:(iStart < iEnd ? (iStart <= iHour < iEnd) : (iStart <= iHour || iHour < iEnd))
}

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Възможно ли е да има "duration" за даден плъгин и как

Мнение от iv69 » 15 Апр 2020, 22:07

Сега ще тестна дали ще върви с някакъв по-малък интервал.

Добавено преди 25 минути 11 секунди:
..Така работи ! Добре си го измислил: да се определя времето през което няма да е включен плъгина ( а не в което ще е "валиден"...)! Аз не знаех кое какво и как може да се стори - но крайния резултат е ТОЧЕН, и е точно какъвто го исках.
Кроме БЛАГОДАРЯ ти, но нека поостане отворена темата, да го тествам ден два да видя как е при смяна на картата и на дните ........

Публикувай отговор
  • Подобни теми
    Отговори
    Преглеждания
     Последно мнение

Обратно към “Помощ в скриптирането”

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 12 госта