Advertisement
Pedro_Miranda

[PAWN] - Sistema de mensagens privadas (Filterscript)

Apr 8th, 2012
215
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 5.31 KB | None | 0 0
  1. #include <a_samp>
  2. #include <zcmd>
  3. #include <sscanf2>
  4.  
  5. const DIALOG_MENU_PM = 1;
  6. const DIALOG_SEND_PM = 2;
  7.  
  8. new
  9.     bool: blockPM [ MAX_PLAYERS ] [ MAX_PLAYERS ];
  10.    
  11. public OnPlayerClickPlayer ( playerid , clickedplayerid , source ) {
  12.     new
  13.         name [ MAX_PLAYER_NAME ],
  14.         str[ 100 ];
  15.  
  16.     SetPVarInt ( playerid , "clickedplayerid" , clickedplayerid );
  17.     GetPlayerName( clickedplayerid , name , sizeof name );
  18.     format ( str , sizeof ( str ) , "Enviar PM para %s\nBloquear PM's de %s\nDesbloquear PM's de %s" , name , name , name );
  19.     ShowPlayerDialog ( playerid , DIALOG_MENU_PM , DIALOG_STYLE_LIST , "{FFFFFF}Menu: Mensagens Particulares" , str , "Selecionar", "Cancelar" );
  20.     return 1;
  21. }
  22.  
  23. public OnDialogResponse ( playerid , dialogid , response , listitem , inputtext [ ] ) {
  24.     new
  25.         str [ 100 ],
  26.         name [ 24 ];
  27.        
  28.     switch ( dialogid ) {
  29.         case DIALOG_MENU_PM: {
  30.             if ( !response ) {
  31.                 SetPVarInt ( playerid , "clickedplayerid", INVALID_PLAYER_ID );
  32.             }
  33.             else {
  34.                 switch ( listitem ) {
  35.                     case 0: {
  36.                         GetPlayerName ( GetPVarInt ( playerid , "clickedplayerid" ) , name , sizeof name );
  37.                         format ( str , sizeof str , "{FFFFFF}Digite abaixo a mensagem a ser enviada para {0000FF}%s" , name );
  38.                         ShowPlayerDialog ( playerid , DIALOG_SEND_PM , DIALOG_STYLE_INPUT , "{FFFFFF}Enviar mensagem particular" , str , "Enviar" , "Cancelar" );
  39.                     }
  40.                     case 1: {
  41.                         format ( str , 4 , "%i" , GetPVarInt ( playerid , "clickedplayerid" ) );
  42.                         cmd_blockpm ( playerid , str );
  43.                         SetPVarInt ( playerid , "clickedplayerid", INVALID_PLAYER_ID );
  44.                     }
  45.                     case 2: {
  46.                         format ( str , 4 , "%i" , GetPVarInt ( playerid , "clickedplayerid" ) );
  47.                         cmd_desblockpm ( playerid , str );
  48.                         SetPVarInt ( playerid , "clickedplayerid", INVALID_PLAYER_ID );
  49.                     }
  50.                 }
  51.             }
  52.         }
  53.         case DIALOG_SEND_PM: {
  54.             if ( !response ) {
  55.                 SetPVarInt ( playerid , "clickedplayerid", INVALID_PLAYER_ID );
  56.             }
  57.             else {
  58.                 format ( str , 100 , "%i %s" , GetPVarInt ( playerid , "clickedplayerid" ) , inputtext );
  59.                 cmd_pm ( playerid , str );
  60.                 SetPVarInt ( playerid , "clickedplayerid", INVALID_PLAYER_ID );
  61.             }
  62.         }
  63.     }
  64.     return 1;
  65. }
  66.    
  67. CMD:pm( playerid , params [ ] ) {
  68.     new
  69.         playerID,
  70.         pmText [ 90 ],
  71.         str [ 128 ],
  72.         name [ 24 ];
  73.        
  74.     if ( sscanf ( params , "us[90]" , playerID , pmText ) )
  75.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Use /PM [ID/Nome] [Texto]" );
  76.     if ( !IsPlayerConnected ( playerID  ) )
  77.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Jogador inativo.");
  78.     if ( playerID == INVALID_PLAYER_ID )
  79.         return SendClientMessage ( playerid , 0xFFFFFFFF , "ID Inválido." );
  80.     if ( blockPM [ playerID ] [ playerid ] )
  81.         return SendClientMessage ( playerid , 0xE31919FF , "Este jogador bloqueou mensagens particulares suas." );
  82.  
  83.     GetPlayerName ( playerid , name , sizeof name );
  84.     format ( str , sizeof ( str ) , "PM de %s: %s" , name , pmText );
  85.     SendClientMessage ( playerID , 0xF6F600FF , str );
  86.     SendClientMessage ( playerid , 0xF6F600FF , "Mensagem particular enviada." );
  87.     return true;
  88. }
  89.  
  90. CMD:blockpm ( playerid , params [ ] ) {
  91.     new
  92.         playerID,
  93.         str [ 90 ],
  94.         name [ 24 ];
  95.        
  96.     if ( sscanf ( params , "u" , playerID ) )
  97.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Use /blockpm [ID/Nome]" );
  98.     if ( !IsPlayerConnected ( playerID  ) )
  99.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Jogador inativo.");
  100.     if ( playerID == INVALID_PLAYER_ID )
  101.         return SendClientMessage ( playerid , 0xFFFFFFFF , "ID Inválido." );
  102.     if ( blockPM [ playerid ] [ playerID ] )
  103.         return SendClientMessage ( playerid , 0xE31919FF , "Você já bloqueou mensagens particulares deste jogador." );
  104.  
  105.     blockPM [ playerid ] [ playerID ] = true;
  106.     GetPlayerName ( playerID , name , sizeof ( name ) );
  107.     format ( str , sizeof ( str ) , "Mensagens particulares de %s bloqueadas!" , name );
  108.     SendClientMessage ( playerid , 0x00CD00FF , str );
  109.     GetPlayerName ( playerid , name , sizeof ( name ) );
  110.     format ( str , sizeof ( str ) , "O jogador %s bloqueou suas mensagens particulares." , name );
  111.     SendClientMessage ( playerID , 0xE31919FF , str );
  112.     return 1;
  113. }
  114.  
  115. CMD:desblockpm ( playerid , params [ ] ) {
  116.     new
  117.         playerID,
  118.         str [ 90 ],
  119.         name [ 24 ];
  120.  
  121.     if ( sscanf ( params , "u" , playerID ) )
  122.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Use /blockpm [ID/Nome]" );
  123.     if ( !IsPlayerConnected ( playerID  ) )
  124.         return SendClientMessage ( playerid , 0xFFFFFFFF , "Jogador inativo.");
  125.     if ( playerID == INVALID_PLAYER_ID )
  126.         return SendClientMessage ( playerid , 0xFFFFFFFF , "ID Inválido." );
  127.     if ( !blockPM [ playerid ] [ playerID ] )
  128.         return SendClientMessage ( playerid , 0xE31919FF , "Você não bloqueou mensagens particulares deste jogador." );
  129.  
  130.     blockPM [ playerid ] [ playerID ] = false;
  131.     GetPlayerName ( playerID , name , sizeof ( name ) );
  132.     format ( str , sizeof ( str ) , "Mensagens particulares de %s desbloqueadas!" , name );
  133.     SendClientMessage ( playerid , 0x00CD00FF , str );
  134.     GetPlayerName ( playerid , name , sizeof ( name ) );
  135.     format ( str , sizeof ( str ) , "O jogador %s desbloqueou suas mensagens particulares." , name );
  136.     SendClientMessage ( playerID , 0xE31919FF , str );
  137.     return 1;
  138. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement