Raised This Month: $32 Target: $400
 8% 

Help with jetpack !


Post New Thread Reply   
 
Thread Tools Display Modes
Author Message
Ali0mer
Senior Member
Join Date: Jan 2016
Location: Iraq
Old 12-02-2018 , 03:21   Help with jetpack !
Reply With Quote #1

Hello guys,
Can you prevent zombies from using jetpack in this code?!
Code:
#include < amxmodx >

#include < engine >

#include < fakemeta >

#include < hamsandwich >

#include < xs >

#include < zombieplague>

// ColorChat

new TeamName[][] = {

	"",

	"TERRORIST",

	"CT",

	"SPECTATOR"

};

enum Color { NORMAL = 1, GREEN, TEAM_COLOR, GREY, RED, BLUE};

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...) {

	if(!get_playersnum()) 

		return;

	

	new message[256];



	switch(type) {

		case NORMAL:

		{

			message[0] = 0x01;

		}

		case GREEN:

		{

			message[0] = 0x04;

		}

		default:

		{

			message[0] = 0x03;

		}

	}



	vformat(message[1], 251, msg, 4);



	// Make sure message is not longer than 192 character. Will crash the server.

	message[192] = '^0';



	new team, ColorChange, index, MSG_Type;

	

	if(id) {

		MSG_Type = MSG_ONE;

		index = id;

	}

	else {

		index = FindPlayer();

		MSG_Type = MSG_ALL;

	}

	

	team = get_user_team(index);

	ColorChange = ColorSelection(index, MSG_Type, type);



	ShowColorMessage(index, MSG_Type, message);

		

	if(ColorChange)

		Team_Info(index, MSG_Type, TeamName[team]);

}



ShowColorMessage(id, type, message[]) {

	static bool:saytext_used;

	static get_user_msgid_saytext;

	

	if(!saytext_used) {

		get_user_msgid_saytext = get_user_msgid("SayText");

		saytext_used = true;

	}

	

	message_begin(type, get_user_msgid_saytext, _, id);

	write_byte(id);

	write_string(message);

	message_end();	

}

Team_Info(id, type, team[]) {

	static bool:teaminfo_used;

	static get_user_msgid_teaminfo;

	

	if(!teaminfo_used) {

		get_user_msgid_teaminfo = get_user_msgid("TeamInfo");

		teaminfo_used = true;

	}

	

	message_begin(type, get_user_msgid_teaminfo, _, id);

	write_byte(id);

	write_string(team);

	message_end();



	return 1;

}





ColorSelection(index, type, Color:Type) {

	switch(Type) {

		case RED:

		{

			return Team_Info(index, type, TeamName[1]);

		}

		case BLUE:

		{

			return Team_Info(index, type, TeamName[2]);

		}

		case GREY:

		{

			return Team_Info(index, type, TeamName[0]);

		}

	}



	return 0;

}



FindPlayer() {

	new i = -1;



	while(i <= get_maxplayers()) {

		if(is_user_connected(++i))

			return i;

	}



	return -1;

}

native get_user_jetpack( iPlayer );

native user_drop_jetpack( iPlayer );

native set_user_fuel( iPlayer, Float: fFuel );

native set_user_rocket_time( iPlayer, Float: fTime );

native set_user_jetpack( iPlayer, iJetpack );



new g_iJetpack, bool: g_bConnected[ 33 ], g_cName[ 33 ][ 32 ];





public zp_user_infect_attempt( iPlayer )

    if( get_user_jetpack( iPlayer ) )

        user_drop_jetpack( iPlayer );



public zp_user_infected_pre( iPlayer )

    if( get_user_jetpack( iPlayer ) )

        user_drop_jetpack( iPlayer );



public zp_user_infected_post( iPlayer )

    if( get_user_jetpack( iPlayer ) )

        user_drop_jetpack( iPlayer );



public client_putinserver( iPlayer )

{

    g_bConnected[ iPlayer ] = true;



    get_user_name( iPlayer, g_cName[ iPlayer ], 31 );

}



public client_disconnect( iPlayer )

    g_bConnected[ iPlayer ] = false;



public client_infochanged( iPlayer )

{

    static cInfo[ 32 ];

    get_user_info( iPlayer, "name", cInfo, 31 );



    if( !equali( g_cName[ iPlayer ], cInfo ) )

        copy( g_cName[ iPlayer ], 31, cInfo );

}

new g_msgHUD

public plugin_init( )

{

    g_iJetpack = zp_register_extra_item( "Jetpack + Bazooka", 30, ZP_TEAM_HUMAN );

    g_msgHUD = CreateHudSyncObj()

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

    

}



public zp_extra_item_selected( iPlayer, iItem )

{

    if( iItem == g_iJetpack )

    {

    	if( get_user_jetpack( iPlayer ) )

	{

		ColorChat( iPlayer,GREY, "^x04[ZP]^x01 You already have a^x03 Jetpack!" );

		zp_set_user_ammo_packs( iPlayer, zp_get_user_ammo_packs( iPlayer ) + 30 );

	}

	else

	{

		set_user_jetpack( iPlayer, 1 );

		set_user_fuel( iPlayer, 250.0 );

		new szName[32]

		get_user_name(iPlayer, szName, charsmax(szName)) 

		set_hudmessage(255, 170, 42, 0.31, 0.84, 1, 0.0, 7.0, 1.0, 1.0, -1) 

		ShowSyncHudMsg(0 ,g_msgHUD,"%s has bought a Jetpack!!", szName )

		ColorChat( iPlayer,GREY, "^x04[ZP]^x01 Press^x03 CTRL+SPACE^x01 to fly!" );

		ColorChat( iPlayer,GREY, "^x04[ZP]^x01 Press^x03 RIGHT CLICK^x01 to shoot!" );

        }

    }

}



public Rocket_Touch( iOwner, iRocket )

{

    if( g_bConnected[ iOwner ] )

    {

        static iPlayers[ 32 ], iNum, i;

        get_players( iPlayers, iNum, "a" );



        for( i = 0; i < iNum; i++ )

        {

            if( zp_get_user_zombie( iPlayers[ i ] ) )

            {

                static Float: fDistance, Float: fDamage;

                fDistance = entity_range( iPlayers[ i ], iRocket );



                if( fDistance < 320.0 )

                {

                    fDamage = 1050.0 - fDistance;

                

                    static Float: fVelocity[ 3 ];

                    pev( iPlayers[ i ], pev_velocity, fVelocity );

                    xs_vec_mul_scalar( fVelocity, 2.75, fVelocity );

                    fVelocity[ 2 ] *= 1.75;

                    set_pev( iPlayers[ i ], pev_velocity, fVelocity );

                    

                    if( float( get_user_health( iPlayers[ i ] ) ) - fDamage > 0.0 )

                        ExecuteHamB( Ham_TakeDamage, iPlayers[ i ], iRocket, iOwner, fDamage, DMG_BLAST );

                        

                    else ExecuteHamB( Ham_Killed, iPlayers[ i ], iOwner, 2 );

		    ColorChat( iOwner,GREY, "^x04[ZP]^x01 Damage to^x04 %s^x01 ::^x04 %0.0f^x01 damage", g_cName[ iPlayers[ i ] ], fDamage );

                }

            }

        }

    }

}



public Jetpack_Touch( iPlayer )

    return zp_get_user_zombie( iPlayer ) ? PLUGIN_HANDLED : PLUGIN_CONTINUE;



public RoundStart( )

{

    static iPlayers[ 32 ], iNum, i;

    get_players( iPlayers, iNum, "a" );



    for( i = 0; i < iNum; i++ )

        if( get_user_jetpack( iPlayers[ i ] ) )

        set_user_rocket_time( iPlayers[ i ], 0.0 );

}
Ali0mer is offline
Send a message via Skype™ to Ali0mer
Reply


Thread Tools
Display Modes

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 19:51.


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