Advertisement
Extraterrestre

DIALOG NAO ABRE

Apr 15th, 2016
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.82 KB | None | 0 0
  1. #define DIALOG_REGISTRO 200
  2. #define DIALOG_LOGAR 201
  3.  
  4. //JA COLOQUEI EM ONPLAYERCONNECT E TAMBEM NÃO DEU
  5. //O DIALOG DO LOGIN TA INGLES POIS COPIEI O SHOWPLAYERDIALOG DO WIKI PARA VER SE FUNCIONAVA!
  6. public OnPlayerRequestClass(playerid, classid)
  7. {
  8. if(Logado[playerid] == 0) {
  9. new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
  10. GetPlayerName(playerid, name, 32); //Pega o nome do playerid
  11. format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
  12. if(DOF2_FileExists(arquivo)) //Verifica se a pasta existe
  13. { //Caso existir, irá retornar a dialog de Login
  14. ShowPlayerDialog(playerid, 201, DIALOG_STYLE_INPUT, "Login", "Enter your password below:", "Login", "Cancel");
  15. }
  16. else //Caso o arquivo não exista
  17. { //Irá retornar a dialog de registro
  18. ShowPlayerDialog(playerid, 202, DIALOG_STYLE_INPUT, "Registro", "Você ainda não é Registrado, digite uma senha para se registrar!", "Confirma", "Cancelar");
  19. }
  20. }
  21. return false;
  22. }
  23.  
  24. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  25. {
  26. new arquivo[40], name[MAX_PLAYER_NAME]; //'arquivo' uma string para a format | 'name' para pegar o nome do playerid
  27. GetPlayerName(playerid, name, 32); //Para pegar o nome do playerid
  28. format(arquivo, 40, "Contas/%s.ini", name); //Formata o arquivo com o nome do playerid
  29. if(dialogid == DIALOG_REGISTRO)
  30. {
  31. if(!strval(inputtext)) //Verifica se o player digitou LETRAS, caso for true
  32. { //Retorna a dialog de registro novamente para ele digitar NÚMEROS
  33. ShowPlayerDialog(playerid, 200, DIALOG_STYLE_INPUT, "Registro", "Digite apenas números!\nDigite sua senha novamente para se registrar!", "Confirma", "Cancelar");
  34. return 1;
  35. }
  36. if(!response) //Verifica se ele clicar em 'Cancelar"
  37. { //Caso ele clicar em cancelar, irá retornar ao playerid KICK
  38. Kick(playerid);
  39. return 1;
  40. }
  41. else //Verifica se ele Confirma o Registro
  42. { //Caso for true, ira criar o arquivo na pasta CONTAS
  43. pInfo[playerid][pSenha] = strval(inputtext); //Player[playerid][Senha] vai ser igual ao que ele digitar na dialog Registro
  44. DOF2_CreateFile(arquivo); //Vai criar o arquvivo na pasta Contas
  45. DOF2_GetBool(arquivo, "Cadastrado", pInfo[playerid][pCadastrado]);
  46. DOF2_SetInt(arquivo, "Senha", pInfo[playerid][pSenha]); //Vai salvar a senha do playerid
  47. DOF2_SetInt(arquivo, "Hospital", pInfo[playerid][Hospital]); //Vai salvar quantas vezes ele matou
  48. DOF2_SetInt(arquivo, "Dinheiro", pInfo[playerid][pDinheiro]); //Vai salvar o dinheiro dele
  49. DOF2_SaveFile(); //E finalmente salvando o arquivo, sem essa função o arquivo não será salvo!
  50. //Retornando a dialog de Login ao player no final para ele logar no server
  51. ShowPlayerDialog(playerid, 201, DIALOG_STYLE_PASSWORD, "Logar", "Você se cadastrou, agora é só logar com sua senha registrada!", "Confirma", "Cancelar");
  52. }
  53. }
  54. if(dialogid == DIALOG_LOGAR)
  55. {
  56. if(!strval(inputtext)) //Verifica se o player digitou letras, caso for true
  57. { //Retorna a dialog de Login novamente para ele digitar NÚMEROS
  58. ShowPlayerDialog(playerid, 201, DIALOG_STYLE_PASSWORD, "Logar", "Digite apenas números!\nDigite sua senha cadastrada para logar!\nSe errar 5 vezes sua conta será banida!", "Confirma", "Cancelar");
  59. return 1;
  60. }
  61. if(!response) //Verifica se ele clicar em 'Cancelar"
  62. { //Caso ele clicar em cancelar, irá retornar ao playerid KICK
  63. Kick(playerid);
  64. return 1;
  65. }
  66. else //Verifica se ele Confirma o Login
  67. { //Caso for true, ira verificar se o que ele digitar será a mesma senha que ele se registrou anteriormente
  68. pInfo[playerid][pSenha] = DOF2_GetInt(Contas(playerid), "Senha");
  69. if(strval(inputtext) == pInfo[playerid][pSenha])
  70. { //Retornará os dados do player e após irá dar Spawn no mesmo
  71. pInfo[playerid][pCadastrado] = DOF2_GetBool(Contas(playerid), "Cadastrado");
  72. pInfo[playerid][pDinheiro] = DOF2_GetInt(Contas(playerid), "Dinheiro");
  73. GivePlayerMoney(playerid, pInfo[playerid][pDinheiro]);
  74. pInfo[playerid][Hospital] = DOF2_GetInt(Contas(playerid), "Hospital");
  75. SpawnPlayer(playerid);
  76. }
  77. else //Caso ele digitar a senha errada
  78. {
  79. ShowPlayerDialog(playerid, 201, DIALOG_STYLE_PASSWORD, "Logar", "Você digitou sua senha errado, digite-a novamente para logar!\nSe errar 5 vezes sua conta será banida!", "Confirma", "Cancelar");
  80. Erro[playerid]++; //O erro vai aumentar cada vez que ele errar
  81. if(Erro[playerid] == 5) //Quando chegar à 5 vezes, irá retornar a msg e o Ban
  82. {
  83. SendClientMessage(playerid, -1, "Sua conta está banida por errar 5 vezes a sua senha, contacte o Admin para retirar seu Ban!");
  84. Ban(playerid);
  85. return 1;
  86. }
  87. }
  88. }
  89. }
  90. return 1;
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement