Counter-Strike 1.6
CS1.BG | DUST2 NOSHTA GARMI [RANKED PLAY] #1
45.144.155.113:27015
de_dust2
Играчи: 30/32
de_dust2
Counter-Strike 1.6
VIP
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 aim_aztec Играчи: 0/16
Counter-Strike 1.6
VIP
93.123.16.4:27022 Cs-PlovdiV.com - Aim Attack aim_aztec 0/16

Преработка на banretryplayer.amxx.

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.
Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 20 Дек 2019, 23:48

Здравейте,
Търся работещ плъгин , който при използване на няколко пъти(дефинирано с квар) командите retry или reconnect от определен играч за дадено време( дефинирано с квар) - да получава временен бан(дефинирано с квар).
Ползвам ReGameDLL_CS, ReAPI ... , а за бан: системата AMXBans 6.13 .
Порових се доста в интернета, но намерих само ето този плъгин(доста стар):

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

#include <amxmodx>
#include <amxmisc>
#define MAX_PLAYERS 32

new pip[MAX_PLAYERS+1][22]
new markedIp[MAX_PLAYERS+1]


public client_connect(id) {
    if ((!is_user_bot(id)) && ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) && (get_cvar_num("amx_retryban")==1)) {

	new userip[21+1]
	new uname[33+1]
	get_user_ip(id, userip, 21, 0)
	get_user_name(id, uname, 33)
	for(new i = 1; i <= MAX_PLAYERS; i++) {
	    if (equal(userip, pip[i], 21)) {
		new userid[1]
		userid[0] = get_user_userid(id)		
		if ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) {	    
		    //--------------------------------------------
		    if (markedIp[i] < get_cvar_num("amx_retrycounttoban"))
		    {			
			return PLUGIN_CONTINUE
		    }
		    //--------------------------------------------
		    
		    new txt[128]
		    get_cvar_string("amx_retrybanmsg", txt, 127)
		    new min[6]
		    new min2[6]
		    new retryCount[3]

		    num_to_str(get_cvar_num("amx_retrybanduration"),min, 5)				
		    num_to_str(get_cvar_num("amx_retrytimetoban"),min2, 5)
		    num_to_str(get_cvar_num("amx_retrycounttoban"),retryCount, 2)

		    replace(txt, 127, "%s", uname)
		    replace(txt, 127, "%m", min)	
		    replace(txt, 127, "%m2", min2)
		    replace(txt, 127, "%d", retryCount)
		    
		    server_cmd("say %s",txt)
		    set_hudmessage(255, 0, 0, 0.05, 0.70, 0, 5.0, 6.0, 6.0, 0.15, 3)
		    show_hudmessage(0,"%s",txt)		    
		    
		    if	(get_cvar_num("amx_retrychat")==1)
		    {
			new sTemp[128]
			new text[128]
			get_cvar_string("amx_retrychatmsg", sTemp, 127)
			format(text, 128, sTemp, get_cvar_num("amx_retrycounttoban"), get_cvar_num("amx_retrytimetoban"), get_cvar_num("amx_retrybanduration"))
			client_cmd(id,"echo %s",text)
		    }		    
		    server_cmd("addip %d ^"%s^";wait;writeip",get_cvar_num("amx_retrybanduration"),userip)
		    markedIp[i] = 0
		    pip[i][0] = 0

		}
		return PLUGIN_CONTINUE
	    }
	}
	
    }    
    return PLUGIN_CONTINUE
}

public client_disconnect(id) {
    if ((!is_user_bot(id)) && ( !(get_user_flags(id) & ADMIN_IMMUNITY) ) && (get_cvar_num("amx_retryban")==1)) {
	for(new i = 1; i <= MAX_PLAYERS; i++) {
	    if(pip[i][0] == 0) {
		markedIp[i]++;
		server_print("say ----Markip[%d] = %d----", i, markedIp[i])
		//--------------------------------------------
		if (markedIp[i] == 1) // First time retry
		{		
			new para[3] 
			format(para, 2, "%d", i) 
			set_task(60.0 * get_cvar_num("amx_retrytimetoban"), "clean_markedip", 0, para, 1)			
		}
		//----------------------------------	
		else if (markedIp[i] == get_cvar_num("amx_retrycounttoban"))  // Reached the retry time count
		{
			new userip[21+1]
			get_user_ip(id, userip, 21, 0)
			copy(pip[i], 21, userip)			
		}
		return PLUGIN_CONTINUE
	    }
	}
    }
    return PLUGIN_CONTINUE
}
public clean_markedip(index[]) {

    markedIp[str_to_num(index)]=0;
}


public plugin_init() { 
	register_plugin("Ban retry player","1.1","[email protected]")  
	register_cvar("amx_retryban","1")
	register_cvar("amx_retrybanduration","3")
	register_cvar("amx_retrychat","1")
	register_cvar("amx_retrytimetoban","10")
	register_cvar("amx_retrycounttoban","2")
	
	// %s is the player name, %m is amx_retrybanduration in minutes
	
	register_cvar("amx_retrybanmsg","Ban %s %m min(s) because retry %d time(s) in %m2 min(s)")
	register_cvar("amx_retrychatmsg","You were using command RETRY %d time(s) in %d minute(s) so you has been banned from this server in %d minutes. Come back later please!")
	for(new i=0; i< MAX_PLAYERS; i++)
	{
		markedIp[i]=0;
	}

	return PLUGIN_CONTINUE 
}
Малко старичък, обаче се комипилира:( с един "warning"):
C:\Users\pc\Desktop\AMXX\AMXX\scripting\banretryplayer.sma(68) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
Опитах да го "подкарам" , показа, че е пуснат в списъка с amxx list , дори изписва в конзолата на сървъра някакви подобни неща:
say ----Markip[6] = 1----
say ----Markip[6] = 2----
при влизане на играчи, и дори когато някой премине границата за реконктване - показва, т.е. че уж функционира и че е уж баннат, например:

<.:::SERVER:::.> Ban dimitrij 1 min(s) because retry 3 time(s) in 6 min(s)

Но, ... , бан няма! Не работи, не знам защо но нито в listip.cfg , нито във banned.cfg има записан бан?! Играча не бива банван или дори кикван, никакво действие върху него... Ако е от значение - и самата бансистема не записва бановете там - не знам така ли трябва да е или не. (Иначе самата бансистема си записва в "допълнителната страница" бановете в сървъра и си ги пази там както е редно).
Та, молбата ми е, ако може да се напише работещ подобен плъгин който да изпълнява само онова което съм описал в началото над самия код, или пък, ако е по-лесно - да бъде преработен този стария(което много ме съмнява, но аз лично не съм наясно с това). разчитам на вашата преценка.
Благодаря!

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 21 Дек 2019, 11:20

Разгледах плъгина и ми направи впечатление този ред:

server_cmd("addip %d ^"%s^";wait;writeip",get_cvar_num("amx_retrybanduration"),userip)

Мисля , че това е самата функция която изпраща командата за бан ? Порових се пак в нет и намерих друго:

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

function( id... )
{
    new name[ 33 ];
    get_user_name( id, name, 32 );
    server_cmd( "amx_ban %s", name );
}
/*
    Then you just set times/reasons how you want etc.
*/

Може ли някой да ми модернизира и сглоби плъгина, така , че да банва с този "синатксис" :
amx_ban [time] [steam] [reason]
Така ми е настроен да банва reaimdetector-а в reaimdetector.ini - и работи засега коректно?
За системата за "маркиране" обаче не знам как да се процедира, и май там вместо по Ип, трябва да се смени да ги помни по Стийм, след първото retry ili reconnect? Моля някой с малко време да помогне с плъгина?! Мисля, че и на други тук този плъгин - ако бъде преработен и стане функциониращ - би бил доста полезен?!
Благодаря.

p.s. А предполагам, че за много от вас скриптърите тук , това не е никакъв проблем?

Аватар
Drea<M>40BG ;]]
Извън линия
Потребител
Потребител
Мнения: 750
Регистриран на: 11 Окт 2016, 11:35
Се отблагодари: 115 пъти
Получена благодарност: 63 пъти
Обратна връзка:

Преработка на banretryplayer.amxx.

Мнение от Drea<M>40BG ;]] » 21 Дек 2019, 11:33

iv69 написа: 21 Дек 2019, 11:20 Разгледах плъгина и ми направи впечатление този ред:

server_cmd("addip %d ^"%s^";wait;writeip",get_cvar_num("amx_retrybanduration"),userip)

Мисля , че това е самата функция която изпраща командата за бан ? Порових се пак в нет и намерих друго:

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

function( id... )
{
    new name[ 33 ];
    get_user_name( id, name, 32 );
    server_cmd( "amx_ban %s", name );
}
/*
    Then you just set times/reasons how you want etc.
*/
Може ли някой да ми модернизира и сглоби плъгина, така , че да банва с този "синатксис" :
amx_ban [time] [steam] [reason]
Така ми е настроен да банва reaimdetector-а в reaimdetector.ini - и работи засега коректно?
За системата за "маркиране" обаче не знам как да се процедира, и май там вместо по Ип, трябва да се смени да ги помни по Стийм, след първото retry ili reconnect? Моля някой с малко време да помогне с плъгина?! Мисля, че и на други тук този плъгин би бил доста полезен?!
Благодаря.
Тази команда чрез rcon "addip" добавяш някакво ип, НЕ IP МРЕЖА в "черния лист на сървъра ти", ще намериш тези IP-та в listip папката ти в cstrike мисля че, ще го намериш.

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

{
    new name[ 33 ];
    get_user_name( id, name, 32 );
    server_cmd( "amx_ban %s", name );
}
Ако ползваш AMXBANS това няма да ти свърши работа, напиши amx_ban в конзолата и си виж как става чрез реда на времето, ип и причина.
С това addip ако си реснат рутера могат да влезнат, аз имам една програмка, която генерира автоматично цялата ип мрежа според първите цифри (xx.xx.), но ти можеш да ползваш и amx_addban xxx.xx.0.0. Не мога в момента повече да ти помогна, имам работа.

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 21 Дек 2019, 11:58

Drea<M>40BG ;]] написа: 21 Дек 2019, 11:33
iv69 написа: 21 Дек 2019, 11:20 Разгледах плъгина и ми направи впечатление този ред:

server_cmd("addip %d ^"%s^";wait;writeip",get_cvar_num("amx_retrybanduration"),userip)

Мисля , че това е самата функция която изпраща командата за бан ? Порових се пак в нет и намерих друго:

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

function( id... )
{
    new name[ 33 ];
    get_user_name( id, name, 32 );
    server_cmd( "amx_ban %s", name );
}
/*
    Then you just set times/reasons how you want etc.
*/
Може ли някой да ми модернизира и сглоби плъгина, така , че да банва с този "синатксис" :
amx_ban [time] [steam] [reason]
Така ми е настроен да банва reaimdetector-а в reaimdetector.ini - и работи засега коректно?
За системата за "маркиране" обаче не знам как да се процедира, и май там вместо по Ип, трябва да се смени да ги помни по Стийм, след първото retry ili reconnect? Моля някой с малко време да помогне с плъгина?! Мисля, че и на други тук този плъгин би бил доста полезен?!
Благодаря.
Тази команда чрез rcon "addip" добавяш някакво ип, НЕ IP МРЕЖА в "черния лист на сървъра ти", ще намериш тези IP-та в listip папката ти в cstrike мисля че, ще го намериш.

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

{
    new name[ 33 ];
    get_user_name( id, name, 32 );
    server_cmd( "amx_ban %s", name );
}
Ако ползваш AMXBANS това няма да ти свърши работа, напиши amx_ban в конзолата и си виж как става чрез реда на времето, ип и причина.
С това addip ако си реснат рутера могат да влезнат, аз имам една програмка, която генерира автоматично цялата ип мрежа според първите цифри (xx.xx.), но ти можеш да ползваш и amx_addban xxx.xx.0.0. Не мога в момента повече да ти помогна, имам работа.
Да си призная, нито една думичка не разбрах, но все тая ...

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Преработка на banretryplayer.amxx.

Мнение от atmax » 21 Дек 2019, 12:34

C:\Users\pc\Desktop\AMXX\AMXX\scripting\banretryplayer.sma(68) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
В самия warning ти казва какво да направиш, а относно плъгина, който ползваш това че е стар може да е самия проблем. Ето какво можеш да направиш намираш си един читав плъгин за кик на retry или reconnect на играчите и заместваш функцията за кик с тази за бан. Ако не знаеш как става съм сигурен че ще се намери някой тук, който да ти го направи. :) Бих го направил, но в момента пиша от телефона и нямам възможността да ти помогна.
Rest in peace my friend I always will remember you! 🖤👊

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 21 Дек 2019, 14:09

atmax написа: 21 Дек 2019, 12:34 C:\Users\pc\Desktop\AMXX\AMXX\scripting\banretryplayer.sma(68) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
В самия warning ти казва какво да направиш, а относно плъгина, който ползваш това че е стар може да е самия проблем. Ето какво можеш да направиш намираш си един читав плъгин за кик на retry или reconnect на играчите и заместваш функцията за кик с тази за бан. Ако не знаеш как става съм сигурен че ще се намери някой тук, който да ти го направи. :) Бих го направил, но в момента пиша от телефона и нямам възможността да ти помогна.
Много моля такива излишни мнения по темата да не се пускат! Мисля, че съм написал ясно и подробно от какво точно имам ннужда в началото на самата тема, и съвети от този род са напълно излишни. Със или без този съвет( или други подобни като това над твоето и твоето), нито ще получа помощ, нито пък изобщо ще имам плъгина за който моля тук! Ако можех да направя сам това за което пишеш, нямаше да пускам тема. Нали така?!

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Преработка на banretryplayer.amxx.

Мнение от atmax » 21 Дек 2019, 14:39

iv69 написа: 21 Дек 2019, 14:09
atmax написа: 21 Дек 2019, 12:34 C:\Users\pc\Desktop\AMXX\AMXX\scripting\banretryplayer.sma(68) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
В самия warning ти казва какво да направиш, а относно плъгина, който ползваш това че е стар може да е самия проблем. Ето какво можеш да направиш намираш си един читав плъгин за кик на retry или reconnect на играчите и заместваш функцията за кик с тази за бан. Ако не знаеш как става съм сигурен че ще се намери някой тук, който да ти го направи. :) Бих го направил, но в момента пиша от телефона и нямам възможността да ти помогна.
Много моля такива излишни мнения по темата да не се пускат! Мисля, че съм написал ясно и подробно от какво точно имам ннужда в началото на самата тема, и съвети от този род са напълно излишни. Със или без този съвет( или други подобни като това над твоето и твоето), нито ще получа помощ, нито пък изобщо ще имам плъгина за който моля тук! Ако можех да направя сам това за което пишеш, нямаше да пускам тема. Нали така?!
Ако не си разбрал в горното ми мнение съм ти помогнал и то доста. Единствения ти проблем е че не ти го направих и за това ли се изнерви по този начин? Това не е начина, можеше просто и ясно да кажеш, че искаш да ти го направим, а не да определяш моята помощ като "излишен спам", това се казва недоуценяване, но въпреки това съм човек и ще ти помогна:

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

#include <amxmodx>

#define PLUGIN "No-Retry"
#define VERSION "1.0"
#define AUTHOR "Angel in the dark"


new gCount[33]
new gIP[33][22]
new Float:gTime[33] = {0.0, ...}

new g_CvarCount
new g_CvarRetryAdmin
new g_CvarRetryTime
new g_CvarRetryBanMsg
new g_CvarRetryShowChat
new g_CvarRetryShowChatMsg

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_CvarCount = register_cvar("amx_retry_count", "2");
	g_CvarRetryAdmin = register_cvar("amx_retry_admin", "1");
	g_CvarRetryTime = register_cvar("amx_retry_time", "10");
	g_CvarBanTime	=	register_cvar("amx_retrybantime", "5"
	g_CvarRetryBanMsg = register_cvar("amx_retry_banmsg", "Please wait next time!");
	g_CvarRetryShowChat = register_cvar("amx_retry_showchat", "1");
	g_CvarRetryShowChatMsg = register_cvar("amx_retry_showchatmsg", "%s was banned: reconnect in %t seconds");
}

public client_putinserver(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new iAdmin = get_pcvar_num( g_CvarRetryAdmin );
	
	if(!(iAdmin && (get_user_flags(id) & ADMIN_IMMUNITY)))
	{
		new ip[22], name[34], txt[128], sec[6];
	
		get_user_ip(id, ip, 21);
		get_user_name(id, name, 33);
	
		get_pcvar_string(g_CvarRetryShowChatMsg, txt, 127);
		num_to_str(get_pcvar_num(g_CvarRetryTime), sec, 5);
		replace(txt, 127, "%s", name);
		replace(txt, 127, "%t", sec);
	
		new Float:Time = get_gametime();
		new iCount = get_pcvar_num( g_CvarCount );
		new iChat = get_pcvar_num( g_CvarRetryShowChat );
	
		for(new i = 0 ; i < 33; i++){
			if (equal(ip, gIP[i], 21)){
				if (gTime[i] > Time){
					if(gCount[id] >= iCount){
						if(iChat){
							client_print( 0, print_chat, "[AMXX] %s", txt);
						}
						
						UserBan(id);
					}
				}
				break;
			}	
		}
	}
	
	return PLUGIN_HANDLED;
}

public client_disconnect(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new Float:banTime = get_pcvar_float(g_CvarBanTime);
	new Float:Time = get_gametime();
	gTime[id] = Time + banTime;
	get_user_ip( id, gIP[id], 21 );
	gCount[id]++;
	
	return PLUGIN_HANDLED;
}

public UserBan(id)
{
	new banmsg[100], bantime = get_pcvar_num( g_CvarBanTime );
	get_pcvar_string(g_CvarRetryBanMsg, banmsg, charsmax(banmsg));
	server_cmd("amx_ban #%d ^"%s %d minutes^"", get_user_userid(id), banmsg, bantime);
}
Rest in peace my friend I always will remember you! 🖤👊

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 21 Дек 2019, 15:53

atmax написа: 21 Дек 2019, 14:39
iv69 написа: 21 Дек 2019, 14:09
atmax написа: 21 Дек 2019, 12:34 C:\Users\pc\Desktop\AMXX\AMXX\scripting\banretryplayer.sma(68) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
В самия warning ти казва какво да направиш, а относно плъгина, който ползваш това че е стар може да е самия проблем. Ето какво можеш да направиш намираш си един читав плъгин за кик на retry или reconnect на играчите и заместваш функцията за кик с тази за бан. Ако не знаеш как става съм сигурен че ще се намери някой тук, който да ти го направи. :) Бих го направил, но в момента пиша от телефона и нямам възможността да ти помогна.
Много моля такива излишни мнения по темата да не се пускат! Мисля, че съм написал ясно и подробно от какво точно имам ннужда в началото на самата тема, и съвети от този род са напълно излишни. Със или без този съвет( или други подобни като това над твоето и твоето), нито ще получа помощ, нито пък изобщо ще имам плъгина за който моля тук! Ако можех да направя сам това за което пишеш, нямаше да пускам тема. Нали така?!
Ако не си разбрал в горното ми мнение съм ти помогнал и то доста. Единствения ти проблем е че не ти го направих и за това ли се изнерви по този начин? Това не е начина, можеше просто и ясно да кажеш, че искаш да ти го направим, а не да определяш моята помощ като "излишен спам", това се казва недоуценяване, но въпреки това съм човек и ще ти помогна:

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

