cactbot
cactbot copied to clipboard
raidemulator: issues with Korean logs
Using the log from @Bing-su on https://github.com/quisquous/cactbot/pull/3964#issuecomment-1004563352, I loaded it in the raidemulator with the change I just landed on #3964.
If I look at the Hero's Gauntlet zone (노르브란트), the initial view of the timeline is at the end of the fight (?) instead of the beginning and it does not show the timeline to start. If I click in earlier in time, I will see the timeline on the left for where in the fight it is.
If I look at the first fight in the Tower at Paradigm's Breach, the timeline doesn't appear at all. Maybe there's something I missed in #3964, or there's some other bug. However, looking at the output of the translation it seems like this sync should work just fine.
npm run util -- translateTimeline -t the_tower_at_paradigms_breach -l ko
1000.0 "--동기화--" sync / 00:0839:15초 후에 봉쇄 구획 A(?:이|가) 봉쇄됩니다/ window 10000,0
From log:
00|2022-01-01T19:12:22.0000000+09:00|0839||15초 후에 봉쇄 구획 A가 봉쇄됩니다.|e010097b65ff55f96167f394006873ee
I believe that the first issue isn't KR-specific, it's something that happens randomly when switching from one encounter to another where the jump to the beginning of the pull isn't actually called. I haven't been able to nail down exactly why that happens, but I've seen it happen on EN and CN logs as well.
For the second issue, the regex that's generated is expecting a single colon but the conversion code in emulator is generating the double colon from 6.x. Not sure exactly how to handle this.
startRegex = raidEmulator.timelineController.activeTimeline.syncStarts.find(s=>s.end===1000).regex;
line = raidEmulator.emulator.currentEncounter.encounter.logLines.find(l=>l.networkLine.indexOf('15초 후에')>0);
console.log([startRegex,line.convertedLine,startRegex.exec(line.convertedLine)]);
...
0: / 00:0839:15초 후에 봉쇄 구획 A(?:이|가) 봉쇄됩니다/i
1: "[19:12:22.000] ChatLog 00:0839::15초 후에 봉쇄 구획 A가 봉쇄됩니다."
2: null
For the second issue, the regex that's generated is expecting a single colon but the conversion code in emulator is generating the double colon from 6.x. Not sure exactly how to handle this.
I added some extra replacements in #3964 that maybe aren't applied in raidemulator, somehow?
I maybe mis-explained? When raidemulator initially parses a network line, it generates the equivalent non-network-line version, aka convertedLine
. This generation was updated to match 6.x, so it's always generating the 6.x version of the line regardless. The PR you linked only changes the parsed timeline syncs.
So you end up with KR 6.x chat lines attempting to be matched to KR 5.x timeline syncs.
The equivalent would be to replicate the same for-of loop somewhere in emulator as well to adjust lines there to match the older convention.
Extremely belatedly, thanks for the explanation. I think for now this is no longer an issue given that KR is no longer on 5.x. I think if this happens again maybe we can prioritize switching timelines to network log lines.