Page 1 of 1

Cerere plugin AFK slayers

Posted: 21 Nov 2019, 21:07
by Sokar
Plugin Cerut: afk slayers
Descriere (adica ce face el mai exact): da slay la playerii afk
Serverul ruleaza (HLDS/ReHLDS): rehlds
Versiune AMX Mod X:
Modul Serverului: clasic

Re: Cerere plugin AFK slayers

Posted: 21 Nov 2019, 22:15
by BUNNY.
Salut, mi-am facut timp pentru a rezolva cererea ta. Daca crezi ca te-am ajutat nu uita sa apesi butonul 'Multumesc'!

CVAR-uri:
amx_afk_time - 15 - numarul de secunde in care poti sta afk
amx_skip_admin - 0/1 - adminii sunt sau nu imuni la pluginul de afk
afk_slayer.sma | Afiseaza codul
#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>

new Float:spawn_origin[33][3], Float:after_origin[33][3];
new cvar_afktime, cvar_skipadmin;

public plugin_init()
{
	// CVAR' pentru AFK Time
	cvar_afktime = register_cvar("amx_afk_time", "15");
	cvar_skipadmin = register_cvar("amx_skip_admin", "1");

	// Ham Forward principal
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}

public fw_PlayerSpawn_Post(Player)
{
	// Daca nu este in viata oprim totul
	if(!is_user_alive(Player))
		return;

	// Daca adminii au imunitate oprim totul
	if(get_pcvar_num(cvar_skipadmin) && is_user_admin(Player))
		return;

	// Aflam originea la spawn
	entity_get_vector(Player, EV_VEC_velocity, spawn_origin[Player]);

	// Verificam originea peste ceva timp
	set_task(float(get_pcvar_num(cvar_afktime)), "check_afk_time", Player);
}

public check_afk_time(Player)
{
	// Aflam noua origine
	entity_get_vector(Player, EV_VEC_velocity, after_origin[Player]);

	// Verificam Pozitia
	if(spawn_origin[Player][0] == after_origin[Player][0] && spawn_origin[Player][1] == after_origin[Player][1] && spawn_origin[Player][2] == after_origin[Player][2])
		user_silentkill(Player);
}

Re: Cerere plugin AFK slayers

Posted: 22 Nov 2019, 16:48
by Sokar
e buguit, a stat un player nici o secunda afk si i-a dat slay

Re: Cerere plugin AFK slayers

Posted: 22 Nov 2019, 19:57
by levin

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>

new Float:spawn_origin[33][3], Float:after_origin[33][3];
new cvar_afktime, cvar_skipadmin;

public plugin_init()
{
	// CVAR' pentru AFK Time
	cvar_afktime = register_cvar("amx_afk_time", "15");
	cvar_skipadmin = register_cvar("amx_skip_admin", "1");

	// Ham Forward principal
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}

public fw_PlayerSpawn_Post(Player)
{
	// Daca nu este in viata oprim totul
	if(!is_user_alive(Player))	return;

	spawn_origin[Player][EOS]=0.0
	after_origin[Player][EOS]=0.0

	// Daca adminii au imunitate oprim totul
	if(get_pcvar_num(cvar_skipadmin) && is_user_admin(Player))	return;

	// Aflam originea la spawn
	entity_get_vector(Player, EV_VEC_origin, spawn_origin[Player]);

	// Verificam originea peste ceva timp
	set_task(float(get_pcvar_num(cvar_afktime)), "check_afk_time", Player+69);
}

public check_afk_time(Player)
{
	Player-=69
	if(!is_user_alive(Player))
	{
		remove_task(Player)
		return
	}

	// Aflam noua origine
	entity_get_vector(Player, EV_VEC_origin, after_origin[Player]);

	// Verificam Pozitia
	if(spawn_origin[Player][0] == after_origin[Player][0] && spawn_origin[Player][1] == after_origin[Player][1] && spawn_origin[Player][2] == after_origin[Player][2])	user_silentkill(Player);
}

Re: Cerere plugin AFK slayers

Posted: 17 Jun 2023, 22:43
by endlessux
levin wrote:
22 Nov 2019, 19:57

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <hamsandwich>
#include <engine>

new Float:spawn_origin[33][3], Float:after_origin[33][3];
new cvar_afktime, cvar_skipadmin;

public plugin_init()
{
	// CVAR' pentru AFK Time
	cvar_afktime = register_cvar("amx_afk_time", "15");
	cvar_skipadmin = register_cvar("amx_skip_admin", "1");

	// Ham Forward principal
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}

public fw_PlayerSpawn_Post(Player)
{
	// Daca nu este in viata oprim totul
	if(!is_user_alive(Player))	return;

	spawn_origin[Player][EOS]=0.0
	after_origin[Player][EOS]=0.0

	// Daca adminii au imunitate oprim totul
	if(get_pcvar_num(cvar_skipadmin) && is_user_admin(Player))	return;

	// Aflam originea la spawn
	entity_get_vector(Player, EV_VEC_origin, spawn_origin[Player]);

	// Verificam originea peste ceva timp
	set_task(float(get_pcvar_num(cvar_afktime)), "check_afk_time", Player+69);
}

public check_afk_time(Player)
{
	Player-=69
	if(!is_user_alive(Player))
	{
		remove_task(Player)
		return
	}

	// Aflam noua origine
	entity_get_vector(Player, EV_VEC_origin, after_origin[Player]);

	// Verificam Pozitia
	if(spawn_origin[Player][0] == after_origin[Player][0] && spawn_origin[Player][1] == after_origin[Player][1] && spawn_origin[Player][2] == after_origin[Player][2])	user_silentkill(Player);
}
exista posibilitatea sa-i mute la spectatori in loc sa primeasca slay?

Re: Cerere plugin AFK slayers

Posted: 18 Jun 2023, 12:56
by levin

Code: Select all

#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <hamsandwich>
#include <engine>

new Float:spawn_origin[33][3], Float:after_origin[33][3];
new cvar_afktime, cvar_skipadmin;

public plugin_init()
{
	// CVAR' pentru AFK Time
	cvar_afktime = register_cvar("amx_afk_time", "15");
	cvar_skipadmin = register_cvar("amx_skip_admin", "1");

	// Ham Forward principal
	RegisterHam(Ham_Spawn, "player", "fw_PlayerSpawn_Post", 1);
}

public fw_PlayerSpawn_Post(Player)
{
	// Daca nu este in viata oprim totul
	if(!is_user_alive(Player))	return;

	spawn_origin[Player][EOS]=0.0
	after_origin[Player][EOS]=0.0

	// Daca adminii au imunitate oprim totul
	if(get_pcvar_num(cvar_skipadmin) && is_user_admin(Player))	return;

	// Aflam originea la spawn
	entity_get_vector(Player, EV_VEC_origin, spawn_origin[Player]);

	// Verificam originea peste ceva timp
	set_task(float(get_pcvar_num(cvar_afktime)), "check_afk_time", Player+69);
}

public check_afk_time(Player)
{
	Player-=69
	if(!is_user_alive(Player))
	{
		remove_task(Player)
		return
	}

	// Aflam noua origine
	entity_get_vector(Player, EV_VEC_origin, after_origin[Player]);

	// Verificam Pozitia
	if(spawn_origin[Player][0] == after_origin[Player][0] && spawn_origin[Player][1] == after_origin[Player][1] && spawn_origin[Player][2] == after_origin[Player][2])
	{
		if(is_user_alive(Player))
		{
			user_silentkill(Player);
		}

		cs_set_user_team(Player, CS_TEAM_SPECTATOR) // da se poate cu engclient_cmd , da nu se poate ghici daca merge pe orice sv
	}
}