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!

[REL] [v5-v39] Decompiled Lingo from Shockwave Habbo

Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
Decompiled Habbo Clients
By Quackster

What is this?

I have decompiled every shockwave Habbo client myself from version 5 which is 2003-ish all the way up to v39 which is the end of 2009. These clients have had their CCT's reverse engineered and the Lingo interpreted. This is the first release of its kind on RaGEZONE and I hope to see the innovation that comes out of it.

Download:

Fixed Lingo only:

An archive with all versions come with their original ccts bundled next to them, as well as the decompressed .cst files that maintain their original bytecode.



Screenshots?

Directory structure:

jv54YAs - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


Source code:

S4HmHsa - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


Can you recover cct files if you have the Lingo?

Sure can! Here's a few restorations done by the team over at Puomi:
You can look at what they've done by opening up the .cst in Director MX 2004 and looking at the script files.

Scripting references:

-
-

What's the best way restore a CCT?

Download these two:

-

Make sure you have the /Xtras/ folder in the same folder as recover-cct.

- (install by using file, serial key provided in the page.

Open recover-cct select the file and make sure you select it both times.

Open it with Director MX 2004.

Lets say I open hh_room_bar and I find the "bar_b Class" script and it's blank.

OH5OM0s - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


I locate bar_b Class.ls in "/script_hh_room_bar/bar_b Class.ls" and I copy and paste the code back into the Director MX 2004 script member.

zbodmX5 - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


We have an error when trying to save it!

HBQnG4N - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums



Warning!

Some code may have if statements that check against the "me" variable, such as in the RC4 screenshot I supplied above, these are wrong, and some decompiled code has .getAt(undefined), this is also wrong and require manual fixing.

I'll need to add the global properties back and fix a few errors otherwise the script won't compile, so I add back at the top:

Code:
property pDiscoTimer

uCnvwUb - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


And I had to fix other errors, the full script fixed is now:

Code:
property pDiscoTimer

on construct(me)
  pDiscoTimer = 0
  return(1)
  exit
end

on deconstruct(me)
  return(removeUpdate(me.getID()))
  exit
end

on prepare(me)
  return(receiveUpdate(me.getID()))
  exit
end

on update(me)
  if the milliSeconds < pDiscoTimer + 500 then
    return(1)
  end if
  pDiscoTimer = the milliSeconds
  tThread = getThread(#room)
  if tThread = 0 then
    return(0)
  end if
  tRoomVis = tThread.getInterface().getRoomVisualizer()
  if tRoomVis = 0 then
    return(0)
  end if
  tDst = "df" & random(3)
  tCmd = "setfloor" & ["a", "b"].getAt(random(2))
  tNum = string(random(12))
  tSpr = tRoomVis.getSprById("show_" & tDst)
  if not tSpr then
    return(error(me, "Sprite not found:" && "show_" & tDst, #showprogram))
  else
    if tCmd = "setfloora" then
      tSpr.member.paletteRef = member(getmemnum("clubfloorparta" & tNum))
    else
      if tCmd = "setfloorb" then
        tSpr.member.paletteRef = member(getmemnum("clubfloorpartb" & tNum))
      end if
    end if
  end if
  exit
end

on showprogram(me, tMsg)
  if voidp(tMsg) then
    return(0)
  end if
  tThread = getThread(#room)
  if tThread = 0 then
    return(0)
  end if
  tRoomVis = tThread.getInterface().getRoomVisualizer()
  if tRoomVis = 0 then
    return(0)
  end if
  tDst = tMsg.getAt(#show_dest)
  tCmd = tMsg.getAt(#show_command)
  tNum = tMsg.getAt(#show_params)
  tSpr = tRoomVis.getSprById("show_" & tDst)
  if not tSpr then
    return(error(me, "Sprite not found:" && "show_" & tDst, #showprogram))
  else
    if tCmd = "setlamp" then
      tSpr.member.paletteRef = member(getmemnum("lattialamppu" & tNum))
    end if
  end if
  exit
end

In future cases multiple properties are separated by commas, example:

Code:
property pDiscoTimer, pTest, pTesting

If I save the file either by using the file menu or CTRL+S and there's no compile errors, then congrats we can make the CCT again by using the Xtras -> Update Movies menu.

b98u0R3 - [REL] [v5-v39] Decompiled Lingo from Shockwave Habbo - RaGEZONE Forums


Make sure "Convert to Shockwave Movie(s)" is selected and it's highly advisable you do backups, and now you can test your newly created CCT! :):

Fuckings to Sulake for removing the classic features
 

Attachments

You must be registered for see attachments list
Last edited:
Junior Spellweaver
Joined
Jun 1, 2018
Messages
105
Reaction score
40
Re: [REL] [v5-v39] Completely decompiled shockwave Habbo clients

Hot damn!!

This really may be the best release the section has ever seen.

Gonna be digging through all of these.

Thanks a ton Alex.
 
Skilled Illusionist
Joined
Feb 25, 2009
Messages
343
Reaction score
114
Re: [REL] [v5-v39] Completely decompiled shockwave Habbo clients

Just awesome ! But so late... :/

Something better must be made for play to this old versions easily !
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
Re: [REL] [v5-v39] Completely decompiled shockwave Habbo clients

Lingo code right? No way!
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
Re: [REL] [v5-v39] Completely decompiled shockwave Habbo clients

Lingo code right? No way!

Yeah, it's all Lingo. :love:

It's not perfectly decompiled but most of it can easily be fixed. I've noticed that the nested if statements were once switch cases etc. I've provided documents for others to learn Lingo script. :p:
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
Re: [REL] [v5-v39] Completely decompiled shockwave Habbo clients

Damn, I thought it was impossible to actually recover it. Damn. :D
 
Custom Title Activated
Loyal Member
Joined
Oct 26, 2012
Messages
2,357
Reaction score
1,086
You actually decompiled and done all the CCTs? I was gonna suggest this to you, seems like you've done something I didn't expect. I guess this will be useful to some people here at least, and it's cool to look into the actual code of those old versions.

My respect and lots of thanks!

Edit:
Puomi is down?
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
You actually decompiled and done all the CCTs? I was gonna suggest this to you, seems like you've done something I didn't expect. I guess this will be useful to some people here at least, and it's cool to look into the actual code of those old versions.

My respect and lots of thanks!

Edit:
Puomi is down?

Ye, Puomi is down for some unknown reason.

Edit; Seems like Puomi is up again.
 
Newbie Spellweaver
Joined
Mar 1, 2019
Messages
9
Reaction score
15
Seems like something's wrong with their site, sometimes it works (like now) and sometimes it doesn't work.
Ascii hosts the site and server on his own machine, he has had issues with his internet (Router?) before
 
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
You actually decompiled and done all the CCTs? I was gonna suggest this to you, seems like you've done something I didn't expect. I guess this will be useful to some people here at least, and it's cool to look into the actual code of those old versions.

My respect and lots of thanks!

Edit:
Puomi is down?

I have the Puomi restorations backed up, this should work:
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
I managed to play with some of the hotel views and got them to work after lightly editing them, like changing color. For example, the Chinese one I got the clouds working (Literally copied the Entry cloud class from Puomi restorations) got the cars and buses to work from the lingo code that Alex provided, but the bicycles seem to be dead even if the code exists under Entry Bicycle Class.

I also realized if you change the "Habbo Hotel" corner_element in ps or other photo editor and replace it the loader just gives you the grey error box. :tongue:
 
Newbie Spellweaver
Joined
Jan 4, 2012
Messages
80
Reaction score
25
Perhaps wrong image format / bitdepth?

I doubt that. I just copy the cast member directly to PS and edit it just like the hotel view (which works like normal) but not with the corner_element. But well, I will try to figure it out. :)

Update: Just erased both corner_element and corner_elemet_shadow in Director with the eraser so they're white but in the loader, both corner_element and corner_element_shadow are completely transparent now. Not what I really wanted but hey it looks clean at least.:blushing:
 
Last edited:
Developer
Developer
Joined
Dec 11, 2010
Messages
2,955
Reaction score
2,688
duck, back in the day we'd have killed for this.

Also in the present day too, Shockwave Habbo is still awesome. And contains features that never came back into flash Habbo, that's why I released this. I also didn't have the knowledge to decompile CCT's until early last year.
 
Last edited:
Junior Spellweaver
Joined
Jun 1, 2018
Messages
105
Reaction score
40
duck, back in the day we'd have killed for this.
User counts aren't the best but Shockwave servers have never been better! Content that was once thought impossible has been put out, features never implemented are actively being worked on, old rooms and furni are being restored that were once lost.

Download PaleMoon and check it out [emoji14]



 
Back
Top