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

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

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

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

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

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

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

remove player invis function + add one function in Water in Maps

Статус пользователя Infamous2017
сообщение 21.10.2018, 17:50
Сообщение #1
Стаж: 9 лет 8 месяцев

Сообщений: 140
Благодарностей: 4
Полезность: 31

Can anyone remove complete this invis about players and can add only this water function ??? THX

The other wish could anyone add auto water disabled??? So when players want have it active they need to say /water... it would be cool

Код
#include <amxmodx>
#include <fakemeta>
#include <hamsandwich>

#pragma semicolon 1

new bool:g_bPlayerInvisible[33], bool:g_bWaterInvisible[33];
new bool:g_bWaterEntity[1385], bool:g_bWaterFound;

new g_iSpectatedId[33];

public plugin_init( )
{
   register_plugin( "Invis", "1.3", "SchlumPF");
  
   register_clcmd( "say /invis", "menuInvisDisplay" );
   register_menucmd( register_menuid( "\rInvisibility - SchlumPF^n^n" ), 1023, "menuInvisAction" );
  
   register_forward( FM_PlayerPreThink, "fwdPlayerPreThink_Pre", 0 );
   register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
  
   RegisterHam( Ham_Spawn, "player", "hamSpawnPlayer_Post", 1 );
}

public plugin_cfg( )
{
   // find all water entitys to make AddToFullPack use less cpu
   new ent = engfunc( EngFunc_FindEntityByString, -1, "classname", "func_water" );
   while( ent > 0 )
   {
      if( !g_bWaterFound )
         g_bWaterFound = true;

      g_bWaterEntity[ent] = true;
      
      ent = engfunc( EngFunc_FindEntityByString, ent, "classname", "func_water" );
   }
}

public fwdPlayerPreThink_Pre( plr )
{
   if( !is_user_alive( plr ) )
   {
      g_iSpectatedId[plr] = pev( plr, pev_iuser2 );
   }
}

public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset )
{
   if( player )
   {
      if( g_bPlayerInvisible[host] && host != ent )
      {
         if( ent != g_iSpectatedId[host] && get_user_team(ent) == 2)
         {
            set_es( es_handle, ES_Origin, { 999999999.0, 999999999.0, 999999999.0 } );
            set_es( es_handle, ES_RenderMode, kRenderTransAlpha );
            set_es( es_handle, ES_RenderAmt, 0 );
        
            return FMRES_SUPERCEDE;
         }
      }
   }
   else if( g_bWaterInvisible[host] )
   {
      if( g_bWaterEntity[ent] )
      {
         set_es( es_handle, ES_Effects, EF_NODRAW );
        
         return FMRES_SUPERCEDE;
      }
   }
  
   return FMRES_IGNORED;
}

public hamSpawnPlayer_Post( plr )
   g_iSpectatedId[plr] = 0;

public menuInvisDisplay( plr )
{
   static menu[2048];
   new keys = ( 1<<0 | 1<<1 | 1<<9 );
  
   static player[3];
   format( player, sizeof player - 1, "%s", g_bPlayerInvisible[plr] ? "\d" : "\w" );
  
   new len = format( menu, sizeof menu - 1, "\rInvisibility - SchlumPF^n^n" );
  
   len += format( menu[len], sizeof menu - len, "\r01. %sPlayers^n", player );

   if( g_bWaterFound )
   {
      static water[3];
      format( water, sizeof water - 1, "%s", g_bWaterInvisible[plr] ? "\d" : "\w" );

      len += format( menu[len], sizeof menu - len, "\r02. %sWater^n^n", water );
   }
   else
      len += format( menu[len], sizeof menu - len, "\d02. Water^n^n" );

   len += format( menu[len], sizeof menu - len, "\r00. \wExit" );
  
   show_menu( plr, keys, menu, -1 );
      
   return PLUGIN_HANDLED;
}

public menuInvisAction( plr, key )
{
   switch( key )
   {
      case 0:
      {
         if( g_bPlayerInvisible[plr] )
         {
            g_bPlayerInvisible[plr] = false;
            fnGreenChat( plr, "[XJ] All players are now visible." );
         }
         else
         {
            g_bPlayerInvisible[plr] = true;
            fnGreenChat( plr, "[XJ] All players are now invisible." );
         }
        
         menuInvisDisplay( plr );
      }
      case 1:
      {
         if( g_bWaterFound )
         {
            if( g_bWaterInvisible[plr] )
            {
               g_bWaterInvisible[plr] = false;
               fnGreenChat( plr, "[XJ] Water is now visible." );
            }
            else
            {
               g_bWaterInvisible[plr] = true;
               fnGreenChat( plr, "[XJ] Water is now invisible." );
            }
         }
         else
            fnGreenChat( plr, "[XJ] There is no water which can become invisible." );
  
         menuInvisDisplay( plr );
      }
      case 9: show_menu( plr, 0, "" );
   }
  
   return PLUGIN_HANDLED;
}

public client_connect( plr )
{
   g_bPlayerInvisible[plr] = false;
   g_bWaterInvisible[plr] = false;
   g_iSpectatedId[plr] = 0;
}


// by fatalis
fnGreenChat( plr, const message[], {Float,Sql,Result,_}:... )
{
   static max_players, svc_saytext;
   if( !max_players )
      max_players = get_maxplayers( );
   if( !svc_saytext )
      svc_saytext = get_user_msgid( "SayText" );
  
   static msg[192];
   msg[0] = 0x04;
  
   vformat( msg[1], sizeof msg - 2, message, 3 );
  
   if( plr > 0 && plr <= max_players )
   {
      message_begin( MSG_ONE, svc_saytext, { 0, 0, 0 }, plr );
      write_byte( plr );
      write_string( msg );
      message_end( );
   }
   else if( plr == 0 )
   {
      for( new i = 1; i <= max_players; i++ )
      {
         if( is_user_connected( i ) )
         {
            message_begin( MSG_ONE, svc_saytext, { 0, 0, 0 }, i );
            write_byte( i );
            write_string( msg );
            message_end( );
         }
      }
   }
  
   return 1;
}
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
  Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: