←  Pluginy

AMXX.pl: Support AMX Mod X i SourceMod

»

Semiclip

Locked

  • +
  • -
naven's Photo naven 12.10.2009

Mamy tutaj semiclipa z deathrun manager, chciałbym, aby działał on na obie drużyny(najlepiej co zmienić i na co bo chce cvary zrobić co tego)
/* Plugin generated by AMXX-Studio */

#include <amxmodx>
#include <amxmisc>
#include <engine>
#include <fakemeta>

#define PLUGIN "semiclip"
#define VERSION "1.0"
#define AUTHOR "danielkza"

new g_iSemiClip[33]

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)
	register_forward( FM_StartFrame,	"fwStartFrame",	0);
	register_forward( FM_AddToFullPack,	"fwFullPack",	1 );

}
	public fwFullPack( es, e, ent, host, flags, player, pSet ) {
	if( player && g_iSemiClip[ent] && g_iSemiClip[host] ) {
		static Float:flDistance;
		flDistance = entity_range( host, ent );
		
		set_es( es, ES_Solid, SOLID_NOT );
		set_es( es, ES_RenderMode, kRenderTransAlpha );
		set_es( es, ES_RenderAmt, floatround( flDistance * 1.5 ) );
	}
	return FMRES_IGNORED;
}
public fwStartFrame(id) {
	static iPlayers[32], iNum, iPlayer, iPlayer2;
	get_players(iPlayers, iNum);
	
	arrayset(g_iSemiClip, 0, sizeof(g_iSemiClip));
	
	new iTeams[33] = {-1, ...};
	for( new i = 0; i < iNum; i++ ) {
		iPlayer = iPlayers[i];
		
		if( !is_user_alive(iPlayer) )
			continue;
		
		for( new j = 0; j < iNum; j++ ) {
			iPlayer2 = iPlayers[j];
			
			if(iPlayer == iPlayer2 || !is_user_alive(iPlayer2))
				continue;
			
			static Float:vOrigin1[3], Float:vOrigin2[3];
			pev(iPlayer, pev_origin, vOrigin1);
			pev(iPlayer2, pev_origin, vOrigin2);
			
			if( vector_distance( vOrigin1, vOrigin2 ) < 96 ) {
				if( iTeams[iPlayer] == -1 )
					iTeams[iPlayer]		= get_user_team(iPlayer);
				if( iTeams[iPlayer2] == -1 )
					iTeams[iPlayer2]	= get_user_team(iPlayer2);
				
				if( iTeams[iPlayer] == 2 && iTeams[iPlayer2] == 2 ) {
					g_iSemiClip[iPlayer]	= true;
					g_iSemiClip[iPlayer2]	= true;
				}
			}
		}
	}
	
	for( new i = 0; i < iNum; i++ ) {
		iPlayer = iPlayers[i];
		
		if( is_user_alive( iPlayer ) )
			set_pev(iPlayer, pev_solid, g_iSemiClip[iPlayer] ? SOLID_NOT : SOLID_SLIDEBOX);
	}
	
	return FMRES_IGNORED;
}
Quote

  • +
  • -
kyku's Photo kyku 12.10.2009

f( iTeams[iPlayer] == 2 && iTeams[iPlayer2] == 2 ) {
zamien na
f( iTeams[iPlayer]&& iTeams[iPlayer2]) {
Quote

  • +
  • -
Miczu's Photo Miczu 12.10.2009

naven, jesli chcesz miec semi clip wszyscy na wszytkich, to sprawdz moze ten kod:
#include <amxmodx>
#include <fakemeta>

#define PLUGIN "semiuclip"
#define VERSION "0.1"
#define AUTHOR "Miczu"

public plugin_init() {
	register_plugin(PLUGIN, VERSION, AUTHOR)	
        register_forward(FM_PlayerPostThink, "postThink")
}

public client_PreThink ( id ) 
{
	if(pev(id, pev_movetype) == MOVETYPE_NOCLIP) return	
	set_pev(id, pev_solid, SOLID_SLIDEBOX)
}
public postThink(id)
{
	if(pev(id, pev_movetype) == MOVETYPE_NOCLIP) return	
	set_pev(id, pev_solid, SOLID_NOT)		
}

Uzywam go w innym plugu i przydala by mi sie opinia, jaki semiclip jest lepszy :>
PS. mozna wywalic if'y, sa tylko po to, bo ja mam jeszcze inne smieci za tym :F
Quote

  • +
  • -
naven's Photo naven 12.10.2009

Obecnie nie za bardzo jestem w stanie sprawdzić, boty będą strzelać;d
Dam znać jak obczaję.
Quote

  • +
  • -
kyku's Photo kyku 13.10.2009

to wez im bronie :) knife mode
Quote

  • +
  • -
naven's Photo naven 15.11.2009

kyku, sprawdziłem, działa. Miczu, jednak skorzystam z kodu danielkza, przynajmniej na razie.
Można zamknąć.
Quote
Locked