Boas-vindas ao Power Pixel

Junte-se a comunidade! Crie o seu próprio conteúdo, e faça amizades.EntrarCriar uma conta

Boas-vindas ao Power Pixel

Junte-se a comunidade! Crie o seu próprio conteúdo, e faça amizades.EntrarCriar uma conta

Maloma Maloma  • em 09.07.17 17:54

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 09.07.17 17:54

Relembrando a primeira mensagem :

Olá amigos, trouxe para vocês hoje um sistema de verificação de e-mail, talvez outras pessoas tenham o mesmo em maneira diferente, por exemplo, em PHP.

Ao entrar no jogo, aparecerá um alerta onde irá pedir uma chave de segurança, ou melhor, um código de verificação.

Lembrando que esse sistema é para os usuários da equipe, após então você colocar o código de verificação, automaticamente irá aparecer o MOD Tools e enfim, os comandos da equipe.  Caso o contrário, você não poderá executar comandos e nem terá o MOD Tools dentro do servidor.

Essa chave de segurança (código de verificação) será enviada por e-mail.

COMENTE PARA VISUALIZAR AS IMAGENS!!
Imagem 1:



Imagem 2:


Imagem 3:


Imagem 4:



Como pode ver na terceira imagem, o código foi enviado do e-mail, mas, depois explico como iremos ativar. Na quarta imagem estaremos vendo como colocar o código corretamente, se colocar de uma maneira errada, não irá aparecer MOD Tools e comandos e então aparecerá um alerta avisando do erro. Agora, vamos ao código para que o sistema funcione!

No primeiro passo iremos a PlusEnvironment.cs e buscaremos por;
Código:
public static string SWFRevision = "";
E logo em baixo disso iremos adicionar esse código aqui;
Código:
public static string source;

No segundo passo iremos até Habbo.cs e buscaremos por;
Código:
public Habbo(int Id, string Username,
E em cima desse código nós iremos colocar;
Código:
internal bool PinStaff;

Depois buscaremos o seguinte;
Código:
            //TODO: Nope.
            this.InitPermissions();
E em cima do mesmo, colocaremos;
Código:
this.PinStaff = false;

No terceiro passo iremos a GameClient.cs e buscaremos por;
Código:
                    if (!string.IsNullOrWhiteSpace(PlusEnvironment.GetDBConfig().DBData["welcome_message"]))
                        SendMessage(new MOTDNotificationComposer(PlusEnvironment.GetDBConfig().DBData["welcome_message"]));
Em cima desse código, buscaremos;
Código:
                    if (userData.user.GetPermissions().HasRight("mod_tickets"))
                    {
                        SendMessage(new ModeratorInitComposer(
                          PlusEnvironment.GetGame().GetModerationManager().UserMessagePresets,
                          PlusEnvironment.GetGame().GetModerationManager().RoomMessagePresets,
                          PlusEnvironment.GetGame().GetModerationManager().UserActionPresets,
                          PlusEnvironment.GetGame().GetModerationTool().GetTickets));
                    }
E agora trocamos esse código, por este;
Código:
                    /*
                    if (userData.user.GetPermissions().HasRight("mod_tickets"))
                    {
                        SendMessage(new ModeratorInitComposer(
                          PlusEnvironment.GetGame().GetModerationManager().UserMessagePresets,
                          PlusEnvironment.GetGame().GetModerationManager().RoomMessagePresets,
                          PlusEnvironment.GetGame().GetModerationManager().UserActionPresets,
                          PlusEnvironment.GetGame().GetModerationTool().GetTickets));
                    }
                    */
Agora, em baixo de;
Código:
                    if (!string.IsNullOrWhiteSpace(PlusEnvironment.GetDBConfig().DBData["welcome_message"]))
                        SendMessage(new MOTDNotificationComposer(PlusEnvironment.GetDBConfig().DBData["welcome_message"]));
Colocaremos o seguinte; (Aqui é onde modificaremos o RANK para que apareça o alerta de PIN).
Código:
                    var rank = userData.user.Rank;
                    if (rank == 5 || rank == 6 || rank == 7 || rank == 8 || rank == 9) //editamos los rank a los que queremos pedir pin.
                    {

                        ServerPacket verify = new ServerPacket(ServerPacketHeader.VerifyMobilePhoneWindowComposer);
                        verify.WriteInteger(1);
                        verify.WriteInteger(1);
                        SendMessage(verify);


                        int PasswordLength = 10;
                        string _allowedChars = "ABCDEFGHJKLMNPQRSTUVWXYZ23456789!@$?";
                        Byte[] randomBytes = new Byte[PasswordLength];
                        char[] chars = new char[PasswordLength];
                        int allowedCharCount = _allowedChars.Length;

                        for (int i = 0; i < PasswordLength; i++)
                        {
                            Random randomObj = new Random();
                            randomObj.NextBytes(randomBytes);
                            chars[i] = _allowedChars[(int)randomBytes[i] % allowedCharCount];
                        }

                        var clave = new string(chars);

                        System.Net.Mail.MailMessage mail = new System.Net.Mail.MailMessage();
                        mail.From = new MailAddress("AQUITUGMAIL@GMAIL.COM"); //aqui tu GMAIL
                        try
                        {
                            DataRow UserData = null;
                            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
                            {
                                dbClient.SetQuery("SELECT `id`,`username`,`mail` FROM users WHERE `username` = @Username LIMIT 1");
                                dbClient.AddParameter("Username", userData.user.Username);
                                UserData = dbClient.getRow();
                            }

                            mail.To.Add(Convert.ToString(UserData["mail"]));
                        }
                        catch
                        {
                        }

                        mail.Subject = "Clave para activar tu cuenta";
                        mail.Body = "Clave para activar tu cuenta staff, Clave acceso: " + clave + "";

                        SmtpClient smtp = new SmtpClient();

                        smtp.Host = "smtp.gmail.com";
                        smtp.Port = 587;
                        smtp.Credentials = new NetworkCredential("AQUITUGMAIL@GMAIL.COM", "TU CLAVE DE GMAIL");
                        smtp.EnableSsl = true;
                        try
                        {
                            smtp.Send(mail);
                            SendNotification("Te hemos mandando una clave a tu Email para poder activar tu cuenta, comprueba tu correo.");
                        }
                        catch (Exception ex)
                        {
                            Console.Write(ex.Message);
                        }


                        PlusEnvironment.source = clave;
                        userData.user.PinStaff = true;

                    }
                    else
                    {
                        if (userData.user.GetPermissions().HasRight("mod_tickets"))
                        {
                            SendMessage(new ModeratorInitComposer(
                              PlusEnvironment.GetGame().GetModerationManager().UserMessagePresets,
                              PlusEnvironment.GetGame().GetModerationManager().RoomMessagePresets,
                              PlusEnvironment.GetGame().GetModerationManager().UserActionPresets,
                              PlusEnvironment.GetGame().GetModerationTool().GetTickets));
                        }
                    }


Agora no quarto passo criaremos uma pasta em Plus.Communication.Packets.Incoming e iremos chamar a mesma de PINSMS e dentro dessa nova pasta iremos adicionar uma classe chamada PinStaffSms;
Código:
using Plus.Communication.Packets.Outgoing;
using Plus.Communication.Packets.Outgoing.Catalog;
using Plus.Communication.Packets.Outgoing.Moderation;
using Plus.Communication.Packets.Outgoing.Notifications;
using Plus.HabboHotel.GameClients;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Security.Cryptography;
using System.Text;
using System.Threading.Tasks;

namespace Plus.Communication.Packets.Incoming.PINSMS
{
    class PinStaffSms : IPacketEvent
    {
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            string clave = Packet.PopString();

            if (clave == PlusEnvironment.source)
            {
                StringBuilder HabboInfo = new StringBuilder();
                HabboInfo.Append("Hola " + Session.GetHabbo().Username + "\r");
                HabboInfo.Append("Te has identificado correctamente");
                Session.SendNotification(HabboInfo.ToString());
                Session.GetHabbo().PinStaff = false;

                if (Session.GetHabbo().GetPermissions().HasRight("mod_tickets"))
                {
                    Session.SendMessage(new ModeratorInitComposer(
                      PlusEnvironment.GetGame().GetModerationManager().UserMessagePresets,
                      PlusEnvironment.GetGame().GetModerationManager().RoomMessagePresets,
                      PlusEnvironment.GetGame().GetModerationManager().UserActionPresets,
                      PlusEnvironment.GetGame().GetModerationTool().GetTickets));
                }

            }
            else
            {
                Session.SendNotification("Error de clave, prueba de nuevo");
                ServerPacket verify= new ServerPacket(ServerPacketHeader.VerifyMobilePhoneWindowComposer);
                verify.WriteInteger(1);
                verify.WriteInteger(1);
                Session.SendMessage(verify);
                return;

            }


            ServerPacket error = new ServerPacket(ServerPacketHeader.SMSErrorComposer);
            error.WriteInteger(2);
            error.WriteInteger(2);
            Session.SendMessage(error);


            ServerPacket verify2 = new ServerPacket(ServerPacketHeader.VerifyMobilePhoneWindowComposer);
            verify2.WriteInteger(-1);
            verify2.WriteInteger(-1);
            Session.SendMessage(verify2);
        }
    }
}

No quinto passo, vamos a ChatEvent.cs e buscaremos por;
Código:
            if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom)
                return;
E em baixo adicionamos o seguinte;
Código:
            if (Session.GetHabbo().PinStaff)
            {
                Session.SendWhisper("No has activado tu cuenta, nada de hablar.");
                return;
            }

Sexto passo, adicionamos os IDS dos Packets de alertas para mostrar..  ServerPacketHeader.cs
Código:
        public const int SMSErrorComposer = 3747;
        public const int VerifyMobilePhoneWindowComposer = 2685;
Agora criaremos o ID do Packet para enviar.. ClientPacketHeader.cs
Código:
        public const int SmsVerification = 2069;

No sétimo passo iremos a PacketManager.cs e buscaremos por;
Código:
private void RegisterNux()
E dentro desse private adicionamos o seguinte;
Código:
this._incomingPackets.Add(ClientPacketHeader.SmsVerification, new PinStaffSms());

A PRODUCTION que utilizei nesse tutorial foi PRODUCTION-201609061203-935497134, vocês terão que adicionar as IDS da release. Bom, agora vamos para a parte do GMAIL (E-mail), link para enviar e-mails a partir de C# de erros livres.
[Você precisa estar registrado e conectado para ver este link.]

Aqui irá dizer se você deve ou não permitir aplicações menos seguras e você terá que permitir, pronto. Enfim, qualquer coisa sobre o assunto, não hesite em comentar.

Créditos:
Habbo
antonyxxx10
eu por postar no ppf :*


Última edição por Maloma em 09.07.17 19:30, editado 1 vez(es)

twitterabusado e javoltar curtiram esta postagem

sylver sylver  • em 20.05.20 17:42

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 20.05.20 17:42

comentando para visualizar

daniel5046 daniel5046  • em 03.06.20 23:36

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 03.06.20 23:36

Ótimooo, eu estava esperando esse sistema, valeu amigo por ter postado •

DheikHabbig DheikHabbig  • em 04.06.20 21:45

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 04.06.20 21:45

WOW! Muito bom.

CartierMarquis CartierMarquis  • em 13.06.20 23:07

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 13.06.20 23:07

Muito bom vou testar

SrMorceguinho SrMorceguinho  • em 14.06.20 14:36

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 14.06.20 14:36

Cool

Isac_Novaes Isac_Novaes  • em 25.09.20 20:55

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 25.09.20 20:55

obrigado só espero que funcione no meu

twitterabusado twitterabusado  • em 03.10.20 12:03

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 03.10.20 12:03

muito bom

BubbleGumxd BubbleGumxd  • em 05.10.20 9:20

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 05.10.20 9:20

¡buena idea!

Hazgarf Hazgarf  • em 25.11.20 22:57

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 25.11.20 22:57

Conteúdo muito interessante, vou usar do meu servidor

Obs: alguém vendo novembro de 2020??

javoltar javoltar  • em 08.01.21 22:03

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 08.01.21 22:03

Testando 1 2 3

checker33 checker33  • em 10.01.21 10:17

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 10.01.21 10:17

Gostei do assunto, é bem útil!

4shared™ 4shared™  • em 12.01.21 14:35

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 6 Empty em 12.01.21 14:35

Comentando para visualizar as imagens
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum

BH Servers

Recomendamos o VPS da BH Servers com proteção DDOS gratuita em Cloud Server de alta performance. Entrega imediata.