sfcnr/gamemodes/irresistible/cnr/commands/admin/admin_rcon.pwn

607 lines
22 KiB
Plaintext
Raw Normal View History

/*
* Irresistible Gaming (c) 2018
* Developed by Lorenc Pekaj
* Module: cnr/commands/admin/admin_rcon.pwn
* Purpose: level rcon administrator commands (cnr)
*/
/* ** Commands ** */
CMD:resetgangrespect( playerid, params[ ] )
{
if ( ! IsPlayerAdmin( playerid ) )
return 0;
// reset preloaded and database
foreach ( new g : gangs ) {
g_gangData[ g ] [ E_RESPECT ] = 0;
}
mysql_single_query( "UPDATE `GANGS` SET `RESPECT` = 0" );
SendGlobalMessage( -1, ""COL_PINK"[ADMIN]"COL_WHITE" %s(%d) has reset all gang respect!", ReturnPlayerName( playerid ), playerid );
return 1;
}
CMD:hitmanbudget( playerid, params[ ] )
{
if ( ! IsPlayerAdmin( playerid ) )
return 0;
new
amount;
if ( sscanf( params, "d", amount ) )
return SendUsage( playerid, "/hitmanbudget [AMOUNT]" );
UpdateServerVariable( "hitman_budget", GetGVarInt( "hitman_budget" ) + amount, 0.0, "", GLOBAL_VARTYPE_INT );
SendServerMessage( playerid, "Hitman budget now currently at %s.", number_format( GetGVarInt( "hitman_budget" ) ) );
return 1;
}
CMD:explosiverounds( playerid, params[ ] )
{
if ( ! IsPlayerAdmin( playerid ) )
return 0;
new
targetid, rounds;
if ( sscanf( params, "ud", targetid, rounds ) )
return SendUsage( playerid, "/explosiverounds [PLAYER_ID] [ROUNDS]" );
p_ExplosiveBullets[ targetid ] += rounds;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) %d explosive rounds.", ReturnPlayerName( targetid ), targetid, rounds );
ShowPlayerHelpDialog( targetid, 1500, "You have %d explosive bullets remaining.", p_ExplosiveBullets[ targetid ] );
return 1;
}
/*CMD:furnishhomes( playerid, params[ ] ) {
if ( ! IsPlayerAdmin( playerid ) ) return 0;
for ( new i = 0; i < MAX_HOUSES; i ++ ) if ( g_houseData[ i ] [ E_CREATED ] ) {
new interior = GetInteriorType( i );
if ( interior != -1 ) FillHomeWithFurniture( i, interior );
else SendServerMessage( playerid, "House ID %d has an invalid inteiror", i );
}
SendServerMessage( playerid, "All houses have been furnished." );
return 1;
}
stock GetInteriorType( houseid ) {
for ( new i = 0; i < sizeof( g_houseInteriors ); i ++ ) {
if ( IsPointToPoint( 2.0, g_houseInteriors[ i ] [ E_EX ], g_houseInteriors[ i ] [ E_EY ], g_houseInteriors[ i ] [ E_EZ ], g_houseData[ houseid ] [ E_TX ], g_houseData[ houseid ] [ E_TY ], g_houseData[ houseid ] [ E_TZ ] ) )
return i;
}
return -1;
}*/
CMD:updatepool( playerid, params[ ] )
{
new
poolid, pool, win, gamble;
if ( ! IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "ddD(0)D(0)", poolid, pool, win, gamble ) ) return SendError( playerid, "/updatepool [POOL_ID] [POOL_INCREMENT] [TOTAL_WON] [TOTAL_GAMBLED]" );
else if ( !Iter_Contains( CasinoPool, poolid ) ) return SendError( playerid, "This Pool ID does not exist!" );
else
{
UpdateCasinoPoolData( poolid, pool, win, gamble );
SendServerMessage( playerid, "You have updated pool id %d", poolid );
}
return 1;
}
CMD:updatedonortd( playerid, params[ ] )
{
new
targetid, Float: amount, reset;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "D(0)D(65535)F(0.0)", reset, targetid, amount ) ) return SendUsage( playerid, "/updatedonortd [RESET] [PLAYER_ID] [AMOUNT]" );
else
{
// Reset the top donor
if ( reset ) {
TextDrawSetString( g_TopDonorTD, "Nobody Donated :(" );
}
// Update it incase
UpdateGlobalDonated( targetid, amount );
SendServerMessage( playerid, "Updating latest donor now (player id %d, amount %f)", targetid, amount );
}
return 1;
}
CMD:destroygang( playerid, params[ ] )
{
new
gID
;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "d", gID ) ) return SendUsage( playerid, "/destroygang [GANG_ID]" );
else if ( gID < 0 || gID > MAX_GANGS ) return SendError( playerid, "Invalid gang ID." );
else if ( !Iter_Contains( gangs, gID ) ) return SendError( playerid, "Invalid gang ID." );
else
{
AddAdminLogLineFormatted( "%s(%d) has deleted a gang", ReturnPlayerName( playerid ), playerid );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[GANG]"COL_WHITE" You have destroyed \"%s\" which was the ID of %d.", g_gangData[ gID ] [ E_NAME ], gID );
DestroyGang( gID, false );
}
return 1;
}
CMD:time( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) )
return 0;
new
timeid;
if ( sscanf( params, "d", timeid ) )
return SendUsage( playerid, "/time [SECONDS]" );
g_WorldClockSeconds = timeid;
return 1;
}
CMD:playsound( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) )
return 0;
new
pID,
sound;
if ( sscanf( params, ""#sscanf_u"d", pID, sound ) )
return SendUsage( playerid, "/playsound [PLAYER_ID] [SOUND]" );
PlayerPlaySound( pID, sound, 0.0, 0.0, 0.0 );
return 1;
}
CMD:addgpci( playerid, params[ ] )
{
new
pID;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, #sscanf_u, pID ) ) SendUsage( playerid, "/addgpci [PLAYER_ID]");
else if ( !IsPlayerConnected( pID ) || IsPlayerNPC( pID ) ) return SendError( playerid, "Invalid Player ID." );
else
{
new
playerserial[ 45 ];
gpci( pID, playerserial, sizeof( playerserial ) );
AddFileLogLine( "gpci.txt", sprintf( "USER : %s , GPCI : %s\r\n", ReturnPlayerName( pID ), playerserial ) );
}
return 1;
}
CMD:vipdiscount( playerid, params[ ] )
{
new Float: percent;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "f", percent ) ) return SendUsage( playerid, "/vipdiscount [PERCENTAGE]" );
// else if ( percent < 50.0 || percent > 100.0 ) return SendError( playerid, "The percentage must be over 50 and less than 100." );
else
{
SendServerMessage( playerid, "V.I.P discount percentage set to %f! (old = %f)", percent, GetGVarFloat( "vip_discount" ) );
UpdateServerVariable( "vip_discount", 0, ( 1 - ( percent / 100 ) ), "", GLOBAL_VARTYPE_FLOAT );
}
return 1;
}
CMD:vipbonus( playerid, params[ ] )
{
new Float: percent;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "f", percent ) ) return SendUsage( playerid, "/vipbonus [PERCENTAGE]" );
else if ( percent < 0.0 || percent > 100.0 ) return SendError( playerid, "The percentage must be over 0 and less than 100." );
else
{
SendServerMessage( playerid, "V.I.P bonus percentage set to %f! (old = %f)", percent, GetGVarFloat( "vip_bonus" ) );
UpdateServerVariable( "vip_bonus", 0, ( percent / 100 ), "", GLOBAL_VARTYPE_FLOAT );
}
return 1;
}
CMD:blockip( playerid, params[ ] )
{
new address[16], timems;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if (sscanf(params, "ds[16]", timems, address)) SendUsage(playerid, "/blockip [TIME_MS] [IP_ADDRESS]");
else
{
SendClientMessageFormatted( playerid, -1, ""COL_GREY"[BLOCKED]"COL_WHITE" IP %s has been blocked (%d timems).", address, timems );
BlockIpAddress( address, timems );
}
return 1;
}
CMD:unblockip( playerid, params[ ] )
{
new address[16];
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if (sscanf(params, "s[16]", address)) SendUsage(playerid, "/unblockip [IP_ADDRESS]");
else
{
SendClientMessageFormatted( playerid, -1, ""COL_GREY"[BLOCKED]"COL_WHITE" IP %s has been unblocked.", address );
UnBlockIpAddress( address );
}
return 1;
}
CMD:svrquery( playerid, params[ ] )
{
new
szQuery[ 144 ];
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "s[144]", szQuery ) ) return SendUsage( playerid, "/svrquery [QUERY]" );
else if ( p_AccountID[ playerid ] != 1 ) return SendError( playerid, "No." );
else
{
SendServerMessage( playerid, "%s", szQuery );
mysql_function_query( dbHandle, szQuery, true, "OnQueryServerViaRCON", "i", playerid );
}
return 1;
}
thread OnQueryServerViaRCON( playerid )
{
new
rows, fields, affected = cache_affected_rows( );
cache_get_data( rows, fields );
SendClientMessageFormatted( playerid, COLOR_YELLOW, "Query Sent. (Rows: %d, Fields: %d, Affected: %d)", rows, fields, affected );
return 1;
}
#if ENABLED_SECURE_TRUCK == true
CMD:connectnpc( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
ConnectNPC( SECURE_TRUCK_DRIVER_NAME, "secureguard" );
SendServerMessage( playerid, "Connecting NPC now." );
return 1;
}
#endif
#if ENABLED_EASTER_EGG == true
CMD:setegg( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
if ( g_EasterHunt ) return SendError( playerid, "The " #EASTEREGG_NAME " hunt has already started." );
new
Float: X, Float: Y, Float: Z;
if ( GetPlayerPos( playerid, X, Y, Z ) ) {
if ( CreateEasterEgg( X, Y, Z ) != -1 ) {
SendServerMessage( playerid, "Planted " #EASTEREGG_NAME " at your current position." );
AddAdminLogLineFormatted( "%s(%d) has set a " #EASTEREGG_NAME "", ReturnPlayerName( playerid ), playerid );
}
else SendError( playerid, "There isn't enough room for another " #EASTEREGG_NAME "." );
}
return 1;
}
CMD:treasurehunt( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) )
return 0;
if ( Iter_Count(eastereggs) < 1 )
return SendError( playerid, "There are not enough " #EASTEREGG_NAME "s planted to start the treasure hunt." );
// if its false, destroy all egs
if ( ( g_EasterHunt = ! g_EasterHunt ) == false )
{
for ( new i = 0; i < MAX_EGGS; i ++)
DestroyEasterEgg( i );
}
// alert admin log
AddAdminLogLineFormatted( "%s(%d) has started a treasurehunt", ReturnPlayerName( playerid ), playerid );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_GOLD" Treasure Hunt has been %s", g_EasterHunt == true ? ("activated, look around for " #EASTEREGG_NAME "s and get a free gift.") : ("de-activated.") );
return 1;
}
#endif
CMD:addcomponent( playerid, params[ ] )
{
new
componentid;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "d", componentid ) ) return SendUsage( playerid, "/addcomponent [COMPONENT_ID]" );
else if ( !IsPlayerInAnyVehicle( playerid ) ) return SendError( playerid, "You need to be in a vehicle." );
else
{
new vehicleid = GetPlayerVehicleID( playerid );
AddVehicleComponent( vehicleid, componentid );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" Added componentid id %d to this vehicle.", componentid );
}
return 1;
}
CMD:replenishsafe( playerid, params[ ] )
{
new
rID;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "d", rID ) ) return SendUsage( playerid, "/replenishsafe [SAFE_ID]" );
else if (!Iter_Contains(RobberyCount, rID)) return SendError( playerid, "This is an invalid Safe ID." );
else
{
printf( "[GM:ADMIN] %s has replenished %d! (Success: %d)", ReturnPlayerName( playerid ), rID, setSafeReplenished( rID ) );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You've replenished Safe ID %d: "COL_GREY"%s"COL_WHITE".", rID, g_robberyData[ rID ] [ E_NAME ] );
}
return 1;
}
CMD:driveby( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
g_Driveby = !g_Driveby;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have %s driveby.", g_Driveby == false ? ("enabled") : ("disabled"));
return 1;
}
CMD:debug( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
g_Debugging = !g_Debugging;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have %s debugging.", g_Debugging == true ? ("enabled") : ("disabled"));
return 1;
}
CMD:vippm( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
g_VipPrivateMsging = !g_VipPrivateMsging;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have %s vip only messaging.", g_VipPrivateMsging == true ? ("enabled") : ("disabled"));
return 1;
}
CMD:logcmd( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
g_CommandLogging = !g_CommandLogging;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You are %s commands.", g_CommandLogging == true ? ("logging") : ("not logging"));
return 1;
}
CMD:logdialog( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
g_DialogLogging = !g_DialogLogging;
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You are %s dialogs.", g_CommandLogging == true ? ("logging") : ("not logging"));
return 1;
}
CMD:settaxrate( playerid, params[ ] )
{
new Float: rate;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "f", rate ) ) return SendUsage( playerid, "/settaxrate [PERCENTAGE]" );
else if ( rate < 0 || rate > 10.0 ) return SendError( playerid, "The rate must be over 0 and less than 10." );
else
{
SendServerMessage( playerid, "You have changed the tax rate from "COL_GREY"%0.2f"COL_WHITE" to "COL_GREY"%0.2f"COL_WHITE".", GetGVarFloat( "taxrate" ), rate );
UpdateServerVariable( "taxrate", 0, rate, "", GLOBAL_VARTYPE_FLOAT );
}
return 1;
}
CMD:settaxtime( playerid, params[ ] )
{
new time;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "d", time ) ) return SendUsage( playerid, "/settaxrate [TIMESTAMP]" );
else
{
if ( time < g_iTime ) {
SendServerMessage( playerid, "Tax time updated. Players to be taxed A.S.A.P.", secondstotime( time - g_iTime ) );
} else {
SendServerMessage( playerid, "Tax time updated. %s until tax.", secondstotime( time - g_iTime ) );
}
UpdateServerVariable( "taxtime", time, 0.0, "", GLOBAL_VARTYPE_INT );
}
return 1;
}
CMD:givewanted( playerid, params[ ] )
{
new
pID, wantedlvl
;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, wantedlvl ) ) SendUsage( playerid, "/givewanted [PLAYER_ID] [WANTED_LVL]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else
{
AddAdminLogLineFormatted( "%s(%d) has gave %s(%d) %d wanted level", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, wantedlvl );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have modified %s(%d)'s wanted level by %d.", ReturnPlayerName( pID ), pID, wantedlvl );
SendClientMessageFormatted( pID, -1, ""COL_PINK"[ADMIN]"COL_WHITE" Your wanted level has been modified by %s(%d).", ReturnPlayerName( playerid ), playerid );
GivePlayerWantedLevel( pID, wantedlvl );
}
return 1;
}
CMD:givescore( playerid, params[ ] )
{
new
pID, score
;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, score ) ) SendUsage( playerid, "/givescore [PLAYER_ID] [SCORE]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else
{
AddAdminLogLineFormatted( "%s(%d) has given %s(%d)'s %d score", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, score );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have given %s(%d) %d score!", ReturnPlayerName( pID ), pID, score );
SendClientMessageFormatted( pID, -1, ""COL_PINK"[ADMIN]"COL_WHITE" You have been given %d score from %s(%d)!", score, ReturnPlayerName( playerid ), playerid );
SetPlayerScore( pID, GetPlayerScore( pID ) + score );
}
return 1;
}
CMD:ping( playerid, params[ ] )
{
new ping;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, "d", ping ) ) return SendUsage( playerid, "/ping [PING]" );
else if ( ping < 200 ) return SendError( playerid, "The ping cannot be under 200." );
else
{
g_PingLimit = ping;
AddAdminLogLineFormatted( "%s(%d) set the ping limit to %d", ReturnPlayerName( playerid ), playerid, ping );
SendGlobalMessage( -1, ""COL_PINK"[ADMIN]"COL_WHITE" %s(%d) set the ping limit to %d", ReturnPlayerName( playerid ), playerid, ping );
}
return 1;
}
CMD:givexp( playerid, params [ ] )
{
new
pID,
xp
;
if ( !IsPlayerAdmin( playerid ) || !IsPlayerLorenc( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, xp ) ) SendUsage( playerid, "/givexp [PLAYER_ID] [XP_AMOUNT]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else
{
GivePlayerXP( pID, xp );
AddAdminLogLineFormatted( "%s(%d) has given %s(%d) %d XP", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, xp );
SendClientMessageFormatted( pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has given you %d XP.", ReturnPlayerName( playerid ), playerid, xp );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) %d XP.", ReturnPlayerName( pID ), pID, xp );
}
return 1;
}
CMD:giveip( playerid, params [ ] )
{
new
pID,
ip
;
if ( !IsPlayerAdmin( playerid ) || !IsPlayerLorenc( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, ip ) ) SendUsage( playerid, "/giveip [PLAYER_ID] [IP_AMOUNT]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else
{
GivePlayerIrresistiblePoints( pID, ip );
//AddAdminLogLineFormatted( "%s(%d) has given %s(%d) %d IP", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, ip );
//SendClientMessageFormatted( pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has given you %d IP.", ReturnPlayerName( playerid ), playerid, ip );
//SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) %d IP.", ReturnPlayerName( pID ), pID, ip );
}
return 1;
}
CMD:givecoins( playerid, params [ ] )
{
new
sendtoid,
Float: coins
;
if ( !IsPlayerAdmin( playerid ) || !IsPlayerLorenc( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"f", sendtoid, coins ) ) SendUsage( playerid, "/givecoins [PLAYER_ID] [COINS]" );
else if ( !IsPlayerConnected( sendtoid ) ) SendError( playerid, "Invalid Player ID." );
else
{
p_IrresistibleCoins[ sendtoid ] += coins;
AddAdminLogLineFormatted( "%s(%d) has given %s(%d) %0.2f IC", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( sendtoid ), sendtoid, coins );
SendClientMessageFormatted( sendtoid, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has given you %0.2f IC.", ReturnPlayerName( playerid ), playerid, coins );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) %0.2f IC.", ReturnPlayerName( sendtoid ), sendtoid, coins );
}
return 1;
}
CMD:givecash( playerid, params [ ] )
{
new
pID,
cash
;
if ( !IsPlayerAdmin( playerid ) || !IsPlayerLorenc( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, cash ) ) SendUsage( playerid, "/givecash [PLAYER_ID] [CASH]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else
{
GivePlayerCash( pID, cash );
AddAdminLogLineFormatted( "%s(%d) has given %s(%d) %d dollars", ReturnPlayerName( playerid ), playerid, ReturnPlayerName( pID ), pID, cash );
SendClientMessageFormatted( pID, -1, ""COL_PINK"[ADMIN]{FFFFFF} %s(%d) has given you "COL_GOLD"%s", ReturnPlayerName( playerid ), playerid, number_format( cash ) );
SendClientMessageFormatted( playerid, -1, ""COL_PINK"[ADMIN]{FFFFFF} You've given %s(%d) "COL_GOLD"%s", ReturnPlayerName( pID ), pID, number_format( cash ) );
}
return 1;
}
CMD:setviplevel( playerid, params[ ] )
{
new
pID,
level
;
if ( !IsPlayerAdmin( playerid ) || !IsPlayerLorenc( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, level ) ) return SendUsage( playerid, "/setviplevel [PLAYER_ID] [VIP_LEVEL]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else if ( p_PlayerLogged{ pID } == false ) return SendError( playerid, "This player is not logged in." );
else if ( level > VIP_DIAMOND || level < 0 ) return SendError( playerid, "Specify a level between 0 - 5 please!" );
else
{
SetPlayerVipLevel( pID, level );
SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP LEVEL]"COL_WHITE" You have set %s(%d)'s VIP package to %s.", ReturnPlayerName( pID ), pID, VIPToString( level ) );
SendClientMessageFormatted( pID, -1, ""COL_GOLD"[VIP LEVEL]"COL_WHITE" Your VIP package has been set to %s by %s(%d)", VIPToString( level ), ReturnPlayerName( playerid ), playerid );
}
return 1;
}
CMD:extendvip( playerid, params[ ] )
{
new
pID,
days
;
if ( !IsPlayerAdmin( playerid ) ) return 0;
else if ( sscanf( params, ""#sscanf_u"d", pID, days ) ) return SendUsage( playerid, "/extendvip [PLAYER_ID] [DAYS]" );
else if ( !IsPlayerConnected( pID ) ) SendError( playerid, "Invalid Player ID." );
else if ( p_VIPLevel[ pID ] < VIP_REGULAR ) return SendError( playerid, "This player doesn't have a V.I.P level." );
else if ( days < -365 || days > 365 ) return SendError( playerid, "Extension can only vary from -365 to 365 days." );
else
{
p_VIPExpiretime[ pID ] += ( days ) * 86400;
if ( days >= 0 )
{
SendClientMessageFormatted( pID, -1, ""COL_GOLD"[VIP EXTENSION]"COL_WHITE" You have had your V.I.P extended for "COL_GREEN"%d days"COL_WHITE" by %s(%d).", days, ReturnPlayerName( playerid ), playerid );
SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP EXTENSION]"COL_WHITE" You have extended %s(%d)'s V.I.P for "COL_GREEN"%d days"COL_WHITE".", ReturnPlayerName( pID ), pID, days );
}
else
{
days = days * -1; // conversion to whole number
SendClientMessageFormatted( pID, -1, ""COL_GOLD"[VIP EXTENSION]"COL_WHITE" You have had your V.I.P decremented for "COL_RED"%d days"COL_WHITE" by %s(%d).", days, ReturnPlayerName( playerid ), playerid );
SendClientMessageFormatted( playerid, -1, ""COL_GOLD"[VIP EXTENSION]"COL_WHITE" You have decremented %s(%d)'s V.I.P for "COL_RED"%d days"COL_WHITE".", ReturnPlayerName( pID ), pID, days );
}
}
return 1;
}
CMD:kickall( playerid, params[ ] )
{
if ( !IsPlayerAdmin( playerid ) ) return 0;
SetServerRule( "password", "updating" );
SendClientMessageToAll( -1, ""COL_PINK"[ADMIN]"COL_WHITE" Everyone has been kicked from the server due to a server update." );
for( new i; i < MAX_PLAYERS; i++ ) if ( IsPlayerConnected( i ) && ! IsPlayerNPC( i ) && p_AccountID[ i ] != 1 ) {
Kick( i );
}
return 1;
}