#include <amxmodx>

#define PLUGIN "No-Retry"
#define VERSION "1.0"
#define AUTHOR "Angel in the dark"


new gCount[33]
new gIP[33][22]
new Float:gTime[33] = {0.0, ...}

new g_CvarCount
new g_CvarRetryAdmin
new g_CvarRetryTime
new g_CvarRetryBanMsg
new g_CvarRetryShowChat
new g_CvarRetryShowChatMsg

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_CvarCount = register_cvar("amx_retry_count", "2");
	g_CvarRetryAdmin = register_cvar("amx_retry_admin", "1");
	g_CvarRetryTime = register_cvar("amx_retry_time", "10");
	g_CvarBanTime	=	register_cvar("amx_retrybantime", "5"
	g_CvarRetryBanMsg = register_cvar("amx_retry_banmsg", "Please wait next time!");
	g_CvarRetryShowChat = register_cvar("amx_retry_showchat", "1");
	g_CvarRetryShowChatMsg = register_cvar("amx_retry_showchatmsg", "%s was banned: reconnect in %t seconds");
}

public client_putinserver(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new iAdmin = get_pcvar_num( g_CvarRetryAdmin );
	
	if(!(iAdmin && (get_user_flags(id) & ADMIN_IMMUNITY)))
	{
		new ip[22], name[34], txt[128], sec[6];
	
		get_user_ip(id, ip, 21);
		get_user_name(id, name, 33);
	
		get_pcvar_string(g_CvarRetryShowChatMsg, txt, 127);
		num_to_str(get_pcvar_num(g_CvarRetryTime), sec, 5);
		replace(txt, 127, "%s", name);
		replace(txt, 127, "%t", sec);
	
		new Float:Time = get_gametime();
		new iCount = get_pcvar_num( g_CvarCount );
		new iChat = get_pcvar_num( g_CvarRetryShowChat );
	
		for(new i = 0 ; i < 33; i++){
			if (equal(ip, gIP[i], 21)){
				if (gTime[i] > Time){
					if(gCount[id] >= iCount){
						if(iChat){
							client_print( 0, print_chat, "[AMXX] %s", txt);
						}
						
						UserBan(id);
					}
				}
				break;
			}	
		}
	}
	
	return PLUGIN_HANDLED;
}

public client_disconnect(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new Float:banTime = get_pcvar_float(g_CvarBanTime);
	new Float:Time = get_gametime();
	gTime[id] = Time + banTime;
	get_user_ip( id, gIP[id], 21 );
	gCount[id]++;
	
	return PLUGIN_HANDLED;
}

public UserBan(id)
{
	new banmsg[100], bantime = get_pcvar_num( g_CvarBanTime );
	get_pcvar_string(g_CvarRetryBanMsg, banmsg, charsmax(banmsg));
	server_cmd("amx_ban #%d ^"%s %d minutes^"", get_user_userid(id), banmsg, bantime);
}
Ммм да, може би наистина съм бил невъздържан и с малко по-груб език... ?!
Но, по темата: Преди да тествам искам да попитам за "настройките" ? Както разбирам с бедните си познания, в плъгина си оставил всичките тези 7 квара и аз мога сам да си определям техните параметри в axmm.cfg, такак ли е? Т.е. - 5-те квара и двете съобщения? И друго: с тази команда:
server_cmd("amx_ban #%d ^"%s %d minutes^"", get_user_userid(id), banmsg, bantime);
си настроил да се банва по същия начин за който помолих: т.е. да се ползва синтаксиса за AMXBans 6.13 с бан по STEAM_ID ?

Дава грешки на компилиратора:

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

