Modcraft - The community dedicated to quality WoW modding!

Wrath of the Lich King Modding => Miscellaneous => Topic started by: doresain on August 17, 2011, 10:09:01 pm

Title: Transmogrification is possible on 3.3.5?
Post by: doresain on August 17, 2011, 10:09:01 pm
a new feature of the patch 4.3 http://eu.battle.net/wow/en/blog/2808997#blog (http://eu.battle.net/wow/en/blog/2808997#blog" onclick="window.open(this.href);return false;)
it's possible to recreate this feature on mangos/trinity 3.3.5? i'm not a good coder :D
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 17, 2011, 10:29:22 pm
Seeing as the thing is not even released yet, there is no information about how they are doing it.

They most likely added a new uint32_t in the data sent for each item from the server containing the displayID. If this is sent, the client overwrites the display ID found in the dbcs.

This kind of modification needs client side changes, therefore is not possible easily with 3.3.5a.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Eluo on August 17, 2011, 11:22:00 pm
Wasnt there a spell that alters the look of an worn item?
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 17, 2011, 11:51:16 pm
if exist a spell that overrides a weapon/armor modelid in 3.3.5 we may create a similar spell for every modelid in the game. it' insane XD
i think doesn't exist somethink like this in 3.x, only auras that overrider player modelid (in old mangos and old client you can override player model with .set value command or set player mounted but nothing similar to weapon swap)
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 18, 2011, 01:43:06 pm
i remember an old item, the benedict/anatema staff, that has a spella that morph the item in his dual
http://www.wowhead.com/spell=23041 (http://www.wowhead.com/spell=23041" onclick="window.open(this.href);return false;)
http://www.wowhead.com/spell=23042 (http://www.wowhead.com/spell=23042" onclick="window.open(this.href);return false;)

