Forum > Resources and Tools
[Project] Removing the Failsafe in 3.3.5
<< < (3/3)
Gurluas:
--- Quote from: "stoneharry" --- --- Quote from: "Gurluas" --- --- Quote from: "stoneharry" --- --- Quote from: "Gurluas" --- --- Quote from: "stoneharry" ---You will need to find the relevant functions in the binary by reverse engineering it.
Noteworthy:
--- Code: --- CharacterCreate_UpdateFacialHairCustomization(); CharacterCreate_UpdateHairCustomization(); CharacterChangeFixup();
--- End code --- And:
--- Code: ---function CharacterCustomization_Left(id) PlaySound("gsCharacterCreationLook"); CycleCharCustomization(id, -1); end
function CharacterCustomization_Right(id) PlaySound("gsCharacterCreationLook"); CycleCharCustomization(id, 1); end
function CharacterCreate_Randomize() PlaySound("gsCharacterCreationLook"); RandomizeCharCustomization(); end
--- End code ---
I looked at the GueXML inside patch-enGB.mpq (build ~8000) and these functions are identical, so I do not know how you could, or if you could, even allow these skins etc to be used in the char creation menu. --- End quote ---
You can't, you use WPE Pro to hack the packet. The problem is...The filtering makes everyone else see a different skin, I.E skin 00. So say...As a Human Female, no matter what special skin you pick, Deathknight, Cultist, Whitemane etc. Any other player will see you as a normal human with the palest skin, namely, skin 00.
This was not the case with the Burning Crusade or with Vanilla. --- End quote ---
Which packet are you manipulating in specific? As far as I am aware, the server loads your character information, then sends these byte values to you and any other players who need the data.
This means that if you are intercepting this packet and changing the byte values, of course it will be client side only.
But this also implies that you could simply just send the relevant skin index byte from the server rather than the one sent from the client when creating the char.
I am confused. :P --- End quote ---
What I am doing, is interception the packet during character creation that tells the server what skin the character will have, and give it a value you cannot select ingame, such as 0A which is skin 10. The result is that the character, serverside HAS skin 0A, and if your server has a model viewer plugin in the website showing your character you can see said skin there too.
The problem is, that the filtering I call the failsafe, filters that skin for anyone else who sees it to skin 00. This is NOT the case with Vanilla or Burning Crusade. If I get the Earthen skin there, others can see it, this filter isn't there. --- End quote ---
That makes a lot more sense. In future, just edit the byte fields in the database rather than going to the hassle of having to manipulate the packets in real time. :P
Then I guess it is just a client side range check which defaults to 0 if that range is exceeded. Finding this in the assembly will not be trivial. --- End quote ---
Indeed, it wont, this is why I asked for help from the best. I really hope you can figure it out.
Gurluas:
Any luck anyone?
This can have fantastic results if dealt with.
EDIT: I got this tip: "Look where the texture is stored, attach a read-hook, look for the function assigning the values and go backwards until you find the validation."
It's completely foreign to me to me but maybe one of you has an idea. Imagine all the possibilities once it is gone, especially for roleplay servers.
Gurluas:
Here is more data regarding this problem:
1. The failsafe is NOT present in 2.4.3 2. It appears that the failsafe does not isolate numbers 0-9, instead, it isolates anything in the DBC flagged NPC, or Deathknight for non-Deathknights.
More specifically, flag 0x4 for Deathknights, and 0x8 for NPCs. The filtering is different. Characters with the Deathknight class do not get filtered, while other characters do. For instance, a Hunter with a Deathknight skin will have Skin 00.
With Npc skins, such as the High elf skin, everything gets filtered.
Navigation
[0] Message Index
[*] Previous page
|