Игнориране на ботове във "No_reconnect"

В този раздел можете да подавате всякакви заявки за намиране, изработка или преработка на плъгини/модове.

Модератори: Extreme, Extreme, Extreme, Extreme, Extreme, Extreme, Extreme

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 18 Фев 2021, 18:15

Здравейте,
Може ли в плъгина да се добави "игнориране" за ботове?!

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a")

public client_connect(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)

	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if (t_disconnect[id] > nexTime)
		{
		 new stat = get_cvar_num(RSTATIC)
		 new timewait
		 if (stat==0)
		 {
 		  t_disconnect[id] = floatround(nexTime) + maxexit
		  t_scoresave[id] = floatround(nexTime) + maxstata
		  timewait=maxexit
		 }
		 else
		 {
		  timewait=t_disconnect[id]-floatround(nexTime)
		 }
 	  	 server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
		 return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()

		if (t_scoresave[id] <= nexTime)
		{
		 sdeaths[id]=0
		 sfrags[id]=0
		 useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE
}

public outspec()
{
 new id=read_data(1)
 if ((useretry[id]==1) && (is_user_connected(id)))
 {
  cs_set_user_deaths(id,sdeaths[id])
  set_user_frags(id,sfrags[id])
  useretry[id]=0
  sdeaths[id]=0
  sfrags[id]=0
 }
 return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)

	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
 	if (ssave==1)
	{
	 sdeaths[id] = get_user_deaths(id)
	 sfrags[id] = get_user_frags(id)
	 useretry[id]=1
	}
	return PLUGIN_CONTINUE
}
Благодаря !

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 18 Фев 2021, 19:30

Ще ми обясни ли поне някой, дали ще работи правилно плъгина и ще игнорира ботовете, ако го променя ето така:

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a") 	// восстанавливает счёт игроку в соответствии с настройками как только тот зайдёт за команду
}

public client_connect(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)

	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if(is_user_bot(id))
		
		if (t_disconnect[id] > nexTime)
		{
		 new stat = get_cvar_num(RSTATIC)
		 new timewait
		 if (stat==0)
		 {
 		  t_disconnect[id] = floatround(nexTime) + maxexit
		  t_scoresave[id] = floatround(nexTime) + maxstata
		  timewait=maxexit
		 }
		 else
		 {
		  timewait=t_disconnect[id]-floatround(nexTime)
		 }
 	  	 server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
		 return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()

		if (t_scoresave[id] <= nexTime)
		{
		 sdeaths[id]=0
		 sfrags[id]=0
		 useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE
}

public outspec()
{
 new id=read_data(1)
 if ((useretry[id]==1) && (is_user_connected(id)))
 {
  cs_set_user_deaths(id,sdeaths[id])
  set_user_frags(id,sfrags[id])
  useretry[id]=0
  sdeaths[id]=0
  sfrags[id]=0
 }
 return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)

	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
 	if (ssave==1)
	{
	 sdeaths[id] = get_user_deaths(id)
	 sfrags[id] = get_user_frags(id)
	 useretry[id]=1
	}
	return PLUGIN_CONTINUE
}

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 18 Фев 2021, 19:40

iv69 написа: 18 Фев 2021, 19:30 Ще ми обясни ли поне някой, дали ще работи правилно плъгина и ще игнорира ботовете, ако го променя ето така:

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a") 	// восстанавливает счёт игроку в соответствии с настройками как только тот зайдёт за команду
}

public client_connect(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)

	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if(is_user_bot(id))
		
		if (t_disconnect[id] > nexTime)
		{
		 new stat = get_cvar_num(RSTATIC)
		 new timewait
		 if (stat==0)
		 {
 		  t_disconnect[id] = floatround(nexTime) + maxexit
		  t_scoresave[id] = floatround(nexTime) + maxstata
		  timewait=maxexit
		 }
		 else
		 {
		  timewait=t_disconnect[id]-floatround(nexTime)
		 }
 	  	 server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
		 return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()

		if (t_scoresave[id] <= nexTime)
		{
		 sdeaths[id]=0
		 sfrags[id]=0
		 useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE
}

public outspec()
{
 new id=read_data(1)
 if ((useretry[id]==1) && (is_user_connected(id)))
 {
  cs_set_user_deaths(id,sdeaths[id])
  set_user_frags(id,sfrags[id])
  useretry[id]=0
  sdeaths[id]=0
  sfrags[id]=0
 }
 return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)

	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
 	if (ssave==1)
	{
	 sdeaths[id] = get_user_deaths(id)
	 sfrags[id] = get_user_frags(id)
	 useretry[id]=1
	}
	return PLUGIN_CONTINUE
}
Мнее, така се компилира но не работи. Показва, че е пуснат , но всъщност все едно го няма :( Помощ , някой?

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

Игнориране на ботове във "No_reconnect"

Мнение от atmax » 18 Фев 2021, 20:29

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a")

public client_connect(id)
{
	if(is_user_bot(id))
		return

	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)

	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if (t_disconnect[id] > nexTime)
		{
		 new stat = get_cvar_num(RSTATIC)
		 new timewait
		 if (stat==0)
		 {
 		  t_disconnect[id] = floatround(nexTime) + maxexit
		  t_scoresave[id] = floatround(nexTime) + maxstata
		  timewait=maxexit
		 }
		 else
		 {
		  timewait=t_disconnect[id]-floatround(nexTime)
		 }
 	  	 server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
		 return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()

		if (t_scoresave[id] <= nexTime)
		{
		 sdeaths[id]=0
		 sfrags[id]=0
		 useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE
}

public outspec()
{
 new id=read_data(1)
 if ((useretry[id]==1) && (is_user_connected(id)))
 {
  cs_set_user_deaths(id,sdeaths[id])
  set_user_frags(id,sfrags[id])
  useretry[id]=0
  sdeaths[id]=0
  sfrags[id]=0
 }
 return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)

	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
 	if (ssave==1)
	{
	 sdeaths[id] = get_user_deaths(id)
	 sfrags[id] = get_user_frags(id)
	 useretry[id]=1
	}
	return PLUGIN_CONTINUE
}
Не знам дали те разбрах правилно, кое точно искаш да игнорираш за ботовете, ако е за функцията, която забранява retry, пробвай това.
Rest in peace my friend I always will remember you! 🖤👊

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 18 Фев 2021, 21:05

atmax написа: 18 Фев 2021, 20:29

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a")

public client_connect(id)
{
	if(is_user_bot(id))
		return

	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)

	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if (t_disconnect[id] > nexTime)
		{
		 new stat = get_cvar_num(RSTATIC)
		 new timewait
		 if (stat==0)
		 {
 		  t_disconnect[id] = floatround(nexTime) + maxexit
		  t_scoresave[id] = floatround(nexTime) + maxstata
		  timewait=maxexit
		 }
		 else
		 {
		  timewait=t_disconnect[id]-floatround(nexTime)
		 }
 	  	 server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
		 return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()

		if (t_scoresave[id] <= nexTime)
		{
		 sdeaths[id]=0
		 sfrags[id]=0
		 useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}

	return PLUGIN_CONTINUE
}

public outspec()
{
 new id=read_data(1)
 if ((useretry[id]==1) && (is_user_connected(id)))
 {
  cs_set_user_deaths(id,sdeaths[id])
  set_user_frags(id,sfrags[id])
  useretry[id]=0
  sdeaths[id]=0
  sfrags[id]=0
 }
 return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)

	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
 	if (ssave==1)
	{
	 sdeaths[id] = get_user_deaths(id)
	 sfrags[id] = get_user_frags(id)
	 useretry[id]=1
	}
	return PLUGIN_CONTINUE
}
Не знам дали те разбрах правилно, кое точно искаш да игнорираш за ботовете, ако е за функцията, която забранява retry, пробвай това.
Благодаря! Точно това исках , сега ще пробвам!

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 18 Фев 2021, 21:12

Пробвах да го компилирам , но ми даде тези грешки:

No_reconnect_new.sma(32) : warning 217: loose indentation
No_reconnect_new.sma(32) : error 029: invalid expression, assumed zero
No_reconnect_new.sma(32) : error 004: function "client_connect" is not implemented
No_reconnect_new.sma(34) : error 017: undefined symbol "id"
No_reconnect_new.sma(37) : warning 209: function "plugin_init" should return a value
No_reconnect_new.sma(42) : error 017: undefined symbol "id"
No_reconnect_new.sma(42) : warning 215: expression has no effect
No_reconnect_new.sma(42) : warning 215: expression has no effect
No_reconnect_new.sma(42) : warning 215: expression has no effect
No_reconnect_new.sma(42) : error 001: expected token: ";", but found ")"
No_reconnect_new.sma(42) : error 029: invalid expression, assumed zero
No_reconnect_new.sma(42) : fatal error 107: too many error messages on one line

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

Игнориране на ботове във "No_reconnect"

Мнение от atmax » 19 Фев 2021, 06:50

Изобщо работил ли е преди това този плъгин..? Като гледам кода, явно е старичък, ползвай този плъгин:
https://www.amxx-bg.info/forum/viewtopic.php?t=346
Rest in peace my friend I always will remember you! 🖤👊

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 19 Фев 2021, 09:45

atmax написа: 19 Фев 2021, 06:50 Изобщо работил ли е преди това този плъгин..? Като гледам кода, явно е старичък, ползвай този плъгин:
https://www.amxx-bg.info/forum/viewtopic.php?t=346
Този плъгин съм го ползвал, но не ми върши работа по 2 причини:
1. При него няма засичане на времето, което трябва да се изчака след първото reconnect-ване, а се брои винаги цялото от последната команда. Така, ако играча даде retry/reconnect дори само 2 сек преди изтичането, то той пак трябва да чака целия интервал а не само тези 2 сек.
2. Идеята да има брояч за "позволени" reconnect-вания е изключително добра, но има един проблем: те се "запомнят" - и играча ако един път си ги използва всички тези "позволени" reconnect-вания - без значение след колко време... вече му се губят перманентно "позволените" reconnect-вания, дори след смяна на карта , рестарт на сървъра, влизане след час, ден или година .... Ако имаше нещо което да ги "ресет"-ваше, тогава плъгина щеше да е далеч по интересен и ефективен!?
Ето за това не го ползвам , въпреки , че е написан по перфектен начин от може би перфектен скриптер, но... Дано не съм бил излишно образен и многословен и да съм разбран правилно...

p.s. Ако все пак някой знае друг подобен плъгин на точно този, който исках да бъде преработен, нека сподели... С радост бих го тествал и използвал.
Благодаря все пак за усилията на Atmax !

Аватар
rago12
Извън линия
Потребител
Потребител
Мнения: 63
Регистриран на: 10 Апр 2017, 15:23
Получена благодарност: 34 пъти

Игнориране на ботове във "No_reconnect"

Мнение от rago12 » 19 Фев 2021, 10:32

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a")
}

public client_connect(id)
{
	if(is_user_bot(id))
		return PLUGIN_CONTINUE
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)
	
	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if (t_disconnect[id] > nexTime)
		{
			new stat = get_cvar_num(RSTATIC)
			new timewait
			if (stat==0)
			{
				t_disconnect[id] = floatround(nexTime) + maxexit
				t_scoresave[id] = floatround(nexTime) + maxstata
				timewait=maxexit
			}
			else
			{
				timewait=t_disconnect[id]-floatround(nexTime)
			}
			server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
			return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()
		
		if (t_scoresave[id] <= nexTime)
		{
			sdeaths[id]=0
			sfrags[id]=0
			useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}
	
	return PLUGIN_CONTINUE
}

public outspec()
{
	new id=read_data(1)
	if ((useretry[id]==1) && (is_user_connected(id)))
	{
		cs_set_user_deaths(id,sdeaths[id])
		set_user_frags(id,sfrags[id])
		useretry[id]=0
		sdeaths[id]=0
		sfrags[id]=0
	}
	return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)
	
	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
	if (ssave==1)
	{
		sdeaths[id] = get_user_deaths(id)
		sfrags[id] = get_user_frags(id)
		useretry[id]=1
	}
	return PLUGIN_CONTINUE
}

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

Игнориране на ботове във "No_reconnect"

Мнение от iv69 » 19 Фев 2021, 12:29

rago12 написа: 19 Фев 2021, 10:32

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

#include <amxmodx>
#include <cstrike>
#include <fun>

new PLUGIN[]="Anti reconnect"
new AUTHOR[]="JohnJ"
new VERSION[]="3.0"

new RTIME[]="amx_reconnect_time"
new RCAN[]="amx_reconnect_can"
new SCORESAVE[]="amx_reconnect_ss"
new RSTATIC[]="amx_reconnect_static"
new RSTIME[]="amx_reconnect_stime"

new t_disconnect[33] = {0, ...}
new t_scoresave[33] = {0, ...}
new ips[33][24]
new sfrags[33] = {0, ...}
new sdeaths[33] = {0, ...}
new useretry[33] = {0, ...}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_cvar(RTIME, "7")
	register_cvar(RCAN, "1")
	register_cvar(SCORESAVE, "1")
	register_cvar(RSTATIC, "1")
	register_cvar(RSTIME, "7")
	register_event("TeamInfo","outspec","a")
}

public client_connect(id)
{
	if(is_user_bot(id))
		return PLUGIN_CONTINUE
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new canreconnect = get_cvar_num(RCAN)
	new ssave = get_cvar_num(SCORESAVE)
	new ip[24]
	get_user_ip(id,ip,23,0)
	
	if ((maxexit>0) && (canreconnect==0) && (equali(ip,ips[id])))
	{
		new Float:nexTime = get_gametime()
		
		if (t_disconnect[id] > nexTime)
		{
			new stat = get_cvar_num(RSTATIC)
			new timewait
			if (stat==0)
			{
				t_disconnect[id] = floatround(nexTime) + maxexit
				t_scoresave[id] = floatround(nexTime) + maxstata
				timewait=maxexit
			}
			else
			{
				timewait=t_disconnect[id]-floatround(nexTime)
			}
			server_cmd("kick #%d ^"No Reconnect!. Wait %d seconds!.^"", get_user_userid(id), timewait)
			return PLUGIN_CONTINUE
		}
	}
	if (ssave==1)
	{
		new Float:nexTime = get_gametime()
		
		if (t_scoresave[id] <= nexTime)
		{
			sdeaths[id]=0
			sfrags[id]=0
			useretry[id]=0
		}
		return PLUGIN_CONTINUE
	}
	
	return PLUGIN_CONTINUE
}

public outspec()
{
	new id=read_data(1)
	if ((useretry[id]==1) && (is_user_connected(id)))
	{
		cs_set_user_deaths(id,sdeaths[id])
		set_user_frags(id,sfrags[id])
		useretry[id]=0
		sdeaths[id]=0
		sfrags[id]=0
	}
	return PLUGIN_CONTINUE
}

public client_disconnected(id)
{
	new maxexit = get_cvar_num(RTIME)
	new maxstata = get_cvar_num(RSTIME)
	new ssave = get_cvar_num(SCORESAVE)
	
	new Float:theTime = get_gametime()
	t_disconnect[id] = floatround(theTime) + maxexit
	t_scoresave[id] = floatround(theTime) + maxstata
	get_user_ip(id,ips[id],23,0)
	
	if (ssave==1)
	{
		sdeaths[id] = get_user_deaths(id)
		sfrags[id] = get_user_frags(id)
		useretry[id]=1
	}
	return PLUGIN_CONTINUE
}
Специална благодарност на rago12 !!! Мисля, че не за първи път дава решения на моите искания и прищевки. Плъгина си работи, може да е стар , но прави всичко онова което исках и съм доволен :hooray: :lock:

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

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

Кой е на линия

Потребители разглеждащи този форум: Amazon [Bot] и 4 госта