opentibiabr/canary

"The Forge" The Convergence It does not work well, does not show all class 4 items

Closed this issue · 1 comments

Priority

High

Area

  • Datapack
  • Source
  • Map
  • Other

What happened?

Both the Fusion by Convergence and Transfer by Convergence options do not teach all classification 4 items.
for "Convergence Fusion"
fusion convergence 1
fusion convergence 2
As you can see, some items do not allow fusion by convergence, on the other hand I had tier 5 items and only some allowed fusion.
for "Convergence Transfer"
transfer convergence
If I check the convergence it stops showing me all the class 4 items that I have and shows me only the same type of items "weapons with weapons", "helmet with helmets" "armor with armors" and in some cases it does not show me any item class 4, which should not be the case, it would have to show me all the class 4 items.
In short, in principle I should be able to transfer with convergence from a tier 5 helmet to armor, legs or any item I want.

What OS are you seeing the problem on?

Windows

Code of Conduct

  • I agree to follow this project's Code of Conduct

I already solved it after reviewing the code, to leave the forge well just replace this code:

if (itemClassification == 4) {
				getForgeInfoMap(item, convergenceItemsMap[item->getSlotPosition()]);
			}

for this:

if (itemClassification == 4) {
				getForgeInfoMap(item, convergenceItemsMap[item->getClassification()]);
			}

That is found in protocolgame.cpp, within the function:
ProtocolGame::sendOpenForge()

I realized that there was the problem because when the "convergence" option was checked it directly associated items by type, weapons with weapons, helmet with helmets, so this code "item->getSlotPosition()" would have something to do with it and at the same time Putting "item->getClassification()" directly searches for all items of the same classification, as in RL

Here I show how the forge looked after that modification:
forge fix