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
-
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
-
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.
-
Wasnt there a spell that alters the look of an worn item?
-
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)
-
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
-
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.
-
not a good idea to make a n*(n-1) items and spells :D
-
It may be done for a subset of combinations or for donors.
-
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.
-
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)
//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();
-
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.
-
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
-
That would mean after changing the display ingame, you would have to restart the client through the launcher. great gameplay you have there.
-
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
-
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.
-
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)...
-
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.
-
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.
-
If you duplicate over 28000 times 28000 times to have every display available.. I'll bloody salute you for the effort!
-
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...
-
Well..
I won't be using transmogrify on my project, because we're redesigning most armor for it anyway :P But good luck guys!
-
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. ^^
-
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 :(
-
It is possible. The only thing needed is a hell lot of duplicate items with different display ids.
-
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
-
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.
-
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 *
-
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.
-
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.
-
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?
-
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.
-
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.
-
Hence why I tire of emulation quickly. To do anything, it involves constant hack fixes.
-
Such is the fate of true customization =/ .
This is the same for displaying recolors of the same armor, i.e. dying armor I suppose.
-
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.
-
If you are using ArcEmu, you can make Transmogrification with Lua.
Let me show you an example:
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.