Quantcast
Channel: SA-MP Forums - Filterscripts
Viewing all articles
Browse latest Browse all 595

[FilterScript] Simple /pm system.

$
0
0
PHP Code:

/*
             __ _                 _          ___                       _                 
            / _(_)_ __ ___  _ __ | | ___    / _ \/\/\    ___ _   _ ___| |_ ___ _ __ ___  
            \ \| | '_ ` _ \| '_ \| |/ _ \  / /_)/    \  / __| | | / __| __/ _ \ '_ ` _ \
            _\ \ | | | | | | |_) | |  __/ / ___/ /\/\ \ \__ \ |_| \__ \ ||  __/ | | | | |
            \__/_|_| |_| |_| .__/|_|\___| \/   \/    \/ |___/\__, |___/\__\___|_| |_| |_|
                           |_|                               |___/                       
*/
/*|============================================================================================|*/
/*|========================================| INCLUDES |========================================|*/
#include         < a_samp >
#include         < sscanf2 >
#include         < zcmd >
#define         SPLIT            ( 85 )
#define         USAGE             "{02B0F5}"
#define         WHITE            "{FFFFFF}"
#define         RED             "{E85656}"
#define         ORANGE             "{DBB300}"
#define         ADMIN             "{9E4141}"
#define         GREEN             "{17BF41}"
/*|========================================| INCLUDES |========================================|*/
/*|============================================================================================|*/
/*|========================================| VARIABLES |=======================================|*/
new bool:PlayerBlockingPMMAX_PLAYERS ] [ MAX_PLAYERS ] = { false, ... }, bool:PMSblocked false;
/*|========================================| VARIABLES |=======================================|*/
/*|============================================================================================|*/
/*|========================================| CALLBACKS |=======================================|*/
public OnFilterScriptInit( ) {
    print( 
"|==========| PM SYSTEM |==========|" );
    print( 
"    By: Valentin Shadow" );
    print( 
"    Successfully loaded!" );
    print( 
"|==========| PM SYSTEM |==========|" );
    return ( 
true );
}

public 
OnPlayerDisconnectplayeridreason ) {
    for( new 
0MAX_PLAYERSi++ ) {
        
PlayerBlockingPMplayerid ] [ ] = false;
        
PlayerBlockingPM] [ playerid ] = false;
    }
    return ( 
true );
}
/*|========================================| CALLBACKS |=======================================|*/
/*|============================================================================================|*/
/*|========================================| FUNCTIONS |=======================================|*/
SendClientMessageExplayeridcolor, const text[ ], { Float}:... ) {
    static 
argsstr144 ];  
    if( ( 
args numargs( ) ) == ){
        
SendClientMessageplayeridcolortext );
    } else {
        while( --
args >= ) {
            
#emit LCTRL 5
            #emit LOAD.alt args
            #emit SHL.C.alt 2
            #emit ADD.C 12
            #emit ADD
            #emit LOAD.I
            #emit PUSH.pri
        
}
        
#emit PUSH.S text
        #emit PUSH.C 144
        #emit PUSH.C str
        #emit PUSH.S 8
        #emit SYSREQ.C format
        #emit LCTRL 5
        #emit SCTRL 4
        
SendClientMessage(playeridcolorstr);
        
#emit RETN
    
}
    return ( 
true );
}
PlayerNameplayerid ) {
    new 
nameMAX_PLAYER_NAME+];
    
GetPlayerNameplayeridnamesizeofname ) );
    return 
name;
}
PNameplayerid ) {
    new 
name24 ];
    
strmidnamestr_replace'_'' 'PlayerNameplayerid ) ), 0MAX_PLAYER_NAME );
    return 
name;
}
str_replacesSearchsReplace, const sSubject[ ] ) {
    new 
sReturn128 ];
    
formatsReturnsizeofsReturn ), sSubject );
    for( new 
0sizeofsReturn ); i++ ) {
        if( 
sReturn] == sSearch ) {
            
sReturn] = sReplace;
        }
    }
    return 
sReturn;
}
/*|========================================| FUNCTIONS |=======================================|*/
/*|============================================================================================|*/
/*|========================================| COMMANDS |========================================|*/
CMD:pmhelpplayerid ) return SendClientMessageExplayerid, -1""USAGE"| Commands: | "WHITE"/pm, /blockpm%s", ( IsPlayerAdminplayerid ) ) ? ( ", /togpms." ) : ( "." ) );
CMD:pmplayeridparams[ ] ) {
    new 
giveplayeridtext170 ];
    if( 
sscanfparams"us[170]"giveplayeridtext ) ) return SendClientMessageplayerid, -1""USAGE"| Usage: | "WHITE"/pm [Name_Surname/Player ID] [Text]" );
    else if( !
IsPlayerConnectedgiveplayerid ) ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"The specified player id isn't connected!" );
    else if( 
PlayerBlockingPMgiveplayerid ] [ playerid ] ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"The specified player id is blocking private messages from you!" );
    else if( 
giveplayerid == playerid ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"You can not private message yourself!" );
    else if( 
PMSblocked ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"An admin has "RED"blocked "WHITE"the private messages hence you are unable to send it!" );
    else if( 
strlentext ) > SPLIT ) {
        
SendClientMessageExgiveplayerid, -1""ORANGE"(( PM FROM: %s%s(%d)"ORANGE": %.*s ...", ( IsPlayerAdminplayerid ) ) ? ( ADMIN ) : ( ORANGE ), PNameplayerid ), playeridSPLITtext );
        
SendClientMessageExgiveplayerid, -1""ORANGE"..- %s ))"textSPLIT ] );
        
SendClientMessageExplayerid, -1""ORANGE"(( PM TO: %s%s(%d)"ORANGE": %.*s ...", ( IsPlayerAdmingiveplayerid ) ) ? ( ADMIN ) : ( ORANGE ), PNamegiveplayerid ), giveplayeridSPLITtext );
        
SendClientMessageExplayerid, -1""ORANGE"..- %s ))"textSPLIT ] );
    }
    else {
        
SendClientMessageExgiveplayerid, -1""ORANGE"(( PM FROM: %s%s(%d)"ORANGE": %s ))", ( IsPlayerAdminplayerid ) ) ? ( ADMIN ) : ( ORANGE ), PNameplayerid ), playeridtext );
        
SendClientMessageExplayerid, -1""ORANGE"(( PM TO: %s%s(%d)"ORANGE": %s ))", ( IsPlayerAdmingiveplayerid ) ) ? ( ADMIN ) : ( ORANGE ), PNamegiveplayerid ), giveplayeridtext );
    }
    return ( 
true );
}
CMD:blockpmplayeridparams[ ] ) {
    new 
giveplayerid;
    if( 
sscanfparams"u"giveplayerid ) ) return SendClientMessageplayerid, -1""USAGE"| Usage: | "WHITE"/blockpm [Name_Surname/Player ID]" );
    else if( !
IsPlayerConnectedgiveplayerid ) ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"The specified player id isn't connected!" );
    else if( 
giveplayerid == playerid ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"You can not block private messages from yourself!" );
    
PlayerBlockingPMplayerid ] [ giveplayerid ] = ( PlayerBlockingPMplayerid ] [ giveplayerid ] ) ? ( false ) : ( true );
    
SendClientMessageExplayerid, -1""RED"| WARNING: | "WHITE"You %s private messages from %s(%d)", ( PlayerBlockingPMplayerid ] [ giveplayerid ] ) ? ( ""RED"started blocking"WHITE"" ) : 
        ( 
""GREEN"stopped blocking"WHITE"" ), PNamegiveplayerid ), giveplayerid );
    return ( 
true );
}
CMD:togpmsplayerid ) {
    new 
str128 ];
    if( !
IsPlayerAdminplayerid ) ) return SendClientMessageplayerid, -1""RED"| ERROR: | "WHITE"You are not authorized to use this command as you're not logged in as an RCON administrator!" );
    
PMSblocked = ( PMSblocked ) ? ( false ) : ( true );
    
formatstrsizeofstr ), "An administrator has %s private messages for everyone!", ( PMSblocked ) ? ( ""RED"blocked"WHITE"" ) : ( ""GREEN"unblocked"WHITE"" ) );
    
SendClientMessageToAll( -1str );
    return ( 
true );
}
/*|========================================| COMMANDS |========================================|*/
/*|============================================================================================|*/ 

-> https://pastebin.com/jaEzLGF1
NOTE: I accept criticism and I'm willing to learn.

Viewing all articles
Browse latest Browse all 595

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>