Малка добавка към плъгина /mute

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
impossible
Извън линия
Потребител
Потребител
Мнения: 488
Регистриран на: 15 Юни 2019, 12:41
Се отблагодари: 23 пъти
Получена благодарност: 47 пъти

Малка добавка към плъгина /mute

Мнение от impossible » 21 Авг 2020, 11:38

Искам в този плъгин да се вмъкне само символа / пред mute за да се отвори менюто да стане /mute в момента е само mute

командата е активна в чата и в конзолата на играта искам в конзолата когато някой напише командата да не е активна там
само в чата - едва ли някой ще я напише в конзолата но просто да се премахне като опция

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

#include <amxmodx>
#include <amxmisc>

#pragma semicolon 1
#pragma ctrlchar '\'

#include <ChatAdditions>

new const MSG_PREFIX[] = "\4[MUTE]\1";

new bool: g_aMutes[MAX_PLAYERS + 1][MAX_PLAYERS + 1];
new bool: g_bGlobalMute[MAX_PLAYERS + 1];

public plugin_init()
{
	register_plugin("[CA] Mute menu", "1.0.0-beta", "Sergey Shorokhov");
	register_dictionary("CA_Mute.txt");

	new const sCmd[] = "mute";
	new const sCtrlChar[][] = {"!", "/", "\\", "." , "?", ""};
	for(new i; i < sizeof(sCtrlChar); i++) {
		register_clcmd(fmt("%s%s", sCtrlChar[i], sCmd), "ClCmd_Mute");
		register_clcmd(fmt("say %s%s", sCtrlChar[i], sCmd), "ClCmd_Mute");
		register_clcmd(fmt("say_team %s%s", sCtrlChar[i], sCmd), "ClCmd_Mute");
	}
}

public ClCmd_Mute(id) {
	Menu_Show_PlayersList(id);

	return PLUGIN_HANDLED;
}

public Menu_Show_PlayersList(id) {
	new pMenu = menu_create(fmt("%L", id, "CA_Mute_TITLE"), "Menu_Handler_PlayersList");
	new hCallback = menu_makecallback("Callback_PlayersList");

	new aPlayers[MAX_PLAYERS], iCount;
	get_players_ex(aPlayers, iCount, .flags = (GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV));

	if(iCount < 2) {
		menu_additem(pMenu, fmt("\\r %L", id, "Mute_NotEnoughPlayers"), "-2", .callback = hCallback);
	} else {
		menu_additem(pMenu, fmt("\\y %L %s", id, "CA_Mute_MuteALL", g_bGlobalMute[id] ? "\\w[ \\r+\\w ]" : ""), "-1");
		menu_addblank(pMenu, .slot = false);

		for(new i; i < MaxClients; i++) {
			if(i != id && is_user_connected(i))
				menu_additem(pMenu, "Name", fmt("%i", get_user_userid(i)), .callback = hCallback);
		}
	}

	menu_setprop(pMenu, MPROP_BACKNAME, fmt("%L", id, "CA_Mute_Back"));
	menu_setprop(pMenu, MPROP_NEXTNAME  , fmt("%L", id, "CA_Mute_Next"));
	menu_setprop(pMenu, MPROP_EXITNAME, fmt("%L", id, "CA_Mute_Exit"));

	menu_display(id, pMenu);
}

public Callback_PlayersList(id, menu, item) {
	new null, sInfo[64], sName[64];
	menu_item_getinfo(menu, item, null, sInfo, charsmax(sInfo), sName, charsmax(sName), null);

	new iUserID = strtol(sInfo);
	if(iUserID > 0) {
		new player = find_player_ex((FindPlayer_MatchUserId | FindPlayer_ExcludeBots), iUserID);
		menu_item_setname(menu, item, fmt("%n   %s", player, g_aMutes[id][player] ? "\\d[ \\r+\\d ]" : ""));
	}

	return (
			(iUserID != -1 && g_bGlobalMute[id])
			|| iUserID == -2
		) ? ITEM_DISABLED : ITEM_ENABLED;
}

public Menu_Handler_PlayersList(id, menu, item) {
	if(item == MENU_EXIT || item < 0) {
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new null, sInfo[64], sName[64];
	menu_item_getinfo(menu, item, null, sInfo, charsmax(sInfo), sName, charsmax(sName), null);

	new iUserID = strtol(sInfo);
	if(iUserID == -1) {
		g_bGlobalMute[id] ^= true;

		menu_destroy(menu);
		Menu_Show_PlayersList(id);
		return PLUGIN_HANDLED;
	}

	new player = find_player_ex((FindPlayer_MatchUserId | FindPlayer_ExcludeBots), iUserID);
	if(!is_user_connected(player)) {
		client_print_color(id, print_team_red, "%s %L", MSG_PREFIX, id, "Player_NotConnected");

		menu_destroy(menu);
		Menu_Show_PlayersList(id);
		return PLUGIN_HANDLED;
	}

	g_aMutes[id][player] ^= true;
	client_print_color(id, print_team_default, "%s %L \3%n\1", MSG_PREFIX, id, g_aMutes[id][player] ? "CA_Mute_Muted" : "CA_Mute_UnMuted", player);

	menu_destroy(menu);
	Menu_Show_PlayersList(id);

	return PLUGIN_HANDLED;
}


public client_disconnected(id) {
	arrayset(g_aMutes[id], false, sizeof g_aMutes[]);
	g_bGlobalMute[id] = false;

	for(new i; i < sizeof g_aMutes[]; i++)
		g_aMutes[i][id] = false;
}

public CA_Client_Voice(const listener, const sender) {
	return (g_aMutes[listener][sender] == true || g_bGlobalMute[listener] || g_bGlobalMute[sender]) ? CA_SUPERCEDE : CA_CONTINUE;
}

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

Малка добавка към плъгина /mute

Мнение от OciXCrom » 22 Авг 2020, 14:31

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

#include <amxmodx>
#include <amxmisc>

#pragma semicolon 1
#pragma ctrlchar '\'

#include <ChatAdditions>

new const MSG_PREFIX[] = "\4[MUTE]\1";

new bool: g_aMutes[MAX_PLAYERS + 1][MAX_PLAYERS + 1];
new bool: g_bGlobalMute[MAX_PLAYERS + 1];

public plugin_init()
{
	register_plugin("[CA] Mute menu", "1.0.0-beta", "Sergey Shorokhov");
	register_dictionary("CA_Mute.txt");

	register_clcmd("say /mute", "ClCmd_Mute");
	register_clcmd("say_team /mute", "ClCmd_Mute");
}

public ClCmd_Mute(id) {
	Menu_Show_PlayersList(id);

	return PLUGIN_HANDLED;
}

public Menu_Show_PlayersList(id) {
	new pMenu = menu_create(fmt("%L", id, "CA_Mute_TITLE"), "Menu_Handler_PlayersList");
	new hCallback = menu_makecallback("Callback_PlayersList");

	new aPlayers[MAX_PLAYERS], iCount;
	get_players_ex(aPlayers, iCount, .flags = (GetPlayers_ExcludeBots | GetPlayers_ExcludeHLTV));

	if(iCount < 2) {
		menu_additem(pMenu, fmt("\\r %L", id, "Mute_NotEnoughPlayers"), "-2", .callback = hCallback);
	} else {
		menu_additem(pMenu, fmt("\\y %L %s", id, "CA_Mute_MuteALL", g_bGlobalMute[id] ? "\\w[ \\r+\\w ]" : ""), "-1");
		menu_addblank(pMenu, .slot = false);

		for(new i; i < MaxClients; i++) {
			if(i != id && is_user_connected(i))
				menu_additem(pMenu, "Name", fmt("%i", get_user_userid(i)), .callback = hCallback);
		}
	}

	menu_setprop(pMenu, MPROP_BACKNAME, fmt("%L", id, "CA_Mute_Back"));
	menu_setprop(pMenu, MPROP_NEXTNAME  , fmt("%L", id, "CA_Mute_Next"));
	menu_setprop(pMenu, MPROP_EXITNAME, fmt("%L", id, "CA_Mute_Exit"));

	menu_display(id, pMenu);
}

public Callback_PlayersList(id, menu, item) {
	new null, sInfo[64], sName[64];
	menu_item_getinfo(menu, item, null, sInfo, charsmax(sInfo), sName, charsmax(sName), null);

	new iUserID = strtol(sInfo);
	if(iUserID > 0) {
		new player = find_player_ex((FindPlayer_MatchUserId | FindPlayer_ExcludeBots), iUserID);
		menu_item_setname(menu, item, fmt("%n   %s", player, g_aMutes[id][player] ? "\\d[ \\r+\\d ]" : ""));
	}

	return (
			(iUserID != -1 && g_bGlobalMute[id])
			|| iUserID == -2
		) ? ITEM_DISABLED : ITEM_ENABLED;
}

public Menu_Handler_PlayersList(id, menu, item) {
	if(item == MENU_EXIT || item < 0) {
		menu_destroy(menu);
		return PLUGIN_HANDLED;
	}
	
	new null, sInfo[64], sName[64];
	menu_item_getinfo(menu, item, null, sInfo, charsmax(sInfo), sName, charsmax(sName), null);

	new iUserID = strtol(sInfo);
	if(iUserID == -1) {
		g_bGlobalMute[id] ^= true;

		menu_destroy(menu);
		Menu_Show_PlayersList(id);
		return PLUGIN_HANDLED;
	}

	new player = find_player_ex((FindPlayer_MatchUserId | FindPlayer_ExcludeBots), iUserID);
	if(!is_user_connected(player)) {
		client_print_color(id, print_team_red, "%s %L", MSG_PREFIX, id, "Player_NotConnected");

		menu_destroy(menu);
		Menu_Show_PlayersList(id);
		return PLUGIN_HANDLED;
	}

	g_aMutes[id][player] ^= true;
	client_print_color(id, print_team_default, "%s %L \3%n\1", MSG_PREFIX, id, g_aMutes[id][player] ? "CA_Mute_Muted" : "CA_Mute_UnMuted", player);

	menu_destroy(menu);
	Menu_Show_PlayersList(id);

	return PLUGIN_HANDLED;
}


public client_disconnected(id) {
	arrayset(g_aMutes[id], false, sizeof g_aMutes[]);
	g_bGlobalMute[id] = false;

	for(new i; i < sizeof g_aMutes[]; i++)
		g_aMutes[i][id] = false;
}

public CA_Client_Voice(const listener, const sender) {
	return (g_aMutes[listener][sender] == true || g_bGlobalMute[listener] || g_bGlobalMute[sender]) ? CA_SUPERCEDE : CA_CONTINUE;
}

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

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

Кой е на линия

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