Baixando Maneiro™ é mais uma marca da Click Net®Para informações contate-nos no email baixandomaneiro@gmail.com
Guide to Habbo Hotel emulators A couple of rules for this thread - If you don't have anything to contribute that goes towards the development of Habbo Hotel emulators, then don't post.
- When posting packets try give a decent description and if your explaining what a packet does and showing packetlogs then please replace the chars with a alpha-numeric value such as Chr(1) because it will end up showing on the forum just a square most of the time.
- When posting packets and/or logs of them try and include the client version for example if it's V13, V20, V27 and so on, just so in future reference when a member finds packets a V13 packet might be different from a V20 packet.
- When posting a decent sized list of packets or just code in general then please
- Código:
the list. - Obey the normal Habbo Hotel section rules and also the forum rules
Useless posting will get you an infraction in this thread. Thanks Habbo Hotel modding team.
● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
Section below has been written by Nillus. The habbo protocol consists of messages. Client>server messages: These messages have a 'header', which is just their ID encoded in Base64, so 'B@' (pet stats btw) isn't just some random thing, no, decode it with a Habbo base64 encoder & you'll see that it's the message 128. Encode it & it will become 'B@' again. It's easier to 'recognize' the messages by their recognized header than by their ID. (atleast it is for me) Server>client messages Here we still have the encoded Base64 IDs, but now about the content of server>client messages;: The content which is often a mixture of text and wire encoded ('VL64') values, if there are more strings in a message than they are often 'broken' by a char2, a char13 etc. Each message needs to have an end, so the client can, upon receiving it, see 'hey', this is the full message, I can process it now. In Habbo this is done by 'char1', it let's the client know that it's the end of the packet and it doesn't have to wait for more data, it can process the message. (That's why you could do the funniest things with it when scripting, if you were able to inject char1 you could put a message in your motto & end it with a char1, so the client will see it as a real packet & process it) When the server/client message is received a t the client/server, then it Base64 decodes the first two chars of the message string, so they have the message ID. Client/server then processes the correct again for the given message and it's content. For the Habbo server, it's unknown how it's done, since we haven't got sourcecode, and so we can only guess. Java does not support switching on string objects (which is rather innefficent since it is, next to stupid, much slower than switching on numbers), so they had to come up with something else. I don't think Sulake's server works with a switch statement to select the correct action. (like it has been on all retro servers until Joeh's Thor. Thor works with 'reactor' classes hooked to the connection, each 'reactor' contains 'various' listeners for certain messages, the server searches through all hooked 'reactors' and tries to invoke the correct method, this is pretty efficient, saves alot of data pushing etc & so it's done in Woodpecker too now) As for the Habbo client, we kinda how how it processes messages, since we can decompile it and see cast names and the handlers etc. I posted this a while back; |
| |
Quote: | This is from Matt of SOM, it's a list of all the handlers inside the classes of the Habbo client. (V26 I guess?) This is what is triggered in the client by server messages. To understand it: The number before the handler is the message ID, but you guys are more familar with headers, which is the message ID encoded in Base64, so for the first three ones: 0 = "@@" 1 = "@A" 2 = "@B"
And a final test: 312: [["One Way Door Manager", #changeStatus]] 312 in Base64: 'Dx', which is the ofcourse the 'header' of the message of entering a onewaydoor. See how it works? 
Code: 0: [[#login_handler, #handleHello]]1: [[#login_handler, #handleSecretKey]]2: [[#login_handler, #handleRights]]5: [[#login_handler, #handleUserObj]]35: [[#login_handler, #handleUserBanned]]50: [[#login_handler, #handlePing]]52: [[#login_handler, #handleEPSnotify]]139: [[#login_handler, #handleSystemBroadcast]]141: [[#login_handler, #handleCheckSum]]161: [[#login_handler, #handleModAlert]]229: [[#login_handler, #handleAvailableBadges]]257: [[#login_handler, #handleSessionParameters]]277: [[#login_handler, #handleCryptoParameters]]278: [[#login_handler, #handleEndCrypto]]287: [[#login_handler, #handleHotelLogout]]308: [[#login_handler, #handleSoundSetting]]354: [[#login_handler, #handleLatencyTest]]290: [[#openinghours_handler, #handleAvailabilityStatus]]291: [[#openinghours_handler, #handleInfoHotelClosing]]292: [[#openinghours_handler, #handleInfoHotelClosed]]293: [[#openinghours_handler, #handleAvailabilityTime]]294: [[#openinghours_handler, #handleLoginFailedHotelClosed]]12: [[#friend_list_handler, #handleFriendListInit]]13: [[#friend_list_handler, #handleFriendListUpdate]]132: [[#friend_list_handler, #handleFriendRequest]]260: [[#friend_list_handler, #handleError]]314: [[#friend_list_handler, #handleFriendRequestList]]315: [[#friend_list_handler, #handleFriendRequestResult]]349: [[#friend_list_handler, #handleFollowFailed]]363: [[#friend_list_handler, #handleMailNotification]]364: [[#friend_list_handler, #handleMailCountNotification]]134: [[#instant_messenger_handler, #handleIMMessage]]135: [[#instant_messenger_handler, #handleIMInvitation]]261: [[#instant_messenger_handler, #handleIMError]]262: [[#instant_messenger_handler, #handleInvitationError]]387: [[#ig_handler, #handle_directory_status]]388: [[#ig_handler, #handle_ENTER_ARENA_FAILED]]389: [[#ig_handler, #handle_GAME_REJOIN]]390: [[#ig_handler, #handle_player_exited_game_arena]]391: [[#ig_handler, #handle_level_hall_of_fame]]392: [[#ig_handler, #handle_start_failed]]393: [[#ig_handler, #handle_join_failed]]394: [[#ig_handler, #handle_in_arena_queue]]395: [[#ig_handler, #handle_stage_still_loading]]396: [[#ig_handler, #handle_game_not_found]]399: [[#ig_handler, #handle_game_chat]]400: [[#ig_handler, #handle_enter_arena]]401: [[#ig_handler, #handle_arena_entered]]402: [[#ig_handler, #handle_load_stage]]403: [[#ig_handler, #handle_stage_starting]]404: [[#ig_handler, #handle_stage_running]]405: [[#ig_handler, #handle_stage_ending]]406: [[#ig_handler, #handle_game_ending]]407: [[#ig_handler, #handle_game_created]]408: [[#ig_handler, #handle_game_long_data]]409: [[#ig_handler, #handle_create_game_info]]410: [[#ig_handler, #handle_game_list]]413: [[#ig_handler, #handle_user_joined_game]]414: [[#ig_handler, #handle_user_left_game]]415: [[#ig_handler, #handle_game_observation_started_short]]416: [[#ig_handler, #handle_game_cancelled]]417: [[#ig_handler, #handle_game_long_data]]418: [[#ig_handler, #handle_game_started]]355: [[#guide_handler, #handleInvitation]]359: [[#guide_handler, #handleInvitationFollowFailed]]360: [[#guide_handler, #handleInvitationCancelled]]425: [[#guide_handler, #handleInitTutorServiceStatus]]426: [[#guide_handler, #handleEnableTutorServiceStatus]]163: [[#getServerDate, #handle_date]]300: [[#soundmachine_handler, #handle_song_info]]301: [[#soundmachine_handler, #handle_machine_sound_packages]]302: [[#soundmachine_handler, #handle_user_sound_packages]]332: [[#soundmachine_handler, #handle_invalid_song_name]]322: [[#soundmachine_handler, #handle_song_list]]323: [[#soundmachine_handler, #handle_play_list]]324: [[#soundmachine_handler, #handle_song_missing_packages]]325: [[#soundmachine_handler, #handle_play_list_invalid]]326: [[#soundmachine_handler, #handle_song_list_full]]331: [[#soundmachine_handler, #handle_new_song]]333: [[#soundmachine_handler, #handle_user_song_disks]]334: [[#soundmachine_handler, #handle_jukebox_disks]]335: [[#soundmachine_handler, #handle_jukebox_song_added]]336: [[#soundmachine_handler, #handle_song_locked]]337: [[#soundmachine_handler, #handle_jukebox_playlist_full]]338: [[#soundmachine_handler, #handle_invalid_song_length]]339: [[#soundmachine_handler, #handle_song_saved]]365: [[#roomdimmer_handler, #handleDimmerPresets]]]148: [[#hobba_handler, #handle_cryforhelp]]149: [[#hobba_handler, #handle_picked_cry]]273: [[#hobba_handler, #handle_delete_cry]]274: [[#hobba_handler, #handle_cry_reply]]299: [[#error_report_handler, #handle_error_report]]59: [[#roomkiosk_handler, #handle_flatcreated]]33: [[#roomkiosk_handler, #handle_error][#room_handler, #handle_error][#navigator_handler, #handle_error][#login_handler, #handleErr]]353: [[#roomkiosk_handler, #handle_webShortcut]]319: [[#dialogs_handler, #handle_get_pending_response]]320: [[#dialogs_handler, #handle_pending_CFHs_deleted]]321: [[#dialogs_handler, #handle_cfh_sending_response]]24: [["Chat Manager", #handle_chat]]25: [["Chat Manager", #handle_chat]]26: [["Chat Manager", #handle_chat]]312: [["One Way Door Manager", #changeStatus]]-1: [[#room_handler, #handle_disconnect][#login_handler, #handleDisconnect]]18: [[#room_handler, #handle_clc]]19: [[#room_handler, #handle_opc_ok]]28: [[#room_handler, #handle_users]]29: [[#room_handler, #handle_logout]]30: [[#room_handler, #handle_OBJECTS]]31: [[#room_handler, #handle_heightmap]]32: [[#room_handler, #handle_activeobjects]]34: [[#room_handler, #handle_status]]41: [[#room_handler, #handle_flat_letin]]45: [[#room_handler, #handle_items]]42: [[#room_handler, #handle_room_rights]]43: [[#room_handler, #handle_room_rights]]46: [[#room_handler, #handle_flatproperty]]47: [[#room_handler, #handle_room_rights]]48: [[#room_handler, #handle_idata]]62: [[#room_handler, #handle_doorflat]]63: [[#room_handler, #handle_doordeleted]]64: [[#room_handler, #handle_doordeleted]]69: [[#room_handler, #handle_room_ready]]70: [[#room_handler, #handle_youaremod]]71: [[#room_handler, #handle_showprogram]]76: [[#room_handler, #handle_no_user_for_gift]]83: [[#room_handler, #handle_items]]84: [[#room_handler, #handle_removeitem][#buffer_handler, #handle_removeitem]]85: [[#room_handler, #handle_updateitem][#buffer_handler, #handle_updateitem]]88: [[#room_handler, #handle_stuffdataupdate][#buffer_handler, #handle_stuffdataupdate]]89: [[#room_handler, #handle_door_out]]90: [[#room_handler, #handle_dice_value]]91: [[#room_handler, #handle_doorbell_ringing]]92: [[#room_handler, #handle_door_in]]93: [[#room_handler, #handle_activeobject_add]]94: [[#room_handler, #handle_activeobject_remove][#buffer_handler, #handle_activeobject_remove]]95: [[#room_handler, #handle_activeobject_update][#buffer_handler, #handle_activeobject_update]]98: [[#room_handler, #handle_stripinfo]]99: [[#room_handler, #handle_removestripitem]]101: [[#room_handler, #handle_stripupdated]]102: [[#room_handler, #handle_youarenotallowed]]103: [[#room_handler, #handle_othernotallowed]]105: [[#room_handler, #handle_trade_completed]]108: [[#room_handler, #handle_trade_items]]109: [[#room_handler, #handle_trade_accept]]110: [[#room_handler, #handle_trade_close]]112: [[#room_handler, #handle_trade_completed]]129: [[#room_handler, #handle_presentopen]]131: [[#room_handler, #handle_flatnotallowedtoenter]]140: [[#room_handler, #handle_stripinfo]]208: [[#room_handler, #handle_roomad]]210: [[#room_handler, #handle_petstat]]219: [[#room_handler, #handle_heightmapupdate]]228: [[#room_handler, #handle_userbadge]]230: [[#room_handler, #handle_slideobjectbundle]]258: [[#room_handler, #handle_interstitialdata]]259: [[#room_handler, #handle_roomqueuedata]]254: [[#room_handler, #handle_youarespectator]]283: [[#room_handler, #handle_removespecs]]266: [[#room_handler, #handle_figure_change]]298: [[#room_handler, #handle_spectator_amount]]309: [[#room_handler, #handle_group_badges]]310: [[#room_handler, #handle_group_membership_update]]311: [[#room_handler, #handle_group_details]]345: [[#room_handler, #handle_room_rating]]350: [[#room_handler, #handle_user_tag_list]]361: [[#room_handler, #handle_user_typing_status]]362: [[#room_handler, #handle_highlight_user]]367: [[#room_handler, #handle_roomevent_permission]]368: [[#room_handler, #handle_roomevent_types]]369: [[#room_handler, #handle_roomevent_list]]370: [[#room_handler, #handle_roomevent_info]]419: [[#room_handler, #handle_ignore_user_result]]420: [[#room_handler, #handle_ignore_list]]3: [[#habbo_club_handler, #handle_ok][#login_handler, #handleLoginOK][#friend_list_handler, #handleOk]]7: [[#habbo_club_handler, #handle_scr_sinfo]]280: [[#habbo_club_handler, #handle_gift]]4: [[#photo_handler, #handle_film]]16: [[#navigator_handler, #handle_flat_results]]54: [[#navigator_handler, #handle_flatinfo]]55: [[#navigator_handler, #handle_flat_results]]57: [[#navigator_handler, #handle_noflatsforuser]]58: [[#navigator_handler, #handle_noflats]]61: [[#navigator_handler, #handle_favouriteroomresults]]130: [[#navigator_handler, #handle_flatpassword_ok]]220: [[#navigator_handler, #handle_navnodeinfo]]221: [[#navigator_handler, #handle_userflatcats]]222: [[#navigator_handler, #handle_flatcat]]223: [[#navigator_handler, #handle_spacenodeusers]]224: [[#navigator_handler, #handle_cantconnect]]225: [[#navigator_handler, #handle_success]]226: [[#navigator_handler, #handle_failure]]227: [[#navigator_handler, #handle_parentchain]]286: [[#navigator_handler, #handle_roomforward]]351: [[#navigator_handler, #handle_recommended_room_list]]6: [[#catalogue_handler, #handle_purse]]67: [[#catalogue_handler, #handle_purchase_ok]]65: [[#catalogue_handler, #handle_purchase_error]]68: [[#catalogue_handler, #handle_purchase_nobalance]]126: [[#catalogue_handler, #handle_catalogindex]]127: [[#catalogue_handler, #handle_catalogpage]]296: [[#catalogue_handler, #handle_purchasenotallowed]]295: [[#dynamicdownloader_handler, #handle_furni_revisions]]297: [[#dynamicdownloader_handler, #handle_alias_list]]303: [[#recycler_handler, #handle_recycler_configuration]]304: [[#recycler_handler, #handle_recycler_status]]305: [[#recycler_handler, #handle_approve_recycling_result]]306: [[#recycler_handler, #handle_start_recycling_result]]307: [[#recycler_handler, #handle_confirm_recycling_result]]316: [[#poll_handler, #handle_poll_offer]]317: [[#poll_handler, #handle_poll_contents]]318: [[#poll_handler, #handle_poll_error]]352: [[#new_user_help_handler, #handleHelpItems]]356: [[#new_user_help_handler, #handleTutorsAvailable]]357: [[#new_user_help_handler, #handleInvitingCompleted]]358: [[#new_user_help_handler, #handleInvitationExists]]421: [[#new_user_help_handler, #handleInvitationSent]]423: [[#new_user_help_handler, #handleGuideFound]]424: [[#new_user_help_handler, #handleInviterLeftRoom]]166: [[#statsBrokerJs, #handle_update_stats]] The last things are about Guides etc, as you can see. Just use my Nillus Packet Scout app & it's Base64 encoder to convert the message ID's to their encoded equivalents.
- Nillus | |
That's inside the Habbo client, you see that each server>client message (for example, 'BK', 139), is for '[[#login_handler, #handleSystemBroadcast]]', which is exactly what it does. Then we have '@c', 35, which becomes '[[#login_handler, #handleUserBanned]]', and so on. Etc, you know how it works now I guess. You just have to understand that; - Habbo protocol consists out of messages - Message 'header' isn't just random chosen, it's the ID of the message encoded in Base64 - Messages consist of: encoded ID + content separated by char2 etc/wire encoded values + char1 to finalize the message & tell client message is complete - Nothing in the message is static except the encoded ID and the char1 at the end, you can't just raw packetlog anything & paste it in your server This is how the 'change console mission' works in Woodpecker;
PHP Code:
/// <summary> /// "@d" - "MESSENGER_ASSIGNPERSMSG" /// </summary> public void Listener36() { string newMotto = Request.getParameter(0); Session.User.messengerMotto = newMotto; Session.User.updateAppearanceDetails();
Response.Initialize(147); // "BS" Response.appendClosedValue(newMotto); sendResponse(); }
See, the current message is stored in 'Request', which is a string object with various cool handy things, I can easily get the first Base64 parameter of it etc. The new server>client message is called Response, and by using it's 'Initialize' method, I can assign it a ID. Then I can add values to it, here I'm using 'appendClosedValue' to append a value + char2, but it also has 'appendWired(NUMBER)' etc. Finally I use 'sendResponse' to convert the current 'response' to a string object, append char1 to close it & then send it to the client. Then I can do 'Response.Initialize' again to start a new response, etc. It's just more structured than the old servers, thanks to Joeh. Hope that helped you out a bit, as a mod you could sticky it since it's some basic knowledge about the Habbo protocol?  Most people don't know more than 'Send Index, 'BKHAHAHA THIS IS A MESSAGE' & Chr(1)', lmfao.  - Nillus From another thread - thanks to Nillus once again.VL64 is most used in server > client packets. What's VL64? Well, it's an encoding for numbers, it makes numbers 'understandable' for the Habbo client. Example; I = 1 J = 2 K = 3 PA = 4 You can see an ascending of the numbers, see? [1=2-3] And you also see something of the alphabet in it. [I-J-K] -1 in VL64 is M. Okay, that looks pretty easy. How does a 'big' number in VL64 looks like? We'll encode 8123732. Result: "hUuoG" Ah yeah! Self explaining! Not really lol. Well, if you see the code of the encoding (can be found in JASE etc, HabboEncoding class), it's pretty logical. But why using such cryptic things just for numbers? At packets, Habbo likes to use alot of numbers after each other without delimiters. Like if you want to use 10, 39, 843, and 7 after each other in a packet, you can do 10398437, but then it's a whole different number. There's where VL64 comes in. Let's encode the numbers 10, 39, 843 and 7... 10: RB 39: SI 843: [RC 7: SA "Ehm, yeh, and now? Why?" Well, VL64 has a 'magical' part that makes it that good as it is: If you decode a whole VL64 string, so like RBSI[RCSA, it'll return as number ONLY the first encoded number in the string!
So, only the 10 (the first encoded number of that string) will be the result, while you've inputted a whole string with three other VL64 numbers! Now it'll get tricky, but I'll show you how to decode a string like that to it's original numbers. 1) Decode RBSI[RCSA, 10 will be the result 2) Encode 10 to VL64, so it'll become RB. 3) RB is 2 characters, R-B 4) Now we 'cut' the first number (RB = 10) from the string RBSI[RCSA, and we know the lenght of the first part. In a .NET language for example, we can do that by this way; STRING OBJECT.Substring(start,length). If length isn't supplied than it will trigger an overload (a 'brother' of a void/function) that will simply 'run to the end of the string', so taking everything after 'start'. That's what we want, since we only want to cut off the first part and keep the other part. So: STRING OBJECT.Substring(2) It'll result in; SI[RCSA
Okay, now I can say, just repeat till you are done! =D Keep decoding the whole string to one number, store the number somewhere to work with it or w/e, and encode the number to a VL64 string, get it's length (STRING OBJECT.Length property in .NET), and keep the string after that part by using string manipulators such as .Substring. It appears that it's hard to explain lol, code says more than thousand words! ;P
PHP Code:
// encodeVL64, returns a string // decodeVL64, returns an integer
string SomeInput = "PAJIKPASASF"; while(SomeInput != "") // Keep looping this loop till the string is empty (so, completed with decoding) { int currentNumber = decodeVL64(SomeInput); // Do something with current number, write it in database or something, just where you need the number for int currentNumberLength = encodeVL64(currentNumber).ToString().Length; // Encode the number to it's VL64 equivalent to see what it would be if you only encoded that number to VL64, and get it's length someInput = someInput.Substring(currentNumberLength); // Only keep the part of SomeInput after the string } // Proceed to next cycle of the loop (so, decode the next number)
That's how you can use alot of numbers after each other, while the numbers stay on their own && this is what Habbo wants to keep their packets small. I hope you have understood something of it. Anyway, that's what the VL64 analyzer in Nillus Packet Scout does, and tbh, it helps me alot at finding packet structures. I'll show how it can decode a BattleBall packet for you, which gives you alot more 'understanding' of how it works. Full packet + header: CtIQAJPCSAIJPCHJHJXKDX]BIIJQAPCREOkay, Ct is the header, but it looks like a load of crap. Nope, it are just numbers! Let's shove the part after the header ("Ct") in my app and hit the button... Result: |
| |
Quote: | Result of this VL64 scout session was: # I = 1 # QA = 5 # J = 2 # PC = 12 # SA = 7 # I = 1 # J = 2 # PC = 12 # H = 0 # J = 2 # H = 0 # J = 2 # XKD = 1068 # X]B = 628 # I = 1 # I = 1 # J = 2 # QA = 5 # PC = 12 # RE = 22
Processed input string summary: I-QA-J-PC-SA-I-J-PC-H-J-H-J-XKD-X]B-I-I-J-QA-PC-RE | |
Woo, numbers! There you can do something with, can't you? & That's where it comes handy while coding. How it works? It just runs that loop till the string is empty, and outputting the result after decoding done. A good example of where it's used is BattleBall/SnowStorm and the Recycler/Ecotron, alot of numbers after each other as tidy as possible. SCREENSHOT:
 Attachment is fixed version of NPS V2 and without the annoying lolbeeps
I started on a java version of VL64 Encoding  Just to see how well i can do, i think nillus can point most things out
PHP Code:
public static int[] clientsocketReq = { 58, 82, 70, 94, 56, 80, 68, 92, 50, 74, 62, 86, 52, 76, 64, 88, 54, 60, 66, 72, 78, 84, 90, 96, 0 }; public static int[] send = { 34, 46, 40, 52, 33, 45, 39, 51, 30, 42, 36, 48, 31, 43, 37, 49, 64, 70, 76, 82, 88, 94, 100, 106, 0 }; public static int[] receive = { 18, 26, 22, 30, 17, 25, 21, 29, 15, 23, 19, 27, 16, 24, 20, 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5.5, 13, 0, 7.5, 9.5, 21, 11.5, 25, 13.5, 29, 30, 31, 16.5, 35, 37, 19.5, 41, 45, 43, 22.5, 48, 24.5, 30, 25.5, 53, 55.5, 28.5, 59, 30, 60, 30, 61, 31.5, 65, 66, 67, 68, 35.5, 70, 35.5, 35, 35, 35, 68, 36, 73, 74, 37.5, 76, 76, 78, 40, 83, 84, 42.5, 89, 90, 180, 92, 97, 100 }; public static int[] misc = { 0, 1, 3, 4, 5, 7, 9, 11, 13, 15, 17, 19, 20, 21, 23, 25, 27, 29, 31, 32, 33, 35, 37, 39, 40, 41, 43, 45, 47, 49, 50, 50, 50, 51, 53, 55, 56, 57, 58, 59, 60, 60, 60, 60, 60, 61, 62, 63, 64, 65, 66, 66, 68, 70, 73, 74, 75, 79, 80, 80, 82, 87, 90, 0, 2, 0, 0, 4, 0, 6, 0, 8, 0, 9, 0, 0, 0, 10, 0, 0, 11, 0, 0, 12, 0, 15, 0, 13, 0, 0, 14, 25, 2, 19, 19, 0, 15, 0, 0, 0, 0, 16, 0, 0, 20, 20, 20, 0, 17, 0, 0, 18, 0, 0, 0, 19, 0, 0, 20, 0, 0, 0, 0, 0, 0 };
That's how a client would be handled via java client ( run.cmd ) ( client configs ) Come to think of it, you'll find those perfect socket connections for basically, well... any habbo version
PHP Code:
public void switchclient(64E, int i) { switch(i) { /*forall*/ case 0: /*breaking*/ int[] off = {5, 13, 3, 4, 11, 12, 19, 20}; /*locating*/ Off(p, off); break; case 1: int[] off2 = {6, 14, 3, 4, 11, 12, 19, 20}; Off(p, off2); break; case 2: int[] off3 = {7, 15, 3, 4, 11, 12, 19, 20}; Off(p, off3); break; case 3: int[] off4 = {0, 1, 2, 5, 13, 6, 14, 7, 15, 4, 11, 12, 19, 20}; Off(p, off4); break; case 4: int[] off5 = {0, 1, 2, 5, 13, 6, 14, 7, 15, 3, 11, 12, 19, 20}; Off(p, off5); break; case 5: int[] off6 = {0, 13, 3, 4, 11, 12, 19, 20}; Off(p, off6); break; case 6: int[] off7 = {1, 14, 3, 4, 11, 12, 19, 20}; Off(p, off7); break; case 7: int[] off8 = {2, 15, 3, 4, 11, 12, 19, 20}; Off(p, off8); break; case 8: int[] off9 = {9}; Off(p, off9); break; case 9: int[] off10 = {8}; Off(p, off10); break; case 11: int[] off11 = {5, 13, 6, 14, 7, 15, 4, 3, 12, 19, 20}; Off(p, off11); break; case 12: int[] off12 = {5, 13, 6, 14, 7, 15, 3, 11, 4, 19, 20}; Off(p, off12); break; case 13: int[] off13 = {5, 0, 3, 4, 11, 12, 19, 20}; Off(p, off13); break; case 14: int[] off14 = {6, 1, 3, 4, 11, 12, 19, 20}; Off(p, off14); break; case 15: int[] off15 = {7, 2, 3, 4, 11, 12, 19, 20}; Off(p, off15); break; case 16: int[] off16 = {17, 18, 21, 22, 23, 24}; Off(p, off16); break; case 17: int[] off17 = {16, 18, 21, 22, 23, 24}; Off(p, off17); break; case 18: int[] off18 = {17, 16, 21, 22, 23, 24}; Off(p, off18); break; case 19: int[] off19 = {5, 13, 6, 14, 7, 15, 4, 11, 12, 3, 20}; Off(p, off19); break; case 20: int[] off20 = {5, 13, 6, 14, 7, 15, 3, 11, 12, 19, 4}; Off(p, off20); break; case 21: int[] off21 = {17, 18, 16, 22, 23, 24}; Off(p, off21); break; case 22: int[] off22 = {17, 18, 21, 16, 23, 24}; Off(p, off22); break; case 23: int[] off23 = {17, 18, 21, 22, 16, 24}; Off(p, off23); break; case 24: int[] off24 = {17, 18, 21, 22, 16, 23}; Off(p, off24); break; case 25: int[] off25 = {0, 1, 2, 5, 6, 7, 13, 14, 15, 26}; Off(p, off25); break; case 26: int[] off26 = {0, 1, 2, 5, 6, 7, 13, 14, 15, 25}; Off(p, off26); break; } }
handling
PHP Code:
public class encoding64 {
int offset = 6 * (length - x); int offset = 21 * (length - x); public void reset64(Player p) { for(int i = 0; i < 21; i++) { for (int x = 1Well, after searching for something else, I stumbled upon a thread of Nillus, that was created from when Madison, Jare, Mickey, Mustek etc. were moderators in this section, and in that thread, I found something that caught my eye: |
| |
Quote: | | STICKY: Packet explanation + list with description of them | |
Now, as there are more people getting involved in open-source developments, this would be a fantastic idea, and Konrow also agrees. Feel free to post your Habbo packets, but you must include a description for them, i.e:
PHP Code:
@R - Sends the user to hotel view (clientside)
No packet can be posted more than once, so be careful. ONLY post one packet (e.g BK, and then hit submit) if you think it's of vital importance, such as a Snowstorm packet and such, other than that, more than one packet MUST be posted!
Code: @M - Habbo Console Misson (on loading)BK - Normal notice@X - Say ( @XSBHammad is epic! )@Z - Shout ( @ZSBHammad is epic! )@Y - Whisper ( @YSBHammad is epic! )C - Loads public rooms (e.g CHKHPublic SpacesY|A[PHIPOHWelcome Lounges - Get a warm welcome!PJPTKSBISafety SpaSGRLKcafe_goldZP{Hhh_room_goldHIZAAIFansite CafeRARLKsunset_cafeXs{Hhh_room_sunsetcafeHIXVAIStar Lounge - The SugababesPUPYKstar_loungeYM|Hhh_room_starloungeHIQUIHorror DromePOPOKtheatredrome_halloween[R{Hhh_room_theater_halloweenHIQKIThe Insiders DenRHRLKtv_studio[Q{Hhh_room_tv_studio_insidersHIS_INHS Advice CentreSBRLKchillZV{Hhh_room_chill_cArmHIQQHOutside Spaces & Swimming PoolsPUY`AKSPHCafes Lounges & LobbiesQEXsAKPHEntertainmentSER`KYtAHGamesQGPYKPQHClubs Pubs & Habbo ClubSMZHAKS[HRestaurantsPDR[KSwHHallwaysKPrK )@v - Sends room info (Room ID, Room Owner, RoomName, Room Description) ( HHj@KXn03xmodel_sn03x's roomn03x has entered the buildingIHIQFQF )
__________________
Dj - Spectators Bar ("Dj" + VL64(NUMBER1) + VL64(NUMBER2) = "Spectators" + NUMBER1 + "/" + NUMBER2 @c - Send Ban Alert ("@c" + REASON) D} - Display Poll (Read below)
Code: "D}" = Header"ZCB" = vl64(pollID)pollTitlechr(2)pollThankschr(2)"KXNHII" = vl64(count(questions)) + vl64(QuestionID) + vl64(questionNo) + vl64(type)question1chr(2)"KII" = vl64(count(answers)) + vl64(minAns) + vl64(maxAns)question1Answer1chr(2)question1Answer2chr(2)question1Answer3chr(2)"YNHJI" = vl64(QuestionID) + vl64(questionNo) + vl64(type)question2chr(2)"KII" = vl64(count(answers)) + vl64(minAns) + vl64(maxAns)question2Answer1chr(2)question2Answer2chr(2)question2Answer3chr(2)"ZNHJI" = vl64(QuestionID) + vl64(questionNo) + vl64(type)question3chr(2)"KII" = vl64(count(answers)) + vl64(minAns) + vl64(maxAns)question3Answer1chr(2)question3Answer2chr(2)question3Answer3chr(2)
Code: AC = turn 180A3 / As = leave roomA6 / A= / @z = errorA^ = waveA[ = dance?AP = hold drinkA? = transactionsA' = give rights?G_STAT = drink to mouth?@` = delete console messageAB = details disapperDB = the habbo advertisement@Y = whisper@Z = shout@X = talk@c = banAA / BL = open handA~ = open catalogue@P = own rooms@S = return to hotel view?Bi = update password and email@} = add room to favourites@m = wall items?AX = turn tv off and onAJ = Variable/Status of furni@d = console missionAO = positionAW = camera@E = User Info. (on load)@Q = Freinds List & Info?A@ = Users Stance (on load of a room)@v = User's Room Info. (model, Owner etc)AE = (?) (e.g AEmodel_h 15064.@j.@o)@_ = Heightmap Co-ordinates@ = User's Connection Info. (to Room) @^ = Furni Syntax List@b = User's Placement on Heightmap@a = Message@A = Habbo Key@B = User's Accessories (Bfuse_login.default etc)@L = Freinds List & Info (on load)@M = Habbo Console Misson (on load)@G = If User is HC or Not (on load)@w = Search For a Room@{ = Edit room NameC] = Public Room List@X = Talk@Z = Whisper/carryd 1/ = Tea/carryd 2/ = juice/carryd 3/ = Carrot/carryd 4/ = Ice-Cream/carryd 5/ = Milk/carryd 6/ = Blackcurrent/carryd 7/ = Water/carryd 8/ = Regular/carryd 9/ = Decaff/carryd 10/ = Latte/carryd 11/ = Mocha/carryd 12/ = Macchiato/carryd 13/ = Espresso/carryd 14/ = Filter/carryd 15/ = Iced/carryd 16/ = Cappuccino /carryd 17/ = Java/carryd 18/ = Tap/carryd 19/ = Habbo Cola/carryd 20/ = Camera/carryd 21/ = Hamburger/carryd 22/ = Lime Habbo Soda/carryd 23/ = Beetroot Habbo Soda/carryd (>= 24)/ = BLANK</br>Registering Packets---------------------------------------------------------------------------------@k@B ; You're Name Cipher,@D ; Figure Cipher@E@AM@F ; Mission Cipher@G ; Email Cipher@H ; DOB Cipher@JA@AA@IA@C ; Password Cipher---------------------------------------------------------------------------------Log In Packets---------------------------------------------------------------------------------@a ; Incorrect Password Packet Sent If You get you're Password Wrong@c ; Ban Packet Sent If you Try Logging On To Banned Account@B ; Send's You're Fuse_ Rights When You Log In. Example:@Bfuse_room_queue_defaultfuse_buy_creditsfuse_lo gindefaultfuse_trade@E ; Sent When You Log In It Holds You're Characters Data(example, Name, Figure, Sex, Mission, How Many Game Tickets youhave, Ect ect,)------------------------------------------------------------------------------------------------------------------------------------------------------------------Console Packets---------------------------------------------------------------------------------The Packets Below Are All to do with the Console, All Self Explanatory, I think.BFIIi}e~ ; This Packet Is sent to the server when you receive A message, It Alsosend the User's Figure (Who Sent you the Message), The Message Itself, And the TimeAnd Date The Message Was Sent.@MH ; This Packet Is sent to the server When You open you're ConsoleB@MESSENGER ; This Packet Is Sent to The Server When You Search Some One's NameOn the Console, Example : B@MESSENGERk[^OOMyraxII hate you all, Yes you, And youin the back, Oh and you over there, and him. MyraxIIn AGuest Room11-07-2006 13:28:282951025504190092801511504So Broke DownB@MESSENGER(Hex 1)(Console ID)(Username)(Hex 1)(Console Mission)(Hex 1)(Location/Online/Offline)(Hex 1)(Time The User Last Logged On)(His/Her Figure)(Hex 1)(Hex 1)BS(Console Mission) ; Basically This packet Is sent when You change you're console missionAgain, Broke Down BS(consoleMission)(Hex 1)(Hex 1)(Sent a Message Data Is Encypted, And I can't Be arsed Decypting As Yet. Sorry)------------------------------------------------------------------------------------------------------------------------------------------------------------------Navagator Packets---------------------------------------------------------------------------------c ; Public Room Packet (Navagator) Sent When You Click the Public Room Button On TheNavagator, It send's The Public Room's Ect ect.(These Are Also Sent When You Log In.. But I thought It Would Fit Here)Example :CHKHPublic Rooms[HAZhIRKIWelcome LoungeQJRLKwelcome_lounge[M{Hhh_room_nlobbyIIS_INSPCC Zen GardenSBSHKchillZV{Hhh_room_chillIIPaHBattle BallSCX_UKSPHCafesSHSMKQuHHabbo ClubRAPYKRPHLobbiesRAPYKPHEntertainmentSGPwKPQ HDance Clubs & PubsPNXUAKS[HRestaurantsSAPTKQQHOutside SpacesQQ[gAKRGHCunning Fox GamehallRAPrKSFIHabbo KitchenKSHKhotel_kitchenXO{Hhh_room_kitchenIISw HHabbo HallwaysQAPrKAnd I don't See A Need To Break that Down.. Its Self Explanotory.. I should Think :s@w ; Search packet Sent When Searching A Room, (if A room Is Found) Example@w1977459 lol - password x 0 25 nullBroke Down@w(Room Id) (Name Of The Room You Searched)- (Say's If the room Is Open/Closed/Passworded) (Hide's The Pass, If there Is One)(How Many People In the room) (Out Of How Many Could Be In the Room) (Room Desc)@z ; Sent If you search For a room, And No room Is found.@P ; Own room Packet Example :@P16541376 PIB Room Myrax open x 0 25 nullIm Not Going to break Down, As Its Basically Same As the Above@} ; Favourite Room Packets, Load's You're Favourite Room's, When You Click FavouritesExample :@}HHJHHHQBhau[OJedi TempleDiealotopenHRLCome here all who want to be a jedi allinfo is lucastarts aproved info (no dark jedi or sith)Basically Same As Above.. Don't Ask About room name, Or I Kill You. (Yes I do Like to Role Play)@H ; Change Look Screen (update Habbo ID)Sent When You Open 'Change My Habbo Look' Or What ever It say'sIt Send's the clothes And the colours you're Habbo Can Pick@MH ; Wrong Birthday Packet (I think)I Think This Packet Is Sent When You Try to change you're Pass/Email, But getthe Birthday Wrong---------------------------------------------------------------------------------Room Packet's---------------------------------------------------------------------------------These Packets Are Sent When Entering A room/Making A room Ect Ect@_ ; Send'S the Room's HeightMap, When You enter them Room.AE ; Also When Entering the room, This packet send's The Room's Model ExampleAEmodel_c@v ; Send's Room's ID, Room Name, Room Owner, On Room Load Example@vIJhpfqOMyraxmodel_cPIB RoomHHHQFQFSo Broke Down@v(RoomID)(RoomOwner)(Hex 1)(Room Model)(Hex1)(Room Name)(Hex 1)(Hex 1)(Room FloorMap)(Hex 1)@i(UserID) ; Send's A User ID For you're Habbo On room Load Example@i:3n:Myraxf:2951025504190092801511504l:4 7 0.0c:Fuck Habbo >_>s:mSo Broke Down@iId)(Hex 1)nHabboName)(Hex 1)f:You're HabboFigure)(Hex 1)lRoom Entry Point)(Hex 1)cYou're Mission)(Hex 1)sSex Either F Or M)(hex 1)@b(UserID) ; Move's You Habbo, With the ID Send from @iAS ; Sent When a Wall Item (Posters/Stikies ect) is put down ExampleAS17385977 poster :w=3,3 l=53,44 l 13Broken downAS(ID) (Say's its a poster) (which Wall part Is On) (its location)(If It left or right) (sprite) (Hex 1)A] ; Sent If a floor Item Is placed on the floor, An Example of this isA]36032589doorSAJIIJ0.0hSPWbFALSEBroken downA](ID)(Sprite)(location & How much space it takes up &rotation)(height)(hex 1)(hex 1)(hex 1)(Unsure)(state Of the Object)(hex 1)(hex 1)Oh, And After this packet is sent, An updated Heightmap Is sent. So that you can'twalk in the spot, Where the object has been placedSpeach Packets---------------------------------------------------------------------------------When Talking These Packets Are sent to the server, Along with you're SpeachID, And you're Message.@Y(SpeachID)(message) ; Whisper Packet (When Talking)@X(SpeachID)(message) ; Speak Packet (When Talking)@Z(SpeachID)(message) ; Shout Packet (When Talking)------------------------------------------------------------------------------------------------------------------------------------------------------------------Credit Packets---------------------------------------------------------------------------------@F ; Sent When Buying Credit's With A voucherExample@F35.0Broke Down@F(How Many Credits)(Hex 1)(Hex 1)------------------------------------------------------------------------------------------------------------------------------------------------------------------Habbo Club---------------------------------------------------------------------------------@Gclub_habbo ; Sent When You Buy Habbo Club. Along With you're new Fuse Rights, And LooksExample :@Bfuse_logindefaultfuse_use_club_outfitsfuse_us e_club_badgefuse_use_special_room_layoutsfuse_room_queue_clubfuse_room_queue_defaultfuse _buy_creditsfuse_use_club_dancefuse_extended_buddylistfuse_priority_accessfuse _furni_chooserfuse_tradefuse_habbo_chooserCeIHC1HH@H[****************120,125,130,135,140,145,150,155,160,165,170,175,176,177,178,180,185,190,19 5,200,205,206,207,210,215,220,225,230,235,240,245,250,255,260,265,266,267,27 0,275,280,281,285,290,295,300,305,500,505,510,515,520,525,530,535,540,545,55 0,555,565,570,575,580,585,590,595,5***600,605,610,615,620,625,626,627,630,63 5,640,645,650,655,660,665,667,669,670,675,680,685,690,695,6***700,705,710,71 5,720,725,730,735,740,800,801,802,803,804,805,806,807,808,809,810,811,812,81 3,814,815,816,817,818,819,820,821,822,823,824,825,826,827,828,829,830,831,83 2,833,834,835,836,837,838,839,840,841,842,843,844,845,846,847,848,849,850,85 1,852,853,854,855,856,857,858,859,860,861,862,863,864,865,866,867,868,869,87 0,871,872,873]@Gclub_habboSGJHJ------------------------------------------------------------------------------------------------------------------------------------------------------------------Hand Packets---------------------------------------------------------------------------------(A] ; Packet For adding Furniture To you're Hand (example when you buy somthing)(A]35122549throneQBQAIIH0.0HC[!JASo, Again, Broke down(A](furniture ID)(hex 1)(furniture Sprite)(Hex 1)(Location When The Furni Is Dropped)(Height Off which the furni Is dropped)(Hex 1)(Hex 1)(Hex 1)(unsure)(Hex 1)(Hex 1)(unsure)(Hex 1)BLSI ; This packet is sent when you open you're hand, Or click the >> Or << Icon's on you're handIt sends to the server the data of the furniture in you're hand.. An Example IsBLSI133158730I13315873poster44/SIBroken down..BLSI(Hex1 1)(Poster ID)(Hex 1)(Unsure)(Hex 1)(Unsure)(Hex 1)(Poster ID)(Hex 1)(Say's If its a wall Item Or a floor Item)(Hex 1)(Sprite)(seperator (Ithink))(Hex 1)(Hex 1)------------------------------------------------------------------------------------------------------------------------------------------------------------------Badge Packets---------------------------------------------------------------------------------There is only one packet I know for badges, And thats CdH, I'll show you how it worksWhen you switch you're badge on theCdH Packet is sent, so you can see you're badge. For example If you put you're BronzeHC Badge on the packet send would beCdHHC1Broken downCdH(Badge Code)(hex 1)(Hex 1)If you wanted to turn it off, The packet sent would beCdHAs there is no badge to show. It turns off, Clever Eh?------------------------------------------------------------------------------------------------------------------------------------------------------------------Trading Packets---------------------------------------------------------------------------------Al ; This is the packet sent when you open a trade window, An example of this packetin use isAlMyrax falseEnemy, falseBroken Down, This isAl(username) (Say's you Haven't accepted) (hex 1)(username Of the Chap you're trading)(Say's He Hasn't Accepted) (hex 1)(hex 1)Simple Stuff eh?SI ; When Some one add's somthing to the trade window, Again the Al Packet is sent, And thenThis packet is sent. An Example of this isAlMyrax falseEnemy, false SI173859720I17385972poster32/Broken Down. (Im not going to break down the Al Packet, As that is done above)SI(Hex 1)(Poster ID)(Hex 1)(Unsure)(Hex 1)(Unsure)(Hex 1)(Poster ID)(Hex 1)(Say's If its a wall Item Or a floor Item)(Hex 1)(Sprite)(seperator (Ithink))(Hex 1)(Hex 1)Am ; This packet is sent when one of the p[eople who are trading accepts, An example of thisisAmEnemy,/trueBroken downAm(Username Of Person Who has accepted)(seperator)(say's He has accepted)(Hex 1)Ao ; Tell's the server to add the trade items to you're Hand ExampleAoBLSI173859720I17385972poster32/1Its self Explanatory And the BLSI Packet Is explained Higher Up- from TFH3.com forums user myrax- from http://xtro.uk.ttCT - Gives you the Voucher AlertAC - Yay! It's being delivered now AlertAD - You don't have enough credits AlertBC - No Answer alert from a doorbell requestCU - Some sort of purse errorCV - Under 11 years old messageCZ - Unacceptable email messageA& - Some trade errorA[ - Waiting doorbell messageA' - Another trade errorC_ - Whos in here NoticeUseful codes -A` - Clothe Window in LidoBT - Mod Tool@i - Sends user to hotel view (serverside)@R - Sends user to hotel view (clientside)DS - Update e-mail windowC~� - Battle-Ball ScreenBE - Sends you a Habbo console message@L - Deletes everyone from your listBg - Updates LookAI - Buy Tickets Window@o - Rights Anywhere (clientside)DBO - Reloads Room@CPO - Updates User StatusBK[text] - Normal NoticeDK[text] - Query NoticeAD[text] - Purchase NoticeBS[text] - Console MissionB![text] - Moderator Says Notice@amod_warn/[text] - Mod warnCeI[badge code] - Client BadgeAGlamp setlamp 666� - Makes the Club Helsinki floor glowBLSI-55112730S5511273camera - Client CameraA[Teleporter ID]/[Username]/door[number] - Nukes Teleporter@`PR65md_limukaappiQAQAIIJ0.00,0,0H - Client Habbo Cola MachineAS11801781 poster :w=3,7 l=-23,99 l 501 - Client Poster@Bfuse_see_flat_ids - Displays Room ID's@Bfuse_habbo_chooser - Habbo Chooser@Bfuse_furni_chooser - Habbo Furni Chooser@Bfuse_ignore_room_owner - Ignores Room Owner@Bfuse_performance_panel - Habbo PerformanceAGbus open - Opens Infobus DoorsAGbus close - Closes Infobus DoorsAGcurtains1 open - Opens Lido CurtainsAGcurtains1 close - Closes Lido CurtainsA{ Skips Lido QueBfhttp://www.habbohotel.co.uk/en.client.Park.0AEpark_b 15190 - Skips Infobus QueBfhttp://www.habbohotel.co.uk/en.client.bb_arena.7AEbb_arena_3 15202 - Skips Battle-Ball Que- from http://xtro.uk.tt@eH - Error?@b0 7,7,0.0,3,3/flatctrl useradmin/wave/@b0 7,7,0.0,3,6/flatctrl useradmin/wave/@b0 2,9,0.0,4,4/sit 1.0/wave/@b0 11,11,0.0,3,3/sit 1.0@b0 7,7,0.0,3,3/flatctrl useradmin/ Fuse rights around V13 - V15 - credits to http://www.artmoney.nl.tp/
Code: HCfuse_use_special_room_layoutsfuse_buy_credits_fuse_loginfuse_priority_accessfuse_use_club_outfits _defaultfuse_use_club_badgefuse_tradefuse_habbo _chooserfuse_buy_creditsfuse_loginfuse_moderator_accessfuse_tradefuse_habbo_chooserMODfuse_housekeeping_alertfuse_loginhousekeeping_banfuse_use_club_outfitsfuse_moderator_accessfuse_mutehousekeeping_hobbahousekeeping_superbanfuse_remove_photoshousekeeping_hobba_hobbatoolsfuse_use_special_room_layoutsfuse_chat_logfuse_room_alerthousekeeping_megabanfuse_any_room_controllerfuse_buy_creditsfuse_priority_accesshousekeeping_discussionfuse_ignore_room_ownerfuse_enter_full_roomshousekeeping_extrafuse_tradefuse_search_usersfuse_pick_up_any_furnifuse_banfuse_superbanhousekeeping_hobba_newbietool sfuse_room_mutehousekeeping_kickfuse_alertdefaultfuse_use_club_badgefuse_receive_calls_for_helpfuse_room_kickfuse_administrator_accessfuse_furni_chooserfuse_remove_stickieshousekeeping_hobba_supertoolsfuse_enter_locked_roomshousekeeping_hobba_moderato rtoolsfuse_habbo_chooserAdminfuse_housekeeping_campaign_user_datafuse_george_loginhousekeeping_localization_game_co ntenthousekeeping_alerthousekeeping_campaign_manag ementhousekeeping_localization_mischousekeeping_ba nhousekeeping_localization_contentfuse_mutehousekeeping_hobbafuse_remove_photoshousekeeping_statisticsfuse_any_room_controllerhousekeeping_localizationh ousekeeping_localization_content_editor_managerhou sekeeping_admin_rightshousekeeping_localization_co ntent_editor_adminfuse_priority_accesshousekeeping_admin_logsfuse_enter_full_roomshousekeeping_admin_systemfuse_bus_moderator_accesshousekeeping_statusfuse_superbanfuse_room_mutefuse_catalog_editorhousekeeping_hobba_bustoolsfuse_alertdefaultfuse_use_club_badgefuse_receive_calls_for_helphousekeeping_localizati on_content_editor_usefuse_room_kickhousekeeping_admin_clubhousekeeping_ campaign_mgmhousekeeping_localization_filtersfuse_remove_stickiesfuse_enter_locked_roomshousekeeping_hobba_moderato rtoolsfuse_kickhousekeeping_admin_paymentshousekeeping_c ampaign_adshousekeeping_georgefuse_loginhousekeeping_admin_catalogfuse_use_club_outfitsfuse_moderator_accesshousekeeping_superbanhousekee ping_hobba_hobbatoolsfuse_use_special_room_layoutsfuse_chat_logfuse_room_alerthousekeeping_megabanhousekeeping_ho bba_admintoolsfuse_buy_creditshousekeeping_discussionfuse_ignore_room_ownerhousekeeping_admin_user_datafuse_tradefuse_search_usershousekeeping_campaignfuse_pick_up_any_furnifuse_banhousekeeping_hobba_newbietoolshousekeeping _kickhousekeeping_discussion_adminfuse_administrator_accesshousekeeping_admin_credit shousekeeping_adminfuse_furni_chooserhousekeeping_hobba_supertoolsfuse_habbo_chooserhousekeeping_intra B64 encoded - basically the same as the in the first post except these ones are encoded - credits to Matt of SOM
Code: "PICK_CRYFORHELP": "@p""CALL_FOR_HELP": "AV""CHANGECALLCATEGORY": "CF""MESSAGETOCALLER": "CG""MODERATIONACTION": "CH""FOLLOW_CRYFORHELP": "EC""CREATEFLAT": "@]""GET_PENDING_CALLS_FOR_HELP": "Cm""DELETE_PENDING_CALLS_FOR_HELP": "Cn""CHAT": "@t""SHOUT": "@w""WHISPER": "@x""ENTER_ONEWAY_DOOR": "Ch"#room_directory: "@B""GETDOORFLAT": "@""QUIT": "@u""GOVIADOOR": "@v""TRYFLAT": "@y""GOTOFLAT": "@{""G_HMAP": "@|""G_USRS": "@}""G_OBJS": "@~""G_ITEMS": "@""G_STAT": "A@""GETSTRIP": "AA""FLATPROPBYITEM": "AB""ADDSTRIPITEM": "AC""TRADE_UNACCEPT": "AD""TRADE_ACCEPT": "AE""TRADE_CLOSE": "AF""TRADE_OPEN": "AG""TRADE_ADDITEM": "AH""MOVESTUFF": "AI""SETSTUFFDATA": "AJ""MOVE": "AK""THROW_DICE": "AL" Java habbo encoding class's |
| |
Quote: | |
Class's taken from Jase / Woodpecker II and ported to Java please leave the @author comments intact if you distribute / use this | |
vl64/wire:
PHP Code:
package com.encoding;
/* * vl64 encoding for habbo servers in Java * * @author Who ever wrote the C# version, Lord Jordan Porting */ public class vl64Habbo { public static String Encode(int i) { byte[] wf = new byte[6]; int pos = 0; int startPos = pos; int bytes = 1; int negativeMask = i >= 0 ? 0 : 4; i = Math.abs(i); wf[pos++] = (byte)(64 + (i & 3)); for (i >>= 2; i != 0; i >>= 6) { bytes++; wf[pos++] = (byte)(64 + (i & 0x3f)); }
wf[startPos] = (byte)(wf[startPos] | bytes << 3 | negativeMask); String tmp = new String(wf); //encoder.GetString(wf); return tmp.replace(" ", ""); } public static int Decode(String data) { char[] chars; chars = data.toCharArray(); return Decode(chars); } public static int Decode(char[] raw) { try { int pos = 0; int v = 0; boolean negative = (raw[pos] & 4) == 4; int totalBytes = raw[pos] >> 3 & 7; v = raw[pos] & 3; pos++; int shiftAmount = 2; for (int b = 1; b < totalBytes; b++) { v |= (raw[pos] & 0x3f) << shiftAmount; shiftAmount = 2 + 6 * b; pos++; }
if (negative == true) v *= -1; return v; } catch (Exception e) { return 0; } } }
base64:
PHP Code:
package com.encoding; /* * base64 encoding for habbo servers in Java * * @author Who ever wrote the C# version, Lord Jordan Porting */ public class base64Habbo { public static String Encode(int i) { try { String s = ""; for (int x = 1; x <= 2; x++) s += (char)((byte)(64 + (i >> 6 * (2 - x) & 0x3f))); return s; } catch (Exception e) { System.out.println(e.toString()); return ""; } } public static int Decode(String s) { try { char[] val = s.toCharArray(); int intTot = 0; int y = 0; for (int x = (val.length - 1); x >= 0; x--) { int intTmp = (int)(byte)((val[x] - 64)); if (y > 0) intTmp = intTmp * (int)(Math.pow(64, y)); intTot += intTmp; y++; } return intTot; } catch (Exception e) { System.out.println(e.toString()); return 0; } } }
|