Голос игроков

AleksandrM3

Участник
Сообщения
137
Реакции
2
Помогите подправить плагин, у меня в чате вместо цветов пишутся символы, пробовал переделать но компилится с ошибками.
Исходника плагина нет, я его декомпил
PHP:
public PlVers:__version =
{
	version = 5,
	filevers = "1.7.0",
	date = "03/14/2015",
	time = "23:26:06"
};
new Float:NULL_VECTOR[3];
new String:NULL_STRING[4];
public Extension:__ext_core =
{
	name = "Core",
	file = "core",
	autoload = 0,
	required = 0,
};
new MaxClients;
new bool:g_EnemyVoice[66];
public Plugin:myinfo =
{
	name = "Toggle listen voice",
	description = "Позволяет игроку заглушить всех сразу(игрок, прописавший !voice не будет слышать никого, пока снова не напишет эту команду)",
	author = "ilga80|css-rus.ru",
	version = "1.0.2b",
	url = "http://css-rus.ru"
};
public __ext_core_SetNTVOptional()
{
	MarkNativeAsOptional("GetFeatureStatus");
	MarkNativeAsOptional("RequireFeature");
	MarkNativeAsOptional("AddCommandListener");
	MarkNativeAsOptional("RemoveCommandListener");
	MarkNativeAsOptional("BfWriteBool");
	MarkNativeAsOptional("BfWriteByte");
	MarkNativeAsOptional("BfWriteChar");
	MarkNativeAsOptional("BfWriteShort");
	MarkNativeAsOptional("BfWriteWord");
	MarkNativeAsOptional("BfWriteNum");
	MarkNativeAsOptional("BfWriteFloat");
	MarkNativeAsOptional("BfWriteString");
	MarkNativeAsOptional("BfWriteEntity");
	MarkNativeAsOptional("BfWriteAngle");
	MarkNativeAsOptional("BfWriteCoord");
	MarkNativeAsOptional("BfWriteVecCoord");
	MarkNativeAsOptional("BfWriteVecNormal");
	MarkNativeAsOptional("BfWriteAngles");
	MarkNativeAsOptional("BfReadBool");
	MarkNativeAsOptional("BfReadByte");
	MarkNativeAsOptional("BfReadChar");
	MarkNativeAsOptional("BfReadShort");
	MarkNativeAsOptional("BfReadWord");
	MarkNativeAsOptional("BfReadNum");
	MarkNativeAsOptional("BfReadFloat");
	MarkNativeAsOptional("BfReadString");
	MarkNativeAsOptional("BfReadEntity");
	MarkNativeAsOptional("BfReadAngle");
	MarkNativeAsOptional("BfReadCoord");
	MarkNativeAsOptional("BfReadVecCoord");
	MarkNativeAsOptional("BfReadVecNormal");
	MarkNativeAsOptional("BfReadAngles");
	MarkNativeAsOptional("BfGetNumBytesLeft");
	MarkNativeAsOptional("BfWrite.WriteBool");
	MarkNativeAsOptional("BfWrite.WriteByte");
	MarkNativeAsOptional("BfWrite.WriteChar");
	MarkNativeAsOptional("BfWrite.WriteShort");
	MarkNativeAsOptional("BfWrite.WriteWord");
	MarkNativeAsOptional("BfWrite.WriteNum");
	MarkNativeAsOptional("BfWrite.WriteFloat");
	MarkNativeAsOptional("BfWrite.WriteString");
	MarkNativeAsOptional("BfWrite.WriteEntity");
	MarkNativeAsOptional("BfWrite.WriteAngle");
	MarkNativeAsOptional("BfWrite.WriteCoord");
	MarkNativeAsOptional("BfWrite.WriteVecCoord");
	MarkNativeAsOptional("BfWrite.WriteVecNormal");
	MarkNativeAsOptional("BfWrite.WriteAngles");
	MarkNativeAsOptional("BfRead.ReadBool");
	MarkNativeAsOptional("BfRead.ReadByte");
	MarkNativeAsOptional("BfRead.ReadChar");
	MarkNativeAsOptional("BfRead.ReadShort");
	MarkNativeAsOptional("BfRead.ReadWord");
	MarkNativeAsOptional("BfRead.ReadNum");
	MarkNativeAsOptional("BfRead.ReadFloat");
	MarkNativeAsOptional("BfRead.ReadString");
	MarkNativeAsOptional("BfRead.ReadEntity");
	MarkNativeAsOptional("BfRead.ReadAngle");
	MarkNativeAsOptional("BfRead.ReadCoord");
	MarkNativeAsOptional("BfRead.ReadVecCoord");
	MarkNativeAsOptional("BfRead.ReadVecNormal");
	MarkNativeAsOptional("BfRead.ReadAngles");
	MarkNativeAsOptional("BfRead.GetNumBytesLeft");
	MarkNativeAsOptional("PbReadInt");
	MarkNativeAsOptional("PbReadFloat");
	MarkNativeAsOptional("PbReadBool");
	MarkNativeAsOptional("PbReadString");
	MarkNativeAsOptional("PbReadColor");
	MarkNativeAsOptional("PbReadAngle");
	MarkNativeAsOptional("PbReadVector");
	MarkNativeAsOptional("PbReadVector2D");
	MarkNativeAsOptional("PbGetRepeatedFieldCount");
	MarkNativeAsOptional("PbSetInt");
	MarkNativeAsOptional("PbSetFloat");
	MarkNativeAsOptional("PbSetBool");
	MarkNativeAsOptional("PbSetString");
	MarkNativeAsOptional("PbSetColor");
	MarkNativeAsOptional("PbSetAngle");
	MarkNativeAsOptional("PbSetVector");
	MarkNativeAsOptional("PbSetVector2D");
	MarkNativeAsOptional("PbAddInt");
	MarkNativeAsOptional("PbAddFloat");
	MarkNativeAsOptional("PbAddBool");
	MarkNativeAsOptional("PbAddString");
	MarkNativeAsOptional("PbAddColor");
	MarkNativeAsOptional("PbAddAngle");
	MarkNativeAsOptional("PbAddVector");
	MarkNativeAsOptional("PbAddVector2D");
	MarkNativeAsOptional("PbRemoveRepeatedFieldValue");
	MarkNativeAsOptional("PbReadMessage");
	MarkNativeAsOptional("PbReadRepeatedMessage");
	MarkNativeAsOptional("PbAddMessage");
	MarkNativeAsOptional("Protobuf.ReadInt");
	MarkNativeAsOptional("Protobuf.ReadFloat");
	MarkNativeAsOptional("Protobuf.ReadBool");
	MarkNativeAsOptional("Protobuf.ReadString");
	MarkNativeAsOptional("Protobuf.ReadColor");
	MarkNativeAsOptional("Protobuf.ReadAngle");
	MarkNativeAsOptional("Protobuf.ReadVector");
	MarkNativeAsOptional("Protobuf.ReadVector2D");
	MarkNativeAsOptional("Protobuf.GetRepeatedFieldCount");
	MarkNativeAsOptional("Protobuf.SetInt");
	MarkNativeAsOptional("Protobuf.SetFloat");
	MarkNativeAsOptional("Protobuf.SetBool");
	MarkNativeAsOptional("Protobuf.SetString");
	MarkNativeAsOptional("Protobuf.SetColor");
	MarkNativeAsOptional("Protobuf.SetAngle");
	MarkNativeAsOptional("Protobuf.SetVector");
	MarkNativeAsOptional("Protobuf.SetVector2D");
	MarkNativeAsOptional("Protobuf.AddInt");
	MarkNativeAsOptional("Protobuf.AddFloat");
	MarkNativeAsOptional("Protobuf.AddBool");
	MarkNativeAsOptional("Protobuf.AddString");
	MarkNativeAsOptional("Protobuf.AddColor");
	MarkNativeAsOptional("Protobuf.AddAngle");
	MarkNativeAsOptional("Protobuf.AddVector");
	MarkNativeAsOptional("Protobuf.AddVector2D");
	MarkNativeAsOptional("Protobuf.RemoveRepeatedFieldValue");
	MarkNativeAsOptional("Protobuf.ReadMessage");
	MarkNativeAsOptional("Protobuf.ReadRepeatedMessage");
	MarkNativeAsOptional("Protobuf.AddMessage");
	VerifyCoreVersion();
	return 0;
}

