[Emulator + Nitro] Arceus Pack

djjinn

New Member
Dec 13, 2020
3
9
Arceus Pack
What is it?
The Arceus Pack consists of a clean and expandable code emulator, easy to edit, maintain, and update with enhancements in Nitro for the best possible habbo playing performance.

I don't aim to replicate Habbo 1:1; I don't think that's ever been the purpose of retros. Instead, everything I'd like to implement, whether it's in the emulator or client, or any suggestions from players, will be included in this project. The emulator's structure allows you to toggle features, use plugins, and configure how it operates without resorting to tricks like in other emulator codes.

Currently implemented
  • Basic interactions (sitting, lying down, using rollers, teleporting).
  • Command manager (still needs implementation for all types of commands, but the structure is quite done).
  • Navigator.
  • Catalog.
  • Inventory & badges.
  • Plugin manager.
  • Event handler.
  • Configuration.
  • Localization by default.
  • The project has been divided into multiple modules, sharing an API module to expose interfaces between themselves and plugins.
  • Built on injection using Guice. Each module injects its own bindings, and every plugin is a child of the emulator's root injector.
  • Cycling is managed by a "Task Handler"-like class, for example, rooms have their own handlers. Then, every component (such as entities, furniture, etc.) registers tasks in the handler to be executed within the game cycle interval.
  • Event handlers are scoped, meaning that if you want to subscribe to any room event, you must have a room instance and then subscribe to its event handler.
  • By default, rooms support custom components and integrate with their logic.
  • All wireds is done through its own plugin. I'm implementing wireds in a way that's quite different from the usual method, so if you receive it and don't like it, you can always switch back to the "original Habbo" way of wireds.
  • Pathfinder use pooled objects by default
  • Fixed extra data serialization, no more tricks to send it to client
  • WIP packet assertion & validation
  • WIP commands context & structure
Java:
public class AboutCommand implements ICommand {
    private static final LocalizedString name = LocalizedString.of("command.about.name");
    private static final LocalizedString[] alias = new LocalizedString[]{};
    private static final LocalizedString description = LocalizedString.of("command.about.description");
    private static final LocalizedString response = LocalizedString.of("command.about.response", "hello world!");

    @Override
    public void execute(final ICommandContext ctx) {
        ctx.whisper(response);
    }

    @Override
    public @NotNull LocalizedString getName() {
        return name;
    }

    @Override
    public @NotNull LocalizedString[] getAlias() {
        return alias;
    }

    @Override
    public @NotNull LocalizedString getDescription() {
        return description;
    }

    @Override
    public Object[] getParameters() {
        return new Object[0];
    }
}
You must be registered for see images attach

Credits
  • Djinn (me)
  • Nicollas (helped in early stages, not longer as dev)

Follow for more:
 
Last edited:

Leader

github.com/habbo-hotel
Aug 24, 2012
1,010
271
1:1 sadly is the purpose of retros and why a lot of terrible devs chase Air support instead of just taking advantage of Nitro fully

Good luck with development though, glad to see a project that isn’t trying to be the same thing
 

djjinn

New Member
Dec 13, 2020
3
9
1:1 sadly is the purpose of retros and why a lot of terrible devs chase Air support instead of just taking advantage of Nitro fully

Good luck with development though, glad to see a project that isn’t trying to be the same thing
Yes but is waste of time. When you make a pirate game it's already not 1:1

We need improve game instead trying to copy and never be equal


- Re-coding wireds

Every wired box will be re-coded focus in usabilitty. Here is a example of wired say keyword
You must be registered for see images attach

You can choose type of entity to trigger it, case-sensitive, match type (setence, starts, ends, contains). You can also test keyword triggering if matches (even test with variables)

Every wired will suport any entity as default. Then, we can make a lot mini-games/RPG with interactions with pets/bot or something like that.

Right side is variables, you can use input variables (from wired, signal, player etc) in wired context, this case in keyword and also can output variables, may a keyword, other variable from input etc. Infinity possibilities

- Variables

Variables may also be shown to users, below currencies (maybe elsewhere as well), this also allow more possibilities to games (this case i was showing walk path size while testing pathfinder)
You must be registered for see images attach
 

djjinn

New Member
Dec 13, 2020
3
9
Looking at what you're doing I would take another look at Habbo. They are doing the same thing since today but in a UX friendly way
This design was before variables release. I will wait for it and then may re-design it.

I also would say, variables as habbo did is not so friendly

Edit: Im not a pro css/html dude, so if someone want help with project, fell free to dm me
 
Last edited:

Users who are viewing this thread

Top