Veteran Member
Join Date: Nov 2010
Location: ME QUIEREN ROBAR
|
08-13-2013
, 18:57
Re: Proposición
|
#125
|
Quote:
Originally Posted by joropito
Funcionamiento NAND: solo se chocan con distinto groupinfo
|
Pro encontré esto
PHP Code:
engfunc(EngFunc_SetGroupMask, 1, GROUP_OP_NAND)
PHP Code:
#define SHOW_NAMES_WHEN_AIM
// #define ENABLE_SHOTS_DAMAGE
#include <amxmodx>
#include <engine>
#include <fakemeta>
#include <hamsandwich>
#define VERSION "0.1.0"
#define PLUGIN "Team SemiClip"
#define MAX_PLAYERS 32
#define get_player_team(%0) get_pdata_int(%0,114)
#define GROUP_OP_NAND 1
#if defined SHOW_NAMES_WHEN_AIM
new HamHook:PreThink, HamHook:PreThinkP
#endif
#if defined ENABLE_SHOTS_DAMAGE
new HamHook:PostThink, HamHook:PostThinkP
#endif
new g_iCurrentPlayer
new g_bSeePlayers[MAX_PLAYERS+1], bool:g_bIsPlayerNearCurrentPlayer[MAX_PLAYERS+1]
public plugin_init()
{
register_plugin(PLUGIN, VERSION, "ConnorMcLeod")
register_clcmd("say /invis", "ClCmd_Invis", PLUGIN_CONTINUE)
register_clcmd("say_team /invis", "ClCmd_Invis", PLUGIN_HANDLED)
RegisterHam(Ham_Spawn, "player", "CBasePlayer_Spawn_Post", true)
RegisterHam(Ham_Killed, "player", "CBasePlayer_Killed_Post", true)
register_forward(FM_AddToFullPack, "client_AddToFullPack", 0)
register_forward(FM_AddToFullPack, "client_AddToFullPack_P", 1)
register_forward(FM_CmdStart, "client_CmdStart_P", 1)
#if defined SHOW_NAMES_WHEN_AIM
DisableHamForward( PreThink = RegisterHam(Ham_Player_PreThink, "player", "CBasePlayer_PreThink", 0) )
DisableHamForward( PreThinkP = RegisterHam(Ham_Player_PreThink, "player", "CBasePlayer_PreThink_P", 1) )
#endif
#if defined ENABLE_SHOTS_DAMAGE
DisableHamForward( PostThink = RegisterHam(Ham_Player_PostThink, "player", "CBasePlayer_PostThink", 0) )
DisableHamForward( PostThinkP = RegisterHam(Ham_Player_PostThink, "player", "CBasePlayer_PostThink_P", 1) )
#endif
}
public client_putinserver(id)
{
g_bSeePlayers[id] = true
}
public ClCmd_Invis(id, RETURN_TYPE)
{
g_bSeePlayers[id] = !g_bSeePlayers[id]
client_print(id, print_chat, " ** Teamates Visibility is now %s.", g_bSeePlayers[id] ? "On" : "Off")
return RETURN_TYPE
}
public CBasePlayer_Spawn_Post( id )
{
if( is_user_alive(id) )
{
set_pev(id, pev_groupinfo, get_player_team(id))
}
}
public CBasePlayer_Killed_Post( id )
{
set_pev(id, pev_groupinfo, 0)
}
public client_CmdStart_P( id )
{
static shouldsee, enabled
if( ( shouldsee = is_user_alive(id) ) )
{
engfunc(EngFunc_SetGroupMask, 1, GROUP_OP_NAND)
set_pev(id, pev_groupinfo, get_player_team(id))
shouldsee *= g_bSeePlayers[id]
}
if( enabled != shouldsee )
{
if( !enabled )
{
enabled = true
#if defined SHOW_NAMES_WHEN_AIM
EnableHamForward( PreThink )
EnableHamForward( PreThinkP )
#endif
#if defined ENABLE_SHOTS_DAMAGE
EnableHamForward( PostThink )
EnableHamForward( PostThinkP )
#endif
}
else
{
enabled = false
#if defined SHOW_NAMES_WHEN_AIM
DisableHamForward( PreThink )
DisableHamForward( PreThinkP )
#endif
#if defined ENABLE_SHOTS_DAMAGE
DisableHamForward( PostThink )
DisableHamForward( PostThinkP )
#endif
}
}
}
public client_AddToFullPack(es, e, ent, id, hostflags, player, pSet)
{
if( player && g_iCurrentPlayer != id && is_user_alive(id) )
{
g_iCurrentPlayer = id
static invis
if( g_bSeePlayers[id] )
{
invis = false
set_pev(id, pev_groupinfo, 0)
static team
static players[32], num, plr
team = get_player_team(id)
num = find_sphere_class(id, "player", 512.0, players, sizeof(players))
arrayset(g_bIsPlayerNearCurrentPlayer, false, sizeof(g_bIsPlayerNearCurrentPlayer))
for(--num; num>=0; num--)
{
plr = players[num]
g_bIsPlayerNearCurrentPlayer[ plr ] = team == get_player_team(plr)
}
}
else
{
if( !invis )
{
arrayset(g_bIsPlayerNearCurrentPlayer, false, sizeof(g_bIsPlayerNearCurrentPlayer))
invis = true
}
set_pev(id, pev_groupinfo, 3 - get_player_team(id))
}
}
}
public client_AddToFullPack_P(es, e, ent, id, hostflags, player)
{
if( !g_iCurrentPlayer || !is_user_alive(id) )
{
return
}
if( !player || g_iCurrentPlayer != id )
{
set_pev(g_iCurrentPlayer, pev_groupinfo, get_player_team(g_iCurrentPlayer))
g_iCurrentPlayer = 0
return
}
if( g_bSeePlayers[id] && g_bIsPlayerNearCurrentPlayer[ent] )
{
set_es(es, ES_Solid, SOLID_NOT)
set_es(es, ES_RenderMode, kRenderTransColor)
set_es(es, ES_RenderAmt, floatround(entity_range(id, ent)*0.5))
}
}
#if defined SHOW_NAMES_WHEN_AIM
public CBasePlayer_PreThink(id)
{
set_pev(id, pev_groupinfo, 0)
}
public CBasePlayer_PreThink_P(id)
{
set_pev(id, pev_groupinfo, get_player_team(id))
}
#endif
#if defined ENABLE_SHOTS_DAMAGE
public CBasePlayer_PostThink(id)
{
set_pev(id, pev_groupinfo, 0)
}
public CBasePlayer_PostThink_P(id)
{
set_pev(id, pev_groupinfo, get_player_team(id))
}
#endif
__________________
Quote:
Originally Posted by YakumoHiratsuhi
@DiegoCS
No sé talvez solo sea yo, pero tu me caes mal campeón.
|
JAJAJAJAJAJAJAJAJA
Quote:
Originally Posted by meTaLiCroSS
Con 12 años quien no habla mierda detras de un PC, esperate a que te diga algo en persona jajajajaj VIVO DE AHI NO SALE JAJAJA
|
|
|