Welcome!

Join our community of MMO enthusiasts and game developers! By registering, you'll gain access to discussions on the latest developments in MMO server files and collaborate with like-minded individuals. Join us today and unlock the potential of MMO server development!

Join Today!

[C#] Project H(S)R - 'Full' R38 Server

Status
Not open for further replies.
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
The General I don't think that would actually be possible and I think if you wanted something like that, you would have to 'decode' the CCT and turn the bitmap (the images are bitmap) code into SWF code, but honestly I don't really know.

-- UPDATE

Slap myself a million times on my head. I used post.it as sprite id but it was supposed to be post_it lol. What is weird though is that shockwave ONLY accepts post_it but flash accepts both. I'm so... nevermind, I give up on understanding Sulake logics...

xEi3uV3 - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
The General okay then, good luck.

Ontopic:

I don't know WHEN I'll change to Fluent NHibernate and different sockets, I currently only have my school and work laptop so I basically have to work on a virtual machine. And it's not very fast. And I have no money to buy another laptop and my computer is only for gaming. My other laptop basically shuts itself down 80% of the time when I'm doing something. It's poop. Anyways, I'll be doing some updates this weekend and maybe next week a lot IF I have a free week. Got my exams in 2 weeks which will be until end of January. But I'll keep doing updates every now and then.
 
Last edited:
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Hmm..

Shockwave is Ducking me up right now; it won't load 95% (which is the max without encryption), it doesn't create a connection with the server... I have no idea why shockwave is so mean... meh, Flash updates until shockwave works again....

Hv9RzQI - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums


How can I forget to send user flat cats?...

4lp3Eti - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums


Now I am curious.. this makes the name appear, but what if a room has a category for a higher rank? It wouldn't show up... and there's no int that defines visibility... or am I thinking too confusing?

What do you think? Should I still keep the hide owner ability in Flash as you can't manage it? (I don't know how Habbo did it, it is so long ago).

--- Update

Inventory items 50% done.

QvKTeMY - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums

bsrQAK0 - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,685
Nice progress! I'm excited for the end result.

Ever considered placing this on GitHub so I could possibly contribute/help you? That is if you're willing to accept push requests. :):
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
@Quackster I've never been much into Git and I don't have much experience besides pushing/pulling, but no, not really. I will post the source when basic room entry is done for people to find any terrible codes etc, however, this won't be until I've rewritten a big part of the source (for different sockets and Fluent NHibernate). If you really want to help you can add me on Skype and we can talk about it.
 
Last edited:
git bisect -m
Loyal Member
Joined
Sep 2, 2011
Messages
2,171
Reaction score
916
@Quackster I've never been much into Git and I don't have much experience besides pushing/pulling, but no, not really. I will post the source when basic room entry is done for people to find any terrible codes etc, however, this won't be until I've rewritten a big part of the source (for different sockets and Fluent NHibernate). If you really want to help you can add me on Skype and we can talk about it.

I will love analyst this, if i find time.

Good progresses Glaceon, i hope you can finish this. We didn't had any complete Habbo Beta emulator. This release was like, ignored for our community.

Good luck!
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
The General this is what I sent when the item has been added to the database and IF the inventory has been initialized, to the inventory (the inventory won't be initialized at login, but at the point (s)he opens the inventory).

PHP:
response = new ServerMessage(67);
product.Serialize(response);
session.sendMessage(response);

response = new ServerMessage(101);
session.sendMessage(response);

The first response is the notification you purchased X (what you see in the upper right corner) which has the exact same structure as products in the catalogue. The second is of course the inventory update. Try find a packet that accepts nothing more than the catalogue product constructor. If it still doesn't show up, Habbo removed it.
 
Experienced Elementalist
Joined
Jan 17, 2012
Messages
229
Reaction score
132
Bubbles? I don't play Habbo that much, nor do I have enough credits to purchase things from the catalogue :D

Bubble Alerts are the one displaying on the top right corner of the client below the purse info to give you info on something important or when announcing you unlocked an achievement, most of the time they're attached to an icon, disappearing automatically. That makes them really graphical, non-intrusive and good as feedback from a UX standpoint.

As reference, in the revision and maybe 3 or 4 revisions up from the one used in this development thread, they were also used to announce a friend connected/disconnected to/from the hotel.

3252b1deb6c80d31c446903f2f058547 - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums
 

Attachments

You must be registered for see attachments list
Last edited:
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
The General oh well, you can always add them in the SWF!

Ontopic:

The source unfortunately can't be rewritten anytime soon. I don't have a good working laptop which I can use for development. I will finish off this source and later implement new sockets, Fluent NHibernate and perhaps log4net (if it was called like that I don't remember). Also, as soon as room entry, navigator and basic room functionality (without items) are done, I'll make a preview video. I will start the CMS soon when I feel like it, also, after all those functions I just mentioned and furniture placing and walking and sitting etc. are done, I'll try to setup a test server. If anybody would like to contribute to the server, has an idea or anything, you can ask it here or add me on Skype (better idea): mr.josh.97

I'll be having a day off from development as I'll be visiting the cinema this afternoon and this evening I'll be watching soccer and probably playing XBOX. I hope you have a wonderful Saturday.
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
Started basic room entry, still have to do 90%, but at least the room model show up...? Okay, it's not much, but at least it works.

kNOIPl6 - [C#] Project H(S)R - 'Full' R38 Server - RaGEZONE Forums


PHP:
public class RoomModel
    {
        public int DoorX { get; private set; }
        public int DoorY { get; private set; }
        public double DoorHeight { get; private set; }
        public int DoorRotation { get; private set; }
        public string Map { get; private set; }
        public string FuseRequired { get; private set; }

        private bool[,] passableTiles;
        private double[,] tileHeights;

        public RoomModel(DataRow row)
        {
            this.DoorX = (int)row["door_x"];
            this.DoorY = (int)row["door_y"];
            this.DoorHeight = (double)row["door_height"];
            this.DoorRotation = (int)row["door_rotation"];
            this.Map = (string)row["map"];
            this.FuseRequired = (string)row["required_fuse"];

            this.Generate();
        }

        public void Generate()
        {
            string[] splitMap = Map.Split('|');
            this.passableTiles = new bool[splitMap[0].Length, splitMap.Length];
            this.tileHeights = new double[splitMap[0].Length, splitMap.Length];

            for (int y = 0; y < splitMap.Length; y++)
            {
                for (int x = 0; x < splitMap[y].Length; x++)
                {
                    char tile = splitMap[y][x];

                    if (tile == 'x')
                    {
                        passableTiles[x, y] = false;
                    }
                    else
                    {
                        passableTiles[x, y] = true;

                        double height;

                        if (!double.TryParse(tile.ToString(), out height))
                            height = 1.0;

                        tileHeights[x, y] = height;
                    }
                }
            }
        }

        public string DefaultHeightmap()
        {
            return Map.Replace("|", Environment.NewLine);
        }

        public string GenerateClientMap(Room room)
        {
            string[] splitMap = Map.Split('|');
            StringBuilder clientMap = new StringBuilder();

            for (int y = 0; y < splitMap.Length; y++)
            {
                for (int x = 0; x < splitMap[y].Length; x++)
                {
                    string square = splitMap[y][x].ToString();

                    if (x == DoorX && y == DoorY)
                    {
                        square = ((int)DoorHeight).ToString();
                    }

                    clientMap.Append(square);
                }

                clientMap.Append(Convert.ToChar(13));
            }

            return clientMap.ToString();
        }

Probably the shittiest way to do it. If anybody has some tips in order to improve it, they're welcome.
 

Attachments

You must be registered for see attachments list
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
If only my shockwave client did still work... I can't test whether room entry also works on shockwave. It weirdly stopped working from out of nowhere. I will maybe do some other room stuff today but I was working on camera for woodpecker for a bit (just for teh fun).

saamus Sadly not many people are interested in the old times, but I think the old times were the best.
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
This is why GitHub comes in handy, so you can rollback changes to see what commit broke your room entry :D:

No, you clearly don't understand. I meant my shockwave loader stopped working out of nowhere, like it doesn't create a connection to my server. Room entry still works. But I can't test if it works on shockwave due to my shockwave loader being broken.
 
Status
Not open for further replies.
Back
Top