// C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(25) : error 017: undefined symbol "g_CvarBanTime"
// C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(25 -- 26) : error 001: expected token: ",", but found "-identifier-"
// C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(75) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
//
// C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(80) : error 017: undefined symbol "g_CvarBanTime"
// C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(91) : error 017: undefined symbol "g_CvarBanTime"
//
// 4 Errors.
// Could not locate output file C:\Users\pc\Desktop\AMXX\AMXX\scripting\compiled\No-Retryy.amx (compile failed).
//
// Compilation Time: 0,2 sec

Аватар
atmax
Извън линия
Потребител
Потребител
Мнения: 492
Регистриран на: 22 Мар 2018, 15:06
Се отблагодари: 37 пъти
Получена благодарност: 43 пъти

Преработка на banretryplayer.amxx.

Мнение от atmax » 21 Дек 2019, 17:38

Пробвай.

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

#include <amxmodx>

#define PLUGIN "No-Retry"
#define VERSION "1.0"
#define AUTHOR "Angel in the dark"


new gCount[33]
new gIP[33][22]
new Float:gTime[33] = {0.0, ...}

new g_CvarCount
new g_CvarRetryAdmin
new g_CvarRetryTime
new g_CvarRetryBanMsg
new g_CvarRetryShowChat
new g_CvarRetryShowChatMsg
new g_CvarBanTime

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_CvarCount = register_cvar("amx_retry_count", "2");
	g_CvarRetryAdmin = register_cvar("amx_retry_admin", "1");
	g_CvarRetryTime = register_cvar("amx_retry_time", "10");
	g_CvarBanTime	=	register_cvar("amx_retrybantime", "5") ;
	g_CvarRetryBanMsg = register_cvar("amx_retry_banmsg", "Please wait next time!");
	g_CvarRetryShowChat = register_cvar("amx_retry_showchat", "1");
	g_CvarRetryShowChatMsg = register_cvar("amx_retry_showchatmsg", "%s was banned: reconnect in %t seconds");
}

public client_putinserver(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new iAdmin = get_pcvar_num( g_CvarRetryAdmin );
	
	if(!(iAdmin && (get_user_flags(id) & ADMIN_IMMUNITY)))
	{
		new ip[22], name[34], txt[128], sec[6];
	
		get_user_ip(id, ip, 21);
		get_user_name(id, name, 33);
	
		get_pcvar_string(g_CvarRetryShowChatMsg, txt, 127);
		num_to_str(get_pcvar_num(g_CvarRetryTime), sec, 5);
		replace(txt, 127, "%s", name);
		replace(txt, 127, "%t", sec);
	
		new Float:Time = get_gametime();
		new iCount = get_pcvar_num( g_CvarCount );
		new iChat = get_pcvar_num( g_CvarRetryShowChat );
	
		for(new i = 0 ; i < 33; i++){
			if (equal(ip, gIP[i], 21)){
				if (gTime[i] > Time){
					if(gCount[id] >= iCount){
						if(iChat){
							client_print( 0, print_chat, "[AMXX] %s", txt);
						}
						
						UserBan(id);
					}
				}
				break;
			}	
		}
	}
	
	return PLUGIN_HANDLED;
}

public client_disconnect(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new Float:banTime = get_pcvar_float(g_CvarBanTime);
	new Float:Time = get_gametime();
	gTime[id] = Time + banTime;
	get_user_ip( id, gIP[id], 21 );
	gCount[id]++;
	
	return PLUGIN_HANDLED;
}

public UserBan(id)
{
	new banmsg[100], bantime = get_pcvar_num( g_CvarBanTime );
	get_pcvar_string(g_CvarRetryBanMsg, banmsg, charsmax(banmsg));
	server_cmd("amx_ban #%d ^"%s %d minutes^"", get_user_userid(id), banmsg, bantime);
}
Rest in peace my friend I always will remember you! 🖤👊

Аватар
iv69
Извън линия
Потребител
Потребител
Мнения: 744
Регистриран на: 17 Мар 2018, 15:34
Се отблагодари: 214 пъти
Получена благодарност: 39 пъти

Преработка на banretryplayer.amxx.

Мнение от iv69 » 21 Дек 2019, 18:32

atmax написа: 21 Дек 2019, 17:38 Пробвай.

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

#include <amxmodx>

#define PLUGIN "No-Retry"
#define VERSION "1.0"
#define AUTHOR "Angel in the dark"


new gCount[33]
new gIP[33][22]
new Float:gTime[33] = {0.0, ...}

new g_CvarCount
new g_CvarRetryAdmin
new g_CvarRetryTime
new g_CvarRetryBanMsg
new g_CvarRetryShowChat
new g_CvarRetryShowChatMsg
new g_CvarBanTime

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	g_CvarCount = register_cvar("amx_retry_count", "2");
	g_CvarRetryAdmin = register_cvar("amx_retry_admin", "1");
	g_CvarRetryTime = register_cvar("amx_retry_time", "10");
	g_CvarBanTime	=	register_cvar("amx_retrybantime", "5") ;
	g_CvarRetryBanMsg = register_cvar("amx_retry_banmsg", "Please wait next time!");
	g_CvarRetryShowChat = register_cvar("amx_retry_showchat", "1");
	g_CvarRetryShowChatMsg = register_cvar("amx_retry_showchatmsg", "%s was banned: reconnect in %t seconds");
}

public client_putinserver(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new iAdmin = get_pcvar_num( g_CvarRetryAdmin );
	
	if(!(iAdmin && (get_user_flags(id) & ADMIN_IMMUNITY)))
	{
		new ip[22], name[34], txt[128], sec[6];
	
		get_user_ip(id, ip, 21);
		get_user_name(id, name, 33);
	
		get_pcvar_string(g_CvarRetryShowChatMsg, txt, 127);
		num_to_str(get_pcvar_num(g_CvarRetryTime), sec, 5);
		replace(txt, 127, "%s", name);
		replace(txt, 127, "%t", sec);
	
		new Float:Time = get_gametime();
		new iCount = get_pcvar_num( g_CvarCount );
		new iChat = get_pcvar_num( g_CvarRetryShowChat );
	
		for(new i = 0 ; i < 33; i++){
			if (equal(ip, gIP[i], 21)){
				if (gTime[i] > Time){
					if(gCount[id] >= iCount){
						if(iChat){
							client_print( 0, print_chat, "[AMXX] %s", txt);
						}
						
						UserBan(id);
					}
				}
				break;
			}	
		}
	}
	
	return PLUGIN_HANDLED;
}

public client_disconnect(id)
{
	if (is_user_bot(id) || is_user_hltv(id)){
		return PLUGIN_HANDLED;
	}
	
	new Float:banTime = get_pcvar_float(g_CvarBanTime);
	new Float:Time = get_gametime();
	gTime[id] = Time + banTime;
	get_user_ip( id, gIP[id], 21 );
	gCount[id]++;
	
	return PLUGIN_HANDLED;
}

public UserBan(id)
{
	new banmsg[100], bantime = get_pcvar_num( g_CvarBanTime );
	get_pcvar_string(g_CvarRetryBanMsg, banmsg, charsmax(banmsg));
	server_cmd("amx_ban #%d ^"%s %d minutes^"", get_user_userid(id), banmsg, bantime);
}
Компилира се с една подробност: // C:\Users\pc\Desktop\AMXX\AMXX\scripting\No-Retryy.sma(76) : warning 233: symbol "client_disconnect" is marked as deprecated: Use client_disconnected() instead.
Още един въпрос: сега точно слагам кварите: този: - "amx_retry_time", "10" за минути или секунди е?
и този: - "amx_retrybantime", "5" също в какви мерни единици е? Първия и втория? защото в оригиналния плъгин за no-retry - мисля , че първия си бе за секунди, и предполагам, че и втория е в секунди ? Всички са в секунди май ?

Добавено преди 36 минути 58 секунди:
Не работи.

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

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

Кой е на линия

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