spell swaps item, not modelid, but it's quite similar
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 18, 2011, 01:51:35 pm
This requires to have all otems with all possible display ids in the client. It's of course possible to have the same item with different models, but that requires client side editing and is not possible with server scripts alone.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 18, 2011, 04:19:44 pm
not a good idea to make a n*(n-1) items and spells :D
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 18, 2011, 04:39:32 pm
It may be done for a subset of combinations or for donors.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 18, 2011, 04:50:48 pm
Oh wait, ItemTemplate has a displayInfo field. Not sure if one can force to delete stuff from the cached item data by the server. Else the client will have the data cached and won't update the display. I'm also not sure, if this does actually force the client to use the sent Id. I guess it does not.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 18, 2011, 11:33:57 pm
i found a tutorial to swap item models with an hack program, i think it works on the cache of the client
http://desertdarky.deviantart.com/art/W ... -145045198 (http://desertdarky.deviantart.com/art/WoW-Armor-Swapping-Tutorial-145045198" onclick="window.open(this.href);return false;)
on my server i had a patch that "overrides" players models, if modelid are sent by server to client we should modify this to work with itemmodelid i think
this is the patch (very simple)
Code: [Select]
  //PERSONALIZZAZIONE TALECRAFT PER UTILIZZARE LE RAZZE CUSTOM NON PRESENTI NEL GIOCO
   QueryResult CustomRaceResult = CharacterDatabase.PQuery("SELECT modelOverride FROM character_overrides WHERE guid = %u", fields[0].GetUInt32());

   if(CustomRaceResult)
      {
         Field *fields2 = CustomRaceResult->Fetch();
         SetNativeDisplayId(fields2[0].GetUInt32());
         SetDisplayId(fields2[0].GetUInt32());
      }
   else
      InitDisplayIds();
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 18, 2011, 11:50:36 pm
The problem is not sending a different display ID but if its actually regarded by the client and not overwritten via local DBC files. Also, the client caches the data, as you can see in that tutorial editing the cached data, and therefore it might not be easily possible for the server to force the client using a different display id while the client still has the old one cached.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 19, 2011, 12:01:14 am
yes, but if the player clears the cache of his client it should work, no? exists a lot of launchers that clear the cache of the client before the launch of wow.exe
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 19, 2011, 12:19:03 am
That would mean after changing the display ingame, you would have to restart the client through the launcher. great gameplay you have there.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: doresain on August 19, 2011, 12:33:45 am
in 2.x i used .set data command to edit the playerbytes (skin face hair facial feature),after players logout, cancel cache files and login with new hairstyles, and were happy, after blizzard created the barber shop...
i think player doesn't become enraged if after logout and login has a new item skin
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on August 19, 2011, 07:12:18 am
I'd say, that's horrible. I want the item to switch directly, not only as soon as all people who ever saw that item (that's why it might be not doable as well) deleted their cache.

The cache contains one entry per item id.  Also, WoW most likely does not handle a packet per item on every player but on every item it sees. This will result in changing the display on one item for everyone. I don't think  this is the wanted behaviour.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Wizier537 on March 23, 2012, 05:48:46 am
Well now that a few months have passed since transmogrification was fully implemented, how can we replicate that effect into a 3.3.5 server? (if it is at all possible, and please be so)...
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Laniax on March 23, 2012, 10:20:24 am
It might be achieveable with a gossip menu or something, but not with the system that is used on retail, you would need the source code of wow.exe for that.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: avatarscape on April 02, 2012, 01:26:29 am
It'd be possible to cheaphax this. The way it'd be done is by modifying the item id sent from the server. This would cause it to show as the look item in inspect, however. But, with a UI, you could make it request information from the server for a specific item id and then override the tooltip.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Elinora on May 27, 2012, 08:52:37 am
If you duplicate over 28000 times 28000 times to have every display available.. I'll bloody salute you for the effort!
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Soldan on May 27, 2012, 01:34:05 pm
Mythcore are working on it just now;

http://mythprojectnetwork.blogspot.com. ... n-wow.html (http://mythprojectnetwork.blogspot.com.es/2012/05/community-blog-transmodification-wow.html" onclick="window.open(this.href);return false;)

So if it isn't possible by modifying files, it must be possible by emulation...
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Elinora on May 27, 2012, 06:40:50 pm
Well..

I won't be using transmogrify on my project, because we're redesigning most armor for it anyway :P But good luck guys!
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Will on May 27, 2012, 10:11:43 pm
I'm really keen on getting transmogrification working on my server too. Though haven't attempted yet. May do this summer. Hopefully it'll already be done before i consider it. ^^
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Elinora on May 31, 2012, 12:08:23 pm
Keta came up with a really good idea, untill he realized that pretty much anything you try, everyone's display will change.

So i'd honestly say that in the 3.3.5 engine it doesn't seem possible :(
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on May 31, 2012, 12:25:00 pm
It is possible. The only thing needed is a hell lot of duplicate items with different display ids.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Elinora on May 31, 2012, 02:03:30 pm
Quote from: "schlumpf"
It is possible. The only thing needed is a hell lot of duplicate items with different display ids.

Oh yeah I completely threw that out of my mind.. Well that's the only way to do it though :P
Title: Re: Transmogrification is possible on 3.3.5?
Post by: stoneharry on May 31, 2012, 03:44:03 pm
If you want to go through the whole creating new items for it route, it is quite easy.

You would just check to see if those values already exist - if not then insert a new record and add it to the player.

You can insert new ID's into a new table for logging purposes, and have a algorithm that runs every few days that deletes all records that do not exist in the character database.

These would be very simple to implement. It's just trying to comprehend the amount of conditions and fields that need to be handled.

Furthermore, you can override the players cache by directly sending the item data to them which replaces their cached data.

Implement a simple interface via a custom addon. If you want client <-> server interaction, send messages to a player that does not exist -> have the error message not display -> have the server handle messages received to that player and react depending on it and the conditions (to prevent exploiting).

It really does seem very simple to me.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Elinora on May 31, 2012, 03:55:33 pm
Quote from: "stoneharry"
If you want to go through the whole creating new items for it route, it is quite easy.

You would just check to see if those values already exist - if not then insert a new record and add it to the player.

You can insert new ID's into a new table for logging purposes, and have a algorithm that runs every few days that deletes all records that do not exist in the character database.

These would be very simple to implement. It's just trying to comprehend the amount of conditions and fields that need to be handled.

Furthermore, you can override the players cache by directly sending the item data to them which replaces their cached data.

Implement a simple interface via a custom addon. If you want client <-> server interaction, send messages to a player that does not exist -> have the error message not display -> have the server handle messages received to that player and react depending on it and the conditions (to prevent exploiting).

It really does seem very simple to me.

i'll go mind my world building.. * feeling retarded *
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on May 31, 2012, 04:35:48 pm
The actual problem is that for good items, more than the server side data is needed, i.e. some DBCs, which you can't update dynamically. Of course it is possible to create a new virtual item (no database entries needed at all) and push it.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: stoneharry on May 31, 2012, 04:43:45 pm
Quote from: "schlumpf"
The actual problem is that for good items, more than the server side data is needed, i.e. some DBCs, which you can't update dynamically. Of course it is possible to create a new virtual item (no database entries needed at all) and push it.

You can use a addon though to add the icon to those items and equip them when right clicked though, no? At least, I've seen something done similar to that in the past.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on May 31, 2012, 04:58:38 pm
You can also just use a modified client which can change the displayed items via lua which is executed by your addon upon serverside request.

So we are talking complete hack now?
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Keta on May 31, 2012, 09:06:32 pm
The approach I would take, is basically just edit the packet that defines the display ID for the item the player wants to transmogrif, and edit the display ID to something different. The side effect would be all with that item would look different.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: schlumpf on May 31, 2012, 09:53:48 pm
Quote from: "Keta"
The approach I would take, is basically just edit the packet that defines the display ID for the item the player wants to transmogrif, and edit the display ID to something different. The side effect would be all with that item would look different.
Which of course is not what you want and therefore disqualifies.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: stoneharry on May 31, 2012, 10:41:07 pm
Hence why I tire of emulation quickly. To do anything, it involves constant hack fixes.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Eclipse on June 01, 2012, 04:04:25 pm
Such is the fate of true customization =/ .

This is the same for displaying recolors of the same armor, i.e. dying armor I suppose.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: Meiya Stormsinger on June 19, 2012, 10:13:22 am
http://www.youtube.com/watch?v=Jj2_buUC804 (http://www.youtube.com/watch?v=Jj2_buUC804" onclick="window.open(this.href);return false;)
That is all.
Title: Re: Transmogrification is possible on 3.3.5?
Post by: ZxOxZ21 on June 25, 2012, 12:01:11 pm
If you are using ArcEmu, you can make Transmogrification with Lua.

Let me show you an example:

Code: [Select]
local OBJECT_END = 0x0006
local UNIT_END = OBJECT_END + 0x008E
local PLAYER_VISIBLE_ITEM_16_ENTRYID = UNIT_END + 0x00A5 -- Main Hand Slot.

player:SetUInt32Value(PLAYER_VISIBLE_ITEM_16_ENTRYID, Transmogrification Item Entry ID)

So, basically you have to change the Transmogrification Item Entry ID with an in-game item.

You can also check if player main hand weapon is an sword, an axe or an polearm by checking it's entry id, and then make an world query and check for the subclass in Items Table.