Você não está conectado. Conecte-se ou registre-se

Power Pixel » Games » MMO & RPG » Habbo Hotel » Tutoriais » [TUTORIAL] Sistema de filtro para Chat Staff

[TUTORIAL] Sistema de filtro para Chat Staff

Ver o tópico anterior Ver o tópico seguinte Ir em baixo  Mensagem [Página 1 de 1]

1 [TUTORIAL] Sistema de filtro para Chat Staff em Qua 10 Maio 2017 - 13:28

Maloma

Membro Ouro


avatar
Olá Convidado, tudo bem?
Aqui estou trazendo um pequeno tutorial de como colocar um sistema de filtro de publicidade no seu hotel, é basicamente aqueles convites de sala que nós podemos fazer no famoso “CONSOLE”, aquela maneira típica de alertas que quase todos enviam e a maioria diz “Me tira do SPAM”. Enfim, para aqueles que ainda não entendeu, aqui está uma imagem do que eu basicamente estou falando.
[Você precisa estar registrado e conectado para ver esta imagem.]

Antes de começarmos, não sei se há algum tópico ensinando a colocar Chat Staff, se não tiver, eu até posso fazer um tutorial ensinando como colocar essa ferramenta dentro do seu servidor, pois esse tutorial do sistema sem o Chat Staff não irá funcionar.
A primeira coisa que irá fazer nesse tutorial é abrir a source do seu emulador com o Visual Studio e devemos ir até a class “ChatEvent.cs”. Diretório: Communication->Packets->Incoming->Rooms->Chat
                          
Dentro da class “ChatEvent.cs” iremos copiar esse código que está aqui em baixo e iremos colar dentro da mesma.
Código:
using System;

using Plus.Core;
using Plus.Communication.Packets.Incoming;
using Plus.Utilities;
using Plus.HabboHotel.Global;
using Plus.HabboHotel.Quests;
using Plus.HabboHotel.Rooms;
using Plus.HabboHotel.GameClients;
using Plus.HabboHotel.Rooms.Chat.Logs;
using Plus.Communication.Packets.Outgoing.Messenger;
using Plus.Communication.Packets.Outgoing.Rooms.Chat;
using Plus.Communication.Packets.Outgoing.Moderation;
using Plus.Communication.Packets.Outgoing.Rooms.Notifications;
using Plus.HabboHotel.Rooms.Chat.Styles;

namespace Plus.Communication.Packets.Incoming.Rooms.Chat
{
    public class ChatEvent : IPacketEvent
    {
        public void Parse(GameClient Session, ClientPacket Packet)
        {
            if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom)
                return;

            Room Room = Session.GetHabbo().CurrentRoom;
            if (Room == null)
                return;

            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
            if (User == null)
                return;

            string Message = StringCharFilter.Escape(Packet.PopString());
            if (Message.Length > 100)
                Message = Message.Substring(0, 100);

            int Colour = Packet.PopInt();

            ChatStyle Style = null;
            if (!PlusEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(Style.RequiredRight)))
                Colour = 0;

            User.UnIdle();

            if (PlusEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime && Session.GetHabbo().FloodTime != 0)
                return;

            if (Session.GetHabbo().TimeMuted > 0)
            {
                Session.SendMessage(new MutedComposer(Session.GetHabbo().TimeMuted));
                return;
            }


            if (!Session.GetHabbo().GetPermissions().HasRight("room_ignore_mute") && Room.CheckMute(Session))
            {
                Session.SendWhisper("Ups, estás muteado.");
                return;
            }

            User.LastBubble = Session.GetHabbo().CustomBubbleId == 0 ? Colour : Session.GetHabbo().CustomBubbleId;

            if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
            {
                int MuteTime;
                if (User.IncrementAndCheckFlood(out MuteTime))
                {
                    Session.SendMessage(new FloodControlComposer(MuteTime));
                    return;
                }
            }

            if (Message.StartsWith(":", StringComparison.CurrentCulture) && PlusEnvironment.GetGame().GetChatManager().GetCommands().Parse(Session, Message))
                return;

            PlusEnvironment.GetGame().GetChatManager().GetLogs().StoreChatlog(new ChatlogEntry(Session.GetHabbo().Id, Room.Id, Message, UnixTimestamp.GetNow(), Session.GetHabbo(), Room));

            Room.AddChatlog(Session.GetHabbo().Id, Message);

            if (PlusEnvironment.GetGame().GetChatManager().GetFilter().IsFiltered(Message) && !Session.GetHabbo().GetPermissions().HasRight("word_filter_override"))
            {

                PlusEnvironment.GetGame().GetClientManager().StaffAlert(new RoomInviteComposer(-0x7fffffff, "El usuario " + Session.GetHabbo().Username + " al parecer está nombrando otro hotel, frase:  " + Message + "."));
              
                if (PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckBannedWords(Message))
                {
                    Session.GetHabbo().BannedPhraseCount++;
                  

                    if (Session.GetHabbo().BannedPhraseCount >= PlusStaticGameSettings.BannedPhrasesAmount)
                    {
                        PlusEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Por mandar spam con palabras prohibidas (" + Message + ")", (PlusEnvironment.GetUnixTimestamp() + 78892200));
                        Session.Disconnect();
                        return;
                    }
                    else
                    {
                        
                        Session.GetHabbo().GetClient().SendMessage(new WhisperComposer(User.VirtualId, Session.GetHabbo().BannedPhraseCount + "/" + PlusStaticGameSettings.BannedPhrasesAmount +" Estas usando palabras prohibidas. Seras baneado si continuas.", 0, 34));
                    }
                }


                Message = null;
            }
            if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && Message != null)
                Message = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Message);


            PlusEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT);

            User.OnChat(User.LastBubble, Message, false);
        }
    }
}
Por fim nós iremos salvar e você terá que dar “Debug” em seu emulador.
O tutorial é simples assim, prático e rápido. Espero ter ajudado!
Créditos: Xpz Holos & Maloma

Ver perfil do usuário

pedxz

Administrator


avatar
vai ser muito útil, obrigado pela partilha :D

Ver perfil do usuário

Saigon

Membro Elite


avatar
Bem interessante esse filtro. :v

Ver perfil do usuário

Kolohe

Membro


avatar
Muito útil. Obrigado por compartilhar

Ver perfil do usuário

Flash Reverso

Honorário


avatar
Muito bom tutorial! Dá para proibir SPAM's de divulgação!

Ver perfil do usuário
ótimo tutorial, poderia fazer um tutorial de como adicionar o " Chat Staff " no servidor?

Ver perfil do usuário

Maykeh

Membro Bronze


avatar
Obrigado por postar esse tutorial!

Ver perfil do usuário

G'-'nz

Membro


avatar

Muito util obrigado por compartilha conosco.

Ver perfil do usuário

Cl4ush

Administrator


avatar
Ferramenta muito útil,
obrigado por compartilhar!



[info]Leia as regras do fórum para não ser punido, [Você precisa estar registrado e conectado para ver este link.][/info]



[Você precisa estar registrado e conectado para ver esta imagem.][Você precisa estar registrado e conectado para ver esta imagem.]

      
Ver perfil do usuário http://alunoqaluno.hol.es/

TrY!

Honorário


avatar
Olá,

Também concordo quanto à utilidade da ferramenta. Obrigado por compartilhar.

Ver perfil do usuário http://www.power-pixel.net/forum

Conteúdo patrocinado



Ver o tópico anterior Ver o tópico seguinte Voltar ao Topo  Mensagem [Página 1 de 1]

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