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
Modyfikacja

poprawne rate - dodanie wymuszania komendy

modyfikacja

  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
Brak odpowiedzi do tego tematu

#1 rally

    Nowy

  • Zbanowany

Reputacja: 0
Nowy

  • Postów:1
  • Lokalizacja:CK
Offline

Napisano 11.01.2015 14:40

Witam,

 

Chciałbym prosić o dodanie do pluginu poprawne rate zmienionego przez Ossal w temacie:

http://amxx.pl/topic/143209-edycja-poprawne-rate-zamiana-banowania-na-kick/

wymuszania minimalnej wartości oraz możliwości ustawiania tego cvarem jeszcze jednej komendy:

 

- cl_cmdrate - i tak jak w pozostałych komendach w pluginie żeby było info, zliczanie i zmiana (jeśli mniejsza wartość na tą ustawioną cvarem)

 

 

 

Plugin:

#include <amxmodx>
#include <amxmisc>
#include <fakemeta>
#include <hamsandwich>
 
#define PLUGIN "Poprawne ust."
#define VERSION "1.0"
#define AUTHOR "Sn!ff3r"
 
#define AMXBANS 1
// Edytowane przez BotQ'a
 
new bool:timetocheck[33], zmienil[4][33];
// zmienil[1][id] - cl_updaterate
// zmienil[2][id] - rate
// zmienil[3][id] - ex_interp
 
new c_minrate, c_minupdaterate, c_maxinterp, c_say, c_zmian, c_powod;
new g_minrate, g_minupdaterate, Float:g_maxinterp, g_say, g_zmian;
 
public plugin_init() 
{
	register_plugin(PLUGIN, VERSION, AUTHOR)	
 
	RegisterHam(Ham_Spawn, "player", "client_spawn", 1)	
 
	register_event("HLTV", "cache_cvars", "a", "1=0", "2=0")
 
	c_minrate = register_cvar("set_minclrate", "20000")
	c_minupdaterate = register_cvar("set_clupdaterate", "45")
	c_maxinterp = register_cvar("set_interp", "0.05")
	c_say = register_cvar("set_info", "1")
	c_zmian = register_cvar("set_zmian", "3")
	c_powod = register_cvar("set_powod","Zmiany ustawien")
 
	cache_cvars()
}
 
public client_connect(id) {	
	timetocheck[id] = false
	for(new con=0;con<=3;con++)		zmienil[con][id] = 0
}
 
public client_disconnect(id) {
	timetocheck[id] = false
	for(new con=0;con<=3;con++)		zmienil[con][id] = 0
}
 
public client_spawn(id)
{
	if(is_user_hltv(id))
		return;
	static updaterate[6], rate[6]
 
	get_user_info(id, "cl_updaterate", updaterate, 5)
	get_user_info(id, "rate", rate, 5)
 
	new nickgracza[32];
	get_user_name(id,nickgracza,31);
 
	if(str_to_num(updaterate) < g_minupdaterate)
	{
		client_cmd(id, "cl_updaterate %d", g_minupdaterate)
		zmienil[1][id]++;
 
		if(g_say)
		{
			client_print(0, 3, "[AMXX] %s posiada za niski `cl_updaterate`, zmieniono na %d (%i/%i)", nickgracza, g_minupdaterate, zmienil[1][id], g_zmian)
		}
	}
 
	if(str_to_num(rate) < g_minrate)
	{
		client_cmd(id, "rate %d", g_minrate)
		zmienil[2][id]++;
 
		if(g_say)
		{
			client_print(0, 3, "[AMXX] %s posiada za niski `rate`, zmieniono na %d (%i/%i)", nickgracza, g_minrate, zmienil[2][id], g_zmian)
		}
	}
 
	timetocheck[id] = true
 
	static h
	h = register_forward(FM_CmdStart, "client_cmdstart", 1)	
	set_task(0.01, "unregister", h)
}
 
public unregister(h)
{
	unregister_forward(FM_CmdStart, h, 1)
}
 
public client_cmdstart(id, uc_handle, seed)
{
	if(is_user_hltv(id))
		return;
 
	if(timetocheck[id])
	{
		static value;
		value = get_uc( uc_handle, UC_LerpMsec );
 
		new nickgracza[32];
		get_user_name(id,nickgracza,31);
 
		if(float(value) / 1000.0 > g_maxinterp + 0.005) // maly fix 
		{
			client_cmd(id, "ex_interp %0.2f", g_maxinterp);
			zmienil[3][id]++;
 
			if(g_say)
			{
				client_print(0, print_chat, "[AMXX] %s posiada za wysoki 'ex_interp', zmieniono na %0.2f (%i/%i).", nickgracza, g_maxinterp, zmienil[3][id], g_zmian)
			}
		}
		timetocheck[id] = false
 
		for(new con=0;con<=3;con++)
		{
			if(zmienil[con][id] >= g_zmian)
			{
				new JakiPowod[17]
				get_pcvar_string(c_powod, JakiPowod, 16);
				server_cmd("amx_kick %s ^"%s^"", nickgracza, JakiPowod);
				switch(zmienil[con][id]) {
					case 1:	client_print(id, 3, "[AMXX] Przekroczony limit zmian `cl_updaterate` (%i/%i).", zmienil[con][id], g_zmian)
					case 2:	client_print(id, 3, "[AMXX] Przekroczony limit zmian `rate` (%i/%i).", zmienil[con][id], g_zmian)
					case 3:	client_print(id, 3, "[AMXX] Przekroczony limit zmian 'ex_interp' (%i/%i).", zmienil[con][id], g_zmian)
				}
			}
		}
	}
}
 
public cache_cvars()
{
	g_minrate = get_pcvar_num(c_minrate);
	g_minupdaterate = get_pcvar_num(c_minupdaterate);
	g_maxinterp = get_pcvar_float(c_maxinterp);
	g_say = get_pcvar_num(c_say);
	g_zmian = get_pcvar_num(c_zmian);
}






Również z jednym lub większą ilością słów kluczowych: modyfikacja

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

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