RPGM None [Translation Request] Xianxinglu of the Scarlet Moon, 绯月仙行录 V0.4164 [蓝月虫1988]

Feb 28, 2022
308
66
View attachment 4190033
Finally managed to get Mtool working with the latest version 0.61. Also decrypted and extracted the cgs in the output folder.

Download link:

I did run into issues where the game freezes during specific dialog. If that happens, go through the dialog without Mtool then use it afterwards. Make sure to save often.



Thanks for your help! The last step is to delete the part in the plugin where it decrypts the already decrypted jsons in game.

The password was included in the obfuscated javascript plugin core_2.js.
I'm not sure if this is the bug of the original one or decrypted one but the level system does not work no matter how many enemies I had killed.
 

inari_miketsu

Formerly 'dragon6426'
Sep 23, 2019
1
0
Try replacing the convertEscapeCharacters function in 绯月仙行录\js\plugins\自动换行.js with this one. So far, I haven't encountered any crashes.

JavaScript:
Window_Message.prototype.convertEscapeCharacters = function (text) {
    text = text.replace(/\\/g, "\x1b");
    text = text.replace(/\x1b\x1b/g, "\\");
    text = text.replace(/\x1bV\[(\d+)\]/gi, (_, p1) =>
        $gameVariables.value(parseInt(p1))
    );
    text = text.replace(/\x1bV\[(\d+)\]/gi, (_, p1) =>
        $gameVariables.value(parseInt(p1))
    );
    text = text.replace(/\x1bN\[(\d+)\]/gi, (_, p1) =>
        this.actorName(parseInt(p1))
    );
    text = text.replace(/\x1bP\[(\d+)\]/gi, (_, p1) =>
        this.partyMemberName(parseInt(p1))
    );
    text = text.replace(/\x1bG/gi, TextManager.currencyUnit);
    text = text.replace(/\x1bCT\[(\d+)\]/gi, "" /* function () {
        $gameMessage.setAlign(Number(arguments[1] || 0));
        return "";
    }.bind(this) */);
    var newText = [];
   
    /* eslint no-control-regex: 0 */
    const linebreakRegex = /[\r\n]/g;
    let match;
    const newLineIndices = [];
    while ((match = linebreakRegex.exec(text))) {
        newLineIndices.push(match.index);
    }
    const textMakeUpRegex = /\x1b[a-zA-Z]\[\d+\]/g;
    const textMakeUpPositions = [];
    while ((match = textMakeUpRegex.exec(text))) {
        textMakeUpPositions.push({start: match.index, end: textMakeUpRegex.lastIndex});
    }
    var textWidth = 0;
    for (let i = 0; i < text.length; i++) {
        var value = this.textWidth(text[i]);
        if (newText[i] === undefined) {
            newText.push(text[i]);
        } else {
            newText[i] = text[i];
        }
       
        // Check if i is within any of the ranges defined in textMakeUpPositions
        const isInRange = textMakeUpPositions.some(position => i >= position.start && i < position.end);
        if (!isInRange) {
            textWidth += value;
        }
       
        if (newLineIndices.includes(i)) {
            textWidth = 0;
        }
        if (textWidth >= (this.width - 60)) {
            var i_backup = i;
            while (i > 0 && newText[i] !== '\n' && newText[i] !== ' ') {
                i--;
            }
            if (i === 0 | newText[i] === '\n') {
                i = i_backup + 1;
                text = text.slice(0, i) + '\n' + text.slice(i);
                newText.push('\n');
            } else {
                newText[i] = '\n';
            }
            textWidth = 0;
        };
    };
    text = newText.join('');
    return text;
};
 
Last edited:

zuizui321

New Member
Feb 9, 2018
14
8
LordoftheFries, I successfully decrypted the file "data," but I still can't enter the game.

How did you know the password was "pojiecaonima"? :)
Sorry to bother you. I'm trying to use the decrypt .js file that you included but I'm basically blind with coding? Do you have a step by step guide on how to use it?
 

Balloonnn

New Member
Apr 28, 2024
1
1
View attachment 4190033
Finally managed to get Mtool working with the latest version 0.61. Also decrypted and extracted the cgs in the output folder.

Download link:

I did run into issues where the game freezes during specific dialog. If that happens, go through the dialog without Mtool then use it afterwards. Make sure to save often.



Thanks for your help! The last step is to delete the part in the plugin where it decrypts the already decrypted jsons in game.

The password was included in the obfuscated javascript plugin core_2.js.

How can you have it in English, i downloaded your on pixeldrain but it only chinese
 
  • Like
Reactions: nakirigang