VIP System, v1.3
VIP System, v1.3
xxSPEEDYxx's
V.I.P System - NEW*
3 Levels
v2.0
COMMANDS - [v1.0]:
COMMANDS - [v2.0]:
#endif
#define VipCheck(%0,%1)\
do{\
if(P_DATA[(%0)][Vip] < (%1)){\
new Str[128];\
format(Str, 128, "~r~~h~ERROR!~n~~w~You need to be V.I.P level
~y~~h~%d ~w~to use this command!", (%1));\
return GameTextForPlayer((%0), Str, 3000, 4);\
}\
}\
while(False)
//============= [ 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,
p_FavSkin
};
db_query( Database, "CREATE TABLE IF NOT EXISTS `Vips` (`Key` INTEGER PRIMARY
KEY AUTOINCREMENT, `Nume` TEXT, `VipLevel` NUMERIC, `VSkin` NUMERIC)" );
return 1;
}
public OnFilterScriptExit( )
return db_close( Database );
format( Query, sizeof( Query ), "SELECT * FROM `Vips` WHERE `Nume` = '%s'",
PlayerName( playerid ) );
Result = db_query( Database, Query );
if ( Result )
{
if ( db_num_rows( Result ) )
{
db_get_field_assoc( Result, "VipLevel", Field, 4 );
P_DATA[ playerid ][ Vip ] = strval( Field );
db_get_field_assoc( Result, "VSkin", Field, 4 );
P_DATA[ playerid ][ p_FavSkin ] = strval( Field );
foreach(Player, i )
if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ]
[ SpecID ] == playerid )
AdvanceSpectate( i );
return 1;
}
public OnPlayerDeath( playerid, killerid, reason )
{
foreach(Player, 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 OnPlayerSpawn( playerid )
{
if ( P_DATA[ playerid ][ p_FavSkin ] != -1 )
SetPlayerSkin( playerid, P_DATA[ playerid ][ p_FavSkin ] );
return 1;
}
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 )
{
foreach(Player, 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 OnPlayerText( playerid, text[ ] )
{
new textstr[ 128 ];
switch( listitem )
{
case 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!" );
}
case 1:
{
for ( new i = 0; i < 5; i++ )
if ( IsPlayerAttachedObjectSlotUsed( playerid,
i ) )
RemovePlayerAttachedObject( playerid,
i );
new
string[ 128 ],
giveplayerid,
level
;
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!" );
VipCheck( playerid, 2 );
if ( IsPlayerConnected( PID ) )
return SendClientMessage( playerid, RED, "Player not connected or is
yourself!" );
GetPlayerPos( PID , x , y , z );
SetPlayerInterior( playerid , GetPlayerInterior( PID ) );
SetPlayerVirtualWorld( playerid , GetPlayerVirtualWorld( PID ) );
SpawnPlayer( playerid );
SendClientMessage( playerid, COLOR_VIP, "You have been respawmed!" );
#if defined VIPS_SEND_COMMAND
SendVipsCommand( playerid, "/spawnme" );
#endif
return 1;
}
CMD:vips( playerid, params[ ] )
{
new
V,
lsString[ 1024 ]
;
VipCheck( playerid, 1 );
VipCheck( playerid, 1 );
VipCheck( playerid, 1 );
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
return 1;
}
CMD:vasay( playerid, params[ ] )
{
new VipMessage[ 180 ];
VipCheck( playerid, 2 );
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
return 1;
}
CMD:vweapons( playerid, params[ ] )
{
VipCheck( playerid, 2 );
VipCheck( playerid, 1 );
if ( !IsPlayerConnected( PID ) )
return SendClientMessage( playerid, RED, "ERROR: Player is not
connected!" );
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
return 1;
}
CMD:vsaveskin( playerid, params[ ] )
{
VipCheck( playerid, 2 );
new
SkinID,
string[ 128 ]
;
if ( sscanf( params, "i", SkinID ) )
return SendClientMessage( playerid, RED, "USAGE: {FFFF00}/vsaveskin
[Current SkinID]" );
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 ( 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 ( !IsPlayerConnected( PID ) )
return SendClientMessage( playerid, RED, "Player is not connected or is
yourself!" );
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", PlayerName( playerid ) );
SendClientMessage( PID, COLOR_VIP, string );
format( string, sizeof( string ),"You have teleported {00FF00}%s
{FF5500}to your location", PlayerName( 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", PlayerName( playerid ) );
SendClientMessage( PID, COLOR_VIP, string );
format( string, sizeof( string ),"You have teleported {00FF00}%s
{FF5500}to your location", PlayerName( PID ) );
SendClientMessage( playerid, COLOR_VIP, string );
}
return 1;
}
CMD:vkick( playerid, params[ ] )
{
new string[ 128 ];
VipCheck( playerid, 3 );
if ( IsPlayerConnected( params[ 0 ] ) )
return SendClientMessage( playerid, RED, "Player is not connected !" );
if ( !strlen( params[ 1 ] ) )
{
format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P
{00FF00}%s {FF5500}[no reason given]!",PlayerName( params[ 0 ] ),
PlayerName( playerid ) );
SendClientMessageToAll( GREEN, string );
Kick( params[ 0 ] );
}
else
{
format( string, sizeof( string ), "%s {FF5500}has been kicked by V.I.P
{00FF00}%s {FF5500}[reason: {00FF00%s{FF5500}] ", PlayerName( params[ 0 ] ),
PlayerName( playerid ), params[ 1 ] );
SendClientMessageToAll( GREEN, string );
Kick( params[ 0 ] );
}
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
VipCheck( playerid, 1 );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
if ( IsPlayerInAnyVehicle( playerid ) )
return SendClientMessage( playerid, RED, "ERROR: You already have a
vehicle" );
//Source: http://wiki.sa-mp.com/wiki/Vehicles:All
return 1;
}
CMD:vannounce( playerid, params[ ] )
{
VipCheck( playerid, 1 );
foreach(Player, i )
if ( GetPlayerState( i ) == PLAYER_STATE_SPECTATING && P_DATA[ i ]
[ SpecID ] == playerid )
AdvanceSpectate( i );
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;
}