Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16

прехвърляне на AFK към спектатор

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
omega95
Извън линия
Потребител
Потребител
Мнения: 18
Регистриран на: 05 Яну 2024, 15:52

прехвърляне на AFK към спектатор

Мнение от omega95 » 04 Фев 2024, 19:06

Привет! Потърсих на доста места, но не можах да намеря точно това, което ми трябва. Ако някой е afk повече от 2 минути да речем, да го мести към спектаторите автоматично. По негово желание да може да ползва и команда /afk и да се връща с /back.

Аватар
HeatoN
Извън линия
Потребител
Потребител
Мнения: 232
Регистриран на: 04 Фев 2022, 16:16
Местоположение: Elhovo - Las Vegas
Се отблагодари: 35 пъти
Получена благодарност: 2 пъти
Обратна връзка:

Re: прехвърляне на AFK към спектатор

Мнение от HeatoN » 04 Фев 2024, 19:18

Ползвай това за афк към спектатор имай предвид че кода на плъгина е доста стар и не съм го тествал може и да ти върши работа

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

#include <amxmodx>

#define MIN_AFK_TIME 30		// I use this incase stupid admins accidentally set mp_afktime to something silly.
#define WARNING_TIME 15		// Start warning the user this many seconds before they are about to be kicked.
#define CHECK_FREQ 5		// This is also the warning message frequency.

new g_oldangles[33][3]
new g_afktime[33]
new bool:g_spawned[33] = {false, ...}

public plugin_init() {
	register_plugin("AFK spectate","1.2","pizzahut") 
	register_cvar("afk_version", "1.2", FCVAR_SERVER)
	register_cvar("mp_afktime", "300")	// Kick people AFK longer than this time.
	register_cvar("mp_afkminplayers", "1")	// Only kick AFKs when there is at least this many players on the server.
	set_task(float(CHECK_FREQ),"checkPlayers",0,"",0,"b",0)
	register_logevent("playerSpawned",3,"1=changed role to")
	register_logevent("playerSpecs",3,"1=joined team","2=SPECTATOR")
}

public checkPlayers()
{
	new name[64]
	for (new i = 1; i <= get_maxplayers(); i++)
	{
		if (is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && (get_user_team(i)>0))
		{
			new newangle[3]
			get_user_origin(i, newangle)
			get_user_name(i,name,64)
			if((newangle[0] == g_oldangles[i][0]) && (newangle[1] == g_oldangles[i][1]) && (newangle[2] == g_oldangles[i][2]))
			{
				g_afktime[i] += CHECK_FREQ
				check_afktime(i)
			}
			else
			{
				g_oldangles[i][0] = newangle[0]
				g_oldangles[i][1] = newangle[1]
				g_oldangles[i][2] = newangle[2]
				g_afktime[i] = 0
			}
		}
		else	afk_reset(i)
	}
	return PLUGIN_CONTINUE
}

check_afktime(id) {
	new numplayers = get_playersnum()
	new minplayers = get_cvar_num("mp_afkminplayers")
	if (numplayers >= minplayers)
	{
		if(g_spawned[id])
		{
			new maxafktime = get_cvar_num("mp_afktime")
			if(maxafktime < MIN_AFK_TIME)
			{
				log_amx("cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME)
				maxafktime = MIN_AFK_TIME
				set_cvar_num("mp_afktime", MIN_AFK_TIME)
			}

			if(maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime)
			{
				new timeleft = maxafktime - g_afktime[id]
				client_print(id, print_chat, "You have %i seconds to move or you will be put into spectator mode for being AFK.", timeleft)
			}
			else if(g_afktime[id] > maxafktime)
			{
				client_print(id, print_chat, "You are put into spectator mode for being AFK longer than %i seconds.", maxafktime)
        	                client_cmd(id,"spectate")
			}
		}
		else if(g_afktime[id] > 30) client_cmd(id,"spectate")
	}
}

public playerSpawned()
{
	new id = get_id()
	g_spawned[id] = true
	return PLUGIN_CONTINUE
}

public playerSpecs()
{
	new id = get_id()
	afk_reset(id)
	return PLUGIN_CONTINUE
}

afk_reset(id)
{
	g_afktime[id] = 0
	new newangle[3]
	get_user_origin(id,newangle)
	g_oldangles[id][0] = newangle[0]
	g_oldangles[id][1] = newangle[1]
	g_oldangles[id][2] = newangle[2]
	g_spawned[id] = false
}

get_id()
{
	new Arg1[64]
	read_logargv(0,Arg1,64)
	new p_name[64]
	parse_loguser(Arg1,p_name,64)
	new name[64],id=0
	for (new i=1;i<=get_maxplayers();i++)
	{
		if(is_user_connected(i))
		{
			get_user_name(i,name,64)
			if(equal(p_name,name)) id = i
		}
	}
	return id
}

public server_changelevel(map[])
{
	for (new i = 1; i <= get_maxplayers(); i++) afk_reset(i)
	return PLUGIN_CONTINUE
}
mp_afktime 300 Времето, през което играчът може да бъде AFK в секунди, преди да бъде преместен spectator. (минимум 30 сек.)
Времето им се натрупва само докато са живи.

mp_afkminplayers 2 Минимален брой играчи, които трябва да бъдат на сървъра, преди плъгинът да започне да ги мести spec.


А това го ползваш да се връщат /spec /back /change
viewtopic.php?t=1114

Другият път ползвай търсачката точно със писането на 2 думи намерих плъгина който търсиш ;)
Здравейте, Ние сме Dark-Star Counter-Strike базирана верига стремяща се да предостави качествени сървъри на своитепотребители
〢☆ При нас може да намерите:
〢☆ активен и помагащ STAFF
〢☆ Качествени сървъри.
〢☆ 24/7 поддръжка.
〢☆ Нашият дискорд: https://discord.gg/cPw8xauRPq
Изображение

Аватар
omega95
Извън линия
Потребител
Потребител
Мнения: 18
Регистриран на: 05 Яну 2024, 15:52

Re: прехвърляне на AFK към спектатор

Мнение от omega95 » 04 Фев 2024, 20:12

приятелю, благодаря за коментара, но съм прегледал тези плъгини, които ми предостави. SMA кода който си ми предоставил е стар, както каза ти. Ще се радвам ако някой изкара нещо по съвременно. Не ми се ще да ползвам 2 плъгина с почти една и съща цел.

Аватар
s1lata
Извън линия
Потребител
Потребител
Мнения: 230
Регистриран на: 10 Апр 2020, 21:25
Се отблагодари: 69 пъти
Получена благодарност: 27 пъти
Обратна връзка:

Re: прехвърляне на AFK към спектатор

Мнение от s1lata » 04 Фев 2024, 21:18


Аватар
Midnight1337
Извън линия
Foreigner
Foreigner
Мнения: 72
Регистриран на: 15 Яну 2019, 00:53
Местоположение: Macedonia
Се отблагодари: 5 пъти
Получена благодарност: 21 пъти
Обратна връзка:

Re: прехвърляне на AFK към спектатор

Мнение от Midnight1337 » 05 Фев 2024, 13:25

Изображение

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

Обратно към “Заявки за плъгини”

Кой е на линия

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