Page 5 of 6

Re: [TW] Mix Weapon Type Transmog

Posted: 02 Oct 2016 16:28
by slocraft
well I vote yes for it. But I'm not sure about one thing. want to sort it out :D
So you will able to transmog your weapon into something other, that you OWN or OWN and have already equipped?

Re: [TW] Mix Weapon Type Transmog

Posted: 02 Oct 2016 16:41
by Gadoschi
No. You do not have to have equipped it.

But you will have to BE ABLE TO USE it.

Re: [TW] Mix Weapon Type Transmog

Posted: 02 Oct 2016 16:50
by slocraft
So basically if I have a BoE item I can trade it endlessly to my friends and let them get the mog? or u actually have to have it in your bag for mog to work? :D

Re: [TW] Mix Weapon Type Transmog

Posted: 02 Oct 2016 16:59
by Matsy
slocraft wrote:So basically if I have a BoE item I can trade it endlessly to my friends and let them get the mog? or u actually have to have it in your bag for mog to work? :D
No.
Think his wording alittle odd.
You have to be able to equip the weapon and have it binded to yourself (equip BoE items)

Re: [TW] Mix Weapon Type Transmog

Posted: 03 Oct 2016 08:09
by Wilcox
item has to be soulbound, and something you can wear, simple logic

Re: [TW] Mix Weapon Type Transmog

Posted: 12 Oct 2016 02:34
by Nyeriah
Pending, very, very, very low priority atm

Re: [Pending] Mix Weapon Type Transmog

Posted: 07 Nov 2016 13:51
by Gnurg
There was a thank you note to Rochet2 on our Transmog FAQ page, so I took a look Rochet2's source code and they had the "curious" allow mixed weapon future. I am guessing that this is the source code used for our transmog.

The problem with the "allowMixedWeapon" future is that you can mix some weapons that shouldn't be mixable. To fix the problem, we have to some extra logic towards the end of this function.

First we need some weapons pools. They already had the IsRangedWeapon method.

We need one for OneHandedWeapons

Code: Select all

bool Transmogrification::IsOneHandedWeapon(uint32 Class, uint32 SubClass) const
{
TC_LOG_DEBUG("custom.transmog", "Transmogrification::IsOneHandedWeapon");

return Class == ITEM_CLASS_WEAPON && (
SubClass == ITEM_SUBCLASS_WEAPON_AXE ||
SubClass == ITEM_SUBCLASS_WEAPON_MACE ||
SubClass == ITEM_SUBCLASS_WEAPON_SWORD);
}
and TwoHandedWeapons.

Code: Select all

bool Transmogrification::IsTwoHandedWeapon(uint32 Class, uint32 SubClass) const
{
TC_LOG_DEBUG("custom.transmog", "Transmogrification::IsTwoHandedWeapon");

return Class == ITEM_CLASS_WEAPON && (
SubClass == ITEM_SUBCLASS_WEAPON_AXE2 ||
SubClass == ITEM_SUBCLASS_WEAPON_MACE2 ||
SubClass == ITEM_SUBCLASS_WEAPON_SWORD2 ||
SubClass == ITEM_SUBCLASS_WEAPON_STAFF ||
SubClass == ITEM_SUBCLASS_WEAPON_POLEARM);
}
To allow main hand dagger (otherwise known as caster dagger) to be transmogged into a OneHandedWeapon, I added a method to check if the weapon is a main hand dagger.

Code: Select all

bool Transmogrification::IsMainHandDagger(ItemTemplate const* item) const
{
TC_LOG_DEBUG("custom.transmog", "Transmogrification::IsMainHandDagger");

return item->Class == ITEM_CLASS_WEAPON && item->InventoryType == INVTYPE_WEAPONMAINHAND && item->SubClass == ITEM_SUBCLASS_WEAPON_DAGGER;
}
Finally, we need to make sure the rest of the weapons that don't belong in any of these weapon pools can't be the source for other weapons.

Code: Select all

