RMMV

캐릭터 이름을 자동으로 표시해주는 플러그인의 오류 질문

by 고서연 posted Feb 13, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form
종류 에러 해결

 

https://avangs.info/plugin_mv/1819277 

이런 편리한 플러그인이 있어서 저기에 써진대로 적용하고 써봤습니다.(이렇게 생긴 플러그인입니다)

스크린샷_20230213_104223.png

그런데...

대사를 한줄만 썼을때는 문제가 없었는데 대사를 한 텍스트에 두줄을 쓰는 순간...

 

 

<헤럴드>

밥줘

배고파>>>이렇게 나오는걸 원하는데

 

 

<헤럴드>

밥줘

<헤럴드>

배고파>>>>이렇게 출력됩니다 

 

 

 

 

도와주시면 감사하겠습니다!

 

(혹시몰라서 플러그인 파일?? 전체 내용입니다)

 

//=============================================================================
// 자동 텍스트 삽입
// MJ_AutoTextPush.js
//=============================================================================

var Imported = Imported || {};
Imported.MJ_AutoTextPush = true;

var MJ = MJ || {};
MJ.AutoTextPush = MJ.AutoTextPush || {};
MJ.AutoTextPush.version = 1.0;

//=============================================================================
/*:
 * @plugindesc 얼굴 이미지를 기반으로 텍스트를 자동으로 삽입 할 수 있습니다.
 * @author 소금장
 * 
 * @param == 자동 삽입 1 ==
 * @default
 * 
 * @param 텍스트 1
 * @parent == 자동 삽입 1 ==
 * @desc 자동 삽입 1번 구간에서 사용되는 텍스트를 입력해주세요.    (예시 : <헤럴드>)
 * @default <헤럴드>
 * 
 * @param 얼굴 이미지 1
 * @parent == 자동 삽입 1 ==
 * @desc 얼굴 이미지 파일명을 입력해주세요. (예시 : Actor1)
 * @default Actor1
 * 
 * @param 인덱스 번호 1
 * @parent == 자동 삽입 1 ==
 * @desc 얼굴 이미지 1번의 인덱스 번호를 입력해주세요.               (예시 : 0, 1, 2, 3)
 * @default 0, 1, 2, 3
 *
 * @param 줄바꿈 1
 * @parent == 자동 삽입 1 ==
 * @type boolean
 * @on YES
 * @off NO
 * @desc 텍스트 삽입 후 줄바꿈을 설정합니다.
 * NO - false     YES - true
 * @default false
 *

(이 뒤로는 숫자만 바뀌고 계속 반복입니다. 숫자 자동삽입 100까지 쭉 나열되다가 마지막에 이렇게 생긴게 있습니다.)

 * @help
 *
 * 자동 텍스트 삽입
 * Version 1.0
 * 소금장
 *
 * 해당 플러그인은
 * 얼굴 이미지의 인덱스 번호를 기반으로
 * 입력한 텍스트를 자동으로 삽입해주는 플러그인 입니다.
 * 
 * 텍스트 = 삽입할 글자 문구를 입력해주세요.
 * 얼굴 이미지 = 얼굴 이미지 파일 이름명을 적어주세요.
 * 인덱스 번호 = 얼굴 이미지에서 자동으로 삽입 될 캐릭터의 얼굴을 골라주세요.
 * 좌측 상단부터 0번 입니다. (0, 1, 2, 3)
 *                            (4, 5, 6, 7) 
 * 줄바꿈 = 삽입된 텍스트 이후 줄바꿈을 할지 안할지의 여부입니다.
 */

(function(AT) {

    "use strict";
    
    AT.text = [];
    AT.newline = [];
    AT.faceimg = [];
    AT.index = [];
    
    for(var i = 1; i <= 100; i++) {
        AT.text[i] = String(PluginManager.parameters('MJ_AutoTextPush')['텍스트 ' + i]);
        AT.newline[i] = String(PluginManager.parameters('MJ_AutoTextPush')['줄바꿈 ' + i]);
        AT.newline[i] = eval(AT.newline[i]);
        AT.faceimg[i] = String(PluginManager.parameters('MJ_AutoTextPush')['얼굴 이미지 ' + i]);
        AT.index[i] = String(PluginManager.parameters('MJ_AutoTextPush')['인덱스 번호 ' + i]).split(/\s*,\s*/);
        for(var j = 0; j < AT.index[i].length; j++) {
            AT.index[i][j] = parseInt(AT.index[i][j]);
        }
    }

    var _Game_Message_add = Game_Message.prototype.add;
    Game_Message.prototype.add = function(text) {
            for(var i = 0; i <= 100; i++) {
                if(AT.faceimg[i] === this.faceName() && AT.index[i].indexOf(this.faceIndex()) > -1) {
                    if(AT.newline[i] === true) {
                        text = AT.text[i] +"\n"+ text;
                        break;
                    } else {
                        text = AT.text[i] + text;
                        break;
                    }
                }
            }
        _Game_Message_add.call(this, text);
    };


})(MJ.AutoTextPush);

 

 

 

 

 

 

 

■ 질문전 필독!
  • 질문할 내용이 이 게시판이나 강좌에 이미 있는지 확인합니다.
  • 하나의 게시물에는 하나의 질문만 합니다.
  • 제목은 질문의 핵심 내용으로 작성합니다.
  • 질문 내용은 답변자가 쉽게 이해할 수 있도록 최대한 상세하게 작성합니다.
  • 스크립트의 전문이 필요할 경우 txt 파일 등으로 첨부해 주시기 바랍니다.
  • 답변받은 게시물은 삭제하지 않습니다.
  • 답변이 완료된 경우 해당 답변해주신 분들께 감사의 댓글을 달아줍니다.
    • 처음 오신 분들은 공지 게시물을 반드시 읽어주세요!

※ 미준수시 사전경고 없이 게시물을 삭제합니다.