Happy halloween!

,


TOPIC INCHIS!  
TOPIC LOCKED
Va informam ca pana la redeschiderea topicului doar cei din administratie vor putea continua sa posteze daca mai au ceva de adaugat si este strict necesar.

 [ 2 posts ] 
Cerere Plugin semiclip 
Author Message
Membru
User avatar
Posts: 135
Membru din: Wed Jun 08, 2016 4:15 pm
Status: Offline
Puncte: 135 - NOOB
Multumiri date: 0 time

Multumiri primite: 4 times
Cerere Plugin semiclip
Doresc si eu daca se poate un plugin semiclip pt sv de respawn










CSGAMERS.RO - SEMNATURA
Image
Image




Wed May 05, 2021 9:47 pm
Fondator
User avatar
Posts: 1857
Membru din: Thu Sep 03, 2015 2:39 pm
Location: RO - DE
Age: 25
Status: Offline
Puncte: 1857 - MANIAC
Multumiri date: 26 times

Multumiri primite: 296 times
Re: Cerere Plugin semiclip
Code:
#include <amxmodx>
#include <fakemeta>

#pragma semicolon 1

#define DISTANCE 120.0
#define UPDATE_FREQ 0.2

new bool:g_bSemiclip[33][33];
new bool:g_bHasSemiclip[33];
new bool:g_bSemiclipEnabled;

new g_iTaskId;
new g_iForwardId[3];
new g_iMaxPlayers;
new g_iCvar[3];

public plugin_init( )
{
   register_plugin( "(Team-)Semiclip", "1.0", "SchlumPF*" );
   
   g_iCvar[0] = register_cvar( "semiclip_enabled", "1" );
   g_iCvar[1] = register_cvar( "semiclip_teamclip", "1" );
   g_iCvar[2] = register_cvar( "semiclip_transparancy", "0" );
   
   register_forward( FM_Think, "fwdThink" );
   register_forward( FM_ClientCommand, "fwdClientCommand" );
   
   if( get_pcvar_num( g_iCvar[0] ) )
   {
      g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
      g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );
      g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
      
      g_bSemiclipEnabled = true;
   }
   else
      g_bSemiclipEnabled = false;
   
   g_iMaxPlayers = get_maxplayers( );
   
   new ent = engfunc( EngFunc_CreateNamedEntity, engfunc( EngFunc_AllocString, "info_target" ) );
   set_pev( ent, pev_classname, "task_semiclip" );
   set_pev( ent, pev_nextthink, get_gametime( ) + 1.01 );
   g_iTaskId = ent;
}

public fwdPlayerPreThink( plr )
{
   static id;
   
   if( is_user_alive( plr ) )
   {
      for( id = 1 ; id <= g_iMaxPlayers ; id++ )
      {
         if( pev( id, pev_solid ) == SOLID_SLIDEBOX && g_bSemiclip[plr][id] && id != plr )
         {
            set_pev( id, pev_solid, SOLID_NOT );
            g_bHasSemiclip[id] = true;
         }
      }
   }
}

public fwdPlayerPostThink( plr )
{
   static id;

   if( is_user_alive( plr ) )
   {
      for( id = 1 ; id <= g_iMaxPlayers ; id++ )
      {
         if( g_bHasSemiclip[id] )
         {
            set_pev( id, pev_solid, SOLID_SLIDEBOX );
            g_bHasSemiclip[id] = false;
         }
      }
   }
}

public fwdThink( ent )
{
   static i, j;
   static team[33];
   static Float:origin[33][3];
   
   if( ent == g_iTaskId )
   {
      if( get_pcvar_num( g_iCvar[0] ) )
      {
         for( i = 1 ; i <= g_iMaxPlayers ; i++ )
         {
            if( is_user_alive( i ) )
            {
               pev( i, pev_origin, origin );
                  
               if( get_pcvar_num( g_iCvar[1] ) )
                  team = get_user_team( i );
               
               for( j = 1 ; j <= g_iMaxPlayers ; j++ )
               {
                  if( is_user_alive( j ) )
                  {
                     if( get_pcvar_num( g_iCvar[1] ) && team != team[j] )
                     {
                        g_bSemiclip[j] = false;
                        g_bSemiclip[j] = false;
                        
                     }   
                     else if( floatabs( origin[0] - origin[j][0] ) < DISTANCE && floatabs( origin[1] - origin[j][1] ) < DISTANCE && floatabs( origin[2] - origin[j][2] ) < ( DISTANCE * 2 ) )
                     {
                        g_bSemiclip[j] = true;
                        g_bSemiclip[j] = true;
                     }
                     else
                     {
                        g_bSemiclip[i][j] = false;
                        g_bSemiclip[j][i] = false;
                     }
                  }
               }
            }
         }
      }
      
      set_pev( ent, pev_nextthink, get_gametime( ) + UPDATE_FREQ );
   }
}

public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset )
{
   if( player )
   {
      if( g_bSemiclip[host][ent] )
      {
         set_es( es_handle, ES_Solid, SOLID_NOT ); // makes semiclip flawless
         
         if( get_pcvar_num( g_iCvar[2] ) == 1 )
         {
            set_es( es_handle, ES_RenderMode, kRenderTransAlpha );
            set_es( es_handle, ES_RenderAmt, 85 );
         }
         else if( get_pcvar_num( g_iCvar[2] ) == 2 )
         {
            set_es( es_handle, ES_Effects, EF_NODRAW );
            set_es( es_handle, ES_Solid, SOLID_NOT );
         }
      }
   }
}

// is there a better way to detect changings of g_iCvar[0]?
public fwdClientCommand( plr )
{
   // use the forwards just when needed, for good performance
   if( !get_pcvar_num( g_iCvar[0] ) && g_bSemiclipEnabled )
   {
      unregister_forward( FM_PlayerPreThink, g_iForwardId[0] );
      unregister_forward( FM_PlayerPostThink, g_iForwardId[1] );
      unregister_forward( FM_AddToFullPack, g_iForwardId[2], 1 );
      
      g_bSemiclipEnabled = false;
   }
   else if( get_pcvar_num( g_iCvar[0] ) && !g_bSemiclipEnabled )
   {
      g_iForwardId[0] = register_forward( FM_PlayerPreThink, "fwdPlayerPreThink" );
      g_iForwardId[1] = register_forward( FM_PlayerPostThink, "fwdPlayerPostThink" );
      g_iForwardId[2] = register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
      
      g_bSemiclipEnabled = true;
   }
}


cvaruri:
semiclip_enabled 0/1 activezi/dezactivezi semiclip
semiclip_teamclip 1/0 activezi/dezactivezi semiclipul doar la echipe(daca e 0 e pentru toti)
semiclip_transparancy 0/1 daca e 1 cand 2 sau mai multi jucatori sunt mai aproape de x unitati vor fi transparenti adica se vede prin ei.










CSGAMERS.RO - SEMNATURA
(¯`*•.¸,¤°´'`°¤,¸.•*´¯)
¸,¤°´'`°•.¸O¸.•°´'`°¤,¸
|¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________.•.___________|
*´'`°¤¸¸.•'´O`'•.¸¸¤°´'`*
( _¸.•*´'`°¤¸'¸¤°´'`*•.¸_)

|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|

|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|

|¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯•.•¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯|
Image
|___________________________.•.___________________________|




Wed May 05, 2021 10:09 pm
Display posts from previous:  Sort by  
   [ 2 posts ] 
TOPIC INCHIS!  
TOPIC LOCKED
Va informam ca pana la redeschiderea topicului doar cei din administratie vor putea continua sa posteze daca mai au ceva de adaugat si este strict necesar.

,


Who is online

Users browsing this forum: No registered users and 9 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
cron
 
Translation/Traducere: phpBB Romania
Design realizat de catre EPIKAL pentru Counter-Strike Gamers Romania
For browsing this site is recommended to use Google Chrome with widescreen resolution 1280 x 1024 pixels. This website is Search Engine Optimization (SEO)
COPYRIGHT © CSGAMERS.RO - All right reserved.