Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

> Правила раздела

Перед созданием новой темы убедитесь, не искал ли кто-нибудь подобный плагин до вас, для этого следует воспользоваться поиском.

Все вновь созданные темы, с названием типа "Помогите найти", "А что это за плагин", "Ищу плагин", "Нужен плагин", "Подскажите пожалуйста название плагина" - будут удалены.
При создании темы постарайтесь максимально понятно сформулировать её заголовок так, чтобы он соответствовал функциям плагина который Вы ищите. В том случае, если Вам не удается сформулировать мысль и правильно расписать всё в теме, воспользуйтесь графическим редактором, к примеру Paint, что бы примерно изобразить функции нужного Вам плагина.

Невидимый админ в Spectacor

, плагин, который делает админа невидимым в наблюдателях
Статус пользователя MrTsar
сообщение 7.5.2020, 8:44
Сообщение #1


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

Помогите найти плагин который делает админа невидимым, когда он в наблюдателях. Тобишь я не про список наблюдателей над конкретным игроком, а именно про "Команду наблюдателей".
Пару лет назад, держал сервер и был у меня этот плагин, сейчас же всю голову сломал, не могу вспомнить как называется и где брал, поиск так же не дал результата. Точно не помню, возможно админ переносился в наблюдатели и ставал невидимым по команде в чат, а может и нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя dehost
сообщение 7.5.2020, 9:14
Сообщение #2


Стаж: 13 лет

Сообщений: 3147
Благодарностей: 1431
Полезность: 486

Цитата(MrTsar @ 7.5.2020, 10:44) *
Помогите найти плагин который делает админа невидимым, когда он в наблюдателях. Тобишь я не про список наблюдателей над конкретным игроком, а именно про "Команду наблюдателей".
Пару лет назад, держал сервер и был у меня этот плагин, сейчас же всю голову сломал, не могу вспомнить как называется и где брал, поиск так же не дал результата. Точно не помню, возможно админ переносился в наблюдатели и ставал невидимым по команде в чат, а может и нет.
https://dev-cs.ru/resources/292/


Золотое правило нравственности:
"Относись к людям так, как хочешь, чтобы относились к тебе."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя MrTsar
сообщение 7.5.2020, 9:52
Сообщение #3


Стаж: 13 лет

Сообщений: 206
Благодарностей: 7
Полезность: < 0

dehost, Ты просто боженька clapping.gif
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 7.5.2020, 11:46
Сообщение #4
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

А есть такой-же, но работающий на обычном HLDS ??
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя adva
сообщение 7.5.2020, 14:40
Сообщение #5


Иконка группы

Стаж: 12 лет

Сообщений: 2543
Благодарностей: 1676
Полезность: 819

Меценат Меценат

Цитата(supergamer @ 7.5.2020, 12:46) *
А есть такой-же, но работающий на обычном HLDS ??

код
Код:
#include < amxmodx >
#include < fakemeta >

#if AMXX_VERSION_NUM < 180
#define charsmax(%1) sizeof(%1) - 1
#endif

#if AMXX_VERSION_NUM < 183
#define MAX_PLAYERS 32
#else
// Temp fix until offical 183 is released
#undef MAX_PLAYERS
#define MAX_PLAYERS 32
#endif

#define DEAD_FLAG ( 1 << 0 )
#define OFFSET_TEAM 114

enum {
UNASSIGNED,
TT,
CT,
SPECTATOR
}

enum InvisibleData
{
bool:bInvisibleStatus,
nInvisibleTeam,
bool:bInvisibleNotAllowed
}

new g_aInvisible[ MAX_PLAYERS + 1 ][ InvisibleData ];

new g_msgScoreAttrib, g_msgTeamInfo
new g_pCvarPercent;

new bool:g_bRoundEnd;

public plugin_init( )
{
register_plugin( "Invisible Spectator", "0.2 Fixed", "ConnorMcLeod" )

g_pCvarPercent = register_cvar( "amx_inv_dead_percent", "40" )
g_msgScoreAttrib = get_user_msgid( "ScoreAttrib" )
g_msgTeamInfo = get_user_msgid( "TeamInfo" )

register_message( g_msgScoreAttrib, "msg_ScoreAttrib" );
register_message( g_msgTeamInfo, "msg_TeamInfo" );

register_menucmd( register_menuid( "Team_Select", 1 ), (1<<0)|(1<<1)|(1<<4)|(1<<5), "handle_TeamMenu" );
register_menucmd( register_menuid( "Terrorist_Select", 1 ), 31, "handle_ClassMenu" );
register_menucmd( register_menuid( "CT_Select", 1 ), 31, "handle_ClassMenu" );

register_clcmd( "amx_spectate", "make_invis", ADMIN_RCON );
register_clcmd( "jointeam", "command_joinTeam" );
register_clcmd( "joinclass", "command_joinClass" );

register_logevent( "eRoundEnd", 2, "1=Round_End" )

register_event( "HLTV", "eNewRound", "a", "1=0", "2=0" )
register_event( "ResetHUD", "eResetHUD", "be" )
register_event( "DeathMsg", "eDeathMsg", "a" )
}

public handle_TeamMenu( id, iKey )
{
g_aInvisible[ id ][ bInvisibleNotAllowed ] = true;
}

public handle_ClassMenu( id, iKey )
{
g_aInvisible[ id ][ bInvisibleNotAllowed ] = false;
}

public command_joinClass( id )
{
g_aInvisible[ id ][ bInvisibleNotAllowed ] = false;
}

public command_joinTeam( id )
{
g_aInvisible[ id ][ bInvisibleNotAllowed ] = true;
}

public make_invis( id, level )
{
if( ~get_user_flags( id ) & level )
{
return PLUGIN_CONTINUE;
}

if( g_aInvisible[ id ][ bInvisibleStatus ] )
{
client_print( id, print_console, "You're not invisible anymore" );
g_aInvisible[ id ][ bInvisibleStatus ] = false;

return PLUGIN_HANDLED;
}

if( is_user_alive( id ) )
{
client_print( id, print_console, "You have to be dead first to be an invisible spectator !" )
return PLUGIN_HANDLED;
}

if( g_aInvisible[ id ][ bInvisibleNotAllowed ] )
{
client_print( id, print_console, "You have to finish team choosing first !" )
return PLUGIN_HANDLED;
}

g_aInvisible[ id ][ bInvisibleStatus ] = true;
client_print( id, print_console, "You're now an invisible spectator" );

new nTeam = get_pdata_int( id, OFFSET_TEAM );

if( TT <= nTeam <= CT )
{
g_aInvisible[ id ][ nInvisibleTeam ] = nTeam
set_pdata_int( id, OFFSET_TEAM, SPECTATOR );
}
else
{
new aPlayers[ MAX_PLAYERS ], nTerroristNum, nCTNum;
get_players( aPlayers, nTerroristNum, "e", "TERRORIST" );
get_players( aPlayers, nCTNum, "e", "CT" );

g_aInvisible[ id ][ nInvisibleTeam ] = nCTNum > nTerroristNum ? 1 : 2;
}

UTIL_ScoreAttrib( id, 0 );

new szTeamName[ 12 ];
switch( g_aInvisible[ id ][ nInvisibleTeam ] )
{
case 1: formatex( szTeamName, charsmax( szTeamName ), "TERRORIST" );
case 2: formatex( szTeamName, charsmax( szTeamName ), "CT" );
}

UTIL_TeamInfo( id, szTeamName );

return PLUGIN_HANDLED;
}

public eDeathMsg( )
{
if( g_bRoundEnd )
{
return;
}

new aPlayers[ MAX_PLAYERS ], nDead, nNum, nPlayer, Float:flPercent = get_pcvar_float( g_pCvarPercent ) / 100.0;

get_players( aPlayers, nDead, "bh" );
get_players( aPlayers, nNum, "h" );

if( float( nDead ) / float( nNum ) < flPercent )
{
return;
}

for( new i; i < nNum; i++ )
{
nPlayer = aPlayers[ i ]
if( g_aInvisible[ nPlayer ][ bInvisibleStatus ] )
{
UTIL_ScoreAttrib( nPlayer, DEAD_FLAG );
}
}
}

public eNewRound( )
{
g_bRoundEnd = false;

new aPlayers[ MAX_PLAYERS ], nNum, nPlayer;
get_players( aPlayers, nNum );

for( new i; i < nNum; i++ )
{
nPlayer = aPlayers[ i ];
if( g_aInvisible[ nPlayer ][ bInvisibleStatus ] )
{
UTIL_ScoreAttrib( nPlayer, 0 );
}
}
}

public eRoundEnd()
{
g_bRoundEnd = true;

new aPlayers[ MAX_PLAYERS ], nNum, nPlayer;
get_players( aPlayers, nNum );

for( new i; i < nNum; i++ )
{
nPlayer = aPlayers[ i ];
if( g_aInvisible[ nPlayer ][ bInvisibleStatus ] )
{
UTIL_ScoreAttrib( nPlayer, DEAD_FLAG );
}
}
}

public eResetHUD( id )
{
if( g_aInvisible[ id ][ bInvisibleStatus ] )
{
g_aInvisible[ id ][ bInvisibleStatus ] = false;
}
}

// Doesn't seem to work so set flag to 0 at NewRound event.
public msg_ScoreAttrib( msg_type, msg_dest, target )
{
if( !g_aInvisible[ get_msg_arg_int( 1 ) ][ bInvisibleStatus ] )
{
return PLUGIN_CONTINUE;
}

new nFlags = get_msg_arg_int( 2 );
if( nFlags & DEAD_FLAG )
{
set_msg_arg_int( 2, 0, nFlags & ~DEAD_FLAG );
}

return PLUGIN_CONTINUE;
}

public msg_TeamInfo(msg_type, msg_dest, target)
{
new id = get_msg_arg_int( 1 );
if( !g_aInvisible[ id ][ bInvisibleStatus ] )
{
return PLUGIN_CONTINUE;
}

new szTeamName[ 12 ];
get_msg_arg_string( 2, szTeamName, charsmax( szTeamName ) );

if( g_aInvisible[ id ][ nInvisibleTeam ] == TT && strcmp( szTeamName, "TERRORIST" ) != 0 )
{
set_msg_arg_string( 2, "TERRORIST" );
}
else if( g_aInvisible[ id ][ nInvisibleTeam ] == CT && strcmp( szTeamName, "CT" ) != 0 )
{
set_msg_arg_string( 2, "CT" );
}

return PLUGIN_CONTINUE;
}

UTIL_ScoreAttrib( id, nFlags )
{
message_begin( MSG_ALL, g_msgScoreAttrib, _, 0 );
write_byte( id );
write_byte( nFlags );
message_end( );
}

UTIL_TeamInfo( id, szTeamName[ ] )
{
message_begin( MSG_ALL, g_msgTeamInfo, _, 0 );
write_byte( id );
write_string( szTeamName );
message_end( );
}

Прикрепленные файлы:
Прикрепленный файл  invisible_spectator.zip ( 2,95 килобайт ) Кол-во скачиваний: 20
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
supergamer
сообщение 7.5.2020, 22:12
Сообщение #6
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Цитата
amx_inv_dead_percent < value >
При каком кол-ве % мертвых игроков от всего кол-ва играющих, "невидимый спектатор" будет перемещен в список мертвых.


Ничего не понял....Нафига эта опция? Можно просто настроить - набрал команду стал невидивым, набрал повторно стал видимым.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя dehost
сообщение 7.5.2020, 22:35
Сообщение #7


Стаж: 13 лет

Сообщений: 3147
Благодарностей: 1431
Полезность: 486

supergamer, так перепиши плагин как тебе удобно.


Золотое правило нравственности:
"Относись к людям так, как хочешь, чтобы относились к тебе."
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
supergamer
сообщение 8.5.2020, 0:12
Сообщение #8
Стаж: 9 лет 8 месяцев

Сообщений: 257
Благодарностей: 37
Полезность: < 0

Не могу понять смысл данной настройки, просил на пальцах объяснить.

Или урезать код плагина, чтоб тупо набрал команду стал невидивым, набрал повторно стал видимым. Без лишнего.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: