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
 

cinek 193 - zdjęcie

cinek 193

Rejestracja: 18.12.2008
Aktualnie: Nieaktywny
Poza forum Ostatnio: 04.01.2012 20:18
-----

Moje tematy

Przerobienie vote ban

18.03.2010 22:51

Witam Serdecznie otóż mam prośbę, czy ktoś może mi przerobić plugin o nazwie "vote ban" czyli plugin który umożliwia graczom wywołanie głosowania na bana dla danego gracza ?
Chodzi o to, aby tylko gracze z TT mogli głosować na banowanie. Głosować może tylko TT ale bana może dostawać osoba z CT jak i TT.

#include <amxmodx>

#define PLUGIN "Ban Vote"
#define VERSION "1.0"
#define AUTHOR "Alka"

#define BAN_VOTE_DELAY 60.0

new g_iMaxPlayers;

new g_iVotesNum;
new g_szVoterName[32];
new g_szVotedName[32];
new g_szReason[64];
new bool:g_bValidUid;
new Float:g_fLastVote;

new bool:g_bHasVoted[33];

new const g_szSyntax[] = "/vote";
new const g_szBanTime[] = "0";

public plugin_init() {
	
	register_plugin(PLUGIN, VERSION, AUTHOR);
	
	register_clcmd("say", "clcmdHandleSay", -1, "");
	register_clcmd("enter_ban_reason", "clcmdBanReason", -1, "");
	
	g_iMaxPlayers = get_maxplayers();
}

public clcmdHandleSay(id)
{	
	new szArgs[128];
	read_args(szArgs, sizeof szArgs - 1);
	
	remove_quotes(szArgs);
	
	if(equali(szArgs, g_szSyntax))
	{
		Util_DisplayList(id);
		return 0;
	}
	
	new szTemp[32];
	parse(szArgs, szArgs, sizeof szArgs - 1, szTemp, sizeof szTemp - 1);
	
	if(equali(szArgs, g_szSyntax) && szTemp[0] == '#')
	{
		new iPlayers[32], iPlayersNum;
		get_players(iPlayers, iPlayersNum, "ch");
		
		if(iPlayersNum < 3)
		{
			Util_PrintGreen(id, "> Sorry, not enough players(3) to start a Ban Vote!");
			return 1;
		}
		
		if((get_gametime() - g_fLastVote) < BAN_VOTE_DELAY)
		{
			Util_PrintGreen(id, "> Sorry, you must wait %.1f sec. before start another vote!", BAN_VOTE_DELAY);
			return 1;
		}
		
		for(new i = 0 ; i < sizeof szTemp ; i++)
		{
			if(!isdigit(szTemp[i]) && szTemp[i] != '#' && szTemp[i])
			{
				Util_PrintGreen(id, "> Syntax Error: Invalid userid! Type ^"/vote^" for more info.");
				return 1;
			}
		}
		for(new j = 1 ; j <= g_iMaxPlayers ; j++)
		{
			if(!is_user_connected(j))
				continue;
			
			if(get_user_userid(j) == str_to_num(szTemp[1]))
			{
				g_bValidUid = true;
				
				get_user_name(id, g_szVoterName, sizeof g_szVoterName - 1);
				get_user_name(j, g_szVotedName, sizeof g_szVotedName - 1);
				
				Util_PrintGreen(0, "> Player '%s' voted '%s' to be banned!", g_szVoterName, g_szVotedName);
				Util_PrintGreen(id, "> Enter the ban reason!");
				
				g_bHasVoted[id] = true;
				
				client_cmd(id, "messagemode enter_ban_reason");
			}
		}
		if(!g_bValidUid)
		{
			Util_PrintGreen(id, "> Syntax Error: Invalid userid! Type ^"/vote^" for more info.");
			return 1;
		}
	}
	g_fLastVote = get_gametime();
	
	return 0;
}

public clcmdBanReason(id)
{
	if(!g_bHasVoted[id])
		return 1;
	
	read_argv(1, g_szReason, sizeof g_szReason - 1);
	
	if(!g_szReason[0])
	{
		client_cmd(id, "messagemode enter_ban_reason");
		return 1;
	}
	g_bValidUid = false;
	g_bHasVoted[id] = false;
	
	new szTemp[128];
	formatex(szTemp, sizeof szTemp - 1, "\wBan \r%s \wfor: \y%s", g_szVotedName, g_szReason);
	
	new iMenu = menu_create(szTemp, "menuHandle", 0);
	menu_additem(iMenu, "\wYes", "1", 0, -1);
	menu_additem(iMenu, "\wNo", "2", 0, -1);
	menu_addblank(iMenu, 0);
	
	menu_setprop(iMenu, MPROP_EXIT, MEXIT_NEVER);
	
	for(new i = 1 ; i <= g_iMaxPlayers ; i++)
	{
		if(!is_user_connected(i) || (i == get_user_index(g_szVotedName)))
			continue;
		
		menu_display(i, iMenu, 0);
	}
	set_task(15.0, "taskCheckVotes", 0);
	
	return 1;
}

public menuHandle(id, menu, item)
{
	new szData[6], iAccess, iCallBack;
	menu_item_getinfo(menu, item, iAccess, szData, sizeof szData - 1, _, _, iCallBack);
	
	new iKey = str_to_num(szData);
	
	switch(iKey)
	{
		case 1 : { g_iVotesNum++; }
	}
	return 1;
}

public taskCheckVotes()
{
	new iPlayers[32], iPlayersNum;
	get_players(iPlayers, iPlayersNum, "ch");
	
	if(g_iVotesNum >= (iPlayersNum - 1))
	{
		new id = get_user_index(g_szVotedName);
		
		if(!is_user_connected(id))
		{
			Util_PrintGreen(0, "> Ban vote has failed, since player is not on server anymore!");
		}
		else
		{
			if(!is_steam_user(id))
			{
				new szIp[32];
				get_user_ip(id, szIp, sizeof szIp - 1, 1);
				
				server_cmd("kick #%d ^"Ban Vote^";wait;addip ^"%s^" ^"%s^";wait;writeip", get_user_userid(id), g_szBanTime, szIp);
			}
			else
			{
				new szSteamId[32];
				get_user_authid(id, szSteamId, sizeof szSteamId - 1);
				
				server_cmd("kick #%d ^"Ban Vote^";wait;banid ^"%s^" ^"%s^";wait;writeid", get_user_userid(id), g_szBanTime, szSteamId);
			}
			Util_PrintGreen(0, "> Player '%s' has been successfully banned due Ban Vote!", g_szVotedName);
			Util_Log("Player '%s' has been banned due Ban Vote started by '%s'!Reason: '%s'", g_szVotedName, g_szVoterName, g_szReason);
		}
	}
	g_iVotesNum = 0;
	g_szVotedName[0] = '^0';
	g_szVoterName[0] = '^0';
	g_szReason[0] = '^0';
}

public client_disconnect(id)
{
	static iVoted;
	iVoted = get_user_index(g_szVotedName);
	
	if(id == iVoted)
	{
		if(!is_steam_user(id))
		{
			new szIp[32];
			get_user_ip(id, szIp, sizeof szIp - 1, 1);
			
			server_cmd("kick #%d ^"Ban Vote^";wait;addip ^"0^" ^"%s^";wait;writeip", get_user_userid(id), szIp);
		}
		else
		{
			new szSteamId[32];
			get_user_authid(id, szSteamId, sizeof szSteamId - 1);
			
			server_cmd("kick #%d ^"Ban Vote^";wait;banid ^"0^" ^"%s^";wait;writeid", get_user_userid(id), szSteamId);
		}
		Util_PrintGreen(0, "> Player '%s' has been successfully banned due leaving the server in middle of a Ban Vote!", g_szVotedName);
		Util_Log("Player '%s' has been successfully banned due leaving the server in middle of a Ban Vote!", g_szVotedName);
	}
}

stock Util_DisplayList(id)
{
	new szBuffer[512], iLen;
	new szName[32], iIndex;
	
	iLen = formatex(szBuffer, sizeof szBuffer - 1, "<body bgcolor=#000000><font color=#ff0000><pre>");
	iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "<font size=^"4^">%s   %s   %s</font>^n", "#", "Name", "Steam User");
	
	for(new i = 1 ; i <= g_iMaxPlayers ; i++)
	{
		if(!is_user_connected(i))
			continue;
		
		get_user_name(i, szName, sizeof szName - 1);
		iIndex = get_user_userid(i);
		
		iLen += formatex(szBuffer[iLen], (sizeof szBuffer - 1) - iLen, "%d   %s   %s^n", iIndex, szName, is_steam_user(i) ? "Yes" : "No");
	}
	show_motd(id, szBuffer, "");
}

stock bool:is_steam_user(id)
{
	new szSteamid[32];
	get_user_authid(id, szSteamid, sizeof szSteamid - 1);
	
	if(szSteamid[7] == ':')
		return true;
	
	return false;
}

stock Util_PrintGreen(id, const message[], {Float, Sql, Resul,_}:...) {
	
	static msg[192];
	msg[0] = 0x04;
	
	vformat(msg[1], 190, message, 3);
	
	if( id > 0 && id <= g_iMaxPlayers)
	{
		message_begin(MSG_ONE, get_user_msgid("SayText"),_, id);
		write_byte(id);
		write_string(msg);
		message_end();
	}
	else if(id == 0)
	{
		for( new i = 1; i <= g_iMaxPlayers; i++ )
		{
			if(!is_user_connected(i))
				continue;
			
			message_begin(MSG_ONE, get_user_msgid("SayText"),_, i);
			write_byte(i);
			write_string(msg);
			message_end();
		}
	}
}

stock Util_Log(const string[], {Float, Sql, Resul,_}:...) {
	
	static const szFile[] = "vote_ban.log";
	
	static szMessage[256];
	vformat(szMessage, sizeof szMessage - 1, string, 3);
	
	log_to_file(szFile, szMessage);
}

Problem z Simple_redirect

13.02.2010 15:14

Witam otóż chciałem zrobić przekierowanie z jednego serwa na drugi. Chodzi o to, że jeśli np. jeden jest pełny i ktoś chcę się połączyć to automatycznie łączy go z drugim.

Dodałem plugin Simple_redirect ale niestety coś nie działa. Niestety nie wiem dlaczego. Wszystko ok zainstalowałem, żadnych błędów nie widzę a plugin po prostu nie działa. Czy ktoś może ma jakiś inny plugin tego typu ? Dodam że oba serwery są na 47/48

Plugin na say spamerów, reklamy

28.01.2010 23:24

Witam Serdecznie, otóż poszukuje plugin który pomoże mi rozwiązać mój problem. Chodzi mi o takie coś że np. jak ktoś klnie to jego tekst automatycznie zamienia się w inny napis np. wymyślony przez ze mnie.
Czy ktoś jest mi w stanie pomóc ? Widziałem to na kilku serwerach, że wchodzę przekląłem na say a tu reklama ich www

Hltv na serwerze bardzo słaby hosting

21.01.2010 22:29

Witam Serdecznie otóż posiadam serwer 17 slotów public na gry.bardzo słaby hosting. Chciałem sobie zamówić HLTV na CW leż coś się nie da. Wyskakuje jakiś komunikat błędu.
Nie wiem czy może być to spowodowane tym, że mam serwer dproto czyli 47/48. Dodam że mam do serwera dopisane

sv_proxies 1