AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   TripMine small change (https://forums.alliedmods.net/showthread.php?t=328402)

PredatorBlock 11-07-2020 17:39

TripMine small change
 
Hello,

Can someone help me to not allow plant lasermine over other players!.

Code:
public bool: CanPlant( iPlayer ) {     static Float: flOrigin[ 3 ];     entity_get_vector( iPlayer, EV_VEC_origin, flOrigin );         static Float: flTraceDirection[ 3 ], Float: flTraceEnd[ 3 ], Float: flTraceResult[ 3 ], Float: flNormal[ 3 ];     velocity_by_aim( iPlayer, 64, flTraceDirection );     flTraceEnd[ 0 ] = flTraceDirection[ 0 ] + flOrigin[ 0 ];     flTraceEnd[ 1 ] = flTraceDirection[ 1 ] + flOrigin[ 1 ];     flTraceEnd[ 2 ] = flTraceDirection[ 2 ] + flOrigin[ 2 ];         static Float: flFraction, iTr;     iTr = 0;     engfunc( EngFunc_TraceLine, flOrigin, flTraceEnd, 0, iPlayer, iTr );     get_tr2( iTr, TR_vecEndPos, flTraceResult );     get_tr2( iTr, TR_vecPlaneNormal, flNormal );     get_tr2( iTr, TR_flFraction, flFraction );         if( flFraction >= 1.0 ) {         zp_colored_print( iPlayer, 1, " You must plant the Tripmine on a Wall" );                 return false;     }         return true; }

PredatorBlock 11-15-2020 18:56

Re: TripMine small change
 
Found it.

Thanks anyway.

Code:
#define _IsPlayer(%1) (1<=%1<=g_max_players) new g_max_players public plugin_init() {     g_max_players = get_maxplayers() } public bool: CanPlant( iPlayer ) {     static Float: flOrigin[ 3 ];     entity_get_vector( iPlayer, EV_VEC_origin, flOrigin);         static Float: flTraceDirection[ 3 ], Float: flTraceEnd[ 3 ], Float: flTraceResult[ 3 ], Float: flNormal[ 3 ];     velocity_by_aim( iPlayer, 64, flTraceDirection);     flTraceEnd[ 0 ] = flTraceDirection[ 0 ] + flOrigin[ 0 ];     flTraceEnd[ 1 ] = flTraceDirection[ 1 ] + flOrigin[ 1 ];     flTraceEnd[ 2 ] = flTraceDirection[ 2 ] + flOrigin[ 2 ];         static Float: flFraction, iTr;     iTr = 0;     engfunc( EngFunc_TraceLine, flOrigin, flTraceEnd, 0, iPlayer, iTr);     get_tr2( iTr, TR_vecEndPos, flTraceResult);     get_tr2( iTr, TR_vecPlaneNormal, flNormal);     get_tr2( iTr, TR_flFraction, flFraction);         static target, body;     get_user_aiming(iPlayer, target, body)     if( flFraction >= 1.0 || _IsPlayer(target)) {         zp_colored_print(iPlayer, 0, "** %L You must plant the TripMine on a Wall **", iPlayer, "MINE_WALL")                 return false;     }         return true; }

Natsheh 11-16-2020 07:03

Re: TripMine small change
 
Code:
_IsPlayer(get_tr2( iTr, TR_pHit)) && get_tr2( iTr, TR_pHit) != 0

use the trace outputs


All times are GMT -4. The time now is 14:10.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.