VIP Problem
#8

Thats the filterscript i use.

Код:
#if defined VIP
												xxSPEEDYxx's V.I.P System - NEW*
														   3 Levels
										  					 v2.0
COMMANDS - [v1.0]:

V.I.P Level 1 Commands:                             V.I.P Level 2 Commands:                             V.I.P Level 3 Commands:
	/mytime                                         	/vsaveskin                                          /vkick
 	/myweather                                          /dontuseskin                                        /vget
 	/myvw                                               /vweapons                                           /rw
	/mycolor                                            /vipgoto                                            /maxammo
	/vspec                                              /vasay                                              + V.I.P level 1&2 CMDS
	/vspecoff                                           + V.I.P level 1 CMDS
	/spawnme
	/vcmds

COMMANDS - [v2.0]:

V.I.P Level 1 Commands:                             V.I.P Level 2 Commands:                             V.I.P Level 3 Commands:
	/ltc[1 - 13]                                        /vipgod                                         	/vannounce
	/viphouse
	/godcar
	/vcar
	/vspa( V.I.P Special Actions! )
	/stophold!

V.I.P over 35 command! OMG!

#endif
												//============ [ Includes ] ============//
														#include <	a_samp  > // Main include!
														#include <  zcmd    > // Find it on: https://sampforum.blast.hk/showthread.php?tid=91354&highlight=zcmd
														#include <  sscanf2 > // Find it on: https://sampforum.blast.hk/showthread.ph...7.86361348												//======================================//

#pragma tabsize 0
#define VIPS_SEND_COMMAND //Put this: // In front of this define to do not use //VIPS_SEND_COMAND

//============ [ Colours ] ============//
#define RED 		0xE60000AA
#define YELLOW 		0xFFFF00AA
#define GREEN   	0x00FF00AA
#define ABLUE   	0x2641FEAA
#define COLOR_VIP   0xFF5500AA //aka Orange:P
//====================================//
//========== [ Dialogs ] ==========//
/*
I put the dialogids bigest to not confuse with other dialogs in your FSs/GM
*/
#define MYLVL 		12000
#define VIPS        12001
#define VIPCMDS     12002
#define ONCONN      12003
#define VSPA        12004
//====================================//
//============= [ SPEC ] =============//
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
/*
Do not touch this!
*/
//=========== [ Shortcuts ] ==========//
#define Public:%0(%1) \
	forward%0(%1); public%0(%1)
//====================================//
//========== [ News&Enums ] ==========//
enum pInfo
{
    Vip,
    SpecID,
	SpecType,
	God,
	CarGod
};

new P_DATA[ MAX_PLAYERS ][ pInfo ];
new	DB:Database;
new Float:Position[ MAX_PLAYERS ][ 4 ];
//====================================//
//======================================================== [ CallBacks ] ========================================================//
public OnFilterScriptInit( )
{
    Database = db_open( "Vips.db" ); //Name of the database! You can change it!
    db_query( Database, "CREATE TABLE IF NOT EXISTS `Vips` \
										( `Nume` TEXT,\
										  `VipLevel` NUMERIC,\
										  `VSkin` NUMERIC )" );
    return 1;
}

public OnFilterScriptExit( )
{
	db_close( Database );
	return 1;
}

public OnPlayerConnect( playerid )
{
	new Query[ 256 ], string[ 128 ], DBResult:Result;
	format( Query, sizeof( Query ), "SELECT * FROM `Vips` WHERE `Nume` = '%s'", PlayerName2( playerid ) );
	Result = db_query( Database, Query );

	if ( db_num_rows( Result ) )
	{
	    new Field[ 30 ];
	    db_get_field_assoc( Result, "VipLevel", Field, 30 );
     	P_DATA[ playerid ][ Vip ] = strval( Field );
     	format( string, sizeof( string ), "\t{FF5500}Your V.I.P Level:\n\n{FF5500}You have V.I.P level {00FF00}%d\n\n{E60000}Congratulations!", P_DATA[ playerid ][ Vip ] );
     	ShowPlayerDialog( playerid, ONCONN, DIALOG_STYLE_MSGBOX, "{00FF00}V.I.P", string, "Quit", "" );
 	}
 	else
 	{
     	ShowPlayerDialog( playerid, ONCONN+1, DIALOG_STYLE_MSGBOX, "{00FF00}V.I.P", "{E60000}This username have V.I.P level 0", "Quit", "" );
	}
	db_free_result( Result );
	return 1;
}


public OnPlayerDisconnect( playerid, reason )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
	    if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
	    {
   		   	AdvanceSpectate( i );
		}
	}
	return 1;
}

public OnPlayerDeath( playerid, killerid, reason )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
	    if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
	    {
	       AdvanceSpectate( i );
		}
	}
	return 1;
}

public OnPlayerInteriorChange( playerid, newinteriorid, oldinteriorid )
{
	new i = 0;
	while( i != MAX_PLAYERS )
	{
	    if ( IsPlayerConnected( i ) && GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid && P_DATA[ i ][ SpecType ] == ADMIN_SPEC_TYPE_PLAYER )
   		{
   		    SetPlayerInterior( i, newinteriorid );
		}
		i++;
	}
}

public OnPlayerKeyStateChange( playerid, newkeys, oldkeys )
{
	if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
	{
		if ( newkeys == KEY_JUMP ) AdvanceSpectate( playerid );
		else if ( newkeys == KEY_SPRINT ) ReverseSpectate( playerid );
	}
	return 1;
}

public OnPlayerEnterVehicle( playerid, vehicleid )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
	    if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
		{
	        TogglePlayerSpectating( i, 1 );
	        PlayerSpectateVehicle( i, vehicleid );
	        P_DATA[ i ][ SpecType ] = ADMIN_SPEC_TYPE_VEHICLE;
		}
	}
	return 1;
}

public OnPlayerStateChange( playerid, newstate, oldstate )
{
	switch( newstate )
	{
		case PLAYER_STATE_ONFOOT:
		{
			switch( oldstate )
			{
				case PLAYER_STATE_DRIVER: OnPlayerExitVehicle( playerid, 255 );
				case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle( playerid, 255 );
			}
		}
	}
	return 1;
}

public OnPlayerText( playerid, text[ ] )
{
	new textstr[ 128 ];

	if ( text[ 0 ] == '!' && P_DATA[ playerid ][ Vip ] >= 1 )
	{
		GetPlayerName( playerid, textstr, sizeof( textstr ) );
		format( textstr, sizeof( textstr ),"V.I.P Chat: {00FF00}%s{FF5500}: %s", textstr, text[ 1 ] );
		SendVipMessage( COLOR_VIP, textstr );
		return 0;
	}
	return 1;
}

public OnPlayerExitVehicle( playerid, vehicleid )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
    	if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid && P_DATA[ i ][ SpecType ] == ADMIN_SPEC_TYPE_VEHICLE)
		{
        	TogglePlayerSpectating( i, 1 );
	        PlayerSpectatePlayer( i, playerid );
    	    P_DATA[ i ][ SpecType ] = ADMIN_SPEC_TYPE_PLAYER;
		}
	}
	return 1;
}

public OnDialogResponse( playerid, dialogid, response, listitem, inputtext[ ] )
{
	if ( dialogid == VSPA )
	{
	    if ( response )
	    {
	        if ( listitem == 0 )
	        {
         		for ( new i = 0; i < 5; i++ )
         		{
					if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
					{
						RemovePlayerAttachedObject( playerid, i );
					}
				}
				SetPlayerAttachedObject( playerid, 1, 19086, 8, -0.049768, -0.014062, -0.108385, 87.458297, 263.478149, 184.123764, 0.622413, 1.041609, 1.012785 );
				SendClientMessage( playerid, COLOR_VIP, "You have holded a {00FF00}dick!" );
				SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
			}
			if ( listitem == 1 )
			{
			   	for ( new i = 0; i < 5; i++ )
         		{
					if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
					{
						RemovePlayerAttachedObject( playerid, i );
					}
				}
                SetPlayerAttachedObject( playerid, 0, 1114, 1, 0.138007, 0.002714, -0.157366, 350.942352, 16.794704, 32.683506, 0.791829, 0.471535, 1.032759 );
				SetPlayerAttachedObject( playerid, 1, 1114, 1, 0.138007, 0.002714, 0.064523, 342.729064, 354.099456, 32.369094, 0.791829, 0.471535, 1.032759 );
                SendClientMessage( playerid, COLOR_VIP, "You have holded a {00FF00}iron!" );
				SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
			}
			if ( listitem == 2 )
			{
			    for ( new i = 0; i < 5; i++ )
         		{
					if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
					{
						RemovePlayerAttachedObject( playerid, i );
					}
				}
                SetPlayerAttachedObject( playerid, 0, 18645, 2, 0.017478, 0.051500, 0.003912, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
				SetPlayerAttachedObject( playerid, 1, 18690, 2, -2.979508, 0.306475, -0.388553, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
				SetPlayerAttachedObject( playerid, 2, 18716, 2, -2.979508, 0.306475, -0.388553, 285.055511, 90.860740, 171.179550, 1.780549, 0.912008, 1.208514 );
                SendClientMessage( playerid, COLOR_VIP, "You have holded as {00FF00}Alien!" );
				SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
			}
			if ( listitem == 3 )
			{
			   	for ( new i = 0; i < 5; i++ )
         		{
					if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
					{
						RemovePlayerAttachedObject( playerid, i );
					}
				}
           		SetPlayerAttachedObject( playerid, 0, 18693, 5, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
				SetPlayerAttachedObject( playerid, 1, 18693, 6, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
				SetPlayerAttachedObject( playerid, 2, 18703, 6, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
				SetPlayerAttachedObject( playerid, 3, 18703, 5, 1.983503, 1.558882, -0.129482, 86.705787, 308.978118, 268.198822, 1.500000, 1.500000, 1.500000 );
				SetPlayerAttachedObject( playerid, 4, 18965, 2, 0.111052, 0.021643, -0.000846, 92.280899, 92.752510, 358.071044, 1.200000, 1.283168, 1.200000 );
				SendClientMessage( playerid, COLOR_VIP, "You have holded as {00FF00}Icread!" );
				SendClientMessage( playerid, COLOR_VIP, "To stop holding please type {00FF00}/stophold!" );
			}
			if ( listitem == 4 )
			{
			    SetPlayerSpecialAction( playerid, 2 ); //Jetpack!
				SendClientMessage( playerid, COLOR_VIP,"Jetpack Spawmed!" );
			}
		}
	}
	return 1;
}
//================================================================================================================================//
//======================================================== [ Commands v1.0 ] =====================================================//
CMD:setvip( playerid, params[ ] )
{
	new giveplayerid, level;
	new string[ 128 ], Query[ 256 ], DBResult:Resultat;

	if ( !IsPlayerAdmin( playerid ) ) return SendClientMessage( playerid, RED, "Only RCON Administrator can use this command!" );
	if ( sscanf( params, "ud", giveplayerid, level ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/setvip [playerid] [level]" );
	if ( giveplayerid == INVALID_PLAYER_ID ) return SendClientMessage( playerid, RED, "Player Is Not Connected!" );
 	if ( level > 3 ) return SendClientMessage( playerid, RED, "Maximum V.I.P level is 3!" );

 	if ( level == 0 )
 	{
		P_DATA[ giveplayerid ][ Vip ] = level;
		format( Query, sizeof( Query ), "DELETE FROM `Vips` WHERE `Nume` = '%s'" , PlayerName2( giveplayerid ) );
	 	db_query( Database, Query );
		format( string, sizeof( string ), "Administrator %s has deleted you V.I.P account!", PlayerName2( playerid ) );
		return SendClientMessage( giveplayerid, ABLUE, string );
	}

 	format( Query, sizeof( Query ), "SELECT * FROM `Vips` WHERE `Nume` = '%s'", PlayerName2( playerid ) );
	Resultat = db_query( Database, Query );

	if ( !db_num_rows( Resultat ) )
	{
	 	P_DATA[ giveplayerid ][ Vip ] = level;
	 	format( string, sizeof( string ), "Administrator %s has set your V.I.P level to %d!", PlayerName2( playerid ), level );
	 	SendClientMessage( giveplayerid, ABLUE, string );
	 	format( Query, sizeof( Query ), "INSERT INTO `Vips` VALUES('%s','%d','%d')", PlayerName2( giveplayerid ), level, -1 );
	 	db_query( Database, Query );
    } else {
        P_DATA[ giveplayerid ][ Vip ] = level;
        format( string, sizeof( string ), "Administrator %s has set update your V.I.P level to %d!", PlayerName2( playerid ), level );
	 	SendClientMessage( giveplayerid, ABLUE, string );
		format( Query, sizeof( Query ), "UPDATE `Vips` SET `VipLevel` = '%d' WHERE `Nume` = '%s'", level, PlayerName2( giveplayerid ) );
     	db_query( Database, Query );
	}
	db_free_result( Resultat );
	return 1;
}

CMD:vipgoto( playerid , params[ ] )
{
	new PID, string[ 128 ];
	new Float:x, Float:y, Float:z;

	if ( P_DATA[ playerid ][ Vip ] >= 2 )
	{
		if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vipgoto [playerid]" );

		GetPlayerPos( PID , x , y , z );
		SetPlayerInterior( playerid , GetPlayerInterior( PID ) );
		SetPlayerVirtualWorld( playerid , GetPlayerVirtualWorld( PID ) );
	    if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
	    {
			if ( GetPlayerState( playerid ) == PLAYER_STATE_DRIVER )
			{
				SetVehiclePos( GetPlayerVehicleID( playerid ) , x+3 , y , z );
				LinkVehicleToInterior( GetPlayerVehicleID( playerid ), GetPlayerInterior( PID ) );
				SetVehicleVirtualWorld( GetPlayerVehicleID( playerid ), GetPlayerVirtualWorld( PID ) );
				format( string , sizeof( string ), "You have teleported to %s's location!" , PlayerName2( PID ) );
				SendClientMessage( playerid ,COLOR_VIP ,string );
				format( string, sizeof( string ), "V.I.P {00FF00}%s(%d) {FF5500}has teleported to your location!", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ] );
				SendClientMessage( PID, COLOR_VIP, string );
				#if defined VIPS_SEND_COMMAND
				SendVipsCommand( playerid, "/vipgoto" );
				#endif
			} else {
				#if defined VIPS_SEND_COMMAND
				SendVipsCommand( playerid, "/vipgoto" );
				#endif
				SetPlayerPos( playerid , x+2 , y , z );
				format( string, sizeof( string ), "V.I.P {00FF00}%s(%d) {FF5500}has teleported to your location!", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ] );
				SendClientMessage( PID, COLOR_VIP, string );
				format( string , sizeof( string ), "You have teleported to %s's location!" , PlayerName2( PID ) );
				SendClientMessage( playerid ,COLOR_VIP ,string ); }
		} else {
		    SendClientMessage( playerid, RED, "Player not connected or is yourself!" ); }
	} else {
    	return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:spawnme( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		SpawnPlayer( playerid );
		SendClientMessage( playerid, COLOR_VIP, "You have been respawmed!" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/spawnme" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vips( playerid, params[ ] )
{
	new V, vstr[ 2048 ]; // I put big string to apeear all V.I.Ps

	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
		if ( IsPlayerConnected( i ) && P_DATA[ i ][ Vip ] > 0 )
		{
			format( vstr, 2048, "{FF5500}%s\n{FF5500}V.I.P {00FF00}%s {FF5500}- Level {00FF00}%d", vstr, ReturnPlayerName( i ), P_DATA[ i ][ Vip ] );
			V++;
		}
	}
	if ( V == 0 )
	{
		format ( vstr, sizeof( vstr ), "\n{E60000}No V.I.Ps online at the moment!" );
	}
	return ShowPlayerDialog( playerid, VIPS, DIALOG_STYLE_MSGBOX, "{00FF00}Online V.I.Ps:", vstr, "Quit", "" );
}

CMD:myweather( playerid, params[ ] )
{
	new weather, string[ 128 ];

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( sscanf( params, "d", weather ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/myweather [weatherid]" );
		if ( ( weather < 0 ) || ( weather > 52 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 52 weather ids!" );

		SetPlayerWeather( playerid, weather );
		format( string, sizeof( string ), "You have set your weather to {E60000}%d", weather );
		SendClientMessage( playerid, COLOR_VIP, string );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/myweather" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:mytime( playerid, params[ ] )
{
	new time, string[ 128 ];

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( sscanf( params, "d", time ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/mytime [time]" );
		if ( ( time < 0 ) || ( time > 24 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 24 hours you can set your time!" );

	    SetPlayerTime( playerid, time, 0 );
		format( string, sizeof( string ), "You have set your time to {E60000}%d", time );
		SendClientMessage( playerid, COLOR_VIP, string );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/mytime" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:myvw( playerid, params[ ] )
/*
With this function you will be ablle to change your virtual world!
Disponible Virtual Worlds are between 0 and 100 you can change to bigest or lowest on this line:
                        if ( ( vw < 0 ) || ( vw > 100 ) )
*/
{
    new vw, string[ 128 ];

    if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
	    if ( sscanf( params, "d", vw ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/myvw [virtualworld]" );
		if ( ( vw < 0 ) || ( vw > 100 ) ) return SendClientMessage( playerid, RED, "Only between 0 and 100 Virtual Worlds ar disponible!" );

		if ( vw == 0 )
		{
		    SetPlayerVirtualWorld( playerid, 0 );
		    return SendClientMessage( playerid, YELLOW, "You have returned back in normal world( 0 )!" );
		}
		SetPlayerVirtualWorld( playerid, vw );
		format( string, sizeof( string ), "You have set your Virtual World to {E60000}%d", vw );
		SendClientMessage( playerid, COLOR_VIP, string );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/myvw" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vasay( playerid, params[ ] )
{
	new VipMessage[ 180 ];

	if ( P_DATA[ playerid ][ Vip ] >= 2 )
	{
		if ( sscanf( params, "s[ 120 ]", VipMessage ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vasay [text]" );

		format( VipMessage, sizeof( VipMessage ), "V.I.P - %s {FFFF00}(lvl: %d): {00FF00}%s", PlayerName2( playerid ), P_DATA[ playerid ][ Vip ], VipMessage );
		SendClientMessageToAll( COLOR_VIP, VipMessage );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vasay" );
		#endif
	} else {
		return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:maxammo( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] == 3 )
	{
		SendPlayerMaxAmmo( playerid );
		SendClientMessage( playerid, COLOR_VIP, "You have added {00FF00}Max Ammo{FF5500} to your weapons!" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/MaxAmmo" );
		#endif
	} else {
	    return SendLevel( playerid, 3 ); }
    return 1;
}

CMD:vweapons( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 2 )
	{

		GivePlayerWeapon( playerid ,28, 120) ; //Weapons: Micro SMG || Ammo: 120
		GivePlayerWeapon( playerid, 31, 75 ); //Weapons: M4 || Gloante: 75
		GivePlayerWeapon( playerid, 34, 15 ); //Weapons: Sniper Rifle || Ammo: 15
		GivePlayerWeapon( playerid, 26, 100 ); //Weapons: Sawn-off Shotgun || Ammo: 100
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vweapons" );
		#endif
		//Else you can change and the weapons.You don't know the weapon ids? Check: https://sampwiki.blast.hk/wiki/Weaponsnl...7.86361348	} else {
	    return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:vspec( playerid, params[ ] )
{
    new PID, string[ 128 ];

    if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
    	if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vspec [playerid]" );

	    if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
	    {
			if ( GetPlayerState( PID ) == PLAYER_STATE_SPECTATING && P_DATA[ PID ][ SpecID ] != INVALID_PLAYER_ID )
			{
				if ( GetPlayerState( PID ) != 1 && GetPlayerState( PID ) != 2 && GetPlayerState( PID ) != 3)
				{
					SpectatePlayer( playerid, PID );
					GetPlayerPos( playerid, Position[ playerid ][ 0 ], Position[ playerid ][ 1 ], Position[ playerid ][ 2 ] );
					GetPlayerFacingAngle( playerid, Position[ playerid ][ 3 ] );
					format( string, sizeof( string ), "Now you spectating %s (%d)", PlayerName2( PID ), PID );
					SendClientMessage( playerid, COLOR_VIP, string );
					#if defined VIPS_SEND_COMMAND
					SendVipsCommand( playerid, "/vspec" );
					#endif
				} else {
					SendClientMessage( playerid, RED, "ERROR: Player not spawned!" ); }
			} else {
			    SendClientMessage( playerid, RED, "ERROR: Player spectating someone else!" ); }
		} else {
	 		SendClientMessage( playerid, RED, "ERROR: Player is not connected or is yourself!" ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vspecoff( playerid, params[ ] )
{
    if ( P_DATA[ playerid ][ Vip ] >= 1 )
    {
	    if ( P_DATA[ playerid ][ SpecType ] != ADMIN_SPEC_TYPE_NONE )
		{
			StopSpectate( playerid );
			SetTimerEx("ReturnPosition", 3000, 0, "d", playerid );
			SendClientMessage( playerid, COLOR_VIP, "You have stop spectating" );
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/vspecoff" );
			#endif
		} else {
			SendClientMessage( playerid, RED, "ERROR: You are not spectating" ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vsaveskin( playerid, params[ ] )
{
    new SkinID, string[ 128 ], Query[ 256 ];

 	if ( P_DATA[ playerid ][ Vip ] >= 2 )
	{
		SkinID = GetPlayerSkin( playerid );
		format( Query, sizeof( Query ), "UPDATE `Vips` SET `VSkin` = '%d' WHERE `Nume` = '%s' ", SkinID, PlayerName2( playerid ) );
		db_free_result( db_query( Database, Query ) );
		format( string, sizeof( string ), "You have successfully saved this skin (ID: %d)", SkinID );
		SendClientMessage( playerid, COLOR_VIP, string );
		SendClientMessage( playerid, COLOR_VIP, "Type /dontuseskin for don't save again this skin!" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vsaveskin" );
		#endif
	} else {
 		return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:dontuseskin( playerid, params[ ] )
{
	new Query[ 256 ];

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
	    format( Query, sizeof( Query ), "UPDATE `Vips` SET `VSkin` = '-1' WHERE `Nume` = '%s' ", PlayerName2( playerid ) );
	    db_free_result( db_query( Database, Query ) );
	    #if defined VIPS_SEND_COMMAND
	    SendVipsCommand( playerid, "/dontuseskin" );
	    #endif
	    SendClientMessage( playerid, COLOR_VIP, "Your saved skin is never been used!" );
	} else {
	    return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:mycolor( playerid, params[ ] )
{
	new Colour, colour[ 24 ];

    if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( sscanf( params, "d", Colour ) ) return Send2Clients( playerid, "/mycolor [color]", "0 = Black | 1 = White | 2 = Red | 3 = Orange | 4 = Yellow | 5 = Green | 6 = Blue | 7 = Purple | 8 = Brown" );
		if ( Colour > 8 ) return SendClientMessage( playerid, RED, "Colours: 0 = Black | 1 = White | 2 = Red | 3 = Orange | 4 = Yellow | 5 = Green | 6 = Blue | 7 = Purple | 8 = Brown" );

		switch ( Colour ) {
	 	case 0: { SetPlayerColor( playerid, 0x000000AA ); colour = "Black"; }
	  	case 1: { SetPlayerColor( playerid, 0xFFFFFFAA ); colour = "White"; }
	   	case 2: { SetPlayerColor( playerid, 0xE60000AA ); colour = "Red"; }
	   	case 3: { SetPlayerColor( playerid, 0xFF5500AA ); colour = "Orange"; }
		case 4: { SetPlayerColor( playerid, 0xFFFF00AA ); colour = "Yellow"; }
		case 5: { SetPlayerColor( playerid, 0x00FF00AA ); colour = "Green"; }
		case 6: { SetPlayerColor( playerid, 0x0000BBAA ); colour = "Blue"; }
		case 7: { SetPlayerColor( playerid, 0x800080AA ); colour = "Purple"; }
		case 8: { SetPlayerColor( playerid, 0xA52A2AAA ); colour = "Brown"; } }
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/mycolor" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
    return 1;
}

CMD:vcmds( playerid, params[ ] )
{
	new string[ 1024 ];

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		strcat( string, "{FF5500}V.I.P Level {00FF00}1 {FF5500}Commands:\t{FF5500}V.I.P Level {00FF00}2 {FF5500}Commands:\t{FF5500}V.I.P Level {00FF00}3 {FF5500}Commands:\n\n" );
		strcat( string, "{FFFF00}/mytime\t\t\t/vsaveskin\t\t\t/vkick\n" );
		strcat( string, "/myweather\t\t\t/dontuseskin\t\t\t/vget\n" );
		strcat( string, "/myvw\t\t\t\t/vweapons\t\t\t/rw\n" );
		strcat( string, "/mycolor\t\t\t/vipgoto\t\t\t/maxammo\n" );
		strcat( string, "/vspec\t\t\t\t/vasay\t\t\t\t\n" );
		strcat( string, "/vspecoff\n/spawnme\n/vcmds\n" );
		strcat( string, "{E60000}/ltc[1-13]\t\t\t/vipgod\t\t\t/vannounce\n" );
		strcat( string, "{E60000}/godcar\n/vcar\n/vspa\n/stophold\n/viphouse\n" );
		strcat( string, "\t\t\t\t{FFFF00}+V.I.P level 1 CMDS\t\t+ V.I.P level 1&2 CMDS\n\n\n" );
		strcat( string, "{FF5500}Use simbol {00FF00}! {FF5500}in front of your text to speak in V.I.P Chat\n" );
		ShowPlayerDialog( playerid, VIPCMDS, DIALOG_STYLE_MSGBOX, "V.I.P Commands:", string, "Quit", "" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vcmds" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vget( playerid, params[ ] )
{
	new PID, string[ 256 ];
	new Float:x, Float:y, Float:z;

    if ( P_DATA[ playerid ][ Vip ] == 3 )
	{
	    if ( sscanf( params, "u", PID ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vget [playerid]" );

	 	if ( IsPlayerConnected( PID ) && PID != INVALID_PLAYER_ID && PID != playerid )
		{
			GetPlayerPos( playerid, x, y, z );
		 	SetPlayerInterior( PID, GetPlayerInterior( playerid ) );
			SetPlayerVirtualWorld( PID, GetPlayerVirtualWorld( playerid ) );
			if ( GetPlayerState( PID ) == 2 )
			{
			    new VehicleID = GetPlayerVehicleID( PID );
				SetVehiclePos( VehicleID, x+3, y, z);
				LinkVehicleToInterior( VehicleID, GetPlayerInterior( PID ) );
				SetVehicleVirtualWorld( GetPlayerVehicleID( PID ), GetPlayerVirtualWorld( PID ) );
				format( string, sizeof( string ),"You have been teleported to V.I.P {00FF00}%s's {FF5500}location", PlayerName2( playerid ) );
				SendClientMessage( PID, COLOR_VIP, string );
				format( string, sizeof( string ),"You have teleported {00FF00}%s {FF5500}to your location", PlayerName2( PID ) );
				SendClientMessage( playerid, COLOR_VIP, string );
				#if defined VIPS_SEND_COMMAND
				SendVipsCommand( playerid, "/vget" );
				#endif
			} else {
				SetPlayerPos( PID, x+2, y, z );
				#if defined VIPS_SEND_COMMAND
				SendVipsCommand( playerid, "/vget" );
				#endif
				format( string, sizeof( string ),"You have been teleported to V.I.P {00FF00}%s's {FF5500}location", PlayerName2( playerid ) );
				SendClientMessage( PID, COLOR_VIP, string );
				format( string, sizeof( string ),"You have teleported {00FF00}%s {FF5500}to your location", PlayerName2( PID ) );
			 	SendClientMessage( playerid, COLOR_VIP, string ); }
		} else {
			SendClientMessage( playerid, RED, "Player is not connected or is yourself!" ); }
	} else {
	    return SendLevel( playerid, 3 ); }
	return 1;
}

CMD:vkick( playerid, params[ ] )
{
    new string[ 128 ];

    if ( P_DATA[ playerid ][ Vip ] == 3 )
    {
        if ( sscanf( params, "us[ 128 ]", params[ 0 ], params[ 1 ] ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vkick [playerid] [reason]" );

        if ( IsPlayerConnected( params[ 0 ] ) && params[ 0 ] != INVALID_PLAYER_ID && params[ 0 ] != playerid )
        {
            if ( !strlen( params[ 1 ] ) )
            {
				format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P {00FF00}%s {FF5500}[no reason given]!",PlayerName2( params[ 0 ] ), PlayerName2( playerid ) );
                SendClientMessageToAll( GREEN, string );
                Kick( params[ 0 ] );

                #if defined VIPS_SEND_COMMAND
                SendVipsCommand( playerid, "/vkick" );
                #endif
        	} else {

            	#if defined VIPS_SEND_COMMAND
                SendVipsCommand( playerid, "/vkick" );
                #endif

                format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P {00FF00}%s {FF5500}[reason: {00FF00%s{FF5500}] ", PlayerName2( params[ 0 ] ), PlayerName2( playerid ), params[ 1 ] );
                SendClientMessageToAll( GREEN, string );
                Kick( params[ 0 ] ); }
        } else {
                SendClientMessage( playerid, RED, "Player is not connected or is yourself!" ); }
	} else {
    return SendLevel( playerid, 3 ); }
	return 1;
}

CMD:rw( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] == 3 )
	{
		GivePlayerWeapon( playerid, 4, 1); //Knife
		GivePlayerWeapon( playerid, 28, 1000); // Micro - SMG
		GivePlayerWeapon( playerid, 26, 100); // Sawn-off Shotgun
		GivePlayerWeapon( playerid, 22, 500); // 9mm Pistol
		//Source: https://sampwiki.blast.hk/wiki/Weapons !
		SendClientMessage( playerid, COLOR_VIP, "You got an Runing Weapons package!" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vkick" );
		#endif
	} else {
	    return SendLevel( playerid, 3 ); }
	return 1;
}
//================================================================================================================================//
//===================================================== [ Comenzi v2.0 ] =========================================================//
CMD:vipgod( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 2 )
	{
	    if ( P_DATA[ playerid ][ God ] == 1 )
	    {
			P_DATA[ playerid ][ God ] = 1;
			SendClientMessage( playerid, COLOR_VIP, "You have activated the V.I.P {00FF00}God Mode!" );
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/vipgod" );
			#endif
		} else {
		    #if defined VIPS_SEND_COMMAND
		    SendVipsCommand( playerid, "/vipgod" );
		    #endif
		    P_DATA[ playerid ][ God ] = 0; }
	} else {
	    return SendLevel( playerid, 2 ); }
	return 1;
}

CMD:godcar( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
	    if ( P_DATA[ playerid ][ CarGod ] == 1 )
	    {
			P_DATA[ playerid ][ CarGod ] = 1;
			SendClientMessage( playerid, COLOR_VIP, "You have activated the Vehicle {00FF00}God Mode!" );
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/GodCar" );
			#endif
		} else {
		    #if defined VIPS_SEND_COMMAND
		    SendVipsCommand( playerid, "/GodCar" );
		    #endif
		    P_DATA[ playerid ][ CarGod ] = 0; }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc1( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle" );
		} else  {
		    #if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc1" );
			#endif
			GetPlayerPos( playerid, x, y, z);
			GetPlayerFacingAngle( playerid, Angle );
	    	VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, VehiclulRt, 0);
	  		AddVehicleComponent( VehiclulRt, 1028 );	AddVehicleComponent( VehiclulRt, 1030 );	AddVehicleComponent( VehiclulRt, 1031 );	AddVehicleComponent( VehiclulRt, 1138 );	AddVehicleComponent(VehiclulRt, 1140);  AddVehicleComponent(VehiclulRt, 1170);
	    	AddVehicleComponent( VehiclulRt, 1028 );	AddVehicleComponent( VehiclulRt, 1030 );	AddVehicleComponent( VehiclulRt, 1031 );	AddVehicleComponent( VehiclulRt, 1138 );	AddVehicleComponent(VehiclulRt, 1140);  AddVehicleComponent(VehiclulRt, 1170);
	    	AddVehicleComponent( VehiclulRt, 1080 );	AddVehicleComponent( VehiclulRt, 1086 ); 	AddVehicleComponent( VehiclulRt, 1087 ); 	AddVehicleComponent( VehiclulRt, 1010 );
			PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
			ChangeVehiclePaintjob( VehiclulRt, 0 );
	   		SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc2( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
	 		#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc2" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, VehiclulRt, 0 );
	  		AddVehicleComponent( VehiclulRt, 1028 );	AddVehicleComponent( VehiclulRt, 1030 );	AddVehicleComponent( VehiclulRt, 1031 );	AddVehicleComponent( VehiclulRt, 1138 );	AddVehicleComponent( VehiclulRt, 1140 );  AddVehicleComponent( VehiclulRt, 1170 );
		    AddVehicleComponent( VehiclulRt, 1028 );	AddVehicleComponent( VehiclulRt, 1030 );	AddVehicleComponent( VehiclulRt, 1031 );	AddVehicleComponent( VehiclulRt, 1138 );	AddVehicleComponent( VehiclulRt, 1140 );  AddVehicleComponent( VehiclulRt, 1170 );
		    AddVehicleComponent( VehiclulRt, 1080 );	AddVehicleComponent( VehiclulRt, 1086 ); 	AddVehicleComponent( VehiclulRt, 1087 ); 	AddVehicleComponent( VehiclulRt, 1010 );
			PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
			ChangeVehiclePaintjob( VehiclulRt, 1 );
		   	SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
		    LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc3( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, VehiclulRt;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
	 		#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc3" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
		    VehiclulRt = CreateVehicle( 560, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, VehiclulRt, 0 );
	  		AddVehicleComponent( VehiclulRt, 1028 );    AddVehicleComponent( VehiclulRt, 1138 );    AddVehicleComponent( VehiclulRt, 1170 );
	  		AddVehicleComponent( VehiclulRt, 1030 );	AddVehicleComponent( VehiclulRt, 1031 );	AddVehicleComponent( VehiclulRt, 1140 );
		    AddVehicleComponent( VehiclulRt, 1080 );	AddVehicleComponent( VehiclulRt, 1086 ); 	AddVehicleComponent( VehiclulRt, 1087 ); AddVehicleComponent( VehiclulRt, 1010 );
			PlayerPlaySound( playerid, 1133, 0.0, 0.0, 0.0 );
			ChangeVehiclePaintjob( VehiclulRt, 2 );
		   	SetVehicleVirtualWorld( VehiclulRt, GetPlayerVirtualWorld( playerid ) );
		    LinkVehicleToInterior( VehiclulRt, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc4( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
	 		#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc4" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 559, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
	    	AddVehicleComponent( carid, 1065 );    	AddVehicleComponent( carid, 1067 );     AddVehicleComponent( carid, 1073 );
			AddVehicleComponent( carid, 1162 );		AddVehicleComponent( carid, 1010 ); 	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc5( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
	 		#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc5" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
		    carid = CreateVehicle( 565, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
		    AddVehicleComponent( carid, 1046 ); 	AddVehicleComponent( carid, 1049 );     AddVehicleComponent( carid, 1073 );
			AddVehicleComponent( carid, 1053 ); 	AddVehicleComponent( carid, 1010 );  	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	 	return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc6( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc6" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
		    carid = CreateVehicle( 558, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
			AddVehicleComponent( carid, 1088 ); 	AddVehicleComponent( carid, 1092 );     AddVehicleComponent( carid, 1073 );
		 	AddVehicleComponent( carid, 1139 ); 	AddVehicleComponent( carid, 1010 );  	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
		  	LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	 } else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc7( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc7" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
		    carid = CreateVehicle( 561, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
			AddVehicleComponent( carid, 1055 ); 	AddVehicleComponent( carid, 1058 ); 	AddVehicleComponent( carid, 1073 );
			AddVehicleComponent( carid, 1064 ); 	AddVehicleComponent( carid, 1010 );  	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
		 	LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc8( playerid, params[ ] )
{
 	new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc8" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 562, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
		    AddVehicleComponent( carid, 1034 ); 	AddVehicleComponent( carid, 1038 );     AddVehicleComponent( carid, 1073 );
			AddVehicleComponent( carid, 1147 ); 	AddVehicleComponent( carid, 1010 );  	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc9( playerid, params[ ] )
{
	new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc9" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
		    carid = CreateVehicle( 567, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
		    AddVehicleComponent( carid, 1102 ); 	AddVehicleComponent( carid, 1129 );     AddVehicleComponent( carid, 1188 );     AddVehicleComponent( carid, 1087 );     AddVehicleComponent( carid, 1086 );
			AddVehicleComponent( carid, 1133 ); 	AddVehicleComponent( carid, 1186 );  	AddVehicleComponent( carid, 1010 ); 	AddVehicleComponent( carid, 1085 );   	ChangeVehiclePaintjob( carid, 1 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
		 	LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc10( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc10" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 558, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
	   		AddVehicleComponent( carid, 1092 ); 	AddVehicleComponent( carid, 1166 ); 	AddVehicleComponent( carid, 1165 ); 	AddVehicleComponent( carid, 1090 );
		    AddVehicleComponent( carid, 1094 ); 	AddVehicleComponent( carid, 1010 ); 	AddVehicleComponent( carid, 1087 ); 	AddVehicleComponent( carid, 1163 );
		    AddVehicleComponent( carid, 1091 ); 	ChangeVehiclePaintjob( carid, 2 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc11( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc11" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 557, x, y, z, Angle, 1, 1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
			AddVehicleComponent( carid, 1010 ); 	AddVehicleComponent( carid, 1081 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc12( playerid, params[ ] )
{
	new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc12" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 535, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
			ChangeVehiclePaintjob( carid, 1 ); 		AddVehicleComponent( carid, 1109 ); 	AddVehicleComponent( carid, 1115 ); 	AddVehicleComponent( carid, 1117 ); 	AddVehicleComponent( carid, 1073 ); 	AddVehicleComponent( carid, 1010 );
		    AddVehicleComponent( carid, 1087 ); 	AddVehicleComponent( carid, 1114 ); 	AddVehicleComponent( carid, 1081 ); 	AddVehicleComponent( carid, 1119 ); 	AddVehicleComponent( carid, 1121 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:ltc13( playerid, params[ ] )
{
	new Float:x, Float:y, Float:z, Float:Angle, carid;

	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED,"ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/ltc13" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 562, x, y, z, Angle, 1, -1, -1 );
			PutPlayerInVehicle( playerid, carid, 0 );
	  		AddVehicleComponent( carid, 1034 ); 	AddVehicleComponent( carid, 1038 ); 	AddVehicleComponent( carid, 1147 );
			AddVehicleComponent( carid, 1010 ); 	AddVehicleComponent( carid, 1073 ); 	ChangeVehiclePaintjob( carid, 0 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	  		LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
	} else {
	 	return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vcar( playerid, params[ ] )
{
    new Float:x, Float:y, Float:z, Float:Angle, carid;

    if ( P_DATA[ playerid ][ Vip ] >= 1 )
    {
	    if ( IsPlayerInAnyVehicle( playerid ) )
		{
			SendClientMessage( playerid, RED, "ERROR: You already have a vehicle!" );
		} else  {
			#if defined VIPS_SEND_COMMAND
			SendVipsCommand( playerid, "/vcar" );
			#endif
			GetPlayerPos( playerid, x, y, z );
			GetPlayerFacingAngle( playerid, Angle );
	        carid = CreateVehicle( 402, x, y, z, Angle, 0, 0, 0 ); // Car: Buffalo
			PutPlayerInVehicle( playerid, carid, 0 );
		   	SetVehicleVirtualWorld( carid, GetPlayerVirtualWorld( playerid ) );
	        LinkVehicleToInterior( carid, GetPlayerInterior( playerid ) ); }
		//Source: https://sampwiki.blast.hk/wiki/Vehicles:...7.86361348	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:vannounce( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] == 3 )
	{
	    if ( sscanf( params, "s[128]", params[ 0 ] ) ) return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vannounce [playerid]" );

	    GameTextForAll( params[ 0 ], 6000, 1 );
	    #if defined VIPS_SEND_COMMAND
	    SendVipsCommand( playerid, "/vannounce" );
	    #endif
	} else {
	   	return SendLevel( playerid, 3 ); }
	return 1;
}

CMD:vspa( playerid, params[ ] )// V.I.Ps Special Actions( Holds + Jetpack! )
{
	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		ShowPlayerDialog( playerid, VSPA, DIALOG_STYLE_LIST, "V.I.P Special Actions!", "Hold: Dick!\nHold: Iron!\nHold: Alien!\nHold: Incred!\nSpawn: JetPack!", "Select", "Cancel" );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/vspa" );
		#endif
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:stophold( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
		if( !IsPlayerAttachedObjectSlotUsed( playerid, 0  ) &&
		    !IsPlayerAttachedObjectSlotUsed( playerid, 1  ) &&
		    !IsPlayerAttachedObjectSlotUsed( playerid, 2  ) &&
		    !IsPlayerAttachedObjectSlotUsed( playerid, 3  ) &&
		    !IsPlayerAttachedObjectSlotUsed( playerid, 4  ) )
		return SendClientMessage( playerid, RED, "You are not holding any object" );

		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/stophold" );
		#endif

		for ( new i = 0; i < 5; i ++ )
		{
			if ( IsPlayerAttachedObjectSlotUsed( playerid, i ) )
			{
				RemovePlayerAttachedObject( playerid, i );
				SendClientMessage( i, RED, "You have stopped holding object!" );
			}
		}
	} else {
	    return SendLevel( playerid, 1 ); }
	return 1;
}

CMD:viphouse( playerid, params[ ] )
{
	if ( P_DATA[ playerid ][ Vip ] >= 1 )
	{
	    SetPlayerPos( playerid, -2637.69,1404.24,906.46 );
		SetPlayerInterior( playerid, 3 );
		RemovePlayerFromVehicle( playerid );
		#if defined VIPS_SEND_COMMAND
		SendVipsCommand( playerid, "/VipHouse" );
		#endif
		SendClientMessage( playerid, COLOR_VIP, "You have teleported to V.I.P House( Club )!" );
	} else {
		return SendLevel( playerid, 1 ); }
	return 1;
}
//================================================================================================================================//
//====================================================== [ public's ] ============================================================//
Public: SendLevel( playerid, level )
{
	if ( level == 1 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 1 or bigest to use this command!" );
	if ( level == 2 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 2 or bigest to use this command!" );
	if ( level == 3 ) return SendClientMessage( playerid, RED, "ERROR: You need to be V.I.P Level 3 to use this command!" );
	return 1;
}

Public: SendVipMessage( color, const string[ ] )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
		if ( IsPlayerConnected( i ) )
		{
			if ( P_DATA[ i ][ Vip ] >= 1 )
			{
			 	SendClientMessage( i, color, string );
			}
		}
	}
	return 1;
}

Public: ReturnPosition( playerid )
{
	SetPlayerPos( playerid, Position[ playerid ][ 0 ], Position[ playerid ][ 1 ], Position[ playerid ][ 2 ] );
	SetPlayerFacingAngle( playerid, Position[ playerid ][ 3 ] );
}

Public: GodUpdate( )
{
	for ( new i = 0; i < MAX_PLAYERS; i++ )
	{
		if ( IsPlayerConnected( i ) && P_DATA[ i ][ God ] == 1 )
		{
			SetPlayerHealth( i, 100000 );
		}
		if ( IsPlayerConnected( i ) && P_DATA[ i ][ CarGod ] == 1 && IsPlayerInAnyVehicle( i ) )
		{
			SetVehicleHealth( GetPlayerVehicleID( i ), 10000 );
		}
	}
}
//======================================================== [ Stocks ] ============================================================//
stock PlayerName2( i ){
	new n[ 24 ];
	GetPlayerName( i, n, 24 );
	return n;
}
stock ReturnPlayerName( id )
{
    new tehname[ MAX_PLAYER_NAME ];
    GetPlayerName( id, tehname, sizeof( tehname ) );
    return tehname;
}
stock SpectatePlayer( playerid, PID )
{
    new string[ 100 ], Float:health, Float:armour;

	for(new i = 0; i < MAX_PLAYERS; i++ )
	{
	    if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] == playerid )
		{
	       AdvanceSpectate( i );
		}
	}
		SetPlayerInterior( playerid, GetPlayerInterior( PID ) );
		TogglePlayerSpectating( playerid, 1 );
	if ( IsPlayerInAnyVehicle( PID ) )
	{
		PlayerSpectateVehicle( playerid, GetPlayerVehicleID( PID ) );
		P_DATA[ playerid ][ SpecID ] = PID;
		P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_VEHICLE;
	} else {
		PlayerSpectatePlayer( playerid, PID );
		P_DATA[ playerid ][ SpecID ] = PID;
		P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_PLAYER;
	}
	GetPlayerName( PID, string, sizeof( string ) );
	GetPlayerHealth( PID, health );
	GetPlayerArmour( PID, armour );
	format( string, sizeof( string ),"~n~~n~~n~~n~~n~~n~~n~n~~w~%s - id:%d~n~< sprint - jump >~n~~r~Health:%0.1f ~b~Armour:%0.1f~n~~g~$%d~n~~g~%d", string, PID, health, armour, GetPlayerMoney( PID ), GetPlayerScore( PID ) );
	GameTextForPlayer( playerid, string, 25000, 3 );
	return 1;
}
stock StopSpectate( playerid )
{
	TogglePlayerSpectating( playerid, 0 );
	P_DATA[ playerid ][ SpecID ] = INVALID_PLAYER_ID;
	P_DATA[ playerid ][ SpecType ] = ADMIN_SPEC_TYPE_NONE;
	GameTextForPlayer( playerid,"~n~~n~~n~~w~Spectate mode ended", 1000, 3 );
	return 1;
}
stock AdvanceSpectate( playerid )
{
    if ( ConnectedPlayers( ) == 2 )
	{
		StopSpectate( playerid );
		return 1;
	}
	if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
	{
	    for ( new i = P_DATA[ playerid ][ SpecID] +1; i <= MAX_PLAYERS; i++ )
		{
	    	if ( i == MAX_PLAYERS ) i = 0;
	        if ( IsPlayerConnected( i ) && i != playerid )
			{
				if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] != INVALID_PLAYER_ID || ( GetPlayerState( i ) != 1 && GetPlayerState( i ) != 2 && GetPlayerState( i ) != 3 ) )
				{
					continue;
				} else {
					SpectatePlayer( playerid, i );
					break;
				}
			}
		}
	}
	return 1;
}
stock ConnectedPlayers( )
{
	new Connected;
	for ( new i = 0; i < MAX_PLAYERS; i++ ) if ( IsPlayerConnected( i ) ) Connected++;
	return Connected;
}
stock Send2Clients( playerid, Client1[ ], Client2[ ] )
{
	new Str[ 256 ];
	format( Str, sizeof( Str ), "Usage: {FFFF00} %s", Client1 );
	SendClientMessage( playerid, RED, Str );
	format( Str, sizeof( Str ), "Colours: {00FF00} %s", Client2 );
	SendClientMessage( playerid, RED, Str );
	return 1;
}
#if defined VIPS_SEND_COMMAND
stock SendVipsCommand( playerid, cmdtext[ ] )
{
	new str[ 128 ];

	format( str, sizeof( str ),"[V.I.P] {00FF00}%s(%d) {FF5500}has used command {00FF00}%s", PlayerName2( playerid ), playerid, cmdtext );
	return SendVipMessage( COLOR_VIP, str );
}
#endif
stock ReverseSpectate( playerid )
{
    if ( ConnectedPlayers( ) == 2 )
	{
		StopSpectate( playerid );
	 	return 1;
 	}
	if ( GetPlayerState( playerid ) == PLAYER_STATE_SPECTATING && P_DATA[ playerid ][ SpecID ] != INVALID_PLAYER_ID )
	{
	    for ( new i = P_DATA[ playerid ][ SpecID ]-1; i >= 0; i-- )
		{
	    	if ( i == 0 ) i = MAX_PLAYERS;
	        if ( IsPlayerConnected( i ) && i != playerid )
			{
				if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ][ SpecID ] != INVALID_PLAYER_ID || ( GetPlayerState( i ) != 1 && GetPlayerState( i ) != 2 && GetPlayerState( i ) != 3 ) )
				{
					continue;
				} else {
					SpectatePlayer( playerid, i );
					break;
				}
			}
		}
	}
	return 1;
}
stock SendPlayerMaxAmmo( playerid )
{
	new slot, weap, ammo;

	for ( slot = 0; slot < 14; slot++ )
	{
    	GetPlayerWeaponData( playerid, slot, weap, ammo );
		if ( IsValidWeapon( weap ) )
		{
		   	GivePlayerWeapon( playerid, weap, 99999 );
		}
	}
	return 1;
}
stock IsValidWeapon( weaponid )
{
    if ( weaponid > 0 && weaponid < 19 || weaponid > 21 && weaponid < 47 ) return 1;
    return 0;
}
//============================================================ [ EOF ] ===========================================================//
Reply


Messages In This Thread
VIP Problem - by Vendicatori - 01.08.2012, 10:26
Re: VIP Problem - by Sting. - 01.08.2012, 10:31
Re: VIP Problem - by Devilxz97 - 01.08.2012, 10:33
Re: VIP Problem - by Vendicatori - 01.08.2012, 10:41
Re: VIP Problem - by doreto - 01.08.2012, 10:48
Re: VIP Problem - by Devilxz97 - 01.08.2012, 10:50
Re: VIP Problem - by doreto - 01.08.2012, 10:53
Re: VIP Problem - by Vendicatori - 01.08.2012, 11:02
Re: VIP Problem - by Majed - 01.08.2012, 11:03
Re: VIP Problem - by doreto - 01.08.2012, 11:10

Forum Jump:


Users browsing this thread: 1 Guest(s)