bool Transmogrification::BadWeaponSource(uint32 SubClass) const
{
TC_LOG_DEBUG("custom.transmog", "Transmogrification::BadWeaponSource");

return Class == ITEM_CLASS_WEAPON && (
SubClass == ITEM_SUBCLASS_WEAPON_FIST_WEAPON ||
SubClass == ITEM_SUBCLASS_WEAPON_DAGGER ||
SubClass == ITEM_SUBCLASS_WEAPON_THROWN ||
SubClass == ITEM_SUBCLASS_WEAPON_SPEAR ||
SubClass == ITEM_SUBCLASS_WEAPON_WAND ||
SubClass == ITEM_SUBCLASS_WEAPON_FISHING_POLE);
}
Now we only have to update this part with the new functions to make it work.

Code: Select all

 if (source->InventoryType != target->InventoryType || (AllowMixedArmorTypes && source->Class == ITEM_CLASS_WEAPON))
{
if (source->Class == ITEM_CLASS_WEAPON &&
(IsRangedWeapon(target->Class, target->SubClass) != IsRangedWeapon(source->Class, source->SubClass) ||
IsTwoHandedWeapon(target->Class, target->SubClass) != IsTwoHandedWeapon(source->Class, source->SubClass) ||
(IsOneHandedWeapon(target->Class, target->SubClass) != IsOneHandedWeapon(source->Class, source->SubClass) && !IsMainHandDagger(target)) ||
source->InventoryType == INVTYPE_WEAPONMAINHAND ||
source->InventoryType == INVTYPE_WEAPONOFFHAND ||
BadWeaponSource(source->SubClass)))
return false;
if (source->Class == ITEM_CLASS_ARMOR &&
!((source->InventoryType == INVTYPE_CHEST && target->InventoryType == INVTYPE_ROBE) ||
(source->InventoryType == INVTYPE_ROBE && target->InventoryType == INVTYPE_CHEST)))
return false;
}
Could we give this a try on the PTR? :-)

Re: [Pending] Mix Weapon Type Transmog

Posted: 10 Nov 2016 08:10
by Ratmout
Give it a try plz!!

Re: [TW] Mix Weapon Type Transmog

Posted: 10 Nov 2016 19:01
by Gadoschi
Nyeriah wrote:Pending, very, very, very low priority atm
Shouldn't priorities be set by what the community wants?

And judging by the ammount of activity in this thread compared to other threads and the ammount of transmog hunters out there in the server, I would say that transmog is currently very high on community's list of wanted upgrades/updates/fixes.

Re: [TW] Mix Weapon Type Transmog

Posted: 10 Nov 2016 19:07
by Gnurg
Gadoschi wrote:
Nyeriah wrote:Pending, very, very, very low priority atm
Shouldn't priorities be set by what the community wants?

And judging by the ammount of activity in this thread compared to other threads and the ammount of transmog hunters out there in the server, I would say that transmog is currently very high on community's list of wanted upgrades/updates/fixes.
I am already working on this and it's soon to be released, should I manage to fix the few issues left.

Re: [Pending] Mix Weapon Type Transmog

Posted: 10 Nov 2016 19:08
by Gadoschi
That's great news.

Re: [Pending] Mix Weapon Type Transmog

Posted: 10 Nov 2016 20:15
by Gnurg
It's enabled on the PTR now, so if you want to help me debug, please do.

Re: [Pending] Mix Weapon Type Transmog

Posted: 10 Nov 2016 21:16
by Gadoschi
What are the bugs concerning?

Re: [Pending] Mix Weapon Type Transmog

Posted: 10 Nov 2016 21:26
by Gnurg
Gadoschi wrote:What are the bugs concerning?
If you can switch within a weapon pool and can't go beyond the weapon pool. As well as check items not in weapon pools.

It seemed fine when I tested it, besides legendaries, but I think that's just some configuration setting difference between PTR and TW.

Re: [Pending] Mix Weapon Type Transmog

Posted: 17 Nov 2016 13:42
by Gnurg
This is now enabled for the TrueWoW realm.

[hide]Pool 1: Ranged Weapons (Already existing)
  • Gun
  • Bow
  • Crossbow
Pool 2: Two-Handed Weapons (Staff and Poleaxe should not be included due to dual wielding fury staff/poleaxe warrior)
  • Two-Handed Axe
  • Two-Handed Mace
  • Two-Handed Sword
  • Polearm
  • Staff
Pool 3: One-Handed Weapons
  • Axe
  • Mace
  • Sword
  • Main-Hand Dagger to the others, but not others to Main-Hand Dagger
[/hide]

If you find any bugs (i.e. illegal transmogs), please notify through PM so I can look into it.