RMMV

이 플러그인 오류 고치는 방법

by 잠행인 posted Oct 09, 2017
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄
Extra Form

이벤트 페이지 중에 어떤 조건(예를들어 스위치가 on이라거나 변수가 1이라거나)이 없는 조건문 페이지가 1개라도 없으면 오류가 납니다. 즉 모든 페이지가 조건문 페이지인 이벤트가 있으면 오류가 납니다.


 var Imported = Imported || {};

Imported.TMTurnMove = true;


var TMPlugin = TMPlugin || {};


if (!TMPlugin.EventBase) {

  TMPlugin.EventBase = true;

  (function() {


    var _Game_Event_setupPage = Game_Event.prototype.setupPage;

    Game_Event.prototype.setupPage = function() {

      _Game_Event_setupPage.call(this);

      if (this._pageIndex >= 0) this.loadCommentParams();

    };


    Game_Event.prototype.loadCommentParams = function() {

      this._commentParams = {};

      var re = /<([^<>:]+)(:?)([^>]*)>/g;

      var list = this.list();

      for (var i = 0; i < list.length; i++) {

        var command = list[i];

        if (command && command.code == 108 || command.code == 408) {

          for (;;) {

            var match = re.exec(command.parameters[0]);

            if (match) {

              this._commentParams[match[1]] = match[2] === ':' ? match[3] : true;

            } else {

              break;

            }

          }

        } else {

          break;

        }

      }

    };


    Game_Event.prototype.loadTagParam = function(paramName) {

      return this._commentParams[paramName] || this.event().meta[paramName];

    };


  })();

} // TMPlugin.EventBase


(function() {


  //-----------------------------------------------------------------------------

  // Game_Map

  //


  Game_Map.prototype.updateTurnMove = function() {

    var events = this.events();

    for (var i = 0; i < events.length; i++) {

      events[i].updateTurnMove();

    }

  };


  //-----------------------------------------------------------------------------

  // Game_Player

  //


  Game_Player.prototype.disableTurnMove = function() {

    this._turnMoveEnabled = false;

  };


  Game_Player.prototype.enableTurnMove = function() {

    this._turnMoveEnabled = true;

  };


  var _Game_Player_increaseSteps = Game_Player.prototype.increaseSteps;

  Game_Player.prototype.increaseSteps = function() {

    _Game_Player_increaseSteps.call(this);

    if (this._turnMoveEnabled == null) this._turnMoveEnabled = true;

    if (this._turnMoveEnabled) $gameMap.updateTurnMove();

  };


  //-----------------------------------------------------------------------------

  // Game_Event

  //


  var _Game_Event_setupPage = Game_Event.prototype.setupPage;

  Game_Event.prototype.setupPage = function() {

    _Game_Event_setupPage.call(this);

    this._alwaysTurnMove = this.loadTagParam('alwaysTurnMove') ||

                           this.loadTagParam('常にターン移動');

    this._turnMove = this._alwaysTurnMove || this.loadTagParam('turnMove') ||

                     this.loadTagParam('ターン移動');

    this._turnMoveCount = 0;

  };


  var _Game_Event_isNearTheScreen = Game_Event.prototype.isNearTheScreen;

  Game_Event.prototype.isNearTheScreen = function() {

    if (this._alwaysTurnMove) return true;

    return Game_Character.prototype.isNearTheScreen.call(this);

  };


  var _Game_Event_checkStop = Game_Event.prototype.checkStop;

  Game_Event.prototype.checkStop = function(threshold) {

    if (this._turnMove) {

      if (this._turnMoveCount == null) this._turnMoveCount = 0;

      if (this._turnMoveFlag) {

        this._turnMoveCount += 60;

        this._turnMoveFlag = false;

      }

      if (this._turnMoveCount < threshold) return false;

      this._turnMoveCount -= threshold;

      return true;

    } else {

      return _Game_Event_checkStop.call(this, threshold);

    }

  };


  Game_Event.prototype.updateTurnMove = function() {

    this._turnMoveFlag = true;

  };


  //-----------------------------------------------------------------------------

  // Game_Interpreter

  //


  var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;

  Game_Interpreter.prototype.pluginCommand = function(command, args) {

    _Game_Interpreter_pluginCommand.call(this, command, args);

    if (command === 'stopTurnMove') {

      $gamePlayer.disableTurnMove();

    } else if (command === 'startTurnMove') {

      $gamePlayer.enableTurnMove();

    } else if (command === 'skipTurnMove') {

      $gameMap.updateTurnMove();

    }

  };

  

})();

 

 

 

 

 

 

 

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

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