Mattygs6/ExBuddy

Can't handover Collectable in Chinese Client

Closed this issue · 21 comments

Firstly with default Exbuddy Collectable can't handover with error "[ExBuddy][MasterPieceSupply] Collectability Value '477' is too low or we can't turn in Chysahl Greens today" due to Chinese Client can't match items with EnglishName. However after I try to change item.EnglishName into item.Name in ExTurnInCollectablesTag.cs the error also change to "[ExBuddy][MasterPieceSupply] Can't turn in 'Chysahl Greens' today, the current turn in is '' ".
I think the problem is Memory.Request.ItemId1 and bagSlot.RawItemId are not match. I want to know how to solve this problem.
If you please to help me and need more information please reply me, I'll tell it ASAP. Thanks.

I believe there are different offsets for the CN client. Mastahg may be able to help with this.

Also..i think you will have to use the English name as I only have the english names in my data store.

Eh... should I convert the name into English name? Could you tell me how to do this?
One thing I forgot to tell you that Chinese RB is a special version that seems unable to use the newest ExBuddy. And not only item name but also skill name I must write Chinese name in xml script but when RB cast the skill it shows English name in log. I'm so confused with Language problem. Consider that FF also have German and French version I think you may have some experience in dealing with language problems. If so please tell me how to deal with that, thanks.

The main issue is that more often than not, the scripts used by the German and French and even some of the Chinese were the same scripts as the EN people. This made it easier to support EnglishName everywhere as then the scripts did not have to be localized for every language. Just about everything in ExBuddy only supports EnglishName for that reason.

About the skill names, I am not familiar with the requirement to type a localized name there, i would have to look it over. And I believe the log shows the english name because that is what I am specifically logging.

Its probably an offset issue and not a englishname/name issue.

Can you verify Memory.Request.ItemId1 is displaying an incorrect value?

About the skill name. The skill I used is Toil Of The Pioneer. After experiment I found RBCN(Chinese special version of RB) only recognize Chinese skill name.
Beside that, I thought a solution to make handover success without changing EnglishName to Name. How about order RB to use subcommand (right click on item slot at handover window) and choose first item show up? This method do not need check the item name so that we can avoid deal language problems.

We don't have an api for that.

Rb uses ids for this reason so that we don't have to waste times checking both locales but exbuddy wasn't developed to the same standard. I'll need to investigate the issue instead of trying to create a workaround.

Sorry I'm not a C# programmer. If you can tell me how to check the value of Memory.Request.ItemId1 and bagSlot.RawItemId, I'll do it right away.

Memory.Request.ItemId1 is returning the correct value
If we are profile is using english names and the exbuddy is internally using ids->englishnames then there shouldn't be an issue.

Are you sure that the item doesn't require 480 collectability to be turned in?

Yes I sure. Cause I can manually handover all Collectables I got but RB can't make it.

can you get me a screenshot of the collectables list

And to confirm that this is the item that its trying to turn in

http://xivdb.com/item/12900/Chysahl-Greens

I just pushed an updated RBCN, please download the latest version into a clean directory and download the latest source for exbuddy from here (https://github.com/MGramolini/ExBuddy/archive/master.zip) and try to reproduce the issue

qq 20160318161055
This is the collectables list,"卡贝基野菜" means Chysahl Greens.

And I log the Memory.Request.ItemId1 and bagSlot.RawItemId. As you see they are not match.
qq 20160318161245

OK I'll try it immediately.

In some places Id would definitely be an improvement.

The masterpiece data only outputs the name of items. I could probably map the values to the id values after exported in the future to allow for globalization improvements l.

I have got that clean environment and the result is this:
qq 20160318163242

I had someone test the request window and it was working correctly, can you open the console when the request window is open and paste in

Log(ExBuddy.Helpers.Memory.Request.ItemId1);

and tell me what it returns?

I just do another experiment that I manually choose the Chysahl Green at the Collectable list. And after the request window show up RB handover is immediately.
I think this experiment shows the problem is RB didn't choose the right item on Collectable list.

qq 20160318171730
If I manually open the request window, Log(ExBuddy.Helpers.Memory.Request.ItemId1); shows 12900. This is correct. I think the problem is RB didn't find correct item on Collectable list.