[C#] Arcturus Version 2.0 Emulator by The General [C#, .NET, Windows, Linux, Mac]

Page 2 of 2 FirstFirst 12
Results 16 to 25 of 25
  1. #16
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: [C#] Arcturus Version 2.0 Emulator by The General [C#, .NET, Windows, Linux, Mac]

    Plugin Showcase

    Previously I demonstrated how you can use the plugin system to add in a command. In this post I'm trying to show the true power of the plugin system. Using a server side C# Blazor application, you're able to use any services from the emulator. In this example I made a page that shows the list of online players and their current room.

    The administration panel is a simple blazor application which is build in a standalone project. By referencing the Sirius Api we can use all services from the emulator in our project. The compiled project is placed in the plugins folder of the emulator after which the emulator will run the blazor application as a plugin. This allows close integration with the emulator, no need for RCON / TCP commands to be send and implemented by the server and you can easily extend this further to add more features.



    Code:
     @Page "/fetchdata"
    
    @using Sirius.Api.Game.User
    @using Sirius.Api.Game.Rooms @Inject IHabboCache HabboCache @Inject IGuestRoomDataRepository GuestRooms
    
    <h1>Players</h1>
    
    <p>View online players</p>
    
    @if (_habbos == null)
    {
        <p><em>Loading...</em></p>
    }
    else
    {
        <table class="table">
            <thead>
                <tr>
                    <th></th>
                    <th>Username</th>
                    <th>Time Online</th>
                    <th>Current Room</th>
                </tr>
            </thead>
            <tbody>
                @foreach (var habbo in _habbos)
                {
                    <tr>
                        <td><img src="https://www.habbo.nl/habbo-imaging/avatarimage?figure=@(habbo.Info.Figure)&headonly=1" /></td>
                        <td>@habbo.Info.Name</td>
                        <td>
                            @{
                                var span = DateTime.Now - UnixTimeToDateTime(habbo.Info.LoginTimestamp);
                                if (span.Hours > 0)
                                    @($"{span.Hours} hours, ")
                                @($"{span.Minutes} minutes")
                            }
                        </td>
                        <td>@{
                                if (habbo.CurrentRoom > 0)
                                {
                                    var room = GuestRooms.Get(habbo.CurrentRoom).Result;
                                    @($"({room.FlatId}): {room.Name}")
                                }
                                else
                                {
                                    @(" - ")
                                }
                            }</td>
                    </tr>
                }
            </tbody>
        </table>
    }
     @code {
        private IHabbo[] _habbos;
    
        protected override void OnInitialized()
        {
            _habbos = HabboCache.OnlineHabbos.Values.ToArray();
        }
    
        private DateTime UnixTimeToDateTime(long unixtime)
        {
            var dateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc);
            dateTime = dateTime.AddMilliseconds(unixtime).ToLocalTime();
            return dateTime;
        }
    }

  2. #17
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: [C#] Arcturus Version 2.0 Emulator by The General [C#, .NET, Windows, Linux, Mac]

    Here is a quick updated about the most recent additions made to the project.

    Added Totem effects


    I had implemented rollers but I did not finish them before. Anyway here is the classic roll bug on Habbo reproduced on Sirius
    https://i.gyazo.com/0e2cd37c6fc93351...41a0e7ac49.mp4

    Added Football
    Kicking:


    Dribble:


    Trapping:


    Dribble + Kick


    Including the achievements


    Rolling downhill:


    And goals + score boards


    Hopefully this satisfies the brazilian football players out there ;)

    Added Banzai Puck
    As the banzai puck has an underlying ball implementation, it was fairly straightforward to add it. When pushed it turns to your teams' color and when it goes over the tiles it will mark them for you.



    Water Patches & Water Items
    The water patches & water items interactions have been added. Water patches give the effect and when you sit on a water item (eg inflatable chair) the effect is removed.


    On Arcturus this is actually bugged and incorrectly implemented resulting in a hard line transition between different types of water patches, example deep & shallow.

    Puzzle Box
    The most popular feature on retros (kidding); the puzzle box has been added. Just simply stand next to it and double click the box in order to push it away.

    Last edited by The General; 11-11-22 at 11:42 AM.

  3. #18
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: [C#] Arcturus Version 2.0 Emulator by The General [C#, .NET, Windows, Linux, Mac]

    Small Update!
    BuildersClub has been added and fully integrated! In order to use the floorplan you need an active buildersclub subscription (just like Habbo) or turn off this requirement.
    When placing a BC item to the room, the room gets locked unless you have an active subscription. BC Furni limits can be increased by buying them from the catalog.

    Snowboarding has been added too



    Also I've added a bunch of commands (more to follow!)
    Code:
    Add Kick command.
    Add Pull command
    Add Push command
    Add SitDown command
    Add Super Pull command
    Add Super Push command
    Add eject all command
    Add pickall command
    Add pickallbc command
    Add teleport command
    Added All Around Me Command
    Added Dance All Command
    Added Gaia Info command
    Added Make Dance Command
    Added Make Say Command
    Added Make Shout Command
    Added Make Wave Command
    Added Mute command
    Added Room Alert Command
    Added Room Credits Command
    Added Room Kick Command
    Added Room Points Command
    Added Say All Command
    Added Shout All Command
    Added Summon Command
    Added Wave All Command
    Added unmute command

  4. #19
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts

    Re: [C#] Arcturus Version 2.0 Emulator by The General [C#, .NET, Windows, Linux, Mac]

    Figured I'd post a quick update here:

    Lots of effort has been put into making the API better & easier to use. Some example plugins can be found at: https://github.com/80O/SiriusPlugins

    The example plugins will be updated over time with more examples on using specific interfaces.

    Notably, networking has been optimized by using packet compression between Sirius, Gaia and the gameservers. Also memory footprint has been optimized; by using pre allocated memory buffers, fragmentation is prevented. This slightly increased the idle memory footprint at startup however its significantly more stable in the long run.

    The majority of game services (Catalog, Marketplace, Navigator, Moderation etc etc) have all received additional events which plugins can utilize to hook in additional functionality.

    All projects now have nullable enabled by default. This means that unless its explicitly stated, methods won't return an null object. Read more about it here.

    API has been further improved so more interface implementations won't have to be manually registered. Keep an eye out on the plugin examples, I'll be writing a lot more examples before the release. Preferably I'd like to have an example for the majority of interfaces.

    Changes since last post:
    - Added effects inventory
    - Added featured catalog pages.
    - Added Bot Change Figure Wired Effect
    - Added Bot Talk Wired Effect
    - Added Bot Talk to Avatar Wired Effect
    - Added Bot Give Hand Item Wired Effect
    - Added Bot Teleport Wired Effect
    - Added Bot Move Wired Effect
    - Added Bot Follow Avatar Wired Effect
    - Added Localization (Catalog, Commands, Pet / Bot chatter etc)
    - Added Landingview request a badge.
    - Added name changing.
    - Added flagme command.
    - Added command to toggle diagonal movement modes.
    - Added command logging. Thx @Squidgy
    - Added unload room command.
    - Added Ban Command
    - Added IpBan Command
    - Added Superban Command
    - Added Clones Command
    - Added Eject All Buildersclub Furniture Command.
    - Added Bonus points rewards
    - Added QuickPolls














    Also a live demo has been put up at https://sirius.arcturus.pw It supports the flash client as well as an older version of Nitro. (Still need to update that)


  5. #20
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts
    Been a bit busy the past year but I figured I'd post an update:

    213 commits since last post;

    - Split the API into two; One for the emulator (Sirius) and one for the room instances (Gaia).
    - Updated my local nitro version to the react version. (Pretty cool, thanks @Billsonn)
    - Added Battle Banzai Teleport Tiles
    - Improved API for entities: Entity.IsNextTo(Entity / Furni), Entity.LookAt(Entity / Tile / Furni) Entity.TryPassHandItem(Entity)
    - Improved API for Heightmap: GetRandomTileInSquare(centertile, radius), GetTiles(location, width, length)
    - Changed buy limit from 99 to 100
    - Fixed bunch of random nitro disconnects
    - Added SpawnFurniCommand
    - Gaia rooms are now more modular. Plugins can add services scoped to the room instance.
    - Added trade logging.
    - Replaced all timestamps with DateTime instead of integer unix timestamp
    - Bulk furniture purchasing was a bit slow. Optimized this. < 1ms for 1000 items.
    - Plugins can now instantiate room instances. Could be used for temporary rooms for games.
    - Improved API for sending notifications. (SendAlertNotification, SendBubbleAlert, SendMultiLineAlert, SendInClientLink)
    - Added Coords command.
    - Added missing owner kick exception from Wired Kick From Room Effect
    - Added Apply Wired Snapshot. Button in wired that resets furniture back to their original position.
    - Added Cannon furniture interaction.
    - Removed allow_walk, allow_lay, allow_sit from items_base table. Replaced with posture enum (blocked, walk, sit, lay)
    - Improved networking API to use more concrete generic return type instead of interfaces. This simplifies code.
    - Added missing no permission notifications and checks.
    - Added more API events & hooks.
    - Replaced all Random with Random.Shared
    - Added Recycler
    - Added GiftReceiverNotFound packet.
    - Added ClubGifts to catalog
    - Added a tool to automatically update the catalog.
    - Added a tool to import rooms from Habbo
    - Fixed a glitch where you would sit at the wrong height (sometimes)
    - Added support for list and display modes.
    - Added "Show more results" support to the navigator.
    - Added dynamic navigator filters.
    - Added more categories to navigator (visit history, my favorite rooms, rooms where my friends are etc)
    - Renamed a bunch of packets to match their original flash names.

  6. #21
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts
    I have been busy cleaning up the API and adding in a couple more features. I hope nitro catches up soon though. (@Laynester plz hurry :D)

    50 commits since last post whoohoo!

    Added: API documentation to more classes.
    Added: Acc_housekeeping to the ranks table.
    Added: AveragePrice and OfferCount to MarketplaceService.GetOffer
    Added: BCrypt verify authentication API support
    Added: Camera (Nitro!)
    Added: CatalogPageLayouts static class with hardcoded page layouts
    Added: Check to purchase to verify the page is enabled.
    Added: Discord Bot Plugin
    Added: Fix for Nitros shitty heightmap.
    Added: Hall of Fame
    Added: ItemDefinitionsRepository:GetItemBySpriteId
    Added: Load Rank.Effect and Rank.LogCommands from the database ranks table.
    Added: Load plugins from multiple directories. Configurable from config.json
    Added: PermissionKey class with all key constants.
    Added: Pickup furniture check for permission AccAnyRoomOwner
    Added: Server_statistics table.
    Added: Sorting of categories to the navigator. MyWorld MyRooms are now always at the top.
    Added: Voucher redeem history & redeem limits.
    Added: Websocket WSS SSL support
    Changed: If catalog page is disabled, don't show any items.
    Changed: Inherit perks from lower ranks during loading.
    Changed: Pass extradata to ItemManager.CreateItem
    Changed: Renamed CatalogPage.Rank field to MinRank
    Changed: Replaced Reload.Wait() with IStartable in all services.
    Changed: Updated server info command to include uptime.
    Fixed: A bug in CatalogPageTexts.FromLocalization
    Fixed: Bonus Points not being deducted after getting an item.
    Fixed: Bug in LocalizationService not subscribing to Localization.UpdatedEntry
    Fixed: Deleting catalog page from database using API
    Fixed: Duplicate interaction attaching
    Fixed: Loading plugin dependencies
    Fixed: Populate UserEntity.Rank value

    I've also created a plugin to integrate with Discord + an API for it so it can be reused in other plugins. Besides that I created a plugin to verify your account using a slash command in discord. And I shamefully copied boons marketplace discord thingy



    https://pastebin.com/5RNa6sGF
    Last edited by The General; 11-11-22 at 11:41 AM.

  7. #22
    Gamma Spamma Liam is offline
    MemberRank
    Dec 2011 Join Date
    Down UnderLocation
    2,946Posts
    It's refreshing to see that there's still at least one person still contributing to the HH section.

    Keep the updates rolling out, keep the community alive my friend.

    I've also sent you a F/R on Discord

  8. #23
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts
    (70 commits since last post)

    Added: (Re-)Load TalenTrack after achievements service (re-)load.
    Added: Achievement ACH_BuildersClub
    Added: Achievement ACH_CostumeHopper
    Added: Achievement ACH_EsA (Freeze frozen player)
    Added: Achievement ACH_GameAuthorExperience
    Added: Achievement ACH_GiftReceiver GiftGiver
    Added: Achievement ACH_RbTag
    Added: Achievement ACH_RoomDecoHosting
    Added: Achievement ACH_RoomEntry
    Added: Achievement ACH_snowBoardBuild
    Added: CrackableInventoryProductReward interaction
    Added: Follow / Stalk command.
    Added: ProgressAchievement(userId, achievementName, progress) overload. Schedules achievements progress if the player is offline.
    Added: Set default room wall and floor paint.
    Added: SwitchState Interaction
    Added: VipGate interaction (vip_gate)
    Added: WalkOverTeleport teleport within same room.
    Added: camera publishing + events.
    Added: command aliases option + add / delete alias commands.
    Added: credits command.
    Added: freeze points being given.
    Added: interaction builder for black hole.
    Added: more interactions to InteractionTypes.
    Added: option to disable achievements.
    Added: passing handitem notification
    Added: threadsafe method to change credits / points
    Changed camera_log table structure.
    Changed: Buying walkover teleport now gives a set of linked teleporters instead of 1 teleport.
    Changed: Failed commands are no longer showing in the room.
    Changed: Handle exceptions gracefully in room cycle. Prevents room from crashing.
    Changed: Hide inaccessible catalog pages.
    Changed: Ignored variable replaced with _
    Changed: Improved WalkOverTeleport interaction.
    Changed: Introduced LagWarning event to IRoomSessionService and to IRoomSession
    Changed: Load achievement score for user entities.
    Changed: Load achievements async
    Changed: Made TradingConfigurationLoader startable.
    Changed: Made commands case insensitive.
    Changed: Only kick when walking in door when there is no furniture.
    Changed: Only send achievementprogress when progress is not 0
    Changed: Refactored Achievements RoomComponent.
    Changed: Reuse byte buffers for nitro proxy missing client initiated packets.
    Changed: Small optimization to UserUpdateMotto achievement handling
    Changed: Updated ACH_RoomEntry to only increment once per room.
    Changed: Use new achievementsservice overload to reduce code duplication.
    Fixed: Creating Guilds
    Fixed: QuestsComposer not serializing _openWindow
    Fixed: absolute achievement progress calculate correctly.
    Fixed: bug in picking up furniture not being removed from selected furniture in wired.
    Fixed: friend requests not being send correctly / loaded.
    Fixed: giving respect. Roomid was missing.
    Fixed: load navigator preferences.
    Fixed: roller slide animation for furniture.
    Fixed: sender of whisper not seeing the whisper.
    Fixed: sender of whisper not seeing the whisper.
    Removed: debug console write.
    Removed: some nitro proxy initiated messages. Issues in v1 no longer in v2
    Removed: status update causing rollers to glitch out.
    Removed: text from MOTD
    Renamed: CostumeHopper to CostumeRoomNetworkTeleport to match Habbos definition.
    Renamed: Gate to PrivateRoomDoor to match Habbos definition.
    Renamed: InteractionTypes.GuildFurni to GuildCustomized to match Habbos definition.
    Renamed: NPCs component to EntitiesComponent
    Renamed: OneWayGate to OneWayDoor to match Habbos definition.
    Renamed: Wired Extra to Wired Propagation to match Habbos definition.
    Renamed: interaction types to match Habbos

    Demo hotel has been updated. Thanks for bill, laynester for fixing some things in Nitro. Thanks to RealCosis, Oliver for a couple bug reports.

    (I wont advertise here, if you want to test play, contact me)

    - - - Updated - - -

    Quote Originally Posted by Liam View Post
    It's refreshing to see that there's still at least one person still contributing to the HH section.

    Keep the updates rolling out, keep the community alive my friend.

    I've also sent you a F/R on Discord
    That enough updates for you :D ?

  9. #24
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts
    Improved football

    Sirius (Nitro) vs Habbo:


  10. #25
    Check http://arcturus.pw The General is offline
    DeveloperRank
    Aug 2011 Join Date
    7,608Posts
    Some changes (30 commits in total):

    Added ChatColor command
    Added Disconnect command
    Added Faceless command.
    Added Freeze Bots Command
    Added Freeze Pets Command
    Added Freeze command
    Added Give Rank Command
    Added Habnam Command
    Added Mass Badge Command
    Added Mass Credits Command
    Added Mimic Command
    Added Moonwalk command.
    Added Pinata Interaction
    Added Points Command
    Added Private Chat Area Furniture (Tents)
    Added Room Effect Command
    Added SwitchClothing Interaction.
    Added SwitchClothingTeleport interaction
    Added bots command (:bots)
    Added free option to ICatalogService:PurchaseAsGift
    Added keepalive message.
    Added online users command (:online)
    Added pets command (:pets)
    Changed catalog frontpage_featured to frontpage4
    Fixed stacking helper throwing an error when placing to the room.
    Flipped check for fall and climb limits.
    Save figure changes from furniture



Page 2 of 2 FirstFirst 12

Advertisement