Compartilhe
Ir em baixo
Maloma
Membro Ouro

Titulo : meiguinha
Registro : 02/05/2015
Mensagens : 1268
Reputação : 106

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Dom 9 Jul 2017 - 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 Dom 9 Jul 2017 - 19:30, editado 1 vez(es)

Super Mod

Registro : 15/06/2017
Mensagens : 281
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Sex 11 Jan 2019 - 15:41
Bem vindo ao Power Pixel Forum.

Você cometeu uma infração, Comentário Inútil, mas não será punido por ser novato tenha cuidado, [Você precisa estar registrado e conectado para ver este link.]!

Leia também as nossas [Você precisa estar registrado e conectado para ver este link.]

O usuário [Você precisa estar registrado e conectado para ver este link.], [Você precisa estar registrado e conectado para ver este link.], [Você precisa estar registrado e conectado para ver este link.], [Você precisa estar registrado e conectado para ver este link.], [Você precisa estar registrado e conectado para ver este link.], [Você precisa estar registrado e conectado para ver este link.] foi punido por Comentário Inútil, logo receberá uma punição de 1 infrações.

Leia as [Você precisa estar registrado e conectado para ver este link.]
Membro

Registro : 26/08/2014
Mensagens : 42
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 15 Jan 2019 - 16:06
COMENTE PARA VISUALIZAR AS IMAGENS!!
Membro Diamante

Registro : 31/03/2012
Mensagens : 1629
Ver perfil do usuáriohttp://www.hapixel.com.br

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 15 Jan 2019 - 22:52
comentando pra ver
edit, conheco essa verificacao, ja usei ela la pra 2k16, lembrando que vc precisa modificar o codigo para dar dc no usuario caso ele erre o pin, staff sem modtools e comandos ainda pode dar os raros e diamantes dele para outro usuarios
Novato

Registro : 24/11/2018
Mensagens : 9
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 16 Jan 2019 - 1:30
asdasdasd
Super Mod

Registro : 15/06/2017
Mensagens : 281
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 16 Jan 2019 - 4:24
Bem vindo ao Power Pixel Forum.

Você cometeu uma infração, Comentário Inútil, mas não será punido por ser novato tenha cuidado, [Você precisa estar registrado e conectado para ver este link.]!

Leia também as nossas [Você precisa estar registrado e conectado para ver este link.]
Novato

Registro : 28/06/2017
Mensagens : 4
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Seg 21 Jan 2019 - 2:52
vamos ver
Super Mod

Registro : 15/06/2017
Mensagens : 281
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Seg 21 Jan 2019 - 21:04
Bem vindo ao Power Pixel Forum.

Você cometeu uma infração, Comentário Inútil, mas não será punido por ser novato tenha cuidado, [Você precisa estar registrado e conectado para ver este link.]!

Leia também as nossas [Você precisa estar registrado e conectado para ver este link.]
Membro

Registro : 22/01/2019
Mensagens : 21
Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 22 Jan 2019 - 19:54
gostei
Novato

Registro : 16/11/2014
Mensagens : 7
Ver perfil do usuáriohttp://www.nerdfilmes.com

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qui 14 Fev 2019 - 9:55
comentando pra ver
yale03
Membro

Titulo :  
Registro : 10/02/2012
Mensagens : 10
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Sex 15 Fev 2019 - 1:26
comentando para ver
Fooster
Membro

Titulo :  
Registro : 30/11/2018
Mensagens : 12
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 27 Fev 2019 - 13:25
Apaixonado
onyxoficial
Novato

Titulo :  
Registro : 26/02/2019
Mensagens : 4
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 27 Fev 2019 - 15:40
comentando pra ver
Fleurs92
Novato

Titulo :  
Registro : 16/03/2019
Mensagens : 9
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qui 4 Abr 2019 - 9:15
comoentando ppara visuaiza a s imagens
isaque1478
Membro

Titulo :  
Registro : 27/12/2013
Mensagens : 38
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Seg 8 Abr 2019 - 0:12
COMENTE PARA VISUALIZAR AS IMAGENS!!
Tommas110011
Membro

Titulo :  
Registro : 14/10/2012
Mensagens : 24
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 30 Abr 2019 - 12:31
Wow, nice work!
bielesteban
Novato

Titulo :  
Registro : 30/04/2019
Mensagens : 3
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 30 Abr 2019 - 18:39
Thanks
plantina
Membro

Titulo :  
Registro : 12/03/2017
Mensagens : 108
Reputação : 1

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 15 Maio 2019 - 17:46
Comentando pra visualizar
M1ke
Membro

Titulo :  
Registro : 05/07/2018
Mensagens : 51
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Qua 15 Maio 2019 - 18:48
Comentando pra visualizar
SecretoSemNome
Membro

Titulo :  
Registro : 03/06/2018
Mensagens : 16
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

em Ter 21 Maio 2019 - 14:57
.
eheheh2
Membro

Titulo :  
Registro : 22/05/2019
Mensagens : 13
Reputação : 0

Ver perfil do usuário

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

Ontem à(s) 0:37
ewfssdfddddddddddddddddffffffffffff
Conteúdo patrocinado

[TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF - Página 5 Empty Re: [TUTORIAL] SISTEMA DE IDENTIFICADOR STAFF

Voltar ao Topo
Permissão deste fórum:
Você não pode responder aos tópicos neste fórum