Jump to content

Transmutation BUG - Mali System


Recommended Posts

Hello guys, there is the following bug with @ Mali transmutation system.

Look below: i have this item (120lvl) transmutated with Silver Bell (15 lvl). 
.png
1. The stats of this item:
.png

2. When i click C these are the stats of the player when i wear the transmutated item:
.png

3. When i wear the original item (120lvl) without transmute, these are the stats:
.png

4. When i wear the Silver Bell (15lvl) without transmute, these are the stats: (It has same stats as 2)
.png
5. Last, when i transmute the Silver Bell (15lvl) with the 120lvl Bell, these are the stats:
.png
.png

So... the problem is that it takes the stats of the item that i want to "Show". Any ideas?

Link to comment
Share on other sites

  • 1 month later...

FIX

Search in UserInterface/PythonNetworkStreamPhaseGameActor.cpp for:

void __SetWeaponPower(IAbstractPlayer& rkPlayer, DWORD dwWeaponID)
{
...
}


Replace it with:

void __SetWeaponPower(IAbstractPlayer& rkPlayer, DWORD dwWeaponID)
{
	DWORD minPower = 0;
	DWORD maxPower = 0;
	DWORD minMagicPower = 0;
	DWORD maxMagicPower = 0;
	DWORD addPower = 0;

	CItemData* pkWeapon;
#if defined(ENABLE_WEAPON_COSTUME_SYSTEM) || defined(__BL_TRANSMUTATION__)
	if (CItemManager::Instance().GetItemDataPointer(CPythonPlayer::Instance().GetItemIndex(TItemPos(INVENTORY, c_Equipment_Weapon)), &pkWeapon))
#else
	if (CItemManager::Instance().GetItemDataPointer(dwWeaponID, &pkWeapon))
#endif
	{
		if (pkWeapon->GetType() == CItemData::ITEM_TYPE_WEAPON)
		{
			minPower = pkWeapon->GetValue(3);
			maxPower = pkWeapon->GetValue(4);
			minMagicPower = pkWeapon->GetValue(1);
			maxMagicPower = pkWeapon->GetValue(2);
			addPower = pkWeapon->GetValue(5);
		}
#ifdef ENABLE_WEAPON_COSTUME_SYSTEM
		else if (pkWeapon->GetType() == CItemData::ITEM_TYPE_COSTUME)
		{
			dwWeaponID = rkPlayer.GetItemIndex(TItemPos(INVENTORY, c_Equipment_Weapon));

			CItemData* pkWeaponReal;
			if (CItemManager::Instance().GetItemDataPointer(dwWeaponID, &pkWeaponReal))
			{
				if (pkWeaponReal->GetType() == CItemData::ITEM_TYPE_WEAPON)
				{
					minPower = pkWeaponReal->GetValue(3);
					maxPower = pkWeaponReal->GetValue(4);
					minMagicPower = pkWeaponReal->GetValue(1);
					maxMagicPower = pkWeaponReal->GetValue(2);
					addPower = pkWeaponReal->GetValue(5);
				}
			}
		}
#endif
	}

	rkPlayer.SetWeaponPower(minPower, maxPower, minMagicPower, maxMagicPower, addPower);
}


That will fix it.

Kind Regards,
ONE

  • Love 2
Link to comment
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now


×
×
  • Create New...

Important Information

Terms of Use / Privacy Policy / Guidelines / We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.