Jump to content
  • Please do not post a message for the purpose of insulting, incitement to hatred, sexual remarks and any other which does not respect our terms of use !

Staff Chat + VIP Chat


Èsska (S-K)

Recommended Posts

Salut tous le monde!

Je me présente en tant que développeur.

 

Je vous propose mon premier tutoriel qui va sûrement en aider plus d'un. C'est un système inédit que j'ai essayé de faire et que j'ai réussi.

 

Tout d'abord, je vous invite à ouvrir votre émulateur. ( Ce tutoriel est réalisé sous PlusEmu )

 

Je tiens à remercier "

To access this link, please log in.

" qui a fait son tutoriel pour le Staff Chat et que j'ai reprit pour ce tutoriel.

 

Bon commençons.

 

1./ Rendez vous dans votre émulateur et dans : UserDataFactory.cs

  

2./ Recherchez la ligne : 

return new UserData(UserId, Achievements, favouritedRooms, ignores, badges, friends, requests, rooms, quests, user, Relationships);

 

3./ Modifiez celle-ci par:

 

            if (user.GetPermissions().HasRight("financeur"))
            {
                //VIPS
                friends.Add(0x7fffffff, new MessengerBuddy(0x7fffffff, "VIP Chat", "hr-831-45.fa-1206-91.sh-290-1331.ha-3129-100.hd-180-2.cc-3039-73.ch-3215-92.lg-270-73", "Solo Staffs", 0, true, false));
                return new UserData(UserId, Achievements, favouritedRooms, ignores, badges, friends, requests, rooms, quests, user, Relationships);
            }
            if (user.GetPermissions().HasRight("mod_tool"))
            {
                //STAFFS
                friends.Add(0x7fffffff, new MessengerBuddy(0x7fffffff, "Admin Chat", "hr-831-45.fa-1206-91.sh-290-1331.ha-3129-100.hd-180-2.cc-3039-73.ch-3215-92.lg-270-73", "Solo Staffs", 0, true, false));
                return new UserData(UserId, Achievements, favouritedRooms, ignores, badges, friends, requests, rooms, quests, user, Relationships);
            }
            return new UserData(UserId, Achievements, favouritedRooms, ignores, badges, friends, requests, rooms, quests, user, Relationships);

 

4./ Allez dans SendMsgEvent.cs et remplacez tout le contenu par :

 

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
using Plus.Communication.Packets.Outgoing.Messenger;

namespace Plus.Communication.Packets.Incoming.Messenger
{
    class SendMsgEvent : IPacketEvent
    {
        public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetMessenger() == null)
                return;

            int userId = Packet.PopInt();
            if (userId == 0 || userId == Session.GetHabbo().Id)
                return;

            string message = PlusEnvironment.GetGame().GetChatManager().GetFilter().CheckMessage(Packet.PopString());
            if (string.IsNullOrWhiteSpace(message))
                return;


            if (Session.GetHabbo().TimeMuted > 0)
            {
                Session.SendNotification("Oops, tu es muet. Tu ne peux envoyer de message.");
                return;
            }

            if (userId == 0x7fffffff)
            {
                if(Session.GetHabbo().Rank == 4)
                {
                    PlusEnvironment.GetGame().GetClientManager().StaffAlert(new NewConsoleMessageComposer(0x7fffffff, "( VIP ) " + Session.GetHabbo().Username + ": " + message), Session.GetHabbo().Id);
                    return;
                }

                PlusEnvironment.GetGame().GetClientManager().StaffAlert(new NewConsoleMessageComposer(0x7fffffff, "( STAFF ) " + Session.GetHabbo().Username + ": " + message), Session.GetHabbo().Id);
                return;
            }


            Session.GetHabbo().GetMessenger().SendInstantMessage(userId, message);

        }
    }
}

 

5./ Allez dans BuddyListComposer.cs et remplacez tous le contenu par :

 

using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;

using Plus.HabboHotel.Users;
using Plus.HabboHotel.Users.Messenger;
using Plus.HabboHotel.Users.Relationships;

namespace Plus.Communication.Packets.Outgoing.Messenger
{
    class BuddyListComposer : ServerPacket
    {
        public BuddyListComposer(ICollection<MessengerBuddy> Friends, Habbo Player)
            : base(ServerPacketHeader.BuddyListMessageComposer)
        {
            base.WriteInteger(1);
            base.WriteInteger(0);

            base.WriteInteger(Friends.Count);
            foreach (MessengerBuddy Friend in Friends.ToList())
            {
                if (Friend.Id == 0x7fffffff)
                {
                    base.WriteInteger(0x7fffffff);
                    base.WriteString(Friend.mUsername);
                    base.WriteInteger(1);//Gender.
                    base.WriteBoolean(true);
                    base.WriteBoolean(Friend.InRoom);
                    base.WriteString(Friend.mLook);
                    base.WriteInteger(0); // category id
                    base.WriteString(string.Empty);
                    base.WriteString(string.Empty);//Alternative name?
                    base.WriteString(string.Empty);
                    base.WriteBoolean(true);
                    base.WriteBoolean(false);
                    base.WriteBoolean(false);//Pocket Habbo user.
                    base.WriteShort(0);


                }

                else
                {
                    Relationship Relationship = Player.Relationships.FirstOrDefault(x => x.Value.UserId == Convert.ToInt32(Friend.UserId)).Value;

                    base.WriteInteger(Friend.Id);
                    base.WriteString(Friend.mUsername);
                    base.WriteInteger(1);//Gender.
                    base.WriteBoolean(Friend.IsOnline);
                    base.WriteBoolean(Friend.IsOnline && Friend.InRoom);
                    base.WriteString(Friend.IsOnline ? Friend.mLook : string.Empty);
                    base.WriteInteger(0); // category id
                    base.WriteString(Friend.IsOnline ? Friend.mMotto : string.Empty);
                    base.WriteString(string.Empty);//Alternative name?
                    base.WriteString(string.Empty);
                    base.WriteBoolean(true);
                    base.WriteBoolean(false);
                    base.WriteBoolean(false);//Pocket Habbo user.
                    base.WriteShort(Relationship == null ? 0 : Relationship.Type);
                }
            }
        }
    }
}

 

 

6./ Allez dans votre Base De Données et exécutez ce code ( SQL ) -> PENSEZ BIEN A CHANGER "DBNAME" PAR LE NOM DE VOTRE BASE DE DONNÉE !! ->  :

 

INSERT INTO `DBNAME`.`permissions` (`id`, `permission`, `description`) VALUES (NULL, 'financeur', 'Rank VIP');

 

7./ Récupérez l'ID de la permission et exécutez ce code ( SQL ) -> PENSEZ BIEN A CHANGER "DBNAME" PAR LE NOM DE VOTRE BASE DE DONNÉE, "IDPERM" PAR L'ID DE VOTRE PERMISSION ET "RANK" PAR LE RANK VIP !! -> :

INSERT INTO `DBNAME`.`permissions_rights` (`id`, `group_id`, `permission_id`) VALUES (NULL, 'RANK', 'IDPERM');

 

 

 

- Screenshots:

To access this link, please log in.

To access this link, please log in.

 

- Infos complémentaires:

En étant VIP, on voit uniquement le VIP Chat qui est l'Admin Chat pour les staffs.

Ça économise une place. :3

[ Finalement je reviens dans les rétros. ]

 

- Crédits ( J'ai reprit ceux de Masako ):

- Dangerous

- Ragezone

- Cria Habbos

- RetroRipper

- Communauté française

- S-KDev ( Je me suis rajouté. :') )

Link to post
Share on other sites

Il y a 5 heures, Kurumi.Dev a dit :

Merci, et le staff chat c'est simple :) mais, au moins sa fait 1 petit + pour les création d'un club au cms ;) 

Yep. ;) J'ai jamais dit que c'était compliqué. :p 

Link to post
Share on other sites

  • 3 months later...

Super tuto bien détaillez, propre! 

Merci à toi !

I hear and I forget. I see and I remember. I do and I understand <3 

 

  • Tout le monde est un génie. Mais si tu juge la capacité d'un poisson rouge à grimper à un arbre il passera sa vie à croire qu'il est stupide. Albert Einstein.
     
     
Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...