PrintToChatAll(String:format[])
{
	decl String:buffer[192];
	new i = 1;
	while (i <= MaxClients)
	{
		if (IsClientInGame(i))
		{
			SetGlobalTransTarget(i);
			VFormat(buffer, 192, format, 2);
			PrintToChat(i, "%s", buffer);
		}
		i++;
	}
	return 0;
}

public void:OnPluginStart()
{
	RegConsoleCmd("voice", voice, "", 0);
	return void:0;
}

public void:OnMapStart()
{
	CreateTimer(60.0, voice_adc, any:0, 3);
	return void:0;
}

public Action:voice_adc(Handle:timer)
{
	PrintToChatAll("\x0733CCFF[Voice] \x07F8F8FFНапишите \x07FFFF47!voice\x07F8F8FF, чтобы заглушить/начать слышать всех");
	return Action:0;
}

public void:OnClientPutInServer(client)
{
	g_EnemyVoice[client] = 1;
	return void:0;
}

public Action:voice(client, args)
{
	if (0 < client)
	{
		if (g_EnemyVoice[client])
		{
			g_EnemyVoice[client] = 0;
			PrintInfo(client);
		}
		g_EnemyVoice[client] = 1;
		PrintInfo(client);
	}
	return Action:3;
}

public void:OnClientDisconnect(client)
{
	g_EnemyVoice[client] = 1;
	return void:0;
}

PrintInfo(client)
{
	if (!g_EnemyVoice[client])
	{
		new i = 1;
		while (i <= MaxClients)
		{
			new var1;
			if (IsClientInGame(i) && !IsFakeClient(i) && client != i)
			{
				SetListenOverride(client, i, ListenOverride:1);
			}
			i++;
		}
	}
	else
	{
		new i = 1;
		while (i <= MaxClients)
		{
			new var2;
			if (IsClientInGame(i) && !IsFakeClient(i) && client != i)
			{
				SetListenOverride(client, i, ListenOverride:0);
			}
			i++;
		}
	}
	if (!g_EnemyVoice[client])
	{
		PrintToChat(client, "\x0733CCFF[Voice] \x07F8F8FFТеперь вы никого не будете слышать!");
	}
	else
	{
		PrintToChat(client, "\x0733CCFF[Voice] \x07F8F8FFТеперь вы будете слышать всех");
	}
	return 0;
}

public void:OnClientPostAdminCheck(client)
{
	new i = 1;
	while (i <= MaxClients)
	{
		new var1;
		if (IsClientInGame(i) && !IsFakeClient(i) && client != i && !g_EnemyVoice[i])
		{
			SetListenOverride(i, client, ListenOverride:1);
		}
		i++;
	}
	return void:0;
}

У меня css34
 

Scarface_slv

Участник
Сообщения
222
Реакции
47
Наверно так, не проверял
PHP:
#include <sdktools_voice> 

public Plugin:myinfo = 
{ 
    name = "Toggle listen voice", 
    description = "Позволяет игроку заглушить всех сразу(игрок, прописавший !voice не будет слышать никого, пока снова не напишет эту команду)", 
    author = "ilga80|css-rus.ru", 
    version = "1.0.2b", 
    url = "http://css-rus.ru" 
}; 

new bool:g_EnemyVoice[MAXPLAYERS+1];

public OnPluginStart() RegConsoleCmd("voice", voice); 

public OnMapStart() CreateTimer(60.0, voice_adc, _, TIMER_REPEAT); 

public Action:voice_adc(Handle:timer) 
	PrintToChatAll("\x01[Voice] \x03Напишите \x04!voice\x03, чтобы заглушить/начать слышать всех"); 

public OnClientPostAdminCheck(client) PrintInfo(client, true);

public Action:voice(client, args) 
{ 
    if(client > 0) PrintInfo(client); 
    return Plugin_Handled;
} 

PrintInfo(client, bool:connect = false)
{ 
	if(!connect) 
	{
		g_EnemyVoice[client] = !g_EnemyVoice[client];
		if(g_EnemyVoice[client]) PrintToChat(client, "\x01[Voice] \x03Теперь вы никого не будете слышать!"); 
		else PrintToChat(client, "\x01[Voice] \x03Теперь вы будете слышать всех"); 
	}
	else g_EnemyVoice[client] = false; 
	for(new i = 1; i <= MaxClients; i++)
	{
		if(i != client && IsClientInGame(i) && !IsFakeClient(i))
		{
			if(!connect) SetListenOverride(client, i, g_EnemyVoice[client] ? Listen_No : Listen_Default); 
			else if(g_EnemyVoice[i]) SetListenOverride(i, client, Listen_No); 
		}
	}
}
 

AleksandrM3

Участник
Сообщения
137
Реакции
2
Наверно так, не проверял
PHP:
#include <sdktools_voice> 

public Plugin:myinfo = 
{ 
    name = "Toggle listen voice", 
    description = "Позволяет игроку заглушить всех сразу(игрок, прописавший !voice не будет слышать никого, пока снова не напишет эту команду)", 
    author = "ilga80|css-rus.ru", 
    version = "1.0.2b", 
    url = "http://css-rus.ru" 
}; 

new bool:g_EnemyVoice[MAXPLAYERS+1];

public OnPluginStart() RegConsoleCmd("voice", voice); 

public OnMapStart() CreateTimer(60.0, voice_adc, _, TIMER_REPEAT); 

public Action:voice_adc(Handle:timer) 
	PrintToChatAll("\x01[Voice] \x03Напишите \x04!voice\x03, чтобы заглушить/начать слышать всех"); 

public OnClientPostAdminCheck(client) PrintInfo(client, true);

public Action:voice(client, args) 
{ 
    if(client > 0) PrintInfo(client); 
    return Plugin_Handled;
} 

PrintInfo(client, bool:connect = false)
{ 
	if(!connect) 
	{
		g_EnemyVoice[client] = !g_EnemyVoice[client];
		if(g_EnemyVoice[client]) PrintToChat(client, "\x01[Voice] \x03Теперь вы никого не будете слышать!"); 
		else PrintToChat(client, "\x01[Voice] \x03Теперь вы будете слышать всех"); 
	}
	else g_EnemyVoice[client] = false; 
	for(new i = 1; i <= MaxClients; i++)
	{
		if(i != client && IsClientInGame(i) && !IsFakeClient(i))
		{
			if(!connect) SetListenOverride(client, i, g_EnemyVoice[client] ? Listen_No : Listen_Default); 
			else if(g_EnemyVoice[i]) SetListenOverride(i, client, Listen_No); 
		}
	}
}


сейчас попробую

Добавлено через 2 минуты
Скомпилировался) сейчас попробую поставлю

Добавлено через 14 минут
Все отлично работает спасибо.
 
Последнее редактирование:
Сверху Снизу