Shadoww5

Telefone_ID.pwn

Jun 30th, 2011
533
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 51.51 KB | None | 0 0
  1. /*! FILTERSCRIPT DE TELEFONE DESENVOLVIDO POR SHADOWW5 !
  2.  
  3.            Contato: http://bit.ly/iT6xEw
  4.            Contato: http://bit.ly/iT6xEw
  5.  
  6.          http://forum.sa-mp.com/showthread.php?p=1269377
  7.  
  8.     NAO RETIRE OS CREDITOS !! NAO RETIRE OS CREDITOS !!
  9.  
  10.      OBS: ESTE SISTEMA USA O TELEFONE DOS JOGADORES*/
  11.  
  12. #define FILTERSCRIPT
  13.  
  14. #include <a_samp>
  15. #include <dini>
  16. #include <zcmd>
  17.  
  18. forward Msgs();
  19. forward Tel(playerid);
  20. forward ProxDetector(Float:radi, playerid, string[], col1, col2, col3, col4, col5);
  21. forward Desligar(playerid);
  22.  
  23. new str[170];
  24. new Cores[6] = {
  25. 0xE02A2AFF,
  26. 0x3CE02AFF,
  27. 0xED8E12FF,
  28. 0xED12BAFF,
  29. 0x4912EDFF,
  30. 0x12EDAFFF
  31. };
  32. new Timer[MAX_PLAYERS];
  33. new Telefonando[MAX_PLAYERS];
  34. new Jogador[MAX_PLAYERS];
  35. new bool:Telefone[MAX_PLAYERS];
  36. new bool:Sistema;
  37.  
  38. #define LOCALX 1406.14306641
  39. #define LOCALY -1785.00000000
  40. #define LOCALZ 13.23887730
  41.  
  42. #define CAIXADEENTRADA 840
  43. #define CAIXADESAIDA 841
  44. #define HISTORICO 842
  45. #define RECEBIDAS 843
  46. #define EFETUADAS 844
  47. #define COMPRAR 845
  48. #define VENDER 846
  49. #define LIMPAR 847
  50. #define AJUDA 848
  51. #define CLICK 849
  52. #define SMS 850
  53.  
  54. #define BRANCO 0xFFFFFFFF
  55. #define CINZA 0xD6D6D6FF
  56. #define VERMELHO 0xFF0000FF
  57. #define AMARELO 0xF7E200FF
  58. #define LARANJA 0xE89200FF
  59.  
  60.  
  61. public OnFilterScriptInit()
  62. {
  63.     print("---------------------------------------");
  64.     print("Sistema de Telefone criado por Shadoww5");
  65.     print("       CARREGADO COM SUCESSO !");
  66.     print("     Contato: http://bit.ly/iT6xEw");
  67.     print("---------------------------------------");
  68.     CreateObject(1216, LOCALX, LOCALY, LOCALZ, 0.0, 0.0, 0.0);
  69.     for(new i = 0; i < MAX_PLAYERS; i ++) { OnPlayerConnect(i); }
  70.     if(!fexist("Telefones.txt")) { dini_Create("Telefones.txt"); }
  71.     SetTimer("Msgs",420000, true);
  72.     Sistema = true;
  73.  
  74.     return 1;
  75. }
  76.  
  77. public OnFilterScriptExit()
  78. {
  79.     print("---------------------------------------");
  80.     print("Sistema de Telefone criado por Shadoww5");
  81.     print("      DESCARREGADO COM SUCESSO !");
  82.     print("    Contato: http://bit.ly/iT6xEw");
  83.     print("---------------------------------------");
  84.     for(new i = 0; i < MAX_PLAYERS; i ++) { OnPlayerDisconnect(i, 1); }
  85.     return 1;
  86. }
  87.  
  88. public OnPlayerConnect(playerid)
  89. {
  90.     new nome[MAX_PLAYER_NAME];
  91.     SendClientMessage(playerid,LARANJA,"Este servidor usa o FilterScript de Telefone criado por Shadoww5.");
  92.     SendClientMessage(playerid,BRANCO,"Para falar com {F7E200}Shadoww5{FFFFFF}, acesse: http://bit.ly/iT6xEw");
  93.     GetPlayerName(playerid, nome, sizeof nome);
  94.     format(str, sizeof str, "%s", nome);
  95.     if(dini_Isset("Telefones.txt", str)) { Telefone[playerid] = bool:dini_Bool("Telefones.txt", str); }
  96.     else { Telefone[playerid] = false; }
  97.     SetPVarInt(playerid, "Recebido", 1);
  98.     SetPVarInt(playerid, "Enviado", 1);
  99.     SetPVarInt(playerid, "Recebida", 1);
  100.     SetPVarInt(playerid, "Efetuada", 1);
  101.     SetPVarInt(playerid, "Telefone", 1);
  102.     SetPVarInt(playerid, "Vivavoz", 0);
  103.     return 1;
  104. }
  105.  
  106. public OnPlayerDisconnect(playerid, reason)
  107. {
  108.     new nome[MAX_PLAYER_NAME];
  109.     GetPlayerName(playerid, nome, sizeof nome);
  110.     format(str, sizeof str, "%s", nome);
  111.     dini_BoolSet("Telefones.txt", str, Telefone[playerid]);
  112.     return 1;
  113. }
  114.  
  115. CMD:ativar(playerid, params[])
  116. {
  117.     #pragma unused params
  118.     if(!IsPlayerAdmin(playerid))
  119.         return SendClientMessage(playerid, VERMELHO, "Você não está logado na RCON.");
  120.     else if(Sistema == true)
  121.         return SendClientMessage(playerid, VERMELHO, "O sistema já está ativado.");
  122.     Sistema = true;
  123.     SendClientMessage(playerid, AMARELO, "O serviço de telefonia foi ativado novamente. Para desativá-lo digite /desativar.");
  124.     return 1;
  125. }
  126.  
  127. CMD:desativar(playerid, params[])
  128. {
  129.     #pragma unused params
  130.     if(!IsPlayerAdmin(playerid))
  131.         return SendClientMessage(playerid, VERMELHO, "Você não está logado na RCON.");
  132.     else if(Sistema == false)
  133.         return SendClientMessage(playerid, VERMELHO, "O sistema já está desativado.");
  134.     for(new i = 0; i < MAX_PLAYERS; i ++)
  135.     {
  136.         if(Telefonando[i] > 0)
  137.         {
  138.             SendClientMessage(i, AMARELO, "Sua chamada foi desligada, pois o serviço de telefonia foi desativado.");
  139.             Telefonando[i] = 0;
  140.         }
  141.     }
  142.     Sistema = false;
  143.     SendClientMessage(playerid, AMARELO, "O serviço de telefonia foi desativado temporariamente ! Para reativá-lo digite /ativar.");
  144.     return 1;
  145. }
  146.  
  147. CMD:comprartel(playerid, params[])
  148. {
  149.     #pragma unused params
  150.     if(Telefone[playerid] == true)
  151.         return SendClientMessage(playerid, VERMELHO, "Você já tem um telefone.");
  152.     else if(GetPlayerMoney(playerid) < 500)
  153.         return SendClientMessage(playerid, VERMELHO, "Você deve ter, no minimo, 500 $ para comprar um celular.");
  154.     ShowPlayerDialog(playerid, COMPRAR, DIALOG_STYLE_MSGBOX, "Telefone:", "Você tem certeza que deseja comprar um celular no valor de 500 $ ?", "Sim", "Não");
  155.     return 1;
  156. }
  157.  
  158. CMD:vendertel(playerid, params[])
  159. {
  160.     #pragma unused params
  161.     if(Telefone[playerid] == false)
  162.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone.");
  163.     ShowPlayerDialog(playerid, VENDER, DIALOG_STYLE_MSGBOX, "Telefone:", "Você tem certeza que deseja vender seu celular ?", "Sim", "Não");
  164.     return 1;
  165. }
  166.  
  167. CMD:ligar(playerid, params[])
  168. {
  169.     new id, nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME];
  170.     if(sscanf(params, "u", id))
  171.         return SendClientMessage(playerid, CINZA, "USO: /ligar [nome do jogador / id]");
  172.     else if(Telefone[playerid] == false)
  173.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone. Para comprar digite /comprartel.");
  174.     else if(Sistema == false)
  175.         return SendClientMessage(playerid, VERMELHO, "O serviço de telefonia está temporariamente fora do ar. Tente novamente mais tarde.");
  176.     else if(GetPVarInt(playerid, "Telefone") == 0)
  177.         return SendClientMessage(playerid, VERMELHO, "O seu telefone está desligado. Para ligá-lo digite /ligarcel.");
  178.     else if(GetPlayerMoney(playerid) < 100)
  179.         return SendClientMessage(playerid, VERMELHO, "Você deve ter, no minimo, 100 $ para fazer uma ligação.");
  180.     else if(IsPlayerInRangeOfPoint(playerid, 3, LOCALX, LOCALY, LOCALZ) || Telefone[playerid] == true)
  181.     {
  182.         if(!IsPlayerConnected(id))
  183.             return SendClientMessage(playerid, VERMELHO, "Jogador OFFLINE.");
  184.         else if(id == playerid)
  185.             return SendClientMessage(playerid, VERMELHO, "Você não pode ligar para você mesmo.");
  186.         else if(Telefonando[playerid] != 0)
  187.             return SendClientMessage(playerid, VERMELHO, "Você já está em uma ligação. Para desligar digite /desligar.");
  188.         else if(GetPVarInt(id, "Telefone") == 0)
  189.             return SendClientMessage(playerid, VERMELHO, "O telefone deste jogador está desligado.");
  190.         else if(Telefonando[id] != 0)
  191.             return SendClientMessage(playerid, VERMELHO, "O telefone está ocupado. Ligue mais tarde !");
  192.         GetPlayerName(playerid, nome, sizeof nome);
  193.         GetPlayerName(id, nome2, sizeof nome2);
  194.         format(str, sizeof str, "%s está telefonando para %s.", nome, nome2);
  195.         ProxDetector(10, playerid, str, CINZA, CINZA, CINZA, CINZA, CINZA);
  196.         format(str, sizeof str, "Você está ligando para %s. Aguarde ...", nome2);
  197.         SendClientMessage(playerid, AMARELO, str);
  198.         format(str,sizeof str, "%s está te ligando. Digite /atender ou /desligar.", nome);
  199.         SendClientMessage(id, AMARELO, str);
  200.         Telefonando[playerid] = 1;
  201.         Telefonando[id] = 2;
  202.         SetPVarInt(id, "Contando", 4);
  203.         Timer[id] = SetTimerEx("Desligar", 15000, true, "i", id);
  204.         Jogador[playerid] = id;
  205.         Jogador[id] = playerid;
  206.  
  207.     }
  208.     else { SendClientMessage(playerid, VERMELHO, "Você não está em um orelhão ou não tem um celular."); }
  209.     return 1;
  210. }
  211.  
  212. CMD:sms(playerid, params[])
  213. {
  214.     new id, texto[128], str2[15], nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], h, m, s;
  215.     if(sscanf(params, "us[128]", id, texto))
  216.         return SendClientMessage(playerid, CINZA, "USO: /sms [nome do jogador / id] [mensagem]");
  217.     else if(Sistema == false)
  218.         return SendClientMessage(playerid, VERMELHO, "O serviço de telefonia está temporariamente fora do ar. Tente novamente mais tarde.");
  219.     else if(GetPVarInt(playerid, "Telefone") == 0)
  220.         return SendClientMessage(playerid, VERMELHO, "O seu telefone está desligado. Para ligá-lo digite /ligarcel.");
  221.     else if(GetPlayerMoney(playerid) < 50)
  222.         return SendClientMessage(playerid, VERMELHO, "Você deve ter, no minimo, 50 $ para mandar um SMS.");
  223.     else if(Telefone[playerid] == false)
  224.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone. Digite /comprartel.");
  225.     else if(!IsPlayerConnected(id))
  226.         return SendClientMessage(playerid, VERMELHO, "Jogador OFFLINE.");
  227.     else if(id == playerid)
  228.         return SendClientMessage(playerid, VERMELHO, "Você não mandar um SMS para você mesmo.");
  229.     else if(GetPVarInt(id, "Telefone") == 0)
  230.         return SendClientMessage(playerid, VERMELHO, "O telefone deste jogador está desligado.");
  231.     else if(strlen(texto) > 100)
  232.         return SendClientMessage(playerid, VERMELHO, "O SMS não pode ser enviado pois excedeu o limite de caracteres.");
  233.     GetPlayerName(playerid, nome, sizeof nome);
  234.     GetPlayerName(id, nome2, sizeof nome2);
  235.     format(str, sizeof str, "SMS enviado para %s [ID %d]: %s.", nome2, id, texto);
  236.     SendClientMessage(playerid, AMARELO, str);
  237.     format(str, sizeof str, "SMS recebido de %s [ID %d]: %s.", nome, playerid, texto);
  238.     SendClientMessage(id, AMARELO, str);
  239.     gettime(h, m, s);
  240.     if(GetPVarInt(playerid, "Enviado") <= 10)
  241.     {
  242.         format(str, sizeof str, "SMS enviado para %s [ID %d]: %s às %02d:%02d:%02d", nome2, id, texto, h, m, s);
  243.         format(str2, sizeof str2, "Enviado%d", GetPVarInt(playerid, "Enviado"));
  244.         SetPVarString(playerid, str2, str);
  245.         SetPVarInt(playerid, "Enviado", GetPVarInt(playerid, "Enviado")+1);
  246.     }
  247.     else { SendClientMessage(playerid, LARANJA, "Este SMS não pôde ser salvo, pois sua caixa de saída está cheia. Digite /limpar e selecione \"SMS - Caixa de saída\"."); }
  248.     if(GetPVarInt(id, "Recebido") <= 10)
  249.     {
  250.         format(str, sizeof str, "SMS recebido de %s [ID %d]: %s às %02d:%02d:%02d", nome, playerid, texto, h, m, s);
  251.         format(str2, sizeof str2, "Recebido%d", GetPVarInt(id, "Recebido"));
  252.         SetPVarString(id, str2, str);
  253.         SetPVarInt(id, "Recebido", GetPVarInt(id, "Recebido")+1);
  254.     }
  255.     else { SendClientMessage(id, LARANJA, "Este SMS não pôde ser salvo, pois sua caixa de entrada está cheia. Digite /limpar e selecione \"SMS - Caixa de Entrada\"."); }
  256.     if(strlen(texto) < 50) { GivePlayerMoney(playerid, -25); }
  257.     else { GivePlayerMoney(playerid, -50); }
  258.     return 1;
  259. }
  260.  
  261. CMD:historico(playerid, params[])
  262. {
  263.     #pragma unused params
  264.     if(Telefone[playerid] == false)
  265.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone.");
  266.     ShowPlayerDialog(playerid, HISTORICO, DIALOG_STYLE_LIST, "Historico do Telefone:", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar");
  267.     return 1;
  268. }
  269.  
  270. CMD:limpar(playerid, params[])
  271. {
  272.     #pragma unused params
  273.     if(Telefone[playerid] == false)
  274.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone.");
  275.     ShowPlayerDialog(playerid, LIMPAR, DIALOG_STYLE_LIST, "Qual historico você deseja limpar ?", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar");
  276.     return 1;
  277. }
  278.  
  279. CMD:desligarcel(playerid, params[])
  280. {
  281.     #pragma unused params
  282.     if(Telefone[playerid] == false)
  283.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone.");
  284.     else if(GetPVarInt(playerid, "Telefone") == 0)
  285.         return SendClientMessage(playerid, VERMELHO, "Seu telefone já está desligado.");
  286.     SendClientMessage(playerid, LARANJA, "Telefone desligado !");
  287.     SetPVarInt(playerid, "Telefone", 0);
  288.     return 1;
  289. }
  290.  
  291. CMD:ligarcel(playerid, params[])
  292. {
  293.     #pragma unused params
  294.     if(Telefone[playerid] == false)
  295.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone.");
  296.     else if(GetPVarInt(playerid, "Telefone") == 1)
  297.         return SendClientMessage(playerid, VERMELHO, "Seu telefone já está ligado.");
  298.     SendClientMessage(playerid, LARANJA, "Telefone ligado !");
  299.     SetPVarInt(playerid, "Telefone", 1);
  300.     return 1;
  301. }
  302.  
  303. CMD:vivavoz(playerid, params[])
  304. {
  305.     if(Telefone[playerid] == false)
  306.         return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone. Digite /comprartel.");
  307.     else if(Telefonando[playerid] == 0)
  308.         return SendClientMessage(playerid, VERMELHO, "Ninguém te ligou até o momento.");
  309.     else if(Telefonando[playerid] == 1)
  310.         return SendClientMessage(playerid, VERMELHO, "Aguarde até que a chamada seja atendida para ligar o vivavoz.");
  311.     else if(Telefonando[playerid] == 2)
  312.         return SendClientMessage(playerid, VERMELHO, "Você não pode usar o vivavoz, pois ainda não atendeu a chamada. Digite /atender.");
  313.     else if(GetPVarInt(playerid, "Vivavoz") == 1)
  314.     {
  315.         SetPVarInt(playerid, "Vivavoz", 0);
  316.         SendClientMessage(playerid, AMARELO, "Vivavoz desativado.");
  317.     }
  318.     else
  319.     {
  320.         SetPVarInt(playerid, "Vivavoz", 1);
  321.         SendClientMessage(playerid, AMARELO, "Vivavoz ativado.");
  322.     }
  323.     return 1;
  324. }
  325.  
  326. CMD:atender(playerid, params[])
  327. {
  328.     #pragma unused params
  329.     new nome[MAX_PLAYER_NAME];
  330.     if(Telefonando[playerid] == 0)
  331.         return SendClientMessage(playerid, VERMELHO, "Ninguém te ligou até o momento.");
  332.     else if(Telefonando[playerid] == 1)
  333.         return SendClientMessage(playerid, VERMELHO, "Você foi quem realizou a chamada e por isso não pode atendê-la.");
  334.     else if(Telefonando[playerid] == 3 || Telefonando[playerid] == 4)
  335.         return SendClientMessage(playerid, VERMELHO, "Você já atendeu a ligação. Para desligar digite /desligar.");
  336.     else if(Telefonando[playerid] == 2)
  337.     {
  338.         GetPlayerName(playerid, nome, sizeof nome);
  339.         format(str, sizeof str, "%s atendeu a chamada.", nome);
  340.         ProxDetector(10, playerid, str, CINZA, CINZA, CINZA, CINZA, CINZA);
  341.         Telefonando[playerid] = 4;
  342.         Telefonando[Jogador[playerid]] = 3;
  343.         SendClientMessage(playerid, AMARELO, "Você atendeu a chamada.");
  344.         SendClientMessage(Jogador[playerid], AMARELO, "Sua chamada foi atendida.");
  345.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_USECELLPHONE);
  346.         SetPlayerSpecialAction(Jogador[playerid], SPECIAL_ACTION_USECELLPHONE);
  347.         KillTimer(Timer[playerid]);
  348.         SetPVarInt(playerid, "Tempo", GetTickCount());
  349.         SetPVarInt(Jogador[playerid], "Tempo", GetTickCount());
  350.     }
  351.     return 1;
  352. }
  353.  
  354. CMD:desligar(playerid, params[])
  355. {
  356.     #pragma unused params
  357.     new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], h, m, s, time, str2[15];
  358.     if(Telefonando[playerid] == 0)
  359.         return SendClientMessage(playerid, VERMELHO, "Ninguém te ligou até o momento.");
  360.     else if(Telefonando[playerid] == 1)
  361.     {
  362.         SendClientMessage(playerid, LARANJA, "Você cancelou a chamada.");
  363.         SendClientMessage(Jogador[playerid], LARANJA, "A chamada foi cancelada.");
  364.         Telefonando[playerid] = 0;
  365.         Telefonando[Jogador[playerid]] = 0;
  366.     }
  367.     else if(Telefonando[playerid] == 2)
  368.     {
  369.         SendClientMessage(playerid, LARANJA, "Você recusou a chamada.");
  370.         Telefonando[playerid] = 0;
  371.         Telefonando[Jogador[playerid]] = 0;
  372.         KillTimer(Timer[playerid]);
  373.         SendClientMessage(Jogador[playerid], LARANJA, "Sua chamada foi recusada.");
  374.     }
  375.     else if(Telefonando[playerid] == 3)
  376.     {
  377.         GetPlayerName(playerid, nome, sizeof nome);
  378.         GetPlayerName(Jogador[playerid], nome2, sizeof nome2);
  379.         format(str, sizeof str, "%s desligou a chamada.",nome);
  380.         ProxDetector(10, playerid, str, CINZA, CINZA, CINZA, CINZA, CINZA);
  381.         SendClientMessage(Jogador[playerid], AMARELO, str);
  382.         Telefonando[playerid] = 0;
  383.         Telefonando[Jogador[playerid]] = 0;
  384.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  385.         SetPlayerSpecialAction(Jogador[playerid], SPECIAL_ACTION_STOPUSECELLPHONE);
  386.         time = GetTickCount() - GetPVarInt(playerid, "Tempo");
  387.         gettime(h, m, s);
  388.         if(time >= 0 && time < 30000)
  389.         {
  390.             GivePlayerMoney(playerid, -25);
  391.             GameTextForPlayer(playerid, "~w~CUSTO DA LIGACAO: ~r~25 $", 2000, 1);
  392.         }
  393.         else if(time >= 30000 && time < 60000)
  394.         {
  395.             GivePlayerMoney(playerid, -50);
  396.             GameTextForPlayer(playerid, "~w~CUSTO DA LIGACAO: ~r~50 $", 2000, 1);
  397.         }
  398.         else if(time >= 60000)
  399.         {
  400.             GivePlayerMoney(playerid, -100);
  401.             GameTextForPlayer(playerid, "~w~CUSTO DA LIGACAO: ~r~100 $", 2000, 1);
  402.         }
  403.         if(GetPVarInt(playerid, "Efetuada") <= 10)
  404.         {
  405.             format(str, sizeof str, "Ligação efetuada para %s [ID %d] às %02d:%02d:%02d", nome2,Jogador[playerid], h, m, s);
  406.             format(str2, sizeof str2, "Efetuada%d", GetPVarInt(playerid, "Efetuada"));
  407.             SetPVarString(playerid, str2, str);
  408.             SetPVarInt(playerid, "Efetuada", GetPVarInt(playerid, "Efetuada")+1);
  409.         }
  410.         else { SendClientMessage(playerid, LARANJA, "Esta ligação não pôde ser salva, pois o seu historico de ligações efetuadas atingiu o limite. Digite /limpar e selecione \"Ligações efetuadas\"."); }
  411.         if(GetPVarInt(Jogador[playerid], "Recebida") <= 10)
  412.         {
  413.             format(str, sizeof str, "Ligação recebida de %s [ID %d] às %02d:%02d:%02d", nome, playerid, h, m, s);
  414.             format(str2, sizeof str2, "Recebida%d", GetPVarInt(Jogador[playerid], "Recebida"));
  415.             SetPVarString(Jogador[playerid], str2, str);
  416.             SetPVarInt(Jogador[playerid], "Recebida", GetPVarInt(Jogador[playerid], "Recebida")+1);
  417.         }
  418.         else { SendClientMessage(Jogador[playerid], LARANJA, "Esta ligação não pôde ser salva, pois o seu historico de ligações recebidas atingiu o limite. Digite /limpar e selecione \"Ligações recebidas\"."); }
  419.     }
  420.     else if(Telefonando[playerid] == 4)
  421.     {
  422.         GetPlayerName(playerid, nome, sizeof nome);
  423.         GetPlayerName(Jogador[playerid], nome2, sizeof nome2);
  424.         format(str, sizeof str, "%s desligou a chamada.",nome);
  425.         ProxDetector(10, playerid, str, CINZA, CINZA, CINZA, CINZA, CINZA);
  426.         SendClientMessage(Jogador[playerid], AMARELO, str);
  427.         Telefonando[playerid] = 0;
  428.         Telefonando[Jogador[playerid]] = 0;
  429.         SetPlayerSpecialAction(playerid, SPECIAL_ACTION_STOPUSECELLPHONE);
  430.         SetPlayerSpecialAction(Jogador[playerid], SPECIAL_ACTION_STOPUSECELLPHONE);
  431.         time = GetTickCount() - GetPVarInt(playerid, "Tempo");
  432.         gettime(h, m, s);
  433.         if(time >= 0 && time < 30000)
  434.         {
  435.             GivePlayerMoney(Jogador[playerid], -25);
  436.             GameTextForPlayer(Jogador[playerid], "~w~CUSTO DA LIGACAO: ~r~25 $", 2000, 1);
  437.         }
  438.         else if(time >= 30000 && time < 60000)
  439.         {
  440.             GivePlayerMoney(Jogador[playerid], -50);
  441.             GameTextForPlayer(Jogador[playerid], "~w~CUSTO DA LIGACAO: ~r~50 $", 2000, 1);
  442.         }
  443.         else if(time >= 60000)
  444.         {
  445.             GivePlayerMoney(Jogador[playerid], -100);
  446.             GameTextForPlayer(Jogador[playerid], "~w~CUSTO DA LIGACAO: ~r~100 $", 2000, 1);
  447.         }
  448.         if(GetPVarInt(Jogador[playerid], "Efetuada") <= 10)
  449.         {
  450.             format(str, sizeof str, "Ligação efetuada para %s [ID %d] às %02d:%02d:%02d", nome, playerid, h, m, s);
  451.             format(str2, sizeof str2, "Efetuada%d", GetPVarInt(Jogador[playerid], "Efetuada"));
  452.             SetPVarString(Jogador[playerid], str2, str);
  453.             SetPVarInt(Jogador[playerid], "Efetuada", GetPVarInt(Jogador[playerid], "Efetuada")+1);
  454.         }
  455.         else { SendClientMessage(Jogador[playerid], LARANJA, "Esta ligação não pôde ser salva, pois o seu historico de ligações efetuadas atingiu o limite. Digite /limpar e selecione \"Ligações efetuadas\"."); }
  456.         if(GetPVarInt(playerid, "Recebida") <= 10)
  457.         {
  458.             format(str, sizeof str, "Ligação recebida de %s [ID %d] às %02d:%02d:%02d", nome2, Jogador[playerid], h, m, s);
  459.             format(str2, sizeof str2, "Recebida%d", GetPVarInt(playerid, "Recebida"));
  460.             SetPVarString(playerid, str2, str);
  461.             SetPVarInt(playerid, "Recebida", GetPVarInt(playerid, "Recebida")+1);
  462.         }
  463.         else { SendClientMessage(playerid, LARANJA, "Esta ligação não pôde ser salva, pois o seu historico de ligações recebidas atingiu o limite. Digite /limpar e selecione \"Ligações recebidas\"."); }
  464.     }
  465.     return 1;
  466. }
  467.  
  468. CMD:ajudatelefone(playerid, params[])
  469. {
  470.     #pragma unused params
  471.     new sString[955];
  472.     strcat(sString, "\t- /comprartel: Serve para comprar um telefone, caso você ainda não tenha.");
  473.     strcat(sString, "\n\t- /vendertel: Serve vender seu telefone.");
  474.     strcat(sString, "\n\t- /ligar: Serve para telefonar para alguém.");
  475.     strcat(sString, "\n\t- /sms: Serve para mandar um SMS para algum jogador.");
  476.     strcat(sString, "\n\t- /ligarcel: Serve para ligar seu celular.");
  477.     strcat(sString, "\n\t- /desligarcel: Serve para desligar seu celular.");
  478.     strcat(sString, "\n\t- /ativar: Serve para ativar o sistema de telefonia. ESTE COMANDO SÓ PODER SER USADO POR ADMINS !");
  479.     strcat(sString, "\n\t- /desativar: Serve para desativar o sistema de telefonia. ESTE COMANDO SÓ PODER SER USADO POR ADMINS !");
  480.     strcat(sString, "\n\t- /vivavoz: Serve para ativar o vivavoz. Desta forma, quem estiver proximo ao jogador poderá \'escutar\' a ligação.");
  481.     strcat(sString, "\n\t- /atender: Serve para atender uma ligação.");
  482.     strcat(sString, "\n\t- /desligar: Serve para desligar uma ligação.");
  483.     strcat(sString, "\n\nOBS¹: Caso você não tenha um telefone celular vá ao orelhão mais proximo e digite /ligar para realizar uma ligação.");
  484.     strcat(sString, "\nOBS²: Você também pode ligar ou mandar SMS clicando em um jogador na score board (aperte TAB e clique em alguem).");
  485.     ShowPlayerDialog(playerid, AJUDA, DIALOG_STYLE_MSGBOX, "Sistema de Telefone criado por Shadoww5 !", sString, "OK", "");
  486.     return 1;
  487. }
  488.  
  489. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  490. {
  491.     if(dialogid == COMPRAR)
  492.     {
  493.         if(response == 1)
  494.         {
  495.             new Float:Pos[3];
  496.             GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
  497.             PlayerPlaySound(playerid, 1054, Pos[0], Pos[1], Pos[2]);
  498.             GivePlayerMoney(playerid,-500);
  499.             SendClientMessage(playerid, LARANJA, "Você comprou um celular ! Para saber os comandos digite /ajudatelefone.");
  500.             SendClientMessage(playerid, BRANCO, "FilterScript criado por {F7E200}Shadoww5.");
  501.             Telefone[playerid] = true;
  502.         }
  503.         else { SendClientMessage(playerid, AMARELO,"Você cancelou a compra de um celular."); }
  504.     }
  505.     if(dialogid == VENDER)
  506.     {
  507.         if(response == 1)
  508.         {
  509.             new nome[MAX_PLAYER_NAME];
  510.             GetPlayerName(playerid, nome, sizeof nome);
  511.             Telefone[playerid] = false;
  512.             GivePlayerMoney(playerid, 150);
  513.             SendClientMessage(playerid, LARANJA, "Você vendeu seu celular por 150 $ !");
  514.             SendClientMessage(playerid, BRANCO, "FilterScript criado por {F7E200}Shadoww5.");
  515.             Telefone[playerid] = false;
  516.         }
  517.         else { SendClientMessage(playerid, AMARELO,"Você cancelou a venda do seu celular."); }
  518.     }
  519.     if(dialogid == CLICK)
  520.     {
  521.         if(response == 1)
  522.         {
  523.             if(listitem == 0)
  524.             {
  525.                 new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME];
  526.                 if(Telefone[playerid] == false)
  527.                     return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone. Digite /comprartel.");
  528.                 else if(Sistema == false)
  529.                     return SendClientMessage(playerid, VERMELHO, "O serviço de telefonia está temporariamente fora do ar. Tente novamente mais tarde.");
  530.                 else if(GetPVarInt(playerid, "Telefone") == 0)
  531.                     return SendClientMessage(playerid, VERMELHO, "O seu telefone está desligado. Para ligá-lo digite /ligarcel.");
  532.                 else if(Telefone[Jogador[playerid]] == false)
  533.                     return SendClientMessage(playerid, VERMELHO, "Este jogador não tem telefone.");
  534.                 else if(Telefonando[playerid] > 0)
  535.                     return SendClientMessage(playerid, LARANJA, "Você já está em uma ligação. Digite /desligar.");
  536.                 else if(Telefonando[Jogador[playerid]] != 0)
  537.                     return SendClientMessage(playerid, LARANJA, "O telefone está ocupado. Ligue mais tarde !");
  538.                 else if(GetPlayerMoney(playerid) < 100)
  539.                     return SendClientMessage(playerid, VERMELHO, "Você deve ter, no minimo, 100 $ para fazer uma ligação.");
  540.                 else if(GetPVarInt(Jogador[playerid], "Telefone") == 0)
  541.                     return SendClientMessage(playerid, VERMELHO, "O telefone deste jogador está desligado.");
  542.                 GetPlayerName(playerid, nome, sizeof nome);
  543.                 GetPlayerName(Jogador[playerid], nome2, sizeof nome2);
  544.                 format(str, sizeof str, "%s está telefonando para %s.", nome, nome2);
  545.                 ProxDetector(10, playerid, str, CINZA, CINZA, CINZA, CINZA, CINZA);
  546.                 format(str, sizeof str, "Você está ligando para %s. Aguarde ...", nome2);
  547.                 SendClientMessage(playerid, AMARELO, str);
  548.                 format(str,sizeof str, "%s está te ligando. Digite /atender ou /desligar.", nome2);
  549.                 SendClientMessage(Jogador[playerid], AMARELO, str);
  550.                 Telefonando[playerid] = 1;
  551.                 Telefonando[Jogador[playerid]] = 2;
  552.                 SetPVarInt(Jogador[playerid], "Contando", 4);
  553.                 Timer[Jogador[playerid]] = SetTimerEx("Desligar", 15000, true, "i", Jogador[playerid]);
  554.                 Jogador[Jogador[playerid]] = playerid;
  555.             }
  556.             else if(listitem == 1)
  557.             {
  558.                 if(Telefone[playerid] == false)
  559.                     return SendClientMessage(playerid, VERMELHO, "Você não tem um telefone. Digite /comprartel.");
  560.                 else if(Telefone[Jogador[playerid]] == false)
  561.                     return SendClientMessage(playerid, VERMELHO, "Este jogador não tem telefone.");
  562.                 else if(GetPlayerMoney(playerid) < 50)
  563.                     SendClientMessage(playerid, VERMELHO, "Você deve ter, no minimo, 50 $ para mandar um SMS.");
  564.                 else if(Jogador[playerid] == playerid)
  565.                     return SendClientMessage(playerid,AMARELO,"Você não mandar um SMS para você mesmo.");
  566.                 else if(GetPVarInt(playerid, "Telefone") == 0)
  567.                     return SendClientMessage(playerid, VERMELHO, "O seu telefone está desligado. Para ligá-lo digite /ligarcel.");
  568.                 else if(GetPVarInt(Jogador[playerid], "Telefone") == 0)
  569.                     return SendClientMessage(playerid, VERMELHO, "O telefone deste jogador está desligado.");
  570.                 ShowPlayerDialog(playerid, SMS, DIALOG_STYLE_INPUT, "SMS", "Digite abaixo a mensagem a ser enviada:", "Enviar", "Cancelar");
  571.             }
  572.         }
  573.         return 1;
  574.     }
  575.     if(dialogid == SMS)
  576.     {
  577.         if(response == 1)
  578.         {
  579.             new nome[MAX_PLAYER_NAME], nome2[MAX_PLAYER_NAME], str2[15], h, m, s;
  580.             if(!strlen(inputtext))
  581.                 return ShowPlayerDialog(playerid, SMS, DIALOG_STYLE_INPUT, "SMS", "Digite a mensagem a ser enviada:", "Enviar", "Cancelar");
  582.             if(strlen(inputtext) > 100)
  583.             {
  584.                 ShowPlayerDialog(playerid, SMS, DIALOG_STYLE_INPUT, "SMS", "Digite a mensagem a ser enviada:", "Enviar", "Cancelar");
  585.                 SendClientMessage(playerid, VERMELHO, "O SMS não pôde ser enviado pois excedeu o limite de caracteres.");
  586.             }
  587.             GetPlayerName(playerid, nome, sizeof nome);
  588.             GetPlayerName(Jogador[playerid], nome2, sizeof nome2);
  589.             format(str, sizeof str, "SMS enviado para %s [ID %d]: %s.", nome2, Jogador[playerid], inputtext);
  590.             SendClientMessage(playerid, AMARELO, str);
  591.             format(str, sizeof str, "SMS recebido de %s [ID %d]: %s.", nome, playerid, inputtext);
  592.             SendClientMessage(Jogador[playerid], AMARELO, str);
  593.             gettime(h, m, s);
  594.             if(GetPVarInt(playerid, "Enviado") <= 10)
  595.             {
  596.                 format(str, sizeof str, "SMS enviado para %s [ID %d]: %s às %02d:%02d:%02d", nome2, Jogador[playerid], inputtext, h, m, s);
  597.                 format(str2, sizeof str2, "Enviado%d", GetPVarInt(playerid, "Enviado"));
  598.                 SetPVarString(playerid, str2, str);
  599.                 SetPVarInt(playerid, "Enviado", GetPVarInt(playerid, "Enviado")+1);
  600.             }
  601.             else { SendClientMessage(playerid, LARANJA, "Este SMS não pôde ser salvo, pois sua caixa de saída está cheia. Digite /limpar e selecione \"SMS - Caixa de Entrada\"."); }
  602.             if(GetPVarInt(Jogador[playerid], "Recebido") <= 10)
  603.             {
  604.                 format(str, sizeof str, "SMS recebido de %s [ID %d]: %s às %02d:%02d:%02d", nome, playerid, inputtext, h, m, s);
  605.                 format(str2, sizeof str2, "Recebido%d", GetPVarInt(Jogador[playerid], "Recebido"));
  606.                 SetPVarString(Jogador[playerid], str2, str);
  607.                 SetPVarInt(Jogador[playerid], "Recebido", GetPVarInt(Jogador[playerid], "Recebido")+1);
  608.             }
  609.             else { SendClientMessage(Jogador[playerid], LARANJA, "Este SMS não pôde ser salvo, pois sua caixa de entrada esá cheia. Digite /limpar e selecione \"SMS - Caixa de Entrada\"."); }
  610.             if(strlen(inputtext) < 50) { GivePlayerMoney(playerid, -25); }
  611.             else { GivePlayerMoney(playerid, -50); }
  612.         }
  613.         else { SendClientMessage(playerid, AMARELO, "Você cancelou o envio de SMS."); }
  614.     }
  615.     if(dialogid == HISTORICO)
  616.     {
  617.         if(response == 1)
  618.         {
  619.             if(listitem == 0) { ShowPlayerDialog(playerid, EFETUADAS, DIALOG_STYLE_LIST, "Ligações efetuadas:", "Ver ligação 1\nVer ligação 2\nVer ligação 3\nVer ligação 4\nVer ligação 5\nVer ligação 6\nVer ligação 7\nVer ligação 8\nVer ligação 9\nVer ligação 10", "Selecionar", "Voltar"); }
  620.             else if(listitem == 1) { ShowPlayerDialog(playerid, RECEBIDAS, DIALOG_STYLE_LIST, "Ligações recebidas:", "Ver ligação 1\nVer ligação 2\nVer ligação 3\nVer ligação 4\nVer ligação 5\nVer ligação 6\nVer ligação 7\nVer ligação 8\nVer ligação 9\nVer ligação 10", "Selecionar", "Voltar"); }
  621.             else if(listitem == 2) { ShowPlayerDialog(playerid, CAIXADEENTRADA, DIALOG_STYLE_LIST, "Caixa de entrada:", "Ler SMS 1\nLer SMS 2\nLer SMS 3\nLer SMS 4\nLer SMS 5\nLer SMS 6\nLer SMS 7\nLer SMS 8\nLer SMS 9\nLer SMS 10", "Selecionar", "Voltar"); }
  622.             else if(listitem == 3) { ShowPlayerDialog(playerid, CAIXADESAIDA, DIALOG_STYLE_LIST, "Caixa de saída:", "Ler SMS 1\nLer SMS 2\nLer SMS 3\nLer SMS 4\nLer SMS 5\nLer SMS 6\nLer SMS 7\nLer SMS 8\nLer SMS 9\nLer SMS 10", "Selecionar", "Voltar"); }
  623.         }
  624.     }
  625.     if(dialogid == LIMPAR)
  626.     {
  627.         if(response == 1)
  628.         {
  629.             if(listitem == 0)
  630.             {
  631.                 SendClientMessage(playerid, AMARELO, "Historico de ligações efetuadas LIMPO !");
  632.                 for(new i = 1; i < 11; i ++)
  633.                 {
  634.                     format(str, sizeof str, "Efetuada%d", i);
  635.                     SetPVarInt(playerid, "Efetuada", 1);
  636.                     DeletePVar(playerid, str);
  637.                 }
  638.             }
  639.             else if(listitem == 1)
  640.             {
  641.                 SendClientMessage(playerid, AMARELO, "Historico de ligações recebidas LIMPO !");
  642.                 for(new i = 1; i < 11; i ++)
  643.                 {
  644.                     format(str, sizeof str, "Recebida%d", i);
  645.                     SetPVarInt(playerid, "Recebida", 1);
  646.                     DeletePVar(playerid, str);
  647.                 }
  648.             }
  649.             else if(listitem == 2)
  650.             {
  651.                 SendClientMessage(playerid, AMARELO, "Caixa de entrada LIMPA !");
  652.                 for(new i = 1; i < 11; i ++)
  653.                 {
  654.                     format(str, sizeof str, "Recebido%d", i);
  655.                     SetPVarInt(playerid, "Recebido", 1);
  656.                     DeletePVar(playerid, str);
  657.                 }
  658.             }
  659.             else if(listitem == 3)
  660.             {
  661.                 SendClientMessage(playerid, AMARELO, "Caixa de saída LIMPA !");
  662.                 for(new i = 1; i < 11; i ++)
  663.                 {
  664.                     format(str, sizeof str, "Enviado%d", i);
  665.                     SetPVarInt(playerid, "Enviado", 1);
  666.                     DeletePVar(playerid, str);
  667.                 }
  668.             }
  669.         }
  670.     }
  671.     if(dialogid == EFETUADAS)
  672.     {
  673.         if(response == 1)
  674.         {
  675.             if(listitem == 0)
  676.             {
  677.                 if(GetPVarType(playerid, "Efetuada1") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 1.");
  678.                 GetPVarString(playerid, "Efetuada1", str, 150);
  679.                 SendClientMessage(playerid, LARANJA, str);
  680.             }
  681.             else if(listitem == 1)
  682.             {
  683.                 if(GetPVarType(playerid, "Efetuada2") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 2.");
  684.                 GetPVarString(playerid, "Efetuada2", str, 150);
  685.                 SendClientMessage(playerid, LARANJA, str);
  686.             }
  687.             else if(listitem == 2)
  688.             {
  689.                 if(GetPVarType(playerid, "Efetuada3") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 3.");
  690.                 GetPVarString(playerid, "Efetuada3", str, 150);
  691.                 SendClientMessage(playerid, LARANJA, str);
  692.             }
  693.             else if(listitem == 3)
  694.             {
  695.                 if(GetPVarType(playerid, "Efetuada4") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 4.");
  696.                 GetPVarString(playerid, "Efetuada4", str, 150);
  697.                 SendClientMessage(playerid, LARANJA, str);
  698.             }
  699.             else if(listitem == 4)
  700.             {
  701.                 if(GetPVarType(playerid, "Efetuada5") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 5.");
  702.                 GetPVarString(playerid, "Efetuada5", str, 150);
  703.                 SendClientMessage(playerid, LARANJA, str);
  704.             }
  705.             else if(listitem == 5)
  706.             {
  707.                 if(GetPVarType(playerid, "Efetuada6") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 6.");
  708.                 GetPVarString(playerid, "Efetuada6", str, 150);
  709.                 SendClientMessage(playerid, LARANJA, str);
  710.             }
  711.             else if(listitem == 6)
  712.             {
  713.                 if(GetPVarType(playerid, "Efetuada7") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 7.");
  714.                 GetPVarString(playerid, "Efetuada7", str, 150);
  715.                 SendClientMessage(playerid, LARANJA, str);
  716.             }
  717.             else if(listitem == 7)
  718.             {
  719.                 if(GetPVarType(playerid, "Efetuada8") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 8.");
  720.                 GetPVarString(playerid, "Efetuada8", str, 150);
  721.                 SendClientMessage(playerid, LARANJA, str);
  722.             }
  723.             else if(listitem == 8)
  724.             {
  725.                 if(GetPVarType(playerid, "Efetuada9") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 9.");
  726.                 GetPVarString(playerid, "Efetuada9", str, 150);
  727.                 SendClientMessage(playerid, LARANJA, str);
  728.             }
  729.             else if(listitem == 9)
  730.             {
  731.                 if(GetPVarType(playerid, "Efetuada10") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 10.");
  732.                 GetPVarString(playerid, "Efetuada10", str, 150);
  733.                 SendClientMessage(playerid, LARANJA, str);
  734.             }
  735.         }
  736.         else { ShowPlayerDialog(playerid, HISTORICO, DIALOG_STYLE_LIST, "Caixa de entrada:", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar"); }
  737.     }
  738.     if(dialogid == RECEBIDAS)
  739.     {
  740.         if(response == 1)
  741.         {
  742.             if(listitem == 0)
  743.             {
  744.                 if(GetPVarType(playerid, "Recebida1") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 1.");
  745.                 GetPVarString(playerid, "Recebida1", str, 150);
  746.                 SendClientMessage(playerid, LARANJA, str);
  747.             }
  748.             else if(listitem == 1)
  749.             {
  750.                 if(GetPVarType(playerid, "Recebida2") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 2.");
  751.                 GetPVarString(playerid, "Recebida2", str, 150);
  752.                 SendClientMessage(playerid, LARANJA, str);
  753.             }
  754.             else if(listitem == 2)
  755.             {
  756.                 if(GetPVarType(playerid, "Recebida3") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 3.");
  757.                 GetPVarString(playerid, "Recebida3", str, 150);
  758.                 SendClientMessage(playerid, LARANJA, str);
  759.             }
  760.             else if(listitem == 3)
  761.             {
  762.                 if(GetPVarType(playerid, "Recebida4") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 4.");
  763.                 GetPVarString(playerid, "Recebida4", str, 150);
  764.                 SendClientMessage(playerid, LARANJA, str);
  765.             }
  766.             else if(listitem == 4)
  767.             {
  768.                 if(GetPVarType(playerid, "Recebida5") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 5.");
  769.                 GetPVarString(playerid, "Recebida5", str, 150);
  770.                 SendClientMessage(playerid, LARANJA, str);
  771.             }
  772.             else if(listitem == 5)
  773.             {
  774.                 if(GetPVarType(playerid, "Recebida6") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 6.");
  775.                 GetPVarString(playerid, "Recebida6", str, 150);
  776.                 SendClientMessage(playerid, LARANJA, str);
  777.             }
  778.             else if(listitem == 6)
  779.             {
  780.                 if(GetPVarType(playerid, "Recebida7") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 7.");
  781.                 GetPVarString(playerid, "Recebida7", str, 150);
  782.                 SendClientMessage(playerid, LARANJA, str);
  783.             }
  784.             else if(listitem == 7)
  785.             {
  786.                 if(GetPVarType(playerid, "Recebida8") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 8.");
  787.                 GetPVarString(playerid, "Recebida8", str, 150);
  788.                 SendClientMessage(playerid, LARANJA, str);
  789.             }
  790.             else if(listitem == 8)
  791.             {
  792.                 if(GetPVarType(playerid, "Recebida9") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 9.");
  793.                 GetPVarString(playerid, "Recebida9", str, 150);
  794.                 SendClientMessage(playerid, LARANJA, str);
  795.             }
  796.             else if(listitem == 9)
  797.             {
  798.                 if(GetPVarType(playerid, "Recebida10") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhuma ligação no slot 10.");
  799.                 GetPVarString(playerid, "Recebida10", str, 150);
  800.                 SendClientMessage(playerid, LARANJA, str);
  801.             }
  802.         }
  803.         else { ShowPlayerDialog(playerid, HISTORICO, DIALOG_STYLE_LIST, "Caixa de entrada:", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar"); }
  804.     }
  805.     if(dialogid == CAIXADEENTRADA)
  806.     {
  807.         if(response == 1)
  808.         {
  809.             if(listitem == 0)
  810.             {
  811.                 if(GetPVarType(playerid, "Recebido1") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 1.");
  812.                 GetPVarString(playerid, "Recebido1", str, 150);
  813.                 SendClientMessage(playerid, LARANJA, str);
  814.             }
  815.             else if(listitem == 1)
  816.             {
  817.                 if(GetPVarType(playerid, "Recebido2") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 2.");
  818.                 GetPVarString(playerid, "Recebido2", str, 150);
  819.                 SendClientMessage(playerid, LARANJA, str);
  820.             }
  821.             else if(listitem == 2)
  822.             {
  823.                 if(GetPVarType(playerid, "Recebido3") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 3.");
  824.                 GetPVarString(playerid, "Recebido3", str, 150);
  825.                 SendClientMessage(playerid, LARANJA, str);
  826.             }
  827.             else if(listitem == 3)
  828.             {
  829.                 if(GetPVarType(playerid, "Recebido4") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 4.");
  830.                 GetPVarString(playerid, "Recebido4", str, 150);
  831.                 SendClientMessage(playerid, LARANJA, str);
  832.             }
  833.             else if(listitem == 4)
  834.             {
  835.                 if(GetPVarType(playerid, "Recebido5") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 5.");
  836.                 GetPVarString(playerid, "Recebido5", str, 150);
  837.                 SendClientMessage(playerid, LARANJA, str);
  838.             }
  839.             else if(listitem == 5)
  840.             {
  841.                 if(GetPVarType(playerid, "Recebido6") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 6.");
  842.                 GetPVarString(playerid, "Recebido6", str, 150);
  843.                 SendClientMessage(playerid, LARANJA, str);
  844.             }
  845.             else if(listitem == 6)
  846.             {
  847.                 if(GetPVarType(playerid, "Recebido7") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 7.");
  848.                 GetPVarString(playerid, "Recebido7", str, 150);
  849.                 SendClientMessage(playerid, LARANJA, str);
  850.             }
  851.             else if(listitem == 7)
  852.             {
  853.                 if(GetPVarType(playerid, "Recebido8") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 8.");
  854.                 GetPVarString(playerid, "Recebido8", str, 150);
  855.                 SendClientMessage(playerid, LARANJA, str);
  856.             }
  857.             else if(listitem == 8)
  858.             {
  859.                 if(GetPVarType(playerid, "Recebido9") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 9.");
  860.                 GetPVarString(playerid, "Recebido9", str, 150);
  861.                 SendClientMessage(playerid, LARANJA, str);
  862.             }
  863.             else if(listitem == 9)
  864.             {
  865.                 if(GetPVarType(playerid, "Recebido10") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 10.");
  866.                 GetPVarString(playerid, "Recebido10", str, 150);
  867.                 SendClientMessage(playerid, LARANJA, str);
  868.             }
  869.         }
  870.         else { ShowPlayerDialog(playerid, HISTORICO, DIALOG_STYLE_LIST, "Caixa de entrada:", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar"); }
  871.     }
  872.     if(dialogid == CAIXADESAIDA)
  873.     {
  874.         if(response == 1)
  875.         {
  876.             if(listitem == 0)
  877.             {
  878.                 if(GetPVarType(playerid, "Enviado1") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 1.");
  879.                 GetPVarString(playerid, "Enviado1", str, 150);
  880.                 SendClientMessage(playerid, LARANJA, str);
  881.             }
  882.             else if(listitem == 1)
  883.             {
  884.                 if(GetPVarType(playerid, "Enviado2") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 2.");
  885.                 GetPVarString(playerid, "Enviado2", str, 150);
  886.                 SendClientMessage(playerid, LARANJA, str);
  887.             }
  888.             else if(listitem == 2)
  889.             {
  890.                 if(GetPVarType(playerid, "Enviado3") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 3.");
  891.                 GetPVarString(playerid, "Enviado3", str, 150);
  892.                 SendClientMessage(playerid, LARANJA, str);
  893.             }
  894.             else if(listitem == 3)
  895.             {
  896.                 if(GetPVarType(playerid, "Enviado4") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 4.");
  897.                 GetPVarString(playerid, "Enviado4", str, 150);
  898.                 SendClientMessage(playerid, LARANJA, str);
  899.             }
  900.             else if(listitem == 4)
  901.             {
  902.                 if(GetPVarType(playerid, "Enviado5") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 5.");
  903.                 GetPVarString(playerid, "Enviado5", str, 150);
  904.                 SendClientMessage(playerid, LARANJA, str);
  905.             }
  906.             else if(listitem == 5)
  907.             {
  908.                 if(GetPVarType(playerid, "Enviado6") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 6.");
  909.                 GetPVarString(playerid, "Enviado6", str, 150);
  910.                 SendClientMessage(playerid, LARANJA, str);
  911.             }
  912.             else if(listitem == 6)
  913.             {
  914.                 if(GetPVarType(playerid, "Enviado7") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 7.");
  915.                 GetPVarString(playerid, "Enviado7", str, 150);
  916.                 SendClientMessage(playerid, LARANJA, str);
  917.             }
  918.             else if(listitem == 7)
  919.             {
  920.                 if(GetPVarType(playerid, "Enviado8") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 8.");
  921.                 GetPVarString(playerid, "Enviado8", str, 150);
  922.                 SendClientMessage(playerid, LARANJA, str);
  923.             }
  924.             else if(listitem == 8)
  925.             {
  926.                 if(GetPVarType(playerid, "Enviado9") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 9.");
  927.                 GetPVarString(playerid, "Enviado9", str, 150);
  928.                 SendClientMessage(playerid, LARANJA, str);
  929.             }
  930.             else if(listitem == 9)
  931.             {
  932.                 if(GetPVarType(playerid, "Enviado10") == 0) return SendClientMessage(playerid, VERMELHO, "Nenhum SMS no slot 10.");
  933.                 GetPVarString(playerid, "Enviado10", str, 150);
  934.                 SendClientMessage(playerid, LARANJA, str);
  935.             }
  936.         }
  937.         else { ShowPlayerDialog(playerid, HISTORICO, DIALOG_STYLE_LIST, "Caixa de entrada:", "Ligações Efetuadas\nLigações Recebidas\nSMS - Caixa de entrada\nSMS - Caixa de saída", "Selecionar", "Fechar"); }
  938.     }
  939.     return 1;
  940. }
  941.  
  942. public OnPlayerText(playerid, text[])
  943. {
  944.     if(Telefonando[playerid] == 3 || Telefonando[playerid] == 4)
  945.     {
  946.         new nome[MAX_PLAYER_NAME];
  947.         GetPlayerName(playerid, nome, sizeof(nome));
  948.         format(str, sizeof str, "%s (telefone): %s",nome, text);
  949.         SetPlayerChatBubble(playerid, str, BRANCO, 7.5, 2500);
  950.         if(GetPVarInt(Jogador[playerid], "Vivavoz") == 1) { ProxDetector(15, Jogador[playerid], str, CINZA, CINZA, CINZA, CINZA, CINZA); }
  951.         else { SendClientMessage(Jogador[playerid], BRANCO, str); }
  952.     }
  953.     return 1;
  954. }
  955.  
  956. public Desligar(playerid)
  957. {
  958.     if(Telefonando[playerid] == 2)
  959.     {
  960.         if(GetPVarInt(playerid, "Contando") > 0)
  961.         {
  962.             new nome[MAX_PLAYER_NAME];
  963.             SetPVarInt(playerid, "Contando", GetPVarInt(playerid, "Contando")-1);
  964.             GetPlayerName(Jogador[playerid], nome, sizeof nome);
  965.             format(str, sizeof str, "%s está te ligando. Digite /atender ou /desligar.", nome);
  966.             SendClientMessage(playerid, AMARELO, str);
  967.         }
  968.         else
  969.         {
  970.             KillTimer(Timer[playerid]);
  971.             SendClientMessage(Jogador[playerid], LARANJA, "A ligação foi cancelada, pois sua chamada não foi atendida.");
  972.             SendClientMessage(playerid, LARANJA, "Você não atendeu a chamada e por isso ela foi cancelada.");
  973.             Telefonando[playerid] = 0;
  974.             Telefonando[Jogador[playerid]] = 0;
  975.         }
  976.     }
  977.     return 1;
  978. }
  979.  
  980. public OnPlayerClickPlayer(playerid, clickedplayerid, source)
  981. {
  982.     new nome[MAX_PLAYER_NAME];
  983.     GetPlayerName(clickedplayerid, nome, sizeof nome);
  984.     format(str, sizeof str, "Ligar para %s\nMandar SMS para %s", nome, nome);
  985.     Jogador[playerid] = clickedplayerid;
  986.     ShowPlayerDialog(playerid, CLICK, DIALOG_STYLE_LIST, "Escolha uma das opções abaixo:", str, "Selecionar", "Cancelar");
  987.     return 1;
  988. }
  989.  
  990. public Msgs()
  991.     return SendClientMessageToAll(Cores[random(sizeof Cores)], "Precisa de ajuda com o seu telefone ? Digite /ajudatelefone.");
  992.  
  993. public ProxDetector(Float:radi, playerid, string[], col1, col2, col3, col4, col5)
  994. {
  995.     if(IsPlayerConnected(playerid))
  996.     {
  997.         new Float:posx, Float:posy, Float:posz;
  998.         new Float:oldposx, Float:oldposy, Float:oldposz;
  999.         new Float:tempposx, Float:tempposy, Float:tempposz;
  1000.         GetPlayerPos(playerid, oldposx, oldposy, oldposz);
  1001.         for(new i = 0; i < MAX_PLAYERS; i++)
  1002.         {
  1003.             if(IsPlayerConnected(i))
  1004.             {
  1005.                 GetPlayerPos(i, posx, posy, posz);
  1006.                 tempposx = (oldposx -posx);
  1007.                 tempposy = (oldposy -posy);
  1008.                 tempposz = (oldposz -posz);
  1009.                 if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16)))
  1010.                 {
  1011.                     SendClientMessage(i, col1, string);
  1012.                 }
  1013.                 else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8)))
  1014.                 {
  1015.                     SendClientMessage(i, col2, string);
  1016.                 }
  1017.                 else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4)))
  1018.                 {
  1019.                     SendClientMessage(i, col3, string);
  1020.                 }
  1021.                 else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2)))
  1022.                 {
  1023.                     SendClientMessage(i, col4, string);
  1024.                 }
  1025.                 else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
  1026.                 {
  1027.                     SendClientMessage(i, col5, string);
  1028.                 }
  1029.             }
  1030.         }
  1031.     }
  1032.     return 1;
  1033. }
  1034.  
  1035. stock sscanf(string[], format[], {Float,_}:...)
  1036. {
  1037.     #if defined isnull
  1038.         if (isnull(string))
  1039.     #else
  1040.         if (string[0] == 0 || (string[0] == 1 && string[1] == 0))
  1041.     #endif
  1042.         {
  1043.             return format[0];
  1044.         }
  1045.     #pragma tabsize 4
  1046.     new
  1047.         formatPos = 0,
  1048.         stringPos = 0,
  1049.         paramPos = 2,
  1050.         paramCount = numargs(),
  1051.         delim = ' ';
  1052.     while (string[stringPos] && string[stringPos] <= ' ')
  1053.     {
  1054.         stringPos++;
  1055.     }
  1056.     while (paramPos < paramCount && string[stringPos])
  1057.     {
  1058.         switch (format[formatPos++])
  1059.         {
  1060.             case '\0':
  1061.             {
  1062.                 return 0;
  1063.             }
  1064.             case 'i', 'd':
  1065.             {
  1066.                 new
  1067.                     neg = 1,
  1068.                     num = 0,
  1069.                     ch = string[stringPos];
  1070.                 if (ch == '-')
  1071.                 {
  1072.                     neg = -1;
  1073.                     ch = string[++stringPos];
  1074.                 }
  1075.                 do
  1076.                 {
  1077.                     stringPos++;
  1078.                     if ('0' <= ch <= '9')
  1079.                     {
  1080.                         num = (num * 10) + (ch - '0');
  1081.                     }
  1082.                     else
  1083.                     {
  1084.                         return -1;
  1085.                     }
  1086.                 }
  1087.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1088.                 setarg(paramPos, 0, num * neg);
  1089.             }
  1090.             case 'h', 'x':
  1091.             {
  1092.                 new
  1093.                     num = 0,
  1094.                     ch = string[stringPos];
  1095.                 do
  1096.                 {
  1097.                     stringPos++;
  1098.                     switch (ch)
  1099.                     {
  1100.                         case 'x', 'X':
  1101.                         {
  1102.                             num = 0;
  1103.                             continue;
  1104.                         }
  1105.                         case '0' .. '9':
  1106.                         {
  1107.                             num = (num << 4) | (ch - '0');
  1108.                         }
  1109.                         case 'a' .. 'f':
  1110.                         {
  1111.                             num = (num << 4) | (ch - ('a' - 10));
  1112.                         }
  1113.                         case 'A' .. 'F':
  1114.                         {
  1115.                             num = (num << 4) | (ch - ('A' - 10));
  1116.                         }
  1117.                         default:
  1118.                         {
  1119.                             return -1;
  1120.                         }
  1121.                     }
  1122.                 }
  1123.                 while ((ch = string[stringPos]) > ' ' && ch != delim);
  1124.                 setarg(paramPos, 0, num);
  1125.             }
  1126.             case 'c':
  1127.             {
  1128.                 setarg(paramPos, 0, string[stringPos++]);
  1129.             }
  1130.             case 'f':
  1131.             {
  1132.  
  1133.                 new changestr[16], changepos = 0, strpos = stringPos;
  1134.                 while(changepos < 16 && string[strpos] && string[strpos] != delim)
  1135.                 {
  1136.                     changestr[changepos++] = string[strpos++];
  1137.                     }
  1138.                 changestr[changepos] = '\0';
  1139.                 setarg(paramPos,0,_:floatstr(changestr));
  1140.             }
  1141.             case 'p':
  1142.             {
  1143.                 delim = format[formatPos++];
  1144.                 continue;
  1145.             }
  1146.             case '\'':
  1147.             {
  1148.                 new
  1149.                     end = formatPos - 1,
  1150.                     ch;
  1151.                 while ((ch = format[++end]) && ch != '\'') {}
  1152.                 if (!ch)
  1153.                 {
  1154.                     return -1;
  1155.                 }
  1156.                 format[end] = '\0';
  1157.                 if ((ch = strfind(string, format[formatPos], false, stringPos)) == -1)
  1158.                 {
  1159.                     if (format[end + 1])
  1160.                     {
  1161.                         return -1;
  1162.                     }
  1163.                     return 0;
  1164.                 }
  1165.                 format[end] = '\'';
  1166.                 stringPos = ch + (end - formatPos);
  1167.                 formatPos = end + 1;
  1168.             }
  1169.             case 'u':
  1170.             {
  1171.                 new
  1172.                     end = stringPos - 1,
  1173.                     id = 0,
  1174.                     bool:num = true,
  1175.                     ch;
  1176.                 while ((ch = string[++end]) && ch != delim)
  1177.                 {
  1178.                     if (num)
  1179.                     {
  1180.                         if ('0' <= ch <= '9')
  1181.                         {
  1182.                             id = (id * 10) + (ch - '0');
  1183.                         }
  1184.                         else
  1185.                         {
  1186.                             num = false;
  1187.                         }
  1188.                     }
  1189.                 }
  1190.                 if (num && IsPlayerConnected(id))
  1191.                 {
  1192.                     setarg(paramPos, 0, id);
  1193.                 }
  1194.                 else
  1195.                 {
  1196.                     #if !defined foreach
  1197.                         #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
  1198.                         #define __SSCANF_FOREACH__
  1199.                     #endif
  1200.                     string[end] = '\0';
  1201.                     num = false;
  1202.                     new
  1203.                         name[MAX_PLAYER_NAME];
  1204.                     id = end - stringPos;
  1205.                     foreach (Player, playerid)
  1206.                     {
  1207.                         GetPlayerName(playerid, name, sizeof (name));
  1208.                         if (!strcmp(name, string[stringPos], true, id))
  1209.                         {
  1210.                             setarg(paramPos, 0, playerid);
  1211.                             num = true;
  1212.                             break;
  1213.                         }
  1214.                     }
  1215.                     if (!num)
  1216.                     {
  1217.                         setarg(paramPos, 0, INVALID_PLAYER_ID);
  1218.                     }
  1219.                     string[end] = ch;
  1220.                     #if defined __SSCANF_FOREACH__
  1221.                         #undef foreach
  1222.                         #undef __SSCANF_FOREACH__
  1223.                     #endif
  1224.                 }
  1225.                 stringPos = end;
  1226.             }
  1227.             case 's', 'z':
  1228.             {
  1229.                 new
  1230.                     i = 0,
  1231.                     ch;
  1232.                 if (format[formatPos])
  1233.                 {
  1234.                     while ((ch = string[stringPos++]) && ch != delim)
  1235.                     {
  1236.                         setarg(paramPos, i++, ch);
  1237.                     }
  1238.                     if (!i)
  1239.                     {
  1240.                         return -1;
  1241.                     }
  1242.                 }
  1243.                 else
  1244.                 {
  1245.                     while ((ch = string[stringPos++]))
  1246.                     {
  1247.                         setarg(paramPos, i++, ch);
  1248.                     }
  1249.                 }
  1250.                 stringPos--;
  1251.                 setarg(paramPos, i, '\0');
  1252.             }
  1253.             default:
  1254.             {
  1255.                 continue;
  1256.             }
  1257.         }
  1258.         while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
  1259.         {
  1260.             stringPos++;
  1261.         }
  1262.         while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
  1263.         {
  1264.             stringPos++;
  1265.         }
  1266.         paramPos++;
  1267.     }
  1268.     do
  1269.     {
  1270.         if ((delim = format[formatPos++]) > ' ')
  1271.         {
  1272.             if (delim == '\'')
  1273.             {
  1274.                 while ((delim = format[formatPos++]) && delim != '\'') {}
  1275.             }
  1276.             else if (delim != 'z')
  1277.             {
  1278.                 return delim;
  1279.             }
  1280.         }
  1281.     }
  1282.     while (delim > ' ');
  1283.     return 0;
  1284. }
  1285.  
  1286. /*! FILTERSCRIPT DE TELEFONE DESENVOLVIDO POR SHADOWW5 !
  1287.  
  1288.            Contato: http://bit.ly/iT6xEw
  1289.            Contato: http://bit.ly/iT6xEw
  1290.  
  1291.     NAO RETIRE OS CREDITOS !! NAO RETIRE OS CREDITOS !!
  1292.  
  1293.      OBS: ESTE SISTEMA USA O TELEFONE DOS JOGADORES*/
Advertisement
Add Comment
Please, Sign In to add comment