[PlusEmu] Anti Booster Code

Mikee

Active Member
Jul 8, 2017
162
102
If boosting to collect currency is an issue on your hotel simply implement this code i've wrtten, and it'll solve your problem (most likely).
 
I suck at adding gifs so heres the link


wG7KBsnp3U.mp4

Firstly, create a new class called CheckBoosting
Code:
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;

using Plus.HabboHotel.GameClients;
using Plus.Communication.Packets.Outgoing.Inventory.Purse;
using Plus.Database.Interfaces;
using Plus.HabboHotel.Users;
using Plus.Communication.Packets.Outgoing.Rooms.Chat;
using Plus.Communication.Packets.Outgoing.Rooms;
using Plus.Communication.Packets.Outgoing.Rooms.Notifications;
using Plus.Communication.Packets.Outgoing.Rooms.Session;

namespace Plus.HabboHotel.Rooms
{
    class CheckBoosting
    {

        public List<int> XCoordinates = new List<int>();
        public List<int> YCoordinates= new List<int>();
        private int SpotDetection;
        private GameClient mClient;
        int HabboId;

        public void BoostingMovement(Room room, GameClient RecieveClient, int IdOfHabbo, int x, int y)
        {
            this.HabboId = IdOfHabbo;
            this.mClient = RecieveClient;

            this.XCoordinates.Add(x);
            this.YCoordinates.Add(y);

            if (this.XCoordinates.Count == 200)
            {
           
                for (int i = XCoordinates.Count-1; i > (XCoordinates.Count/2); i--)
                {
                    if (XCoordinates[i] == XCoordinates[i - 1])
                    {
                        continue;
                    }
                    else
                    {
                        GetClient().GetHabbo().BoostingCheck = false;
                        return;

                    }
                }
                room.GetRoomUserManager().RemoveUserFromRoom(RecieveClient, true, true, true);
                GetClient().SendPacket(new RoomReadyComposer("ADM", 3, "You Have Been Kicked for Boosting ! Better Luck Next Time"));
           
            }
        }

    public GameClient GetClient()
    {
   
        if (this.mClient == null)
            this.mClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUserID(HabboId);
        return mClient;
    }

}
}

Then go to Habbo.cs and add
public bool BoostingCheck;

Then go to RoomUser.cs
and find "GoalX = pX"

above that, put
Code:
if (GetClient().GetHabbo().BoostingCheck)
            {
                this.BoostingCheck.BoostingMovement(this.mRoom,this.mClient, this.HabboId,pX, pY);
            }

Then go to GetRoomEntryDataEvent.cs and add near the bottom.
Code:
Session.GetHabbo().BoostingCheck = true;

Enjoy ! :)
 
Last edited:

yoyok

Member
Apr 24, 2013
197
24
Does this count for every wired? What if someones go over and over at his position (just walk), also get kicked?
 

Mikee

Active Member
Jul 8, 2017
162
102
Does this count for every wired? What if someones go over and over at his position (just walk), also get kicked?

The wired doesn't matter its the movement of the user and how they boost.

No it wouldn't kick them because of how the MoveTo method works and how the code i wrote catches boosters.
This code instinctively catches only boosters, because when u boost it doesn't count as u going two tiles (e.g. one up to tele then one down) what actually happens is u just teleport to the same spot over and over again.

So itd be impossible to accidently kick someone from just walking because they would need to be walking in the same spot for that to happen, which is literally by definition impossible in any case but boosting.

if you find some of ur users overcoming this and boosting show me, ill be happy to take another challenge and improve it.
 

yoyok

Member
Apr 24, 2013
197
24
The wired doesn't matter its the movement of the user and how they boost.

No it wouldn't kick them because of how the MoveTo method works and how the code i wrote catches boosters.
This code instinctively catches only boosters, because when u boost it doesn't count as u going two tiles (e.g. one up to tele then one down) what actually happens is u just teleport to the same spot over and over again.

So itd be impossible to accidently kick someone from just walking because they would need to be walking in the same spot for that to happen, which is literally by definition impossible in any case but boosting.

if you find some of ur users overcoming this and boosting show me, ill be happy to take another challenge and improve it.
Ok, I understand it. One more question, some rooms have many battle banzai teleport tile (teleporting over and over for Gambling, until you win), how about that?
 

Mikee

Active Member
Jul 8, 2017
162
102
Ok, I understand it. One more question, some rooms have many battle banzai teleport tile (teleporting over and over for Gambling, until you win), how about that?
show me how they work via a video or give me a hotel link and ill try working on it.

In theory the idea is the same, but the itterations are different.
Find the coordinates that are repeated.
Store them,
then loop through them checking the pattern
if the pattern matches, u can pretty much verify that they are boosting, IF you wanted more reassurance that it isnt an accident then simply
access that room, check if it has the banzai furni in there and that'll almost 99% guarantee it.

But yeah show me what it is and ill work on it.
 
Last edited:

yoyok

Member
Apr 24, 2013
197
24
show me how they work via a video or give me a hotel link and ill try working on it.
In theory the idea is the same, but the itterations are different.
Find the coordinates that are repeated.
Store them,
then loop through them checking the pattern
if the pattern matches, u can pretty much verify that they are boosting, IF you wanted more reassurance that it isnt an accident then simply
access that room, check if it has the banzai furni in there and that'll almost 99% guarantee it.

But yeah show me what it is and ill work on it.
It's a simple game, when you go on the teleport, you need to come at the winning teleporter to win a price. Look here a video:
 

Mikee

Active Member
Jul 8, 2017
162
102
It's a simple game, when you go on the teleport, you need to come at the winning teleporter to win a price. Look here a video:
ohh u wanted me to check if this would hurt that game and kick users playing it. No it wouldn't, i guarantee it.
Your game will work.
 

yoyok

Member
Apr 24, 2013
197
24
ohh u wanted me to check if this would hurt that game and kick users playing it. No it wouldn't, i guarantee it.
Your game will work.
That's great, thank you for this brilliant release!

I hope you'll make more for PlusEmu in the future.
 

Mb20

New Member
Aug 12, 2016
1
1
Looks nice! Do you happen to have the edited code for the packet?
RoomReadyComposer object only takes the int and string arguments, not a string for the badge
 

Mikee

Active Member
Jul 8, 2017
162
102
Looks nice! Do you happen to have the edited code for the packet?
RoomReadyComposer object only takes the int and string arguments, not a string for the badge
Sorry thats a packet that i dont really wanna give out to the public just yet :p you can replace it with any other notif composer tho and itll work
 

Damien

Don't need glasses if you can C#
Feb 26, 2012
434
647
Just an idea, for mine I checked incoming packets. I didn't count ping packets and cycling packets (as then it'd be redundant), for the chat packets I logged the last 10-20 chats and checked if they were typing the same sentences over again. If the incoming packet was the different to the previous (not someone autoclicking) then the afk timer would reset. Same when the user sent a new chat message.

I'm not sure how much sense that makes but it made it almost impossible for people to afk on my hotel.
 

Mikee

Active Member
Jul 8, 2017
162
102
Just an idea, for mine I checked incoming packets. I didn't count ping packets and cycling packets (as then it'd be redundant), for the chat packets I logged the last 10-20 chats and checked if they were typing the same sentences over again. If the incoming packet was the different to the previous (not someone autoclicking) then the afk timer would reset. Same when the user sent a new chat message.

I'm not sure how much sense that makes but it made it almost impossible for people to afk on my hotel.

Esentially, if i get this correctly after 20 chats you check what they've typed to see if its all the same. what about chat #21? do you store the first 20 in a Queue then popleft on the queue once chat #21 is complete so the queue is still of size 20, then run the check again? or do you only check once?
 

Damien

Don't need glasses if you can C#
Feb 26, 2012
434
647
Check every message, and keep my queue the same size. So in your example 20, id remove the first element from the list to add the next.
 

Mikee

Active Member
Jul 8, 2017
162
102
Amazing memory leak!
lol, great comment. Be more specific as where the memory leak occurs, that's how threads get improved. Idiotic commenting on threads isnt appreciated on devbest as it is on the rival forum that u reap euphoria from.
 
Last edited:

TheGeneral

Active Member
Dec 27, 2016
147
161
I don't think this code will actually work if you face the other direction as you only check X?

And not sure what you're talking about.
 

Users who are viewing this thread

Top