Auto Balance

В този раздел можете да качвате преработени плъгини.
Аватар
SmirnoffBG
Извън линия
Потребител
Потребител
Мнения: 188
Регистриран на: 27 Ное 2016, 19:43
Местоположение: Англия
Се отблагодари: 24 пъти
Получена благодарност: 12 пъти
Обратна връзка:

Auto Balance

Мнение от SmirnoffBG » 24 Мар 2019, 00:54

Тряя си му "is_user_connected".
Версия за Ant1Lamer:

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

#include < amxmodx >
#include < cstrike >
#include < hamsandwich >

#define BALANCE_IMMUNITY ADMIN_IMMUNITY

/*
		auto_balance
		- 0: Disabled
		- 1: Enabled
		- 2: Enabled, obey immunity
*/

new bool:g_bConnected[ 33 ], bool:g_bImmunity[ 33 ], CsTeams:g_iNewTeam[ 33 ];
new g_pCvar, g_iMaxPlayers, g_iMsgSayText, g_iMsgScreenFade, g_iPlayers;

public plugin_init( ) {
	register_plugin( "Auto Balance", "1.0", "xPaw" );
	
	RegisterHam( Ham_Spawn, "player", "eventPlayerSpawnPre", 0 );
	register_event( "DeathMsg", "eventDeathMsg", "a" );
	g_pCvar = register_cvar( "auto_balance", "2" );
	
	g_iMsgScreenFade = get_user_msgid( "ScreenFade" );
	g_iMsgSayText    = get_user_msgid( "SayText" );
	g_iMaxPlayers    = get_maxplayers( );
}

public client_putinserver( id ) {
	g_bConnected[ id ] = true; // bool:!is_user_bot( id );
	g_bImmunity[ id ] = bool:( get_user_flags( id ) & BALANCE_IMMUNITY );
	g_iPlayers++;
}

public client_disconnected( id ) {
	g_iNewTeam[ id ]   = CS_TEAM_UNASSIGNED;
	g_bImmunity[ id ]  = false;
	g_bConnected[ id ] = false;
	g_iPlayers--;
}

public eventDeathMsg( ) {
	new iKiller = read_data(1);
	new iVictim = read_data(2);
	
	if( g_iPlayers < 4 || iKiller == iVictim || !g_bConnected[ iVictim ] )
		return;
	
	new iCvar = get_pcvar_num( g_pCvar );
	
	if( iCvar <= 0 || iCvar == 2 && g_bImmunity[ iVictim ] )
		return;
	
	hasDifference(iVictim)
}

public eventPlayerSpawnPre( id ) {
	new CsTeams:iNewTeam = g_iNewTeam[ id ];
	
	if ( iNewTeam > CS_TEAM_UNASSIGNED ) {
		if (!hasDifference(id))
		{
			g_iNewTeam[id] = CS_TEAM_UNASSIGNED
			return
		}
		
		cs_set_user_team(id, iNewTeam)
		
		new szName[ 32 ];
		get_user_name( id, szName, 31 );
		
		set_hudmessage( 0, 127, 255, 0.42, 0.53, 2, 6.0, 4.0, 0.1, 0.2, -1 );
		
		if ( iNewTeam == CS_TEAM_T ) {
			show_hudmessage( id, "You have been transfered to Terrorists!" );
			UTIL_GreenPrintAll( id, "^4[CS-BULGARIA]^3 %s^1 has been transfered to^3 Terrorists^1.", szName );
			UTIL_ScreenFade( id, 175, 0, 0 );
		} else {
			show_hudmessage( id, "You have been transfered to Counter-Terrorists!" );
			UTIL_GreenPrintAll( id, "^4[CS-BULGARIA]^3 %s^1 has been transfered to^3 Counter-Terrorists^1.", szName );
			UTIL_ScreenFade( id, 0, 0, 175 );
		}
		
		g_iNewTeam[id] = CS_TEAM_UNASSIGNED
	}
}

bool:hasDifference(id)
{
	new iPlayers[ 2 ];
	
	for( new i = 1; i <= g_iMaxPlayers; i++ ) {
		if( !is_user_connected( i ) )
			continue;
		
		switch( cs_get_user_team( i ) ) {
			case CS_TEAM_T: iPlayers[ 0 ]++;
			case CS_TEAM_CT: iPlayers[ 1 ]++;
		}
	}
	
	new CsTeams:iCheck, iDifference = iPlayers[ 1 ] - iPlayers[ 0 ];
	
	if( iDifference > 0 )
		iCheck = CS_TEAM_T;
	else if( iDifference < 0 )
		iCheck = CS_TEAM_CT;
	else
		return false;
	
	if( abs( iDifference ) < 2 || cs_get_user_team(id) == iCheck )
		return false;
	
	g_iNewTeam[id] = iCheck;
	
	return true
}

UTIL_GreenPrintAll( const iSender, const Message[ ], any:... ) {
	new szMessage[ 192 ];
	vformat( szMessage, 191, Message, 3 );
	
	message_begin( MSG_BROADCAST, g_iMsgSayText );
	write_byte( iSender );
	write_string( szMessage );
	message_end( );
}

UTIL_ScreenFade( const id, const iRed, const iGreen, const iBlue ) {
	message_begin( MSG_ONE_UNRELIABLE, g_iMsgScreenFade, _, id );
	write_short( 2000 );
	write_short( 2000 );
	write_short( 0 );
	write_byte( iRed );
	write_byte( iGreen );
	write_byte( iBlue );
	write_byte( 175 );
	message_end( );
}
Изображение
Why So Serious? Servers [ ПОКАЖИ ]

Аватар
Ant1Lamer
Извън линия
Потребител
Потребител
Мнения: 178
Регистриран на: 08 Окт 2016, 00:03
Се отблагодари: 12 пъти
Получена благодарност: 2 пъти

Auto Balance

Мнение от Ant1Lamer » 24 Мар 2019, 22:41

не.. същата работа плугина е за армиранкс респаун
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!

Аватар
<VeCo>
Извън линия
AMXX Скриптър
AMXX Скриптър
Мнения: 145
Регистриран на: 28 Яну 2019, 19:01
Се отблагодари: 11 пъти
Получена благодарност: 73 пъти
Обратна връзка:

Auto Balance

Мнение от <VeCo> » 24 Мар 2019, 23:06

Странно, че дава такава грешка..

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

#include < amxmodx >
#include < cstrike >
#include < fakemeta >
#include < hamsandwich >

#define BALANCE_IMMUNITY ADMIN_IMMUNITY

/*
		auto_balance
		- 0: Disabled
		- 1: Enabled
		- 2: Enabled, obey immunity
*/

new bool:g_bConnected[ 33 ], bool:g_bImmunity[ 33 ], CsTeams:g_iNewTeam[ 33 ];
new g_pCvar, g_iMaxPlayers, g_iMsgSayText, g_iMsgScreenFade, g_iPlayers;

public plugin_init( ) {
	register_plugin( "Auto Balance", "1.0", "xPaw" );
	
	RegisterHam( Ham_Spawn, "player", "eventPlayerSpawnPre", 0 );
	register_event( "DeathMsg", "eventDeathMsg", "a" );
	g_pCvar = register_cvar( "auto_balance", "2" );
	
	g_iMsgScreenFade = get_user_msgid( "ScreenFade" );
	g_iMsgSayText    = get_user_msgid( "SayText" );
	g_iMaxPlayers    = get_maxplayers( );
}

public client_putinserver( id ) {
	g_bConnected[ id ] = true; // bool:!is_user_bot( id );
	g_bImmunity[ id ] = bool:( get_user_flags( id ) & BALANCE_IMMUNITY );
	g_iPlayers++;
}

public client_disconnected( id ) {
	g_iNewTeam[ id ]   = CS_TEAM_UNASSIGNED;
	g_bImmunity[ id ]  = false;
	g_bConnected[ id ] = false;
	g_iPlayers--;
}

public eventDeathMsg( ) {
	new iKiller = read_data(1);
	new iVictim = read_data(2);
	
	if( g_iPlayers < 4 || iKiller == iVictim || !g_bConnected[ iVictim ] )
		return;
	
	new iCvar = get_pcvar_num( g_pCvar );
	
	if( iCvar <= 0 || iCvar == 2 && g_bImmunity[ iVictim ] )
		return;
	
	hasDifference(iVictim)
}

public eventPlayerSpawnPre( id ) {
	new CsTeams:iNewTeam = g_iNewTeam[ id ];
	
	if ( iNewTeam > CS_TEAM_UNASSIGNED ) {
		if (!hasDifference(id))
		{
			g_iNewTeam[id] = CS_TEAM_UNASSIGNED
			return
		}
		
		cs_set_user_team(id, iNewTeam)
		
		new szName[ 32 ];
		get_user_name( id, szName, 31 );
		
		set_hudmessage( 0, 127, 255, 0.42, 0.53, 2, 6.0, 4.0, 0.1, 0.2, -1 );
		
		if ( iNewTeam == CS_TEAM_T ) {
			show_hudmessage( id, "You have been transfered to Terrorists!" );
			UTIL_GreenPrintAll( id, "^4[CS-BULGARIA]^3 %s^1 has been transfered to^3 Terrorists^1.", szName );
			UTIL_ScreenFade( id, 175, 0, 0 );
		} else {
			show_hudmessage( id, "You have been transfered to Counter-Terrorists!" );
			UTIL_GreenPrintAll( id, "^4[CS-BULGARIA]^3 %s^1 has been transfered to^3 Counter-Terrorists^1.", szName );
			UTIL_ScreenFade( id, 0, 0, 175 );
		}
		
		g_iNewTeam[id] = CS_TEAM_UNASSIGNED
	}
}

bool:hasDifference(id)
{
	new iPlayers[ 2 ];
	
	for( new i = 1; i <= g_iMaxPlayers; i++ ) {
		if( !is_user_connected( i ) || pev_valid( i ) != 2 )
			continue;
		
		switch( cs_get_user_team( i ) ) {
			case CS_TEAM_T: iPlayers[ 0 ]++;
			case CS_TEAM_CT: iPlayers[ 1 ]++;
		}
	}
	
	new CsTeams:iCheck, iDifference = iPlayers[ 1 ] - iPlayers[ 0 ];
	
	if( iDifference > 0 )
		iCheck = CS_TEAM_T;
	else if( iDifference < 0 )
		iCheck = CS_TEAM_CT;
	else
		return false;
	
	if( abs( iDifference ) < 2 || cs_get_user_team(id) == iCheck )
		return false;
	
	g_iNewTeam[id] = iCheck;
	
	return true
}

UTIL_GreenPrintAll( const iSender, const Message[ ], any:... ) {
	new szMessage[ 192 ];
	vformat( szMessage, 191, Message, 3 );
	
	message_begin( MSG_BROADCAST, g_iMsgSayText );
	write_byte( iSender );
	write_string( szMessage );
	message_end( );
}

UTIL_ScreenFade( const id, const iRed, const iGreen, const iBlue ) {
	message_begin( MSG_ONE_UNRELIABLE, g_iMsgScreenFade, _, id );
	write_short( 2000 );
	write_short( 2000 );
	write_short( 0 );
	write_byte( iRed );
	write_byte( iGreen );
	write_byte( iBlue );
	write_byte( 175 );
	message_end( );
}
:pepo_think3:

Аватар
Ant1Lamer
Извън линия
Потребител
Потребител
Мнения: 178
Регистриран на: 08 Окт 2016, 00:03
Се отблагодари: 12 пъти
Получена благодарност: 2 пъти

Auto Balance

Мнение от Ant1Lamer » 26 Мар 2019, 00:07

Мерси вече всичко е точно :) За сега няма проблеми
НАУЧИ ПРАВИЛАТА, ЗА ДА ЗНАЕШ КАК ПОРЯДЪЧНО ДА ГИ НАРУШАВАШ!!!

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 187
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 23 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Auto Balance

Мнение от Siska » 05 Фев 2021, 17:18

Какво точно трябва да напиша , за да забраня на този плъгин да мести админите ?
То в началото пише , но пак ги мести. Може ли някой да ми напише точно как да го направя да работи само за обикновените потребители ?
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

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

Auto Balance

Мнение от rago12 » 05 Фев 2021, 17:29

Слагаш
if(get_user_flags(id) & ADMIN_IMMUNITY)
return

И спира да изпълнява public-а за човек с тоя флаг

Аватар
Siska
Извън линия
Потребител
Потребител
Мнения: 187
Регистриран на: 03 Дек 2019, 22:29
Местоположение: Bedrock
Се отблагодари: 23 пъти
Получена благодарност: 7 пъти
Обратна връзка:

Auto Balance

Мнение от Siska » 05 Фев 2021, 17:50

rago12 написа:
05 Фев 2021, 17:29
Слагаш
if(get_user_flags(id) & ADMIN_IMMUNITY)
return

И спира да изпълнява public-а за човек с тоя флаг
Добре , но къде да го напиша това ? На кой ред ?
Търсих врага и го открих : това съм аз , трябва да се победя...
Изображение
WWW.CSMEGAGAMING.COM Изображение Изображение Skype : Sisi-1_1

Аватар
zolfeca
Извън линия
Модератор
Модератор
Мнения: 156
Регистриран на: 10 Окт 2016, 23:48
Се отблагодари: 22 пъти
Получена благодарност: 32 пъти

Auto Balance

Мнение от zolfeca » 05 Фев 2021, 17:51

Ако cvar-a auto_balance ти е "2" и админите имат имунитет няма как да ги мести. Провери дали изобщо имат този флаг('a').

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

Обратно към “Преработени плъгини”

Кой е на линия

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