Guest User

aft_PrivateMessages

a guest
Jan 5th, 2012
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 6.90 KB | None | 0 0
  1. //****************************************************************************//
  2. // - Sistema de 'Private Messages' desenvolvido por Adrian Fahrenheit Tepes - //
  3. //****************************************************************************//
  4.  
  5. //****************************************************************************//
  6. //  :: Versões ::
  7. //  ~ 1.0 ~
  8. //  CMD /pm [ID] [TEXTO] "Manda PM para um outro jogador"
  9. //  CMD /bdpm "Bloqueia e desbloqueia você de receber e mandar PMs"
  10. //  CMD /ignorar [ID] "Impede um outro jogador de mande/receba PMs de/para você"
  11. //  CMD /lerpms "Faz com que algum administrador leia todas as PMs" (ADMIN)
  12. //****************************************************************************//
  13.  
  14. #include    <a_samp>
  15. #include    <800p/pawno/include/sscanf2>
  16. #include    <zcmd>
  17.  
  18. #define     SCM                             SendClientMessage
  19.  
  20. #define     COR_CINZA                       0xAFAFAFAA
  21. #define     COR_PADRAO                      0xA9C4E4AA
  22. #define     COR_ERRO                        0xFF0000AA
  23.  
  24. enum a_Info
  25. {
  26.     bool:a_PPMBlock,
  27.     bool:a_LerPMs
  28. }
  29. new AFT_Info[MAX_PLAYERS][a_Info];
  30.  
  31. new jogador;
  32. new foignorado;
  33.  
  34. public OnFilterScriptInit()
  35. {
  36.     print("\n\n");
  37.     print(" Sistema private messages, criado por:\n\n");
  38.     print("         Adrian Fahrenheit Tepes\n\n\n");
  39.     return 1;
  40. }
  41.  
  42. public OnPlayerConnect(playerid)
  43. {
  44.     AFT_Info[playerid][a_PPMBlock] = false;
  45.     AFT_Info[playerid][a_LerPMs] = false;
  46.     return 1;
  47. }
  48.  
  49. public OnFilterScriptExit()
  50. {
  51.     return 1;
  52. }
  53.  
  54. CMD:pm(playerid, params[])
  55. {
  56.     new mensagem;
  57.     new str[128];
  58.     if(AFT_Info[playerid][a_PPMBlock]) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Você não pode enviar PMs, pois bloqueou o uso delas. Use: /bdpm para enviar e receber PMs");
  59.     if(sscanf(params, "us", jogador, mensagem)) SCM(playerid, COR_CINZA," * USE: /PM [ID] [TEXTO] *");
  60.     else
  61.     {
  62.         if(playerid == jogador) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Você não pode mandar PMs para si mesmo.");
  63.         if(!IsPlayerConnected(jogador)) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Este jogador não está online.");
  64.         if(AFT_Info[jogador][a_PPMBlock]) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Este jogador bloqueou o uso de PMs.");
  65.         format(str, sizeof(str), "jogador%d", playerid);
  66.         foignorado = GetPVarInt(jogador, str);
  67.         if(foignorado == 1) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Este jogador ignorou você.");
  68.         format(str, sizeof(str), "jogador%d", jogador);
  69.         foignorado = GetPVarInt(playerid, str);
  70.         if(foignorado == 1) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Você ignorou esse jogador.");
  71.         else
  72.         {
  73.             PlayerPlaySound(playerid, 1056, 0.0, 0.0, 0.0);
  74.             PlayerPlaySound(jogador, 1057, 0.0, 0.0, 0.0);
  75.             format(str, sizeof(str), " * {FF0000}» {FFFF00}[PM] {FFFFFF}- %s: %s {A9C4E4}*", Nome(playerid), mensagem);
  76.             SCM(jogador, COR_PADRAO, str);
  77.             GameTextForPlayer(jogador, "~y~PM ~g~RECEBIDA", 5000, 3);
  78.             format(str, sizeof(str), " * {00FF00}« {FFFF00}[PM] {FFFFFF}- %s: %s {A9C4E4}*", Nome(playerid), mensagem);
  79.             SCM(playerid, COR_PADRAO, str);
  80.             GameTextForPlayer(playerid, "~y~PM ~r~ENVIADA", 5000, 3);
  81.             format(str, sizeof(str), " * [PM] %s -> %s: %s *", Nome(playerid), Nome(jogador), mensagem);
  82.             a_AbrirLog("/Logs/PMs.log", str);
  83.             if(AFT_Info[playerid][a_LerPMs])
  84.             {
  85.                 format(str, sizeof(str), " * {FFFF00}[PM] {FFFFFF}%s {00FF00}» {FFFFFF}%s: %s {A9C4E4}*", Nome(playerid), Nome(jogador), mensagem);
  86.                 MensagemAdmin(COR_PADRAO, str);
  87.             }
  88.         }
  89.     }
  90.     return 1;
  91. }
  92.  
  93. CMD:bdpm(playerid, params[])
  94. {
  95.     if(!AFT_Info[playerid][a_PPMBlock]) AFT_Info[playerid][a_PPMBlock] = true;
  96.     else AFT_Info[playerid][a_PPMBlock] = false;
  97.     return 1;
  98. }
  99.  
  100. CMD:ignorar(playerid, params[])
  101. {
  102.     new str[128];
  103.     if(sscanf(params, "u", jogador)) SCM(playerid, COR_CINZA, " * USE: /ignorar [ID] *");
  104.     else
  105.     {
  106.         if(playerid == jogador) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Você não pode bloquear a si mesmo.");
  107.         if(!IsPlayerConnected(jogador)) return SCM(playerid, COR_CINZA, " * {FF0000}[ERRO] {AFAFAF}- Este jogador não está online.");
  108.         format(str, sizeof(str), "jogador%d", jogador);
  109.         foignorado = GetPVarInt(playerid, str);
  110.         if(foignorado == 0)
  111.         {
  112.             format(str, sizeof(str), "jogador%d", jogador);
  113.             SetPVarInt(playerid, str, 1);
  114.             format(str, sizeof(str), "{FFFF00} * Você ignorou o jogador %s *", Nome(jogador));
  115.             SCM(playerid, COR_PADRAO, str);
  116.         }
  117.         else
  118.         {
  119.             format(str, sizeof(str), "jogador%d", jogador);
  120.             SetPVarInt(playerid, str, 0);
  121.             format(str, sizeof(str), "{FFFF00} * Você agora poderá receber PMs do jogador %s *", Nome(jogador));
  122.             SCM(playerid, COR_PADRAO, str);
  123.         }
  124.     }
  125.     return 1;
  126. }
  127.  
  128. CMD:lerpms(playerid, params[])
  129. {
  130.     if(!AFT_Info[playerid][a_LerPMs]) AFT_Info[playerid][a_LerPMs] = true;
  131.     else AFT_Info[playerid][a_LerPMs] = false;
  132.     return 1;
  133. }
  134.  
  135. stock Nome(playerid)
  136. {
  137.     new pNome[MAX_PLAYER_NAME];
  138.     GetPlayerName(playerid, pNome, MAX_PLAYER_NAME);
  139.     return pNome;
  140. }
  141.  
  142. stock MensagemAdmin(cor, const string[])
  143. {
  144.     for(new i = 0; i < MAX_PLAYERS; i++)
  145.     {
  146.         if(IsPlayerAdmin(i))
  147.         {
  148.             SCM(i, cor, string);
  149.         }
  150.     }
  151.     return 1;
  152. }
  153.  
  154. stock a_AbrirLog(const File[], string[])
  155. {
  156.     new tlog[128];
  157.     new t[7];
  158.     getdate(t[0], t[1], t[2]);
  159.     gettime(t[3], t[4], t[5]);
  160.     format(tlog, sizeof(tlog), "(%d/%d/%d)[%02d:%02d:%d] %s\r\n",t[0],t[1],t[2],t[3],t[4],t[5], string);
  161.     if(!fexist(File))
  162.     {
  163.         new File:Arquivo = fopen(File, io_write);
  164.         fwrite(Arquivo, tlog);
  165.         fclose(Arquivo);
  166.     }
  167.     else
  168.     {
  169.         new File:Arquivo = fopen(File, io_append);
  170.         fwrite(Arquivo, tlog);
  171.         fclose(Arquivo);
  172.     }
  173.     return 1;
  174. }
  175.  
  176. //****************************************************************************//
  177. // - Sistema de 'Private Messages' desenvolvido por Adrian Fahrenheit Tepes - //
  178. //****************************************************************************//
  179.  
  180. //****************************************************************************//
  181. //  :: Versões ::
  182. //  ~ 1.0 ~
  183. //  CMD /pm [ID] [TEXTO] "Manda PM para um outro jogador"
  184. //  CMD /bdpm "Bloqueia e desbloqueia você de receber e mandar PMs"
  185. //  CMD /ignorar [ID] "Impede um outro jogador de mande/receba PMs de/para você"
  186. //  CMD /lerpms "Faz com que algum administrador leia todas as PMs" (ADMIN)
  187. //****************************************************************************//
Advertisement
Add Comment
Please, Sign In to add comment