Jump to content

Does anyone know what chat channel the Rezology hair HUD uses?


Sara Nova
 Share

You are about to reply to a thread that has been inactive for 177 days.

Please take a moment to consider if this thread is worth bumping.

Recommended Posts

I have a whole bunch of hair I bought from a store called Rezology that I really like. It comes with a HUD to select from a few textures and change the tint color, but unfortunately the hair is no-modify, meaning unless I can emulate it, I have to use the HUD and can't trigger it from my own scripts. And this is a problem for me, because while this wasn't as important to me when I bought from them, now I use a complex set of scripts to automatically edit all of my attachments, for purposes like color coordination. (These scripts are almost entirely implemented in client-side Lua, so there's no need to worry about them causing lag.)

I'm already using my own custom-compiled fork of Cool VL Viewer, so I suppose I could add in some code to programmatically simulate clicks on the HUD. But since this is theoretically something I can do without all that extra complexity, the ideal solution would be to do it that way. If the texture buttons on the HUD send a full UUID, I might even be able to use my own textures for it that way. I just don't know what channel it uses.

I'm pretty sure all of the products I bought use the same channel, as I was able to change the color of one of them using the HUD that came with another. And yes, normally what I'd do is contact the creator, but the store has since closed down, so that might be difficult. And I seem to remember trying to contact them about something else back when the store was open and never even getting a response then.

So does anyone happen to know what channel it uses, or have any suggestions for what it might use?

Link to comment
Share on other sites

If the HUD opens a dialog at any point, you can discover the channel that dialog is operating on through the viewer. It shouldn't be too difficult to add a display for the dialog channel. Once you have that channel, you'd have to hope that it accepts inputs in a way that you can manipulate.

Besides that, without someone straight-up telling you what the channel is (or how it's generated), I think the most common methods are to use either a low channel number (-10000, +10000) or calculate one from the user's key. Most often the first 8 characters as a hexadecimal value.

integer channel = (integer)((string)llGetOwner()) + offset;
integer channel = 0x7fffffff | (integer)((string)llGetOwner());
integer channel = 0x80000000 + (integer)((string)llGetOwner());
...

Setting up a range of listeners (or better yet, doing that through the viewer itself if possible) can help you discover the channel, but it's not guaranteed because the range of possible channels is too great.

Edited by Wulfie Reanimator
Link to comment
Share on other sites

7 hours ago, Wulfie Reanimator said:

If the HUD opens a dialog at any point, you can discover the channel that dialog is operating on through the viewer. It shouldn't be too difficult to add a display for the dialog channel. Once you have that channel, you'd have to hope that it accepts inputs in a way that you can manipulate.

I've actually done that before (there's something you can turn on in Advanced->Consoles->Debug Tags that makes it output to the console IIRC) but this HUD doesn't use a dialog. Good idea though.

23 minutes ago, Kyrah Abattoir said:

You can have 65 active listeners per script right?

I looked that up on the wiki earlier today, and yes.

Link to comment
Share on other sites

  1. It's a terrible idea .. and probably simpler, faster and more fun to find a creator who sells hair with mod perms.
  2. Is the official forum really the place to blatantly reverse engineer a commercial product ?
  3. Fear of exactly this drives some creators add bulky and slow encryption routines to their scripts.
  • Thanks 1
Link to comment
Share on other sites

44 minutes ago, Coffee Pancake said:
  1. It's a terrible idea .. and probably simpler, faster and more fun to find a creator who sells hair with mod perms.
  2. Is the official forum really the place to blatantly reverse engineer a commercial product ?
  3. Fear of exactly this drives some creators add bulky and slow encryption routines to their scripts.
  1. Yes, support merchants who sell their products modifiable!
  2. Listening on a channel is hardly a "hush-hush secret reverse engineering" trick. There are over 4 billion chat channels. It'd take you days of sleepless searching to find a channel in the best of cases.
  3. If a creator is worried about someone stealing their UUIDs (I assume that's what you mean), encrypting your script chatter is the last thing that's going to help.

And as I hinted at, simply knowing one channel is probably not enough to do anything useful. You'll not even be able to control if or when the script is listening.

  • Like 1
Link to comment
Share on other sites

Posted (edited)
5 hours ago, Coffee Pancake said:
  1. It's a terrible idea .. and probably simpler, faster and more fun to find a creator who sells hair with mod perms.
  2. Is the official forum really the place to blatantly reverse engineer a commercial product ?
  3. Fear of exactly this drives some creators add bulky and slow encryption routines to their scripts.

1. But I already have a lot of hair I bought from that creator back when I didn't care about modify perms quite as much as I do now. Besides, they had a lot of designs I really liked (and still do) and it's not like I can just buy the same product from a different creator. A different seller perhaps, if someone illegally copied it, but I imagine that's not what you're talking about. :P

2. I don't see why not. This isn't the official forum for that commercial product or its creator. This is the official forum for Second Life, and not everyone here has a problem with using products in ways the creator didn't intend. You're welcome to state your opinion on the matter, but so long as my "reverse engineering" stays within the Terms of Service, I think this forum is a fine place to discuss it.
Besides, how do you know the creator would have an issue with it? It's possible the idea of sharing the channel number simply never occurred to them.

3. Okay...that's a shame, but I don't see why that should stop me.

Edited by Sara Nova
Link to comment
Share on other sites

Posted (edited)
44 minutes ago, Wulfie Reanimator said:

And as I hinted at, simply knowing one channel is probably not enough to do anything useful. You'll not even be able to control if or when the script is listening.

I can only imagine it's always listening. If it wasn't, the HUD couldn't work, could it? The user could click a button at any time. I guess it could communicate via an external server or something, but that would be overkill for something like a color/texture HUD.

Edited by Sara Nova
Link to comment
Share on other sites

47 minutes ago, Sara Nova said:

I can only imagine it's always listening. If it wasn't, the HUD couldn't work, could it?

The HUD could be using multiple channels to communicate. For example, the main "handshake" channel would cause the receiving script to open a second channel to receive the actual data. Splitting things this way can make the script simpler to develop. I imagine most people would just use a single channel that's always open.

But since these are no-modify products, I can't imagine why the creator would be passing texture UUIDs to the receiving script. (Unless of course, they're using premade scripts from someone else or they're a naive scripter.) Generally when I make HUDs with buttons, the HUD doesn't do much else than "touch_start { llRegionSayTo(llGetOwner(), channel, button); }". All the UUIDs and logic are already in the receiving script because I don't want to maintain two scripts unless I'm making things with customization in mind.

Edited by Wulfie Reanimator
Link to comment
Share on other sites

17 hours ago, Wulfie Reanimator said:

Most often the first 8 characters as a hexadecimal value.

Once I noticed a seller had miss-permed a script in a gift. In that gift happened to be that typical generation method coupled with the default suggested addition. I forget off the top of my head if that addition was 100, or 1000. But what ever value was suggested on the forum at the time it was a thing. But it is probably worth a shot in the dark sometimes.

Link to comment
Share on other sites

You are about to reply to a thread that has been inactive for 177 days.

Please take a moment to consider if this thread is worth bumping.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...