quisquous / cactbot

FFXIV TypeScript Raiding Overlay
Apache License 2.0
793 stars 378 forks source link

International ffxiv version with Chinese parse language does not work #4287

Closed MillerTheBest closed 2 years ago

MillerTheBest commented 2 years ago

Hi,

I'm new to cactbot. I have used ACT and dps metre for a while. I installed cactbot yesterday via ACT (I have updated everything yesterday and today). I tried to add raidboss (combined alerts and timeline), as well as add alters only and timeline only separately. Alerts seem to be working (I'm getting text and voice alerts in actual raids after changing the settings). However, in either way, I cannot get the timeline to show. Also, I expected to see the timeline and alerts when testing in Summerford Farms after doing /countdown 5, but neither showed.

Any idea on what might have gone wrong? Thanks.

quisquous commented 2 years ago

It's most probably something chat log related. Either you have "enable chat log for privacy", or you have a difference between the language the ffxiv plugin is in and the parser language for cactbot, or you have a dalamud plugin like chattyper that's messing with the chat log, or least likely that somehow you don't have those chat log messages enabled in any chat window.

For this sort of "setup" support, you might also want to ask in the ffxiv act discord.

MillerTheBest commented 2 years ago

It makes sense. My client is in English, but I have used another github tool to replace the in-game text with another language. However, changing cactbot's language in the config doesn't seem to help in my case. I'll also ask in the act discord. Thank you.

quisquous commented 2 years ago

I have used another github tool to replace the in-game text with another language

Yeah, that would most likely be the issue. Which tool is this?

MillerTheBest commented 2 years ago

https://github.com/GpointChen/FFXIVChnTextPatch-GP At the time that I started to install cactbot, I was on [6.1 4/15] simplified chinese with 4k font pack. I just updated to [6.1 4/16 ] simplified chinese with 4k font pack. I tested in Summerford Farms again (even after re-adding cactbot, as well as changing cactbot's languages), timeline still didn't show. One alternative could be: I leave the client's English as original, change Japanese to Chinese without the tool, display Japanese in the game (so i see Chinese), hoping the background works in English still, so that cactbot may read the data in the format it needs. It may work, but I'm not very keen to mess around. Cactbot's alerts is helping me a lot right now.

LTY0503 commented 2 years ago

I have the same problem. Just happen in this new update.

In english ACT setting, log: Info: Version: intl Info: LoadAddons: CactbotOverlay.dll: Initialized Cactbot.PluginLoader Info: Found enmity memory for 6.1.

In chinese ACT setting, log: Info: Version: cn Error: Charmap signature found 0 matches Error: In combat signature found 0 matches Info: LoadAddons: CactbotOverlay.dll: Initialized Cactbot.PluginLoader Error: Failed to find enmity memory for 5.5: charmapAddress,inCombatAddress.

quisquous commented 2 years ago

@LTY0503 it seems like both cactbot and OverlayPlugin need 6.x updates for the Chinese version. I wonder if cactbot was previously working because before the intl version moved to 6.1, it was the same memory offsets.

LTY0503 commented 2 years ago

@quisquous Yes, it works before this week update.

quisquous commented 2 years ago

Has the Chinese version switched to 6.1 as well?

LTY0503 commented 2 years ago

What your mean? I forgot is it works on tuesday update. But it works in 6.0 update, in chinese game language and ACT&cactbot CN language.

quisquous commented 2 years ago

But it works in 6.0 update, in chinese game language and ACT&cactbot CN language.

Sorry, I don't understand. It sounded like you said earlier that it didn't work.

Can you tell me what combination of game version, ACT parsing language, cactbot parsing language is working or not working? I would expect:

Are you doing some other combination?

LTY0503 commented 2 years ago

6.0 International FFXIV (Japanese translate to Chinese ) + ACT parsing in Chinese + cactbot parsing in Chinese: Work 6.1 International FFXIV (Japanese translate to Chinese ) + ACT parsing in Chinese + cactbot parsing in Chinese: Not work 6.1 International FFXIV (English) + ACT parsing in English + cactbot parsing in English/Chinese: Work 6.1 International FFXIV (Japanese) + ACT parsing in Japanese + cactbot parsing in Japanese/English/Chinese: Work

6.1 International FFXIV (Japanese) + ACT parsing in English, ACT log:

6.1 International FFXIV (Japanese) + ACT parsing in English, ACT log:

6.1 International FFXIV (Japanese) + ACT parsing in Chinese, ACT log:

LTY0503 commented 2 years ago

I think the problem maybe the different memory offsets in ACT parsing in English and Chinese. Right? Because I am using the International client, same with the author of this issue.

quisquous commented 2 years ago

6.1 International FFXIV (Japanese translate to Chinese ) + ACT parsing in Chinese + cactbot parsing in Chinese: Not work

What is doing the "Japanese translate to Chinese"? This is not something that is currently supported unfortunately, even if it happened to work for a brief period of time. Currently, cactbot assumes that if you set the ACT plugin version to Chinese then it assumes that you are playing the Chinese version. It uses the 6.0 memory offsets and assumes you are using an ffxiv plugin version that came out with 6.0.

Similarly, OverlayPlugin does the same thing.

LTY0503 commented 2 years ago

The translation tool edited these 3 files and replaced the texts from Japanese to other language like Traditional Chinese. "0a0000.win32.dat0", "0a0000.win32.index", "0a0000.win32.index2" I've been doing this at least a year. It works from 5.X to 6.08. (International client & ACT parsing in Chinese)

quisquous commented 2 years ago

I don't know how this could have worked a few months ago when the intl version was 6.x and the Chinese version was still 5.x.

I think to fix this, cactbot would need the following set of changes:

(also cc @ngld as this seems like an issue that OverlayPlugin users might have as well re: enmity memory)

quisquous commented 2 years ago

On top of that, it seems a little bit messy to handle the case where the unofficial translation tool and the official translations disagree and then need updating. Are there multiple translation tools that do this, or is there only one that everybody uses?

LTY0503 commented 2 years ago

I dont know is there any other translation tools. But I think these translation tools are doing the same thing, modify these 3 files to replace the texts.

LTY0503 commented 2 years ago

I change the enmity memory to 61 and rebuild it. But it happens a error (Error: Charmap signature found 0 matches). I dont know how to find the new address of these. It looks hard.

I just do stupid thing to solve it temporarily. Change all triggers from "ja" to "cn" and "cn" to "ja", then change ACT parsing in Japanese.

quisquous commented 2 years ago

One thing that might be possible is to set the ACT parsing plugin to use Japanese (which should force it to use the intl memory offsets), then set cactbot to use Chinese as the parsing and display language in the cactbot options. That might work?

Even if it does work, it will break in the future when the ffxiv parsing plugin updates and adds fields that do not exist previously, but it might work for now.

LTY0503 commented 2 years ago

Yes, this is not a good way. I see EN, JA text in timeline, and sometime alert is not work. Also some error message in log.

quisquous commented 2 years ago

I'm sorry that this isn't working. I've changed the title to reflect the feature that would need to be added. If somebody is interested in adding this, I'm happy to help with pointers and advice. I think https://github.com/quisquous/cactbot/issues/4287#issuecomment-1100947121 is still the best plan to fix this up. I don't think I will have time personally to fix this myself, and so this is likely to sit untouched unless somebody wants to make it happen themselves.

LTY0503 commented 2 years ago
if (repository.GetLanguage() == FFXIV_ACT_Plugin.Common.Language.Chinese)
{
   // memoryCandidates = new List<EnmityMemory>() { new EnmityMemory55(container) };
    memoryCandidates = new List<EnmityMemory>() { new EnmityMemory61(container) };
}

I tried to change it to 61, but showing these error. Is there any file should be edited? Or any temp data should be cleared?

quisquous commented 2 years ago

You need EnmityMemory60.

chun1324 commented 2 years ago

There are two types of Chiense players in International version, they modded the game and replace word from Japanese into Simplified Chinese or Traditional Chinese. Simplified Chinese is the official supported language. Usually cactbot would work by just switching parse option into Chinese. Shared characters can be found between two languages, it makes cactbot would worked sometimes for those Traditional Chinese users. Usually, it is possible to make my own build for this use case by just converting all characters. But since 6.1, cactbot became totally silent. I believe it is related to OverlayPlugin rather than cactbot itself.

Echoring commented 2 years ago

By the way, If anyone still want to use cactbot with "translated" client for now, think about using an "incomplete translated" client, such as: https://bbs.nga.cn/read.php?tid=30071737 This translate mod can work with cactbot for sure.

pyeonch commented 2 years ago

We have same thing that script ja->ko force translate tool and face same problem. They ask us about that problem but we answered USE PURE client. Force translate sometimes appear uncatchable weird log(Literally translate etc..), and I don't think it's necessary to consider that.

More information, ours is two property, one is translate with papago(useful tool for translating Korean), other is force update with korean official client script. Both is falsify thing tho, specially second one is perfectly have contrary to copyright law risk, they know it, they use it.

pyeonch commented 2 years ago

What I want to say is: is this work help to tool for falsify that at risk of violating the terms and conditions?

Jaehyuk-Lee commented 2 years ago

I also don't agree with supporting modded clients. If you have regional client's official translation overwritten on international client, there's always some translation undone, which cause cactbot hard to serve one consistent language at the same time. There can be multiple language mixed logs. If you try to follow the differences, covering all the differences between different client versions takes too much work continuously, so there's too much workload on project. If you have 3rd party translation on international client, skill names, dungeons, everything can be different from the official translation, which makes hard to make cactbot work with it.

How about just supporting language modded version with part of inoperative? I don't think it's good to support partially if it's never gonna support 100%, I mean, cactbot project does not have willingness to support it. If the problem above can be solved, and cactbot is going to support them well, then supporting modded client can be considered, but I think it can not be solved.

Echoring commented 2 years ago

I think so. It's the mod maker's responsibility to enhance their translate mod to be support by plugins, not our developers.

MaikoTan commented 2 years ago

Strongly agreed to Lee. Also consider a translate tool that running out of game client, like TataruHelper. For Chinese users, there is also an enhanced patch for TataruHelper can be found on Bahamut BBS or NGA.

LTY0503 commented 2 years ago

I understand what you mean. I also often use TataruHelper. But sometime real time translate tool takes inaccurate translation. I don't know how to describe it. Just hard to read it.

There is other way from a translation mod maker. He reserved some place names, skill names, dungeons names in Japanese words. So cactbot can be 100% running.

I'm just wondering if there is a better way to support full translation. Or getting some ideas for mod makers. Like making a adapter text file reading client words and other mod maker or cactbot can read this file to run.

By the way English isn't my first language. I apologize for some sentence that look like rude. Please feel free to discuss this issue.

LTY0503 commented 2 years ago

Thanks for everyone's help. Now it works with checking game region.

MillerTheBest commented 2 years ago

I've been using the English client since the recent update. I've act and cactbot up to date (28/04/2022). Both timeline and alerts are working.

I have been doing the sad bird lady, and everything was working fine. I found that a lot more alerts were given than when I used cactbot a while back with the translated client. Unless you have improved cactbot's alerts recently (unlikely), I believe the alerts may only partially work with the translated client when I started this post.

LTY0503 commented 2 years ago

I've been using the English client since the recent update. I've act and cactbot up to date (28/04/2022). Both timeline and alerts are working.

I have been doing the sad bird lady, and everything was working fine. I found that a lot more alerts were given than when I used cactbot a while back with the translated client. Unless you have improved cactbot's alerts recently (unlikely), I believe the alerts may only partially work with the translated client when I started this post.

Because there is no 6.1 raids in CN client. So it causes missing some chinese triggers.

quisquous commented 2 years ago

It seems like there aren't other fixes to be done on the cactbot side of things. Can I close this issue?