Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

[ROZWIĄZANE] Admin widzi wszystkie rozmowy


Najlepsza odpowiedź Boski Z Polski, 17.11.2022 16:18

Sprawdź to:

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

// Counter for the SayText event.
new count[33][33]     
new g_voice_status[2]

public catch_say(id)
{
	new reciever = read_data(0) //Reads the ID of the message recipient
	new sender = read_data(1)   //Reads the ID of the sender of the message
	new message[151]            //Variable for the message
	new channel[151]
	new sender_name[33]
	
	if (is_running("czero")||is_running("cstrike"))
	{
		read_data(2,channel,150)
		read_data(4,message,150)
		get_user_name(sender, sender_name, 31)
		} else {
		read_data(2,message,150)
	}
	
	// DEBUG. 
	// console_print(0, "DEBUG MESSAGE: %s", message)
	// console_print(0, "DEBUG channel: %s", channel)
	// console_print(0, "DEBUG sender: %s, %i", sender_name, sender)
	// console_print(0, "DEBUG receiver: %i", reciever)
	
	//With the SayText event, the message is sent to the person who sent it last.
	//It's sent to everyone else before the sender recieves it.
	
	// Keeps count of who recieved the message
	count[sender][reciever] = 1          
	// If current SayText message is the last then...
	if (sender == reciever)
	{      
		new player_count = get_playersnum()  //Gets the number of players on the server
		new players[32] //Player IDs
		get_players(players, player_count, "c")
		
		for (new i = 0; i < player_count; i++) 
		{
			// If the player is an admin...
			if (get_user_flags(players[i]) & ADMIN_LEVEL_B)
			{     
				// If the player did not recieve the message then...
				if (count[sender][players[i]] != 1)
				{              
					message_begin(MSG_ONE, get_user_msgid("SayText"),{0,0,0},players[i])
					// Appends the ID of the sender to the message, so the engine knows what color to make the name.
					write_byte(sender)
					// Appends the message to the message (depending on the mod).
					if (is_running("czero")||is_running("cstrike"))
					{
						write_string(channel)
						write_string(sender_name)
					}
					write_string(message)
					message_end()
				}
			}
			count[sender][players[i]] = 0  //Set everyone's counter to 0 so it's ready for the next SayText
		}
	}
	
	return PLUGIN_CONTINUE
}

public plugin_init(){
	register_plugin("AdminListen","2.3x","/dev/ urandom")
	register_srvcmd("amx_adminlisten_voice","voice_status")
	register_event("SayText","catch_say","b")
	return PLUGIN_CONTINUE
}

// *********************
// VoiceComm Stuff
// *********************

public client_infochanged(id)
{
	if ((get_user_flags(id) & ADMIN_LEVEL_B) && equal(g_voice_status,"1")) set_speak(id, 4)
}

public client_connect(id)
{
	if ((get_user_flags(id) & ADMIN_LEVEL_B) && equal(g_voice_status,"1")) set_speak(id, 4)
}

public voice_status(){
	read_argv(1,g_voice_status,1)
	new player_count = get_playersnum()
	new players[32] //Player IDs
	get_players(players, player_count, "c")
	for (new i = 0; i < player_count; i++) {
		if ((get_user_flags(players[i]) & ADMIN_LEVEL_B)){         
			if (equal(g_voice_status,"0")) set_speak(players[i], 0)
			if (equal(g_voice_status,"1")) set_speak(players[i], 4)
		}
	}
}

Przejdź do postu


  • Zamknięty Temat jest zamknięty
5 odpowiedzi w tym temacie

#1 MrStrajker

    Życzliwy

  • Użytkownik

Reputacja: 0
zer0.

  • Postów:36
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 16.11.2022 19:30

Witam,

 

Czy jest ktoś w posiadaniu poprawionego pluginu Admin Listen - admin widzi wszystkie rozmowy na chacie?

Niestety ten plugin https://amxx.pl/topi...8-admin-listen/ jest zbugowany - wysypuje error logami oraz dubluje wiadomosci.

 

Pozdrawiam!

 


Użytkownik MrStrajker edytował ten post 16.11.2022 19:30

  • +
  • -
  • 0

#2 Boski Z Polski

    Zaawansowany

  • Użytkownik

Reputacja: 27
Życzliwy

  • Postów:97
  • GG:
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 16.11.2022 21:26

Nie jestem pewny, ale wydaję mi się, że moduł adminskit posiada ową rzecz w swojej najnowszej wersji.
  • +
  • -
  • 0

#3 MrStrajker

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:36
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 17.11.2022 16:13

Sprawdziłem niestety tylko jest funkcja admin free look

 


  • +
  • -
  • 0

#4 Boski Z Polski

    Zaawansowany

  • Użytkownik

Reputacja: 27
Życzliwy

  • Postów:97
  • GG:
  • Steam:steam
  • Imię:Olgierd
  • Lokalizacja:Leszno
Offline

Napisano 17.11.2022 16:18   Najlepsza odpowiedź

Sprawdź to:

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

// Counter for the SayText event.
new count[33][33]     
new g_voice_status[2]

public catch_say(id)
{
	new reciever = read_data(0) //Reads the ID of the message recipient
	new sender = read_data(1)   //Reads the ID of the sender of the message
	new message[151]            //Variable for the message
	new channel[151]
	new sender_name[33]
	
	if (is_running("czero")||is_running("cstrike"))
	{
		read_data(2,channel,150)
		read_data(4,message,150)
		get_user_name(sender, sender_name, 31)
		} else {
		read_data(2,message,150)
	}
	
	// DEBUG. 
	// console_print(0, "DEBUG MESSAGE: %s", message)
	// console_print(0, "DEBUG channel: %s", channel)
	// console_print(0, "DEBUG sender: %s, %i", sender_name, sender)
	// console_print(0, "DEBUG receiver: %i", reciever)
	
	//With the SayText event, the message is sent to the person who sent it last.
	//It's sent to everyone else before the sender recieves it.
	
	// Keeps count of who recieved the message
	count[sender][reciever] = 1          
	// If current SayText message is the last then...
	if (sender == reciever)
	{      
		new player_count = get_playersnum()  //Gets the number of players on the server
		new players[32] //Player IDs
		get_players(players, player_count, "c")
		
		for (new i = 0; i < player_count; i++) 
		{
			// If the player is an admin...
			if (get_user_flags(players[i]) & ADMIN_LEVEL_B)
			{     
				// If the player did not recieve the message then...
				if (count[sender][players[i]] != 1)
				{              
					message_begin(MSG_ONE, get_user_msgid("SayText"),{0,0,0},players[i])
					// Appends the ID of the sender to the message, so the engine knows what color to make the name.
					write_byte(sender)
					// Appends the message to the message (depending on the mod).
					if (is_running("czero")||is_running("cstrike"))
					{
						write_string(channel)
						write_string(sender_name)
					}
					write_string(message)
					message_end()
				}
			}
			count[sender][players[i]] = 0  //Set everyone's counter to 0 so it's ready for the next SayText
		}
	}
	
	return PLUGIN_CONTINUE
}

public plugin_init(){
	register_plugin("AdminListen","2.3x","/dev/ urandom")
	register_srvcmd("amx_adminlisten_voice","voice_status")
	register_event("SayText","catch_say","b")
	return PLUGIN_CONTINUE
}

// *********************
// VoiceComm Stuff
// *********************

public client_infochanged(id)
{
	if ((get_user_flags(id) & ADMIN_LEVEL_B) && equal(g_voice_status,"1")) set_speak(id, 4)
}

public client_connect(id)
{
	if ((get_user_flags(id) & ADMIN_LEVEL_B) && equal(g_voice_status,"1")) set_speak(id, 4)
}

public voice_status(){
	read_argv(1,g_voice_status,1)
	new player_count = get_playersnum()
	new players[32] //Player IDs
	get_players(players, player_count, "c")
	for (new i = 0; i < player_count; i++) {
		if ((get_user_flags(players[i]) & ADMIN_LEVEL_B)){         
			if (equal(g_voice_status,"0")) set_speak(players[i], 0)
			if (equal(g_voice_status,"1")) set_speak(players[i], 4)
		}
	}
}


  • +
  • -
  • 1

#5 MrStrajker

    Życzliwy

  • Autor tematu
  • Użytkownik

Reputacja: 0
zer0.

  • Postów:36
  • GG:
  • Imię:Patryk
  • Lokalizacja:Sosnowiec
Offline

Napisano 20.11.2022 09:14

Dzięki bardzo, działa :D


  • +
  • -
  • 0

#6 dasiek

    Nie wiem, nie znam się, nie orientuję się, zarobiony jestem.

  • Junior Admin

Reputacja: 2 067
Godlike

  • Postów:5 695
  • Imię:Adaś
  • Lokalizacja:No teraz trochę dalej od WWy
Offline

Napisano 21.11.2022 11:24

Wiadomość wygenerowana automatycznie


Ten temat został zamknięty przez moderatora.

Powód: Pomoc udzielona

Jeśli się z tym nie zgadzasz, report.png raportuj ten post, a moderator lub administrator rozpatrzy go ponownie.


Z pozdrowieniami,
Zespół AMXX.PL
  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych