Raised This Month: $51 Target: $400
 12% 

ZPA Laser Mine


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
regun
New Member
Join Date: Oct 2016
Old 10-02-2016 , 07:20   ZPA Laser Mine
Reply With Quote #1

Hello someone you fix this plugin

//// zp_lasermine_283.sma
include\zombie_plague_advance.inc(86) : warning 201: redefinition of constant/macro (symbol "MODE_SURVIVOR")
include\zombie_plague_advance.inc(88) : warning 201: redefinition of constant/macro (symbol "MODE_SWARM")
include\zombie_plague_advance.inc(89) : warning 201: redefinition of constant/macro (symbol "MODE_MULTI")
include\zombie_plague_advance.inc(90) : warning 201: redefinition of constant/macro (symbol "MODE_PLAGUE")
include\zombie_plague_advance.inc(111) : error 021: symbol already defined: "zp_get_user_zombie"
include\zombie_plague_advance.inc(119) : error 021: symbol already defined: "zp_get_user_nemesis"
include\zombie_plague_advance.inc(127) : error 021: symbol already defined: "zp_get_user_survivor"
include\zombie_plague_advance.inc(135) : error 021: symbol already defined: "zp_get_user_first_zombie"
include\zombie_plague_advance.inc(143) : error 021: symbol already defined: "zp_get_user_last_zombie"
include\zombie_plague_advance.inc(151) : error 021: symbol already defined: "zp_get_user_last_human"
include\zombie_plague_advance.inc(159) : error 021: symbol already defined: "zp_get_user_zombie_class"
include\zombie_plague_advance.inc(167) : error 021: symbol already defined: "zp_get_user_next_class"
include\zombie_plague_advance.inc(176) : error 021: symbol already defined: "zp_set_user_zombie_class"
include\zombie_plague_advance.inc(184) : error 021: symbol already defined: "zp_get_user_ammo_packs"
include\zombie_plague_advance.inc(192) : error 021: symbol already defined: "zp_set_user_ammo_packs"
include\zombie_plague_advance.inc(202) : error 021: symbol already defined: "zp_get_zombie_maxhealth"
include\zombie_plague_advance.inc(210) : error 021: symbol already defined: "zp_get_user_batteries"
include\zombie_plague_advance.inc(218) : error 021: symbol already defined: "zp_set_user_batteries"
include\zombie_plague_advance.inc(226) : error 021: symbol already defined: "zp_get_user_nightvision"
include\zombie_plague_advance.inc(234) : error 021: symbol already defined: "zp_set_user_nightvision"
include\zombie_plague_advance.inc(247) : error 021: symbol already defined: "zp_infect_user"
include\zombie_plague_advance.inc(258) : error 021: symbol already defined: "zp_disinfect_user"
include\zombie_plague_advance.inc(268) : error 021: symbol already defined: "zp_make_user_nemesis"
include\zombie_plague_advance.inc(278) : error 021: symbol already defined: "zp_make_user_survivor"
include\zombie_plague_advance.inc(287) : error 021: symbol already defined: "zp_respawn_user"
include\zombie_plague_advance.inc(297) : error 021: symbol already defined: "zp_force_buy_extra_item"
include\zombie_plague_advance.inc(343) : error 021: symbol already defined: "zp_has_round_started"
include\zombie_plague_advance.inc(350) : error 021: symbol already defined: "zp_is_nemesis_round"
include\zombie_plague_advance.inc(357) : error 021: symbol already defined: "zp_is_survivor_round"
include\zombie_plague_advance.inc(364) : error 021: symbol already defined: "zp_is_swarm_round"
Attached Files
File Type: sma Get Plugin or Get Source (zp_laser.sma - 512 views - 39.4 KB)

Last edited by regun; 10-02-2016 at 09:29.
regun is offline
New and Clueless
Senior Member
Join Date: Dec 2015
Old 10-02-2016 , 09:53   Re: ZPA Laser Mine
Reply With Quote #2

This website you will get answers quicker:

http://zppv.boards.net/

you can also do

[code ]
put the code here and remove the spaces from brackets [ ]
[/code ]

Code:
//// zp_lasermine_283.sma
include\zombie_plague_advance.inc(86) : warning 201: redefinition of constant/macro (symbol "MODE_SURVIVOR")
include\zombie_plague_advance.inc(88) : warning 201: redefinition of constant/macro (symbol "MODE_SWARM")
include\zombie_plague_advance.inc(89) : warning 201: redefinition of constant/macro (symbol "MODE_MULTI")
include\zombie_plague_advance.inc(90) : warning 201: redefinition of constant/macro (symbol "MODE_PLAGUE")
include\zombie_plague_advance.inc(111) : error 021: symbol already defined: "zp_get_user_zombie"
include\zombie_plague_advance.inc(119) : error 021: symbol already defined: "zp_get_user_nemesis"
include\zombie_plague_advance.inc(127) : error 021: symbol already defined: "zp_get_user_survivor"
include\zombie_plague_advance.inc(135) : error 021: symbol already defined: "zp_get_user_first_zombie"
include\zombie_plague_advance.inc(143) : error 021: symbol already defined: "zp_get_user_last_zombie"
include\zombie_plague_advance.inc(151) : error 021: symbol already defined: "zp_get_user_last_human"
include\zombie_plague_advance.inc(159) : error 021: symbol already defined: "zp_get_user_zombie_class"
include\zombie_plague_advance.inc(167) : error 021: symbol already defined: "zp_get_user_next_class"
include\zombie_plague_advance.inc(176) : error 021: symbol already defined: "zp_set_user_zombie_class"
include\zombie_plague_advance.inc(184) : error 021: symbol already defined: "zp_get_user_ammo_packs"
include\zombie_plague_advance.inc(192) : error 021: symbol already defined: "zp_set_user_ammo_packs"
include\zombie_plague_advance.inc(202) : error 021: symbol already defined: "zp_get_zombie_maxhealth"
include\zombie_plague_advance.inc(210) : error 021: symbol already defined: "zp_get_user_batteries"
include\zombie_plague_advance.inc(218) : error 021: symbol already defined: "zp_set_user_batteries"
include\zombie_plague_advance.inc(226) : error 021: symbol already defined: "zp_get_user_nightvision"
include\zombie_plague_advance.inc(234) : error 021: symbol already defined: "zp_set_user_nightvision"
include\zombie_plague_advance.inc(247) : error 021: symbol already defined: "zp_infect_user"
include\zombie_plague_advance.inc(258) : error 021: symbol already defined: "zp_disinfect_user"
include\zombie_plague_advance.inc(268) : error 021: symbol already defined: "zp_make_user_nemesis"
include\zombie_plague_advance.inc(278) : error 021: symbol already defined: "zp_make_user_survivor"
include\zombie_plague_advance.inc(287) : error 021: symbol already defined: "zp_respawn_user"
include\zombie_plague_advance.inc(297) : error 021: symbol already defined: "zp_force_buy_extra_item"
include\zombie_plague_advance.inc(343) : error 021: symbol already defined: "zp_has_round_started"
include\zombie_plague_advance.inc(350) : error 021: symbol already defined: "zp_is_nemesis_round"
include\zombie_plague_advance.inc(357) : error 021: symbol already defined: "zp_is_survivor_round"
include\zombie_plague_advance.inc(364) : error 021: symbol already defined: "zp_is_swarm_round"
__________________

ANY SCRIPTER ON THIS FORUM HAS FREE VIP/ADMIN IN MY SERVER!
New and Clueless is offline
ShooTeR XKy
Member
Join Date: Jul 2014
Location: Palestine
Old 10-02-2016 , 15:10   Re: ZPA Laser Mine
Reply With Quote #3

Take This Better Than yours
Quote:
#include < amxmodx >
#include < fakemeta >
#include < engine >
#include < hamsandwich >
#include < xs >

native zp_get_user_zombie( iPlayer );
native zp_get_user_ammo_packs( iPlayer );
native zp_set_user_ammo_packs( iPlayer, iPacks );
native zp_get_user_nemesis( i );
native zp_is_lnj_round( );
//native Float: HattrickRange( i, j );
#define HattrickRange(%1,%2) entity_range(%1,%2)

new q;

#define MAX_ENTITIES 1500
#define MAX_PLAYERS 32
#define MINE_ON 1
#define MINE_OFF 0
#define TASK_CREATE 84765
#define TASK_REMOVE 86766
#define MINE_COST 8
#define MINE_CLASSNAME "lasermine"
#define MINE_MODEL_EXPLODE "sprites/zerogxplode.spr"
#define MINE_MODEL_VIEW "models/zombie_plague/lasermine.mdl"
#define MINE_SOUND_ACTIVATE "weapons/mine_activate.wav"
#define MINE_SOUND_CHARGE "weapons/mine_charge.wav"
#define MINE_SOUND_DEPLOY "weapons/mine_deploy.wav"
#define MINE_HEALTH 999.0
#define entity_get_owner(%0) entity_get_int( %0, EV_INT_iuser2 )
#define entity_get_status(%0) entity_get_int( %0, EV_INT_iuser1 )
#define entity_get_classname(%0,%1) entity_get_string( %0, EV_SZ_classname, %1, charsmax( %1 ) )
const FFADE_IN = 0x0000
new g_iTripMines[ 33 ];
new g_iPlantedMines[ 33 ];
new g_iPlanting[ 33 ];
new g_iRemoving[ 33 ];
new g_hExplode;

public plugin_init( )
{
register_plugin( "[S-X] lasermine", "1.0", "Hattrick" );

register_clcmd( "say /lm", "Command_Buy" );
register_clcmd( "say lm", "Command_Buy" );
q=get_user_msgid("SayText");
register_clcmd( "+setlaser", "Command_Plant" );
register_clcmd( "+dellaser", "Command_Take" );

register_logevent( "Event_RoundStart", 2, "1=Round_Start" );

register_think( MINE_CLASSNAME, "Forward_Think" );
}

public plugin_precache( )
{
engfunc( EngFunc_PrecacheModel, MINE_MODEL_VIEW );

engfunc( EngFunc_PrecacheSound, MINE_SOUND_ACTIVATE );
engfunc( EngFunc_PrecacheSound, MINE_SOUND_CHARGE );
engfunc( EngFunc_PrecacheSound, MINE_SOUND_DEPLOY );

g_hExplode = engfunc( EngFunc_PrecacheModel, MINE_MODEL_EXPLODE );
}

public client_disconnect( iPlayer )
{
g_iTripMines[ iPlayer ] = 0;
g_iPlanting[ iPlayer ] = false;
g_iRemoving[ iPlayer ] = false;

if( g_iPlantedMines[ iPlayer ] )
{
Func_RemoveMinesByOwner( iPlayer );

g_iPlantedMines[ iPlayer ] = 0;
}

remove_task( iPlayer + TASK_REMOVE );
remove_task( iPlayer + TASK_CREATE );
}

public Command_Buy( iPlayer )
{
if( !is_user_alive( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Alive" );

return PLUGIN_CONTINUE;
}

if( zp_get_user_zombie( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Human" );

return PLUGIN_CONTINUE;
}

if( zp_get_user_ammo_packs( iPlayer ) < MINE_COST )
{
client_print( iPlayer, print_chat, "[S-X] You need %i Ammo packs", MINE_COST );

return PLUGIN_CONTINUE;
}

if( zp_is_lnj_round( ) )
{
client_print( iPlayer, print_chat, "[S-X] You can't buy a Tripmine into an Armageddon round" );

return PLUGIN_CONTINUE;
}

zp_set_user_ammo_packs( iPlayer, zp_get_user_ammo_packs( iPlayer ) - MINE_COST );

g_iTripMines[ iPlayer ]++;

client_print( iPlayer, print_chat, "[S-X]You bought Tripmine" );

client_cmd( iPlayer, "bind c +setlaser" );
client_cmd( iPlayer, "bind v +dellaser" );

return PLUGIN_CONTINUE;
}

public Command_Plant( iPlayer )
{
if( !is_user_alive( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Alive" );

return PLUGIN_CONTINUE;
}

if( zp_get_user_zombie( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Human" );

return PLUGIN_CONTINUE;
}

if( !g_iTripMines[ iPlayer ] )
{
client_print( iPlayer, print_chat, "[S-X] You don't have a Tripmine to plant" );

return PLUGIN_CONTINUE;
}

if( g_iPlantedMines[ iPlayer ] > 1 )
{
client_print( iPlayer, print_chat, "[S-X] You can plant only 2 Mines" );

return PLUGIN_CONTINUE;
}

if( zp_is_lnj_round( ) )
{
client_print( iPlayer, print_chat, "[S-X] You can't buy a Tripmine into an Armageddon round" );

return PLUGIN_CONTINUE;
}

if( g_iPlanting[ iPlayer ] || g_iRemoving[ iPlayer ] )
return PLUGIN_CONTINUE;

if( CanPlant( iPlayer ) ) {
g_iPlanting[ iPlayer ] = true;

message_begin( MSG_ONE_UNRELIABLE, 108, _, iPlayer );
write_byte( 1 );
write_byte( 0 );
message_end( );

set_task( 1.2, "Func_Plant", iPlayer + TASK_CREATE );
}

return PLUGIN_CONTINUE;
}

public Command_Take( iPlayer )
{
if( !is_user_alive( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Alive" );

return PLUGIN_CONTINUE;
}

if( zp_get_user_zombie( iPlayer ) )
{
client_print( iPlayer, print_chat, "[S-X] You should be Human" );

return PLUGIN_CONTINUE;
}

if( !g_iPlantedMines[ iPlayer ] )
{
client_print( iPlayer, print_chat, "[S-X] You don't have a planted mine" );

return PLUGIN_CONTINUE;
}

if( g_iPlanting[ iPlayer ] || g_iRemoving[ iPlayer ] )
return PLUGIN_CONTINUE;

if( CanTake( iPlayer ) ) {
g_iRemoving[ iPlayer ] = true;

message_begin( MSG_ONE_UNRELIABLE, 108, _, iPlayer );
write_byte( 1 );
write_byte( 0 );
message_end( );

set_task( 1.2, "Func_Take", iPlayer + TASK_REMOVE );
}

return PLUGIN_CONTINUE;
}

public Event_RoundStart( ) {
static iEntity, szClassName[ 32 ], iPlayer;
for( iEntity = 0; iEntity < MAX_ENTITIES + 1; iEntity++ ) {
if( !is_valid_ent( iEntity ) )
continue;

szClassName[ 0 ] = '^0';
entity_get_classname( iEntity, szClassName );

if( equal( szClassName, MINE_CLASSNAME ) )
remove_entity( iEntity );
}

for( iPlayer = 1; iPlayer < 33; iPlayer++ ) {
g_iTripMines[ iPlayer ] = 0;
g_iPlantedMines[ iPlayer ] = 0;
}
}

public Func_Take( iPlayer ) {
iPlayer -= TASK_REMOVE;

g_iRemoving[ iPlayer ] = false;

static iEntity, szClassName[ 32 ], Float: flOwnerOrigin[ 3 ], Float: flEntityOrigin[ 3 ];
for( iEntity = 0; iEntity < MAX_ENTITIES + 1; iEntity++ ) {
if( !is_valid_ent( iEntity ) )
continue;

szClassName[ 0 ] = '^0';
entity_get_classname( iEntity, szClassName );

if( equal( szClassName, MINE_CLASSNAME ) ) {
if( entity_get_owner( iEntity ) == iPlayer ) {
entity_get_vector( iPlayer, EV_VEC_origin, flOwnerOrigin );
entity_get_vector( iEntity, EV_VEC_origin, flEntityOrigin );

if( get_distance_f( flOwnerOrigin, flEntityOrigin ) < 55.0 ) {
g_iPlantedMines[ iPlayer ]--;
g_iTripMines[ iPlayer ]++;

remove_entity( iEntity );

break;
}
}
}
}
}

public bool: CanTake( iPlayer ) {
static iEntity, szClassName[ 32 ], Float: flOwnerOrigin[ 3 ], Float: flEntityOrigin[ 3 ];
for( iEntity = 0; iEntity < MAX_ENTITIES + 1; iEntity++ ) {
if( !is_valid_ent( iEntity ) )
continue;

szClassName[ 0 ] = '^0';
entity_get_classname( iEntity, szClassName );

if( equal( szClassName, MINE_CLASSNAME ) ) {
if( entity_get_owner( iEntity ) == iPlayer ) {
entity_get_vector( iPlayer, EV_VEC_origin, flOwnerOrigin );
entity_get_vector( iEntity, EV_VEC_origin, flEntityOrigin );

if( get_distance_f( flOwnerOrigin, flEntityOrigin ) < 55.0 )
return true;
}
}
}

return false;
}

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 ) {
client_print( iPlayer, print_chat, "[S-X] You must plant the Tripmine on a Wall" );

return false;
}

return true;
}

public Func_Plant( iPlayer ) {
iPlayer -= TASK_CREATE;

g_iPlanting[ iPlayer ] = false;

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, 128, 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 iEntity;
iEntity = create_entity( "info_target" );

if( !iEntity )
return;

entity_set_string( iEntity, EV_SZ_classname, MINE_CLASSNAME );
entity_set_model( iEntity, MINE_MODEL_VIEW );
entity_set_size( iEntity, Float: { -15.0, -15.0, -15.0 }, Float: { 15.0, 15.0, 15.0 } );

entity_set_int( iEntity, EV_INT_iuser2, iPlayer );

g_iPlantedMines[ iPlayer ]++;

set_pev( iEntity, pev_iuser3, g_iPlantedMines[ iPlayer ] );

entity_set_float( iEntity, EV_FL_frame, 0.0 );
entity_set_float( iEntity, EV_FL_framerate, 0.0 );
entity_set_int( iEntity, EV_INT_movetype, MOVETYPE_FLY );
entity_set_int( iEntity, EV_INT_solid, SOLID_NOT );
entity_set_int( iEntity, EV_INT_body, 3 );
entity_set_int( iEntity, EV_INT_sequence, 7 );
entity_set_float( iEntity, EV_FL_takedamage, DAMAGE_NO );
entity_set_int( iEntity, EV_INT_iuser1, MINE_OFF );

static Float: flNewOrigin[ 3 ], Float: flEntAngles[ 3 ];
flNewOrigin[ 0 ] = flTraceResult[ 0 ] + ( flNormal[ 0 ] * 8.0 );
flNewOrigin[ 1 ] = flTraceResult[ 1 ] + ( flNormal[ 1 ] * 8.0 );
flNewOrigin[ 2 ] = flTraceResult[ 2 ] + ( flNormal[ 2 ] * 8.0 );

entity_set_origin( iEntity, flNewOrigin );

vector_to_angle( flNormal, flEntAngles );
entity_set_vector( iEntity, EV_VEC_angles, flEntAngles );
flEntAngles[ 0 ] *= -1.0;
flEntAngles[ 1 ] *= -1.0;
flEntAngles[ 2 ] *= -1.0;
entity_set_vector( iEntity, EV_VEC_v_angle, flEntAngles );

g_iTripMines[ iPlayer ]--;

emit_sound( iEntity, CHAN_WEAPON, MINE_SOUND_DEPLOY, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
emit_sound( iEntity, CHAN_VOICE, MINE_SOUND_CHARGE, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );

entity_set_float( iEntity, EV_FL_nextthink, get_gametime( ) + 0.6 );
}

public Func_RemoveMinesByOwner( iPlayer ) {
static iEntity, szClassName[ 32 ];
for( iEntity = 0; iEntity < MAX_ENTITIES + 1; iEntity++ ) {
if( !is_valid_ent( iEntity ) )
continue;

szClassName[ 0 ] = '^0';
entity_get_classname( iEntity, szClassName );

if( equal( szClassName, MINE_CLASSNAME ) )
if( entity_get_int( iEntity, EV_INT_iuser2 ) == iPlayer )
remove_entity( iEntity );
}
}

Func_Explode( iEntity ) {
g_iPlantedMines[ entity_get_owner( iEntity ) ]--;

static Float: flOrigin[ 3 ];
entity_get_vector( iEntity, EV_VEC_origin, flOrigin );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_EXPLOSION );
engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
write_short( g_hExplode );
write_byte( 55 );
write_byte( 15 );
write_byte( 0 );
message_end( );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_EXPLOSION );
engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
write_short( g_hExplode );
write_byte( 65 );
write_byte( 15 );
write_byte( 0 );
message_end( );

message_begin( MSG_BROADCAST, SVC_TEMPENTITY );
write_byte( TE_EXPLOSION );
engfunc( EngFunc_WriteCoord, flOrigin[ 0 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 1 ] );
engfunc( EngFunc_WriteCoord, flOrigin[ 2 ] );
write_short( g_hExplode );
write_byte( 85 );
write_byte( 15 );
write_byte( 0 );
message_end( );

for( new i = 1; i < 33; i++ )
{
if( !is_user_connected( i ) || !is_user_alive( i ) ) continue;
if( zp_get_user_zombie( i ) )
{
static Float: fDistance, Float: fDamage;

fDistance = HattrickRange( i, iEntity );

if( fDistance < 340 )
{
fDamage = 1900 - fDistance;

if( !zp_get_user_nemesis( i ) )
fDamage *= 0.75;

static Float: fVelocity[ 3 ];
pev( i, pev_velocity, fVelocity );

xs_vec_mul_scalar( fVelocity, 1.75, fVelocity );

set_pev( i, pev_velocity, fVelocity );

message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenFade" ), _, i );
write_short( 4096 );
write_short( 4096 );
write_short( FFADE_IN );
write_byte( 255 );
write_byte( 0 );
write_byte( 0 );
write_byte( 225 );
message_end( );

message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenShake" ), _, i );
write_short( 4096 * 19 );
write_short( 4096 * 7 );
write_short( 4096 * 24 );
message_end( );

if( float( get_user_health( i ) ) - fDamage > 0 )
ExecuteHamB( Ham_TakeDamage, i, iEntity, entity_get_owner( iEntity ), fDamage, DMG_BLAST );

else ExecuteHamB( Ham_Killed, i, entity_get_owner( iEntity ), 2 );

static cName[ 32 ]; get_user_name( i, cName, 31 );
Message( entity_get_owner( iEntity ), "^x04[S-X]^x01 Damage to^x03 %s^x01 ::^x04 %0.0f damage", cName, fDamage );
}
}
}

for( new i = 1; i < 33; i++ )
{
if( !is_user_connected( i ) || !is_user_alive( i ) )
continue;
if( !zp_get_user_zombie( i ) )
{
if( HattrickRange( i, iEntity ) < 340 )
{
static Float: fVelocity[ 3 ];
pev( i, pev_velocity, fVelocity );

xs_vec_mul_scalar( fVelocity, 1.5, fVelocity );

set_pev( i, pev_velocity, fVelocity );

message_begin( MSG_ONE_UNRELIABLE, get_user_msgid( "ScreenShake" ), _, i );
write_short( 4096 * 19 );
write_short( 4096 * 7 );
write_short( 4096 * 24 );
message_end( );
}
}
}

remove_entity( iEntity );
}

public Forward_Think( iEntity ) {
static Float: flGameTime, iStatus;
flGameTime = get_gametime( );
iStatus = entity_get_status( iEntity );

switch( iStatus ) {
case MINE_OFF: {
entity_set_int( iEntity, EV_INT_iuser1, MINE_ON );
entity_set_float( iEntity, EV_FL_takedamage, DAMAGE_YES );
entity_set_int( iEntity, EV_INT_solid, SOLID_BBOX );
entity_set_float( iEntity, EV_FL_health, MINE_HEALTH + 1000.0 );

emit_sound( iEntity, CHAN_VOICE, MINE_SOUND_ACTIVATE, VOL_NORM, ATTN_NORM, 0, PITCH_NORM );
}

case MINE_ON: {
static Float: flHealth;
flHealth = entity_get_float( iEntity, EV_FL_health );

if( is_user_alive( entity_get_owner( iEntity ) ) )
{
if( pev( iEntity, pev_iuser3 ) == 1 )
set_hudmessage(0, 200, 100, 0.05, 0.3, 0, 0.0, 0.12, 2.0, 1.0, -1),
show_hudmessage( entity_get_owner( iEntity ), "Lasermine #1 :: %0.0f HP", flHealth - 1000.0 );

else
set_hudmessage(0, 200, 100, 0.05, 0.32, 0, 0.0, 0.12, 2.0, 1.0, -1),
show_hudmessage( entity_get_owner( iEntity ), "Lasermine #2 :: %0.0f HP", flHealth - 1000.0 );
}

if( flHealth <= 1000.0 ) {
Func_Explode( iEntity );

return FMRES_IGNORED;
}
}
}

if( is_valid_ent( iEntity ) )
entity_set_float( iEntity, EV_FL_nextthink, flGameTime + 0.1 );

return FMRES_IGNORED;
}
Message( v, c[ ], any: ... )
{
static cBuffer[ 192 ];
vformat( cBuffer, 191, c, 3 );

if( v )
{
message_begin( MSG_ONE_UNRELIABLE, q, _, v );
write_byte( v );
write_string( cBuffer );
message_end( );
}

else
{
static i[ 32 ], j, k;
get_players( i, j, "ch" );
for( k = 0; k < j; k++ )
{
message_begin( MSG_ONE_UNRELIABLE, q, _, i[ k ] );
write_byte( i[ k ] );
write_string( cBuffer );
message_end( );
}
}
}
ShooTeR XKy is offline
ShooTeR XKy
Member
Join Date: Jul 2014
Location: Palestine
Old 10-02-2016 , 15:11   Re: ZPA Laser Mine
Reply With Quote #4

You Just Need Models

Quote:
#define MINE_MODEL_VIEW "models/zombie_plague/lasermine.mdl"
ShooTeR XKy is offline
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 13:23.


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