←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Modyfikacja
Przeróbka

Zablokowany

  • +
  • -
Lelek - zdjęcie Lelek 20.01.2009

Witam nie wiem jak się zabrać za przerobienie chodzi mi o to aby usunąć wszystko z tego pluginu i pozostawić tylko i wyłącznie to że w jednym czasie może rozmawiać x osób

P.S komendy na aktywacje mikrofonu, admin online i inne wywalić :)

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN 	"Microphone Restrictions"
#define VERSION "1.2"
#define AUTHOR 	"Jon"

#define ADMIN_MIC ADMIN_BAN

new cvar_enabled;
new cvar_max;
new cvar_adminonly;
new cvar_time;
new cvar_delay;
new cvar_autocvars;

new active_users;

new bool:isallowed[33];
new bool:isbanned[33];
new bool:isdelayed[33];

public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR);
	register_cvar("mic_version", VERSION, FCVAR_SERVER);
	
	cvar_enabled = register_cvar("mic_enable", "1");
	cvar_max = register_cvar("mic_max", "5");
	cvar_adminonly = register_cvar("mic_adminonly", "0");
	cvar_time = register_cvar("mic_time", "60");
	cvar_delay = register_cvar("mic_delay", "120");
	cvar_autocvars = register_cvar("mic_autocvars", "1");
	
	register_concmd("mic_banplayer", "plugin_banplayer", ADMIN_MIC, "Bans someone from using their microphone");
	register_clcmd("say /mic", "client_mic");
	register_clcmd("say_team /mic", "client_mic");
	
	set_task(1.0, "plugin_cvars");
}

public plugin_cvars()
{
	if(get_pcvar_num(cvar_autocvars))
	{
		set_cvar_string("sv_voicecodec", "voice_speex");
		set_cvar_num("sv_voiceenable", 1);
		set_cvar_num("sv_voicequality", 5);
		set_cvar_num("sv_alltalk", 1);
	}
}

public plugin_banplayer(id, level, cid)
{
	if(!cmd_access(id, level, cid, 0))
		return PLUGIN_HANDLED;
	
	new arg[32];
	read_argv(1, arg, 32);
	
	new player = cmd_target(id, arg, 0);
	
	if(!player)
		return PLUGIN_HANDLED;
	
	
	new adminname[32];
	new playername[32];
	get_user_name(id, adminname, 31);
	get_user_name(id, playername, 31);
	
	client_print(id, print_chat, "[MIC] %s has banned %s from using microphone", adminname, playername);
	
	isbanned[player] = true;
	isallowed[player] = false;
	
	return PLUGIN_HANDLED;
}

public client_mic(id)
{
	if(!get_pcvar_num(cvar_enabled) || get_pcvar_num(cvar_adminonly))
		return PLUGIN_HANDLED;
		
	if(isbanned[id])
	{
		client_print(id, print_chat, "[MIC] You are banned from using your microphone");
		return PLUGIN_HANDLED;
	}
		
	else if(active_users >= get_pcvar_num(cvar_max))
	{
		client_print(id, print_chat, "[MIC] Maximum amount of players are already using their microphone (%d)", get_pcvar_num(cvar_max));
		return PLUGIN_HANDLED;
	}
		
	else if(isdelayed[id])
	{
		client_print(id, print_chat, "[MIC] You have to wait %d seconds before you can use your microphone again", get_pcvar_num(cvar_delay));
		return PLUGIN_HANDLED;
	}
	
	else
	{
		active_users++;
		isallowed[id] = true;
		set_task(float(get_pcvar_num(cvar_time)), "remove_allowed", id);
		client_print(id, print_chat, "[MIC] You can now use your microphone for %d seconds", get_pcvar_num(cvar_time));
	}
	return PLUGIN_CONTINUE;
}
		
public fwd_voice_setclientlistening(receiver, id)
{
	if(!get_pcvar_num(cvar_enabled) || !is_user_connected(receiver) || !is_user_connected(id) || receiver == id)
		return FMRES_IGNORED;
		
	if(get_pcvar_num(cvar_adminonly))
	{
		if(get_user_flags(id) & ADMIN_MIC)
			return FMRES_IGNORED;
			
		else
			engfunc(EngFunc_SetClientListening, receiver, id, 0);
			
		return FMRES_IGNORED;
	}
		
	else 
	{
		if(!isallowed[id])
		{
			engfunc(EngFunc_SetClientListening, receiver, id, 0);
			return FMRES_SUPERCEDE;
		}
	
		else
			return FMRES_IGNORED;
	}
	
	return FMRES_IGNORED;
}  

public remove_allowed(id)
{
	active_users--;
	isallowed[id] = false;
	isdelayed[id] = true;
	client_print(id, print_chat, "[MIC] You are no longer able to use your microphone");
	set_task(float(get_pcvar_num(cvar_delay)), "remove_delay", id);
}

public remove_delay(id)
	isdelayed[id] = false;
Odpowiedz

  • +
  • -
Misiaczek ;c - zdjęcie Misiaczek ;c 20.01.2009

Sprawdź:
#include <amxmodx>
#include <amxmisc>
#include <fakemeta>

#define PLUGIN     "Microphone Restrictions"
#define VERSION "1.2"
#define AUTHOR     "Jon"

#define ADMIN_MIC ADMIN_BAN

new cvar_max;
new cvar_autocvars;
new active_users; 

public plugin_init()
{
    register_plugin(PLUGIN, VERSION, AUTHOR);
    register_cvar("mic_version", VERSION, FCVAR_SERVER);
   
    cvar_max = register_cvar("mic_max", "5");
    cvar_autocvars = register_cvar("mic_autocvars", "1"); 
   
    set_task(1.0, "plugin_cvars");
}

public plugin_cvars()
{
    if(get_pcvar_num(cvar_autocvars))
    {
        set_cvar_string("sv_voicecodec", "voice_speex");
        set_cvar_num("sv_voiceenable", 1);
        set_cvar_num("sv_voicequality", 5);
        set_cvar_num("sv_alltalk", 1);
    }
}

public client_mic(id)
{    
    if(active_users >= get_pcvar_num(cvar_max))
    {
        client_print(id, print_chat, "[MIC] Maximum amount of players are already using their microphone (%d)", get_pcvar_num(cvar_max));
        return PLUGIN_HANDLED;
    }
       
    return PLUGIN_CONTINUE;
    }

Zostawiłem Tylko:
mic_max(Ile osób naraz)
mic_autocvars(Ustawienia Mowy)
Odpowiedz

  • +
  • -
Lelek - zdjęcie Lelek 25.01.2009

Niestety nie działa
Odpowiedz
Zablokowany