So i need to add 3 more options to this code
Players
Water
Knife
Pistol
Hud
replace the existing option visible and invisible with [ON] (with green text AND [OFF] with red text
for knife and pistol make them invisible just like players and water
When you make players invisible make only your team invisible not the opponent team
Hud is to turn on and off hud_draw 1 and hud_draw 0
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#define MAX_ENTITYS 900+15*32 // (900+15*SERVER_SLOTS) is the calculation cs uses but it can be bypassed by the "-num_edicts <x>"-parameter
new bool:g_bPlayerInvisible[33];
new bool:g_bWaterInvisible[33];
new bool:g_bWaterEntity[MAX_ENTITYS];
new bool:g_bWaterFound;
new g_iSpectatedId[33];
public plugin_init( )
{
register_plugin( "Invis", "2.0", "SchlumPF" );
register_clcmd( "say /invis", "menuInvisDisplay" );
register_menucmd( register_menuid( "\rInvisibility - SchlumPF^n^n" ), 1023, "menuInvisAction" );
register_forward( FM_AddToFullPack, "fwdAddToFullPack_Post", 1 );
RegisterHam( Ham_Spawn, "player", "hamSpawnPlayer_Post", 1 );
register_event( "SpecHealth2", "eventSpecHealth2", "bd" );
}
public plugin_cfg( )
{
new ent = -1;
while( ( ent = find_ent_by_class( ent, "func_water" ) ) != 0 )
{
// pev( ent, pev_skin ) == CONTENTS_WATER is also true on func_water entities
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
// thanks to connor for finding the following two detections
ent = -1;
while( ( ent = find_ent_by_class( ent, "func_illusionary" ) ) != 0 )
{
if( pev( ent, pev_skin ) == CONTENTS_WATER )
{
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
}
ent = -1;
while( ( ent = find_ent_by_class( ent, "func_conveyor" ) ) != 0 )
{
if( pev( ent, pev_spawnflags ) == 3 )
{
if( !g_bWaterFound )
{
g_bWaterFound = true;
}
g_bWaterEntity[ent] = true;
}
}
}
public fwdAddToFullPack_Post( es_handle, e, ent, host, hostflags, player, pset )
{
if( player && g_bPlayerInvisible[host] && host != ent && ent != g_iSpectatedId[host] )
{
static const Float:corner[8][3] =
{
{ -4096.0, -4096.0, -4096.0 },
{ -4096.0, -4096.0, 4096.0 },
{ -4096.0, 4096.0, -4096.0 },
{ -4096.0, 4096.0, 4096.0 },
{ 4096.0, -4096.0, -4096.0 },
{ 4096.0, -4096.0, 4096.0 },
{ 4096.0, 4096.0, -4096.0 },
{ 4096.0, 4096.0, 4096.0 }
};
// rounded; distance from the map's center to the corners; sqrt( 4096^2 + 4096^2 + 4096^2 )
static const Float:map_distance = 7094.480108;
static Float:origin[3];
get_es( es_handle, ES_Origin, origin );
static i;
while( get_distance_f( origin, corner ) > map_distance )
{
if( ++i >= sizeof( corner ) )
{
// better to nullify the varibale now then doing it each time before the loop
i = 0;
}
}
set_es( es_handle, ES_Origin, corner );
set_es( es_handle, ES_Effects, get_es( es_handle, ES_Effects ) | EF_NODRAW );
}
else if( g_bWaterInvisible[host] && g_bWaterEntity[ent])
{
set_es( es_handle, ES_Effects, get_es( es_handle, ES_Effects ) | EF_NODRAW );
}
}
public hamSpawnPlayer_Post( id )
{
g_iSpectatedId[id] = 0;
}
// thanks to xPaw who told me about this event
public eventSpecHealth2( id )
{
g_iSpectatedId[id] = read_data( 2 );
}
public menuInvisDisplay( id )
{
static menu[256];
new len = formatex( menu, 255, "\rInvisibility - SchlumPF^n^n" );
len += formatex( menu[len], 255 - len, "\r1. \wPlayers: %s^n", g_bPlayerInvisible[id] ? "invisible" : "visible" );
if( g_bWaterFound )
{
len += formatex( menu[len], 255 - len, "\r2. \wWater: %s^n", g_bWaterInvisible[id] ? "invisible" : "visible" );
}
//else
//{
// len += formatex( menu[len], 255 - len, "\r2. \wWater: There is no water on this map!^n" );
//}
len += formatex( menu[len], 255 - len, "^n\r0. \wExit" );
show_menu( id, ( 1<<0 | 1<<1 | 1<<9 ), menu, -1 );
return PLUGIN_HANDLED;
}
public menuInvisAction( id, key )
{
switch( key )
{
case 0:
{
g_bPlayerInvisible[id] = !g_bPlayerInvisible[id];
menuInvisDisplay( id );
}
case 1:
{
if( g_bWaterFound )
{
g_bWaterInvisible[id] = !g_bWaterInvisible[id];
}
menuInvisDisplay( id );
}
case 9: show_menu( id, 0, "" );
}
}
public client_connect( id )
{
g_bPlayerInvisible[id] = false;
g_bWaterInvisible[id] = false;
g_iSpectatedId[id] = 0;
}
VIP
|
Cs-PlovdiV.com - Aim Attack 93.123.16.4:27022 |
aim_map2 Играчи: 4/16 |
|
VIP
|
93.123.16.4:27022 | Cs-PlovdiV.com - Aim Attack | aim_map2 | 4/16 |
adding lines to existing invis plugin
-
- Подобни теми
- Отговори
- Преглеждания
- Последно мнение
-
- 0 Отговори
- 202 Преглеждания
-
Последно мнение от inferno
-
- 0 Отговори
- 1306 Преглеждания
-
Последно мнение от Cirovic
-
- 0 Отговори
- 1018 Преглеждания
-
Последно мнение от DarkGameR
-
- 1 Отговори
- 1337 Преглеждания
-
Последно мнение от Infamous2018
-
- 6 Отговори
- 1171 Преглеждания
-
Последно мнение от Siska
-
- 0 Отговори
- 1256 Преглеждания
-
Последно мнение от HALLO_KITTY
-
- 8 Отговори
- 2834 Преглеждания
-
Последно мнение от Virus
Кой е на линия
Потребители разглеждащи този форум: Google [Bot] и 9 госта