RPG Maker Forums

Hey. I've been struggling to figure out how to apply fadeout effect once a player travels (transfers) to a location.
Thing is I use autorun event on every map loading pictures etc, without fadeout pictures just pops up. I use wait 33 and fadein to make it smoother, but I can't apply fadeout myself through common event because if a player presses esc, he's returned to older map with fadeout activated resulting in black screen. Maybe there's a way to apply a simple script or something so if player press to transfer, fade out effects is applied automatically?

Here's plugin
https://atelierrgss.wordpress.com/rmv-fast-travel/

And here's the script itself.
Code:
//=============================================================================
// MOG_FastTravel.js
//=============================================================================
/*:
 * @plugindesc (v1.1) Sistema de mapa de teleporte rápido.
 * @author Moghunter
 *
 * @param Remember Last MapID
 * @desc Lembrar da último mapa teleportado.
 * @default true
 *
 * @param Play Bgm
 * @desc Ativar música.
 * @default false
 *
 * @param Bgm File Name
 * @desc Definição do nome da música.
 * @default Theme2
 *
 * @param Fade Bgm
 * @desc Ativar fade na música durante a transição.
 * @default true
 *
 * @param Map Move Speed
 * @desc Definição da velocidade de movimento do mapa.
 * @default 0
 *
 * @param Center X-axis
 * @desc Definição do centro do tela (Para ajustes).
 * @default 643
 *
 * @param Center Y-axis
 * @desc Definição do centro do tela (Para ajustes).
 * @default 362
 *
 * @param Fade Speed
 * @desc Definição da velocidade da transição.
 * @default 0
 *
 * @param Zoom Animation
 * @desc Ativar o efeito de zoom.
 * @default true
 *
 * @param Rotation Animation
 * @desc Ativar o efeito de rotação.
 * @default true
 *
 * @param New Map Color
 * @desc Definição da cor dos mapas novos.
 * @default 6
 *
 * @param Turn Back After Cancel
 * @desc Virar para traz após cancelar a cena.
 * @default true
 *
 * @param List Width
 * @desc Definição da largura da janela da lista.
 * @default 300
 *
 * @param List Height
 * @desc Definição da altura da janela da lista.
 * @default 290
 *
 * @param List X-axis
 * @desc Definição X-axis da janela da lista.
 * @default 516
 *
 * @param List Y-axis
 * @desc Definição Y-axis da janela da lista.
 * @default 145
 *
 * @param Slide List
 * @desc Ativar o efeito de animação de deslize.
 * @default true
 *
 * @param List Layout X-axis
 * @desc Definição X-axis do layout da janela da lista.
 * @default 0
 *
 * @param List Layout Y-axis
 * @desc Definição Y-axis do layout da lista.
 * @default -53
 *
 * @param Description X-axis
 * @desc Definição X-axis da descrição.
 * @default 160
 *
 * @param Description Y-axis
 * @desc Definição Y-axis da descrição.
 * @default 300
 *
 * @param Slide Description
 * @desc Ativar o efeito de animação de deslize.
 * @default true
 *
 * @param Com Town X-axis
 * @desc Definição X-axis do comando Town.
 * @default 470
 *
 * @param Com Town Y-axis
 * @desc Definição Y-axis do comando Town.
 * @default 7
 *
 * @param Com Dungeon X-axis
 * @desc Definição X-axis do comando Dungeon.
 * @default 575
 *
 * @param Com Dungeon Y-axis
 * @desc Definição Y-axis do comando Dungeon.
 * @default 7
 *
 * @param Com Other X-axis
 * @desc Definição X-axis do comando Other.
 * @default 710
 *
 * @param Com Other Y-axis
 * @desc Definição Y-axis do comando Other.
 * @default 7
 *
 * @param Com Cursor X-axis
 * @desc Definição X-axis do cursor Command.
 * @default 0
 *
 * @param Com Cursor Y-axis
 * @desc Definição Y-axis do cursor Command.
 * @default 0
 *
 * @param Com Cursor Animation
 * @desc Ativar animação no cursor.
 * @default true
 *
 * @param Next Cursor X-axis
 * @desc Definição X-axis do cursor Next.
 * @default 0
 *
 * @param Next Cursor Y-axis
 * @desc Definição Y-axis do cursor Next.
 * @default 0
 *
 * @param Next Cursor Animation
 * @desc Ativar animação no cursor.
 * @default true
 *
 * @param Show Completion
 * @desc Apresentar a porcentagem de mapas descobertos.
 * @default true
 *
 * @param Completion X-axis
 * @desc Definição X-axis do Completion.
 * @default 590
 *
 * @param Completion Y-axis
 * @desc Definição Y-axis do Completion.
 * @default 513
 *
 * @param Completion Font Size
 * @desc Definição do tamanho da fonte.
 * @default 22
 *
 * @help
 * =============================================================================
 * +++ MOG - Fast Travel (v1.1) +++
 * By Moghunter
 * https://atelierrgss.wordpress.com/
 * =============================================================================
 * Sistema de mapa de teleporte rápido.
 *
 * =============================================================================
 * UTILIZAÇÃO
 * =============================================================================
 * Grave as imagens do sistema na pasta.
 *
 * /img/fasttravel/
 *
 * As imagens das descrições dos mapas deverão ser gravadas na pasta
 *
 * /img/fasttravel/stages/
 *
 * Os nomes dos arquivos deverão ter o mesmo nome do mapa definido através do
 * plugin.
 *
 * =============================================================================
 * PLUGIN COMMAND
 * =============================================================================
 * Para ativar a cena do Fast Travel use o comando abaixo.
 *
 * fast_travel
 *
 * Para ativar ou desativar um mapa utilize um dos códigos abaixo.
 *
 * enable_town : ID
 * disable_town : ID
 *
 * enable_dungeon : ID
 * disbale_dungeon : ID
 *
 * enable_other : ID
 * disable_other : ID
 *
 * =============================================================================
 * HISTÓRICO
 * =============================================================================
 * (v1.1) - Correção de não ativar o sistema quando o plugin é usado stand-alone.
 *
 */
 // ☢CAUTION!!☢ Don't Touch.^_^ ----------------------------------------
  var Imported = Imported || {};
  Imported.MOG_FastTravel = true;
  var Moghunter = Moghunter || {};
    Moghunter.fastTravel_Towns = [];
    Moghunter.fastTravelDungeons = [];
    Moghunter.fastTravelOther = [];
 // ☢CAUTION!!☢ Don't Touch.^_^ ----------------------------------------

 
 
 
//*****************************************************************************
// ** SETUP *******************************************************************
//*****************************************************************************
// Para configurar um mapa siga o seguinte exemplo.
//
// Moghunter.fastTravel_Towns[A] = {B,C,D,E,F,G,H};
//
// A - Point ID
// B - Map Name
// C - X-axis of the map point.
// D - Y-axis of the map point.
// E - ID of the map to be telepotado.
// F - X-axis of the map to be teleported.
// G - Y-axis of the map to be teleported.
// H - Direction. (2 - Down / 4 - Left / 6 - Right / 8 - Up)
//
//*****************************************************************************


 
//=============================================================================
// ** Inn
//=============================================================================
    Moghunter.fastTravel_Towns[1] = {name:"Marksburg",x:643,y:362,mapID:11,mapX:12,mapY:18,direction:8};
    Moghunter.fastTravel_Towns[2] = {name:"Hamil",x:643,y:362,mapID:14,mapX:11,mapY:2,direction:2};
    Moghunter.fastTravel_Towns[3] = {name:"Nia Khera",x:643,y:362,mapID:15,mapX:2,mapY:1,direction:2};
    Moghunter.fastTravel_Towns[4] = {name:"Duval",x:643,y:362,mapID:16,mapX:23,mapY:5,direction:4};
 
//=============================================================================
// ** Town
//=============================================================================
    Moghunter.fastTravelDungeons[1] = {name:"General Store",x:643,y:362,mapID:6,mapX:23,mapY:16,direction:4};
    Moghunter.fastTravelDungeons[2] = {name:"Gandara",x:643,y:362,mapID:6,mapX:23,mapY:4,direction:4};
    Moghunter.fastTravelDungeons[3] = {name:"Kakhar Ice Caverns",x:643,y:362,mapID:9,mapX:3,mapY:18,direction:8};
    Moghunter.fastTravelDungeons[4] = {name:"Lobari Hollows",x:643,y:362,mapID:10,mapX:7,mapY:7,direction:2};
    Moghunter.fastTravelDungeons[5] = {name:"Jaia",x:643,y:362,mapID:11,mapX:3,mapY:1,direction:2};
    Moghunter.fastTravelDungeons[6] = {name:"Fezebel Marsh",x:643,y:362,mapID:12,mapX:1,mapY:7,direction:6};
 
//=============================================================================
// ** Other
//=============================================================================
    Moghunter.fastTravelOther[1] = {name:"Alice's Magic Shop",x:643,y:362,mapID:17,mapX:8,mapY:11,direction:8};
    Moghunter.fastTravelOther[2] = {name:"Gengi's Blacksmith Shop",x:643,y:362,mapID:18,mapX:15,mapY:7,direction:4};
    Moghunter.fastTravelOther[3] = {name:"Battle Arena",x:643,y:362,mapID:19,mapX:7,mapY:11,direction:8};
 

//*****************************************************************************
// ** SETUP *******************************************************************
//*****************************************************************************







//=============================================================================
// ** PLUGIN PARAMETERS
//=============================================================================

   Moghunter.parameters = PluginManager.parameters('MOG_FastTravel');
    Moghunter.fastTravel_lastIndex = String(Moghunter.parameters['Remember Last MapID'] || "true");
    Moghunter.fastTravel_playBgm = String(Moghunter.parameters['Play Bgm'] || "false");
    Moghunter.fastTravel_BgmFileName =  String(Moghunter.parameters['Bgm File Name'] || "Theme2");
    Moghunter.fastTravel_fadeBgm = String(Moghunter.parameters['Fade Bgm'] || "true");
    Moghunter.fastTravel_MapMoveSpeed = Number(Moghunter.parameters['Map Move Speed'] || 30);
    Moghunter.fastTravel_fadeSpeed = Number(Moghunter.parameters['Fade Speed'] || 30);
    Moghunter.fastTravel_zoomAnime = String(Moghunter.parameters['Zoom Animation'] || "true");
    Moghunter.fastTravel_rotationAnime = String(Moghunter.parameters['Rotation Animation'] || "true");
    Moghunter.fastTravel_CenterX = Number(Moghunter.parameters['Center X-axis'] || 1280);
    Moghunter.fastTravel_CenterY = Number(Moghunter.parameters['Center Y-axis'] || 720);
    Moghunter.fastTravel_ListWidth = Number(Moghunter.parameters['List Width'] || 300);
    Moghunter.fastTravel_ListHeight = Number(Moghunter.parameters['List Height'] || 290);
    Moghunter.fastTravel_ListX = Number(Moghunter.parameters['List X-axis'] || 516);
    Moghunter.fastTravel_ListY = Number(Moghunter.parameters['List Y-axis'] || 145);
    Moghunter.fastTravel_ListSlide = String(Moghunter.parameters['Slide List'] || "true");  
    Moghunter.fastTravel_ListLayoutX = Number(Moghunter.parameters['List Layout X-axis'] || 0);
    Moghunter.fastTravel_ListLayoutY = Number(Moghunter.parameters['List Layout Y-axis'] || -53);
    Moghunter.fastTravel_prevSlide = String(Moghunter.parameters['Slide Description'] || "true");  
    Moghunter.fastTravel_Prev_X = Number(Moghunter.parameters['Description X-axis'] || 160);
    Moghunter.fastTravel_Prev_Y = Number(Moghunter.parameters['Description Y-axis'] || 300);
    Moghunter.fastTravel_ComA_X = Number(Moghunter.parameters['Com Town X-axis'] || 470);
    Moghunter.fastTravel_ComA_Y = Number(Moghunter.parameters['Com Town Y-axis'] || 7);
    Moghunter.fastTravel_ComB_X = Number(Moghunter.parameters['Com Dungeon X-axis'] || 575);
    Moghunter.fastTravel_ComB_Y = Number(Moghunter.parameters['Com Dungeon Y-axis'] || 7);
    Moghunter.fastTravel_ComC_X = Number(Moghunter.parameters['Com Other X-axis'] || 710);
    Moghunter.fastTravel_ComC_Y = Number(Moghunter.parameters['Com Other Y-axis'] || 7);
    Moghunter.fastTravel_CursorX = Number(Moghunter.parameters['Com Cursor X-Axis'] || 0);  
    Moghunter.fastTravel_CursorY = Number(Moghunter.parameters['Com Cursor Y-Axis'] || 0);  
    Moghunter.fastTravel_CursorFloat = String(Moghunter.parameters['Com Cursor Animation'] || "true");
    Moghunter.fastTravel_CursorBX = Number(Moghunter.parameters['Next Cursor X-Axis'] || 0);  
    Moghunter.fastTravel_CursorBY = Number(Moghunter.parameters['Next Cursor Y-Axis'] || 0);  
    Moghunter.fastTravel_CursorBFloat = String(Moghunter.parameters['Next Cursor Animation'] || "true");  
    Moghunter.fastTravel_Comp_Show = String(Moghunter.parameters['Show Completion'] || "true");
    Moghunter.fastTravel_Comp_X = Number(Moghunter.parameters['Completion X-Axis'] || 590);  
    Moghunter.fastTravel_Comp_Y = Number(Moghunter.parameters['Completion Y-Axis'] || 513);
    Moghunter.fastTravel_Comp_FontSize = Number(Moghunter.parameters['Completion Font Size'] || 22);
    Moghunter.fastTravelNewColor = Number(Moghunter.parameters['New Map Color'] || 6);
    Moghunter.fastTravel_directionCancel = String(Moghunter.parameters['Turn Back After Cancel'] || "true");  
//=============================================================================
// ** ImageManager
//=============================================================================

//==============================
// * Fast Travel
//==============================
ImageManager.loadfasttravel = function(filename) {
    return this.loadBitmap('img/fasttravel/', filename, 0, true);
};

//==============================
// * Stages
//==============================
ImageManager.loadfasttravelstages = function(filename) {
    return this.loadBitmap('img/fasttravel/stages/', filename, 0, true);
};

//=============================================================================
// ** Game_Interpreter
//=============================================================================

//==============================
// * PluginCommand
//==============================
var _mog_fastravel_pluginCommand = Game_Interpreter.prototype.pluginCommand
Game_Interpreter.prototype.pluginCommand = function(command, args) {
    _mog_fastravel_pluginCommand.call(this,command, args)
    if (command === "fast_travel")  {
        SceneManager.push(SceneFastTravel);
        this.wait(10);
    } else if (command === "enable_town")  {
        if ($gameSystem._fastTravelTowns[Number(args[1])]) {
           $gameSystem._fastTravelTowns[Number(args[1])][0] = true;
        };
    } else if (command === "disable_town")  {
        if ($gameSystem._fastTravelTowns[Number(args[1])]) {
            $gameSystem._fastTravelTowns[Number(args[1])][0] = false;
        };
    } else if (command === "enable_dungeon")  {
        if ($gameSystem._fastTravelDungeons[Number(args[1])]) {
            $gameSystem._fastTravelDungeons[Number(args[1])][0] = true;
        };
    } else if (command === "disable_dungeon")  {
        if ($gameSystem._fastTravelDungeons[Number(args[1])]) {
            $gameSystem._fastTravelDungeons[Number(args[1])][0] = false;
        };
    } else if (command === "enable_other")  {
        if ($gameSystem._fastTravelOther[Number(args[1])]) {
            $gameSystem._fastTravelOther[Number(args[1])][0] = true;
        };
    } else if (command === "disable_other")  {
        if ($gameSystem._fastTravelOther[Number(args[1])]) {
            $gameSystem._fastTravelOther[Number(args[1])][0] = false;
        };
    };
    return true;
};

//=============================================================================
// ** Game_System
//=============================================================================

//==============================
// * Initialize
//==============================
var _mog_fastravel_gsys_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function() {
    _mog_fastravel_gsys_initialize.call(this);
    this._fastTravelTowns = [];
    this._fastTravelDungeons = [];
    this._fastTravelOther = [];
    this._fastTravelData = null;
    this._fastTravelSelection = [-1,""];
    this._fastTravelSelected = false;
    for (var i = 0; i < Moghunter.fastTravel_Towns.length; i++) {
        this._fastTravelTowns[i] = [false,Moghunter.fastTravel_Towns[i],false];
    };
    for (var i = 0; i < Moghunter.fastTravelDungeons.length; i++) {
        this._fastTravelDungeons[i] = [false,Moghunter.fastTravelDungeons[i],false];
    };
    for (var i = 0; i < Moghunter.fastTravelOther.length; i++) {
        this._fastTravelOther[i] = [false,Moghunter.fastTravelOther[i],false];
    };
    this._fastTravelComp = (Moghunter.fastTravel_Towns.length + Moghunter.fastTravelDungeons.length + Moghunter.fastTravelOther.length) - 3;
};

//=============================================================================
// ** Window Travel List
//=============================================================================
function Window_TravelList() {
    this.initialize.apply(this, arguments);
};

Window_TravelList.prototype = Object.create(Window_Selectable.prototype);
Window_TravelList.prototype.constructor = Window_TravelList;

//==============================
// * Initialize
//==============================
Window_TravelList.prototype.initialize = function(x, y, width, height) {
    Window_Selectable.prototype.initialize.call(this, x, y, width, height);
    this._infoID = 0;
    this.activate();
    this.select(0);
    this.opacity = 0;
    this.refresh();
};

//==============================
// * data Is Avaliable
//==============================
Window_TravelList.prototype.dataIsAvailable = function(data) {
    if (!data) {return false};
    if (!data[0] || (data[0] && data[0] === false)) {return false};
    if (!data[1]) {return false};
    return true;
};

//==============================
// * data Is Avaliable
//==============================
Window_TravelList.prototype.setID = function(id) {
    this._infoID  = id;
    this.select(0);
    this.refresh();
};

//==============================
// * Make Data
//==============================
Window_TravelList.prototype.makeData = function() {
    this._data = [];
    if (this._infoID === 0) {
        var dataInfo = $gameSystem._fastTravelTowns;
    } else if (this._infoID === 1) {
        var dataInfo = $gameSystem._fastTravelDungeons;
    } else {
        var dataInfo = $gameSystem._fastTravelOther;
    };
    for (var i = 0; i < dataInfo.length; i++) {
        var data = dataInfo[i + 1];
        if (this.dataIsAvailable(data)) {this._data.push(data)};
    };
};

//==============================
// * MaxCols
//==============================
Window_TravelList.prototype.maxCols = function() {
    return 1;
};

//==============================
// * MaxItems
//==============================
Window_TravelList.prototype.maxItems = function() {
    return this._data ? this._data.length : 1;
};

//==============================
// * IsCurrentItemEnabled
//==============================
Window_TravelList.prototype.item = function(i) {
    return this._data[i + 1];
};

//==============================
// * Refresh
//==============================
Window_TravelList.prototype.refresh = function() {
    this.makeData();
    this.contents.clear();
    this.createContents();
    this.contents.fontItalic = true;
    this.drawAllItems();
};

//==============================
// * DrawItem
//==============================
Window_TravelList.prototype.drawItem = function(i) {
    var rect = this.itemRect(i);
    rect.width -= this.textPadding();
    this.changeTextColor(this.normalColor());
    if (!this._data[i][2]) {this.changeTextColor(this.textColor(Moghunter.fastTravelNewColor))}
    this.drawText(this._data[i][1].name , rect.x, rect.y,rect.width,"center");
};

//==============================
// * Process OK
//==============================
Window_TravelList.prototype.processOk = function() {
     if (this._data.length === 0) {return}
     $gameSystem._fastTravelSelected = true;
     this.deactivate();
     this.visible = false;
     if (String(Moghunter.fastTravel_fadeBgm) === "true") {AudioManager.fadeOutBgm(2);};
     SoundManager.playOk();
     this.enableMapColor();
};

//==============================
// * enable Map Color
//==============================
Window_TravelList.prototype.enableMapColor = function() {
    var dataMap = [];
    if (this._infoID === 0) {
        var dataInfo = $gameSystem._fastTravelTowns;
    } else if (this._infoID === 1) {
        var dataInfo = $gameSystem._fastTravelDungeons;
    } else {
        var dataInfo = $gameSystem._fastTravelOther;
    };
    for (var i = 0; i < dataInfo.length; i++) {
         var data = dataInfo[i];
         if (data && data[1]) {
             if (data[1].name === this._data[this._index][1].name) {
                    if (this._infoID === 0) {
                        $gameSystem._fastTravelTowns[i][2] = true;
                    } else if (this._infoID === 1) {
                        $gameSystem._fastTravelDungeons[i][2] = true;
                    } else {
                        $gameSystem._fastTravelOther[i][2] = true;
                    };              
              };
          };
    };
};

//==============================
// * isOKEnable
//==============================
Window_TravelList.prototype.isOkEnabled = function() {
    return true;
};

//=============================================================================
// ** Scene Fast Travel
//=============================================================================
function SceneFastTravel() {
    this.initialize.apply(this, arguments);
};

SceneFastTravel.prototype = Object.create(Scene_Base.prototype);
SceneFastTravel.prototype.constructor = SceneFastTravel;

//==============================
// * Initialize
//==============================
SceneFastTravel.prototype.initialize = function() {
    Scene_Base.prototype.initialize.call(this);
    this._Dataindex = 0;
    this._DataindexOld = -1;
    this._WidowindexOld = 0;
    this._np = [-1,-1];
    this._name = "";
    this._mapPos = [];
    this._needCenter = true;
    this._mapMoving = false;
    this._currentData = null;
    this._fadeTime =  Math.min(Math.max(Moghunter.fastTravel_fadeSpeed,1),255);
    this._zoomFade = String(Moghunter.fastTravel_zoomAnime) === "true" ? true : false;
    this._rotationFade = String(Moghunter.fastTravel_rotationAnime) === "true" ? true : false;
    $gameSystem._fastTravelData = null;
    $gameSystem._fastTravelSelected = false;
    this._phase = 0;
    this._mapPos[0] = (Graphics.boxWidth / 2) + Moghunter.fastTravel_CenterX;
    this._mapPos[1] = (Graphics.boxHeight / 2) + Moghunter.fastTravel_CenterY;
    this._DataTown = this.makeData(0);
    this._DataDungeon = this.makeData(1);
    this._DataOther = this.makeData(2);
    if (String(Moghunter.fastTravel_playBgm) === "true") {this.playBgm()};
};

//==============================
// * Play Bgm
//==============================
SceneFastTravel.prototype.playBgm = function() {
        BattleManager.saveBgmAndBgs();
        var bgm = {};
        bgm.name = String(Moghunter.fastTravel_BgmFileName);
        bgm.pitch = 100;
        bgm.volume = 70;
        AudioManager.playBgm(bgm,0);
};

//==============================
// * Create
//==============================
SceneFastTravel.prototype.create = function() {
    this._field = new Sprite();
    this.addChild(this._field);
    this.createParallax();
    this._Mapfield = new Sprite();
    this._field.addChild(this._Mapfield);
    this._field.opacity = 0
    this.createMap();
    this.createStage();
    this.createPoints();
    this.createCursorNext();
    this.createLayout();
    this.createListLayout();
    this.createListName();
    this.createCursor();
    this.createWindowList();
    this.createCompleted();
    if (String(Moghunter.fastTravel_lastIndex) === "true") {
        if ($gameSystem._fastTravelSelection[0] >= 0) {this.checkLastSelection()};
    };
};

//==============================
// * check Last Selection
//==============================
SceneFastTravel.prototype.checkLastSelection = function() {
    if ($gameSystem._fastTravelSelection[0] === 0) {
        var dataInfo = this._DataTown;
    } else if($gameSystem._fastTravelSelection[0] === 1) {
        var dataInfo = this._DataDungeon;
    } else {
        var dataInfo = this._DataOther;
    };
    var index = -1;
    for (var i = 0; i < dataInfo.length; i++) {
        var data = dataInfo[i][1];
        if (data.name === $gameSystem._fastTravelSelection[1].name) {index = i};
    };
    if (index >= 0) {
        this._Dataindex = $gameSystem._fastTravelSelection[0];
        this._windowList.setID(this._Dataindex)
        if (index >= this._windowList.maxItems()) {index = 0};
        this._windowList.select(index);
        this.refreshPointData();    
    };
};

//==============================
// * update Fade In
//==============================
SceneFastTravel.prototype.updateFadeIn = function() {
    this._fadeTime--;
    if (this._sprite_mcursor) {this._sprite_mcursor.visible = false};
    if ($gameSystem._fastTravelSelected) {
    if (this._zoomFade && !this._snapShot) {this.createSnapShot()};
        if (this._fadeTime <= 0) {this._field.opacity -= 4};
        if (this._snapShot) {
            this._snapShot.scale.x += 0.005;
            this._snapShot.scale.y = this._snapShot.scale.x;
            if (this._rotationFade) {this._snapShot.rotation += 0.01};
            this._snapShot.opacity = this._field.opacity;
        };
        if (this._field.opacity <= 0) {
            $gameSystem._fastTravelSelected = false;
            this.selectMap();            
        };
    } else {
        this._field.opacity -= 8;
        if (this._field.opacity <= 0) {
            SceneManager.pop();    
        };    
    };
    this._parallax.opacity = this._field.opacity ;
};

//==============================
// * Create Snap Shot
//==============================
SceneFastTravel.prototype.createSnapShot = function() {
     this._stageprev.visible = false;
     this._windowList.deactivate();
     this._windowList.visible = false;  
     this._windowList.update();
     this._snapShot = new Sprite();
     this._snapShot.bitmap = SceneManager.snap();
     this._snapShot.anchor.x = 0.5;
     this._snapShot.anchor.y = 0.5;
     this._snapShot.x = this._snapShot.bitmap.width / 2;
     this._snapShot.y = this._snapShot.bitmap.height / 2;
     this.addChild(this._snapShot);
     this._field.visible = false;
};


//==============================
// * update Fade Out
//==============================
SceneFastTravel.prototype.updateFadeOut = function() {
     this._field.opacity += 8;
     if (this._field.opacity >= 255) {
         this._phase = 1;
         this._windowList.activate();
     }
     this._parallax.opacity = this._field.opacity ;
};

//==============================
// * set Center Start fidless
//==============================
SceneFastTravel.prototype.setCenterStart = function() {
    this._needCenter = false;
    this._Mapfield.x = 1280;
    this._Mapfield.y = 720;
    if (!this._currentData) {
        this._np = [this._map.bitmap.width / 2,this._map.bitmap.height / 2];
    } else {
        this._Mapfield.x =  -this._np[0] + this._mapPos[0];
        this._Mapfield.y =  -this._np[1] + this._mapPos[1];
    };
};

//==============================
// * Make Data
//==============================
SceneFastTravel.prototype.makeData = function(index) {
    var dataMap = [];
    if (index === 0) {
        var dataInfo = $gameSystem._fastTravelTowns;
    } else if (index === 1) {
        var dataInfo = $gameSystem._fastTravelDungeons;
    } else {
        var dataInfo = $gameSystem._fastTravelOther;
    };
    for (var i = 0; i < dataInfo.length; i++) {
        var data = dataInfo[i + 1];
        if (this.dataIsAvailable(data)) {dataMap.push(data)};
    };
    return dataMap;
};

//==============================
// * data Is Avaliable
//==============================
SceneFastTravel.prototype.dataIsAvailable = function(data) {
    if (!data) {return false};
    if (!data[0]) {return false};
    if (!data[1]) {return false};
    return true;
};

//==============================
// * Create Parallax
//==============================
SceneFastTravel.prototype.createParallax = function() {
    this._parallax =  new TilingSprite(ImageManager.loadfasttravel("Parallax"));
    this._parallax.move(0, 0, Graphics.boxWidth, Graphics.boxHeight);
    this._field.addChild(this._parallax);
};

//==============================
// * Create Map
//==============================
SceneFastTravel.prototype.createMap = function() {
    this._map = new Sprite(ImageManager.loadfasttravel("Map"));
    this._Mapfield.addChild(this._map);
};

//==============================
// * Create Layout
//==============================
SceneFastTravel.prototype.createLayout = function() {
    this._layout = new Sprite(ImageManager.loadfasttravel("Layout"));
    this._field.addChild(this._layout);
};

//==============================
// * Create Stage
//==============================
SceneFastTravel.prototype.createStage = function() {
     this._stageprev = new Sprite();
     this._stageprev.bitmap = new Bitmap(32,32);
     this._stageprev.x = Moghunter.fastTravel_Prev_X;
     this._stageprev.y = Moghunter.fastTravel_Prev_Y;
     this._stageprev.opacity = 255;
     this._stageprev.anchor.x = 0.5;
     this._stageprev.anchor.y = 0.5;  
     this._field.addChild(this._stageprev);
};
 
//==============================
// * refresh Stage
//==============================
SceneFastTravel.prototype.refreshStage = function() {
     var name = String(this._currentData.name);
     this._stageprev.bitmap = ImageManager.loadfasttravelstages(name);
     if (String(Moghunter.fastTravel_prevSlide) === "true") {
         this._stageprev.x = Moghunter.fastTravel_Prev_X - 100;
         this._stageprev.opacity = 0;
     };
};

//==============================
// * update Stage
//==============================
SceneFastTravel.prototype.updateStage = function() {
     if (this._mapMoving) {return};
     if (this._stageprev.x < Moghunter.fastTravel_Prev_X) {
         this._stageprev.x += 5;
         this._stageprev.opacity += 15;
         if (this._stageprev.x >= Moghunter.fastTravel_Prev_X) {
             this._stageprev.x = Moghunter.fastTravel_Prev_X;
             this._stageprev.opacity = 255;
         };
     };
     this._stageprev.visible = !this._currentData ? false : true;
};

//==============================
// * Create Completed
//==============================
SceneFastTravel.prototype.createCompleted = function() {
     this._comp = new Sprite(new Bitmap(200,32));
     this._comp.x = Moghunter.fastTravel_Comp_X
     this._comp.y = Moghunter.fastTravel_Comp_Y
     this._comp.bitmap.fontSize = Moghunter.fastTravel_Comp_FontSize;
     var ct =     this._DataTown.length + this._DataDungeon.length + this._DataOther.length;
     var perc = Math.floor(ct / $gameSystem._fastTravelComp * 100)
     var total = ct + " / " + $gameSystem._fastTravelComp
     this._comp.bitmap.drawText(total + " (" + perc + "%"  + ")",0,0,200,32, "center");
     this._field.addChild(this._comp);
     this._comp.visible = String(Moghunter.fastTravel_Comp_Show) === "true" ? true : false;
};

//==============================
// * Create List Name
//==============================
SceneFastTravel.prototype.createListName = function() {
    this._listName = [];
    this._listName[0] = new Sprite(ImageManager.loadfasttravel("ListName_A"))
    this._listName[0].x = Moghunter.fastTravel_ComA_X;
    this._listName[0].y = Moghunter.fastTravel_ComA_Y;
    this._field.addChild(this._listName[0]);
    this._listName[1] = new Sprite(ImageManager.loadfasttravel("ListName_B"))
    this._listName[1].x = Moghunter.fastTravel_ComB_X;
    this._listName[1].y = Moghunter.fastTravel_ComB_Y;
    this._field.addChild(this._listName[1]);
    this._listName[2] = new Sprite(ImageManager.loadfasttravel("ListName_C"))
    this._listName[2].x = Moghunter.fastTravel_ComC_X;
    this._listName[2].y = Moghunter.fastTravel_ComC_Y;
    this._field.addChild(this._listName[2]);
};

//==============================
// * update List Name
//==============================
SceneFastTravel.prototype.updateListName = function() {
    this.slideDown(this._listName[0],0,Moghunter.fastTravel_ComA_Y);
    this.slideDown(this._listName[1],1,Moghunter.fastTravel_ComB_Y);
    this.slideDown(this._listName[2],2,Moghunter.fastTravel_ComC_Y);
};

//==============================
// * update List Name
//==============================
SceneFastTravel.prototype.slideDown = function(sprite,index,y) {
    if (this._Dataindex === index) {
        if (sprite.y < y + 20) {
            sprite.y += 4;
            if (sprite.y > y + 20) {sprite.y = y + 20};
        };
    } else {
        if (sprite.y > y) {
            sprite.y -= 4;
            if (sprite.y < y ) {sprite.y = y};
        };
    };
};

//==============================
// * Create Cursor
//==============================
SceneFastTravel.prototype.createCursor = function() {
    this._cursor = new Sprite(ImageManager.loadfasttravel("Cursor_A"));
    this._cursor.anchor.x = 0.5;
    this._cursorAni = [0,0,0];
    this._cursorFloat = String(Moghunter.fastTravel_CursorFloat) === "true" ? true : false;
    this._field.addChild(this._cursor);
};

//==============================
// * Update Cursor
//==============================
SceneFastTravel.prototype.updateCursor = function() {
     if (this._cursorFloat) {this.updateCursorFloat()};
     if (this._Dataindex === 0) {
         this._cursor.x = this._listName[0].x + (this._listName[0].bitmap.width / 2) + Moghunter.fastTravel_CursorX;
         this._cursor.y = this._listName[0].y + this._listName[0].bitmap.height + this._cursorAni[1] + Moghunter.fastTravel_CursorY;
     } else if (this._Dataindex === 1) {
         this._cursor.x = this._listName[1].x + (this._listName[1].bitmap.width / 2) + Moghunter.fastTravel_CursorX;
         this._cursor.y = this._listName[1].y + this._listName[1].bitmap.height + this._cursorAni[1] + Moghunter.fastTravel_CursorY;      
     } else {
         this._cursor.x = this._listName[2].x + (this._listName[2].bitmap.width / 2) + Moghunter.fastTravel_CursorX;
         this._cursor.y = this._listName[2].y + this._listName[2].bitmap.height + this._cursorAni[1] + Moghunter.fastTravel_CursorY;              
     };
};

//==============================
// * Update Cursor Float
//==============================
SceneFastTravel.prototype.updateCursorFloat = function() {
     this._cursorAni[3] ++;
     if (this._cursorAni[3] < 3) {return};
     this._cursorAni[3] = 0;
     this._cursorAni[0] ++
     if (this._cursorAni[0] < 10) {
         this._cursorAni[1] --;
     } else if (this._cursorAni[0] < 20) {
         this._cursorAni[1] ++;
     } else {
         this._cursorAni[0] = 0;
         this._cursorAni[1] = 0;
     };
};

//==============================
// * Create Cursor Next
//==============================
SceneFastTravel.prototype.createCursorNext = function() {
    this._cursorB = new Sprite(ImageManager.loadfasttravel("Cursor_B"));
    this._cursorB.anchor.x = 0.5;
    this._cursorB.anchor.y = 1.0;
    this._cursorBAni = [0,0,0];
    this._cursorBFloat = String(Moghunter.fastTravel_CursorBFloat) === "true" ? true : false;
    this._Mapfield.addChild(this._cursorB);
};

//==============================
// * Update CursorB
//==============================
SceneFastTravel.prototype.updateCursorB = function() {
     if (this._cursorBFloat) {this.updateCursorBFloat()};
     this._cursorB.x = this._np[0] + Moghunter.fastTravel_CursorBX;
     this._cursorB.y = this._np[1] + this._cursorBAni[1] + Moghunter.fastTravel_CursorBY - 10;
     this._cursorB.visible = !this._currentData ? false : true;
};

//==============================
// * Update Cursor B Float
//==============================
SceneFastTravel.prototype.updateCursorBFloat = function() {
     this._cursorBAni[3] ++;
     if (this._cursorBAni[3] < 3) {return};
     this._cursorBAni[3] = 0;
     this._cursorBAni[0] ++
     if (this._cursorBAni[0] < 10) {
         this._cursorBAni[1] ++;
     } else if (this._cursorBAni[0] < 20) {
         this._cursorBAni[1] --;
     } else {
         this._cursorBAni[0] = 0;
         this._cursorBAni[1] = 0;
     };
};

//==============================
// * Create Points
//==============================
SceneFastTravel.prototype.createPoints = function() {
    this._pointTown = [];
    this._pointDungeon = [];
    this._pointOther = [];
    this._pointImg = ImageManager.loadfasttravel("Points");
    this._pointNeedRefresh = true;
    for (var i = 0; i < this._DataTown.length; i++) {
         this._pointTown[i] = new Sprite(this._pointImg);
         this._pointTown[i].x = this._DataTown[i][1].x;
         this._pointTown[i].y = this._DataTown[i][1].y;
         this._pointTown[i].anchor.x = 0.5;
         this._pointTown[i].anchor.y = 0.5;
         this._Mapfield.addChild(this._pointTown[i]);
    };
    for (var i = 0; i < this._DataDungeon.length; i++) {
         this._pointDungeon[i] = new Sprite(this._pointImg);
         this._pointDungeon[i].x = this._DataDungeon[i][1].x;
         this._pointDungeon[i].y = this._DataDungeon[i][1].y;
         this._pointDungeon[i].anchor.x = 0.5;
         this._pointDungeon[i].anchor.y = 0.5;
         this._Mapfield.addChild(this._pointDungeon[i]);
    };
    for (var i = 0; i < this._DataOther.length; i++) {
         this._pointOther[i] = new Sprite(this._pointImg);
         this._pointOther[i].x = this._DataOther[i][1].x;
         this._pointOther[i].y = this._DataOther[i][1].y;
         this._pointOther[i].anchor.x = 0.5;
         this._pointOther[i].anchor.y = 0.5;
         this._Mapfield.addChild(this._pointOther[i]);
    };    
};

//==============================
// * refresh Points
//==============================
SceneFastTravel.prototype.refreshPoint = function() {
    this._pointNeedRefresh = false;
    this.setFramePoint(this._pointTown,0);
    this.setFramePoint(this._pointDungeon,1);
    this.setFramePoint(this._pointOther,2);
};

//==============================
// * set Frame Point
//==============================
SceneFastTravel.prototype.setFramePoint = function(sprites,index) {
    var cw = this._pointImg.width / 3;
    var ch = this._pointImg.height;
    var rg = cw * index;
    for (var i = 0; i < sprites.length; i++) {
         sprites[i].setFrame(rg,0,cw,ch);
    };
 
};

//==============================
// * update Points
//==============================
SceneFastTravel.prototype.updatePoints = function() {
    if (this._pointNeedRefresh &&this._pointImg.isReady()) {this.refreshPoint()};
};

//==============================
// * Create  List Layout
//==============================
SceneFastTravel.prototype.createListLayout = function() {
     this._listLayout = new Sprite(ImageManager.loadfasttravel("ListLayout"));
     this._field.addChild(this._listLayout);
};

//==============================
// * update  List Layout
//==============================
SceneFastTravel.prototype.updateListLayout = function() {
     this._listLayout.x = this._windowList.x + Moghunter.fastTravel_ListLayoutX;
     this._listLayout.y = this._windowList.y + Moghunter.fastTravel_ListLayoutY;
     this._listLayout.opacity = this._windowList.contentsOpacity;
     this._listLayout.visible = this._windowList.visible;
};

//==============================
// * Create Window List
//==============================
SceneFastTravel.prototype.createWindowList = function() {
    var w = Moghunter.fastTravel_ListWidth;
    var h = Moghunter.fastTravel_ListHeight;
    var x = Moghunter.fastTravel_ListX;
    var y = Moghunter.fastTravel_ListY;
    this._windowList = new Window_TravelList(x,y,w,h);
    this._windowList.deactivate();
    if (String(Moghunter.fastTravel_ListSlide) === "true") {
        this._windowList.x = Moghunter.fastTravel_ListX + 100;
        this._windowList.contentsOpacity = 0;
    };
    this._field.addChild(this._windowList);
    this.updateListLayout();
};

//==============================
// * update Window List
//==============================
SceneFastTravel.prototype.updateWindowList = function() {
    if (this._windowList.x > Moghunter.fastTravel_ListX) {
        this._windowList.x -= 5;
        this._windowList.contentsOpacity += 15;
        if (this._windowList.x <= Moghunter.fastTravel_ListX) {
            this._windowList.x = Moghunter.fastTravel_ListX;
            this._windowList.contentsOpacity = 255;
        };
    };
};

//==============================
// * Need Refresh Point DAta
//==============================
SceneFastTravel.prototype.needRefreshPointData = function() {
    if (this._DataindexOld != this._Dataindex) {return true};
    if (this._WidowindexOld != this._windowList._index) {return true};
    return false;
};

//==============================
// * refresh Point Data
//==============================
SceneFastTravel.prototype.refreshPointData = function() {
    this._currentData = null;
    $gameSystem._fastTravelData = null;
    this._DataindexOld = this._Dataindex;
    this._WidowindexOld = this._windowList._index;
    if (this._Dataindex === 0) {
        var data = this._DataTown;
    } else if (this._Dataindex === 1) {
        var data = this._DataDungeon;
    } else {
        var data = this._DataOther;
    };
    if (!data || (data && data.length === 0) || !data[this._WidowindexOld]) {
        return
    };
    this._name = data[this._WidowindexOld][1].name;
    this._currentData = data[this._WidowindexOld][1];
    $gameSystem._fastTravelData = data[this._WidowindexOld][1];
    this._np = [data[this._WidowindexOld][1].x,data[this._WidowindexOld][1].y];
    this.refreshStage();
};

//==============================
// * update Command
//==============================
SceneFastTravel.prototype.updateCommand = function() {
     if (Input.isRepeated('left') || Input.isRepeated('pagedown')) {
         this.nextData(-1);
     } else if (Input.isRepeated('right') || Input.isRepeated('pageup')) {
         this.nextData(1);
     } else if (Input.isTriggered('ok')) {
         if (this._currentData) {
             this._windowList.visible = false;
             this._windowList.deactivate();
             $gameSystem._fastTravelSelection = [this._Dataindex,this._currentData];
         } else {
             SoundManager.playBuzzer();
         };
     } else if (Input.isTriggered('cancel') || TouchInput.isCancelled()) {
         this.executeCancel();
     } else if (TouchInput.isTriggered()) {
         this.checkTouchOnListCom()
     };
};
 
//==============================
// * check Touch On List Com
//==============================
SceneFastTravel.prototype.checkTouchOnListCom = function() {
     if (this.isOnSprite(this._listName[0])) {
         this._Dataindex = 0;
         this.nextData(0);
     } else if (this.isOnSprite(this._listName[1])) {
         this._Dataindex = 1;
         this.nextData(0);
     } else if (this.isOnSprite(this._listName[2])) {  
         this._Dataindex = 2;
         this.nextData(0);      
     };
};

//==============================
// * is On Sprite
//==============================
SceneFastTravel.prototype.isOnSprite = function(sprite) {
     var cw = sprite.bitmap.width;
     var ch = sprite.bitmap.height;
     if (TouchInput.x < sprite.x) { return false};
     if (TouchInput.x > sprite.x + cw) { return false};
     if (TouchInput.y < sprite.y) { return false};
     if (TouchInput.y > sprite.y + ch) { return false};
     return true;  
};

//==============================
// * Select Stage
//==============================
SceneFastTravel.prototype.executeCancel = function() {
     SoundManager.playCancel();
     if (String(Moghunter.fastTravel_playBgm) === "true") {
         AudioManager.stopBgm();
         BattleManager.replayBgmAndBgs();  
     };
     this._phase = 2;
     this._windowList.deactivate();
     if (String(Moghunter.fastTravel_directionCancel) === "true") { this.setPlayerDirectionforCancel()};
};

//==============================
// * Set Player Direction for
//==============================
SceneFastTravel.prototype.setPlayerDirectionforCancel = function() {
    if ($gamePlayer._direction === 2) {
        $gamePlayer.setDirection(8)
    } else if($gamePlayer._direction === 4) {
        $gamePlayer.setDirection(6)
    } else if($gamePlayer._direction === 6) {
        $gamePlayer.setDirection(4)
    } else {
        $gamePlayer.setDirection(2)
    };
};

//==============================
// * Select Map
//==============================
SceneFastTravel.prototype.selectMap = function() {
    if (this._currentData) {
        $gameSystem._fastTravelSelection = [this._Dataindex,this._currentData];
    };
     $gameSystem._fastTravelSelected = false;
     var dir = this.setDirection(this._currentData.direction);
     $gamePlayer.reserveTransfer(this._currentData.mapID, this._currentData.mapX, this._currentData.mapY, dir, false);
     SceneManager.goto(Scene_Map);
};

//==============================
// * set Direction
//==============================
SceneFastTravel.prototype.setDirection = function(dir) {
    if (dir === 4 || dir === 6 || dir === 8) {return dir};
    return 2;
};

//==============================
// * next Data
//==============================
SceneFastTravel.prototype.nextData = function(value) {
    this._Dataindex += value;
    if (this._Dataindex > 2) {this._Dataindex = 0};
    if (this._Dataindex < 0) {this._Dataindex = 2};
    SoundManager.playCursor();
    this._windowList.setID(this._Dataindex);
    if (String(Moghunter.fastTravel_ListSlide) === "true") {
        this._windowList.x = Moghunter.fastTravel_ListX + 100;
        this._windowList.contentsOpacity = 0;
    };
};

//==============================
// * Update Parallax
//==============================
SceneFastTravel.prototype.updateParallax = function() {
    this._parallax.origin.x += 1;
    this._parallax.origin.y += 1;
};

//==============================
// * Update Parallax
//==============================
SceneFastTravel.prototype.updateMapPosition = function() {
     if (this.needRefreshPointData()) {this.refreshPointData()};
     this._Mapfield.x = this.mapMoveTo(this._Mapfield.x,-this._np[0] + this._mapPos[0]);
     this._Mapfield.y = this.mapMoveTo(this._Mapfield.y,-this._np[1] + this._mapPos[1]);
     if (this._Mapfield.x === (-this._np[0] + this._mapPos[0]) && this._Mapfield.y === (-this._np[1] + this._mapPos[1])) {
         this._mapMoving = false;
     } else {
         this._mapMoving = true;
     };
};

//==============================
// * Map Move To
//==============================
SceneFastTravel.prototype.mapMoveTo = function(value,real_value) {
    if (value == real_value) {return value};
    var dnspeed = 3 + (Math.abs(value - real_value) / Moghunter.fastTravel_MapMoveSpeed);
    if (value > real_value) {value -= dnspeed;
        if (value < real_value) {value = real_value};}
    else if (value < real_value) {value  += dnspeed;
        if (value  > real_value) {value  = real_value};    
    };
    return Math.floor(value);
};

//==============================
// * Update
//==============================
SceneFastTravel.prototype.update = function() {
    Scene_Base.prototype.update.call(this);
    if (this._needCenter) {
        if (this._map.bitmap.isReady()) {this.setCenterStart()};
        return;
    };
    if (this._phase === 1 && !$gameSystem._fastTravelSelected) {this.updateCommand()};
    if (this._phase > 0) {
        this.updateMapPosition();
        this.updateWindowList();
        this.updateListLayout();
    };
    this.updateParallax();
    this.updatePoints();
    this.updateCursor();
    this.updateCursorB();
    this.updateStage();
    this.updateListName();
    if (this._phase === 0) {this.updateFadeOut()
    } else if ((!this._mapMoving && $gameSystem._fastTravelSelected) || this._phase === 2) {this.updateFadeIn()};
};

Latest Threads

Latest Profile Posts

Don't forget, aspiring writers: Personality isn't what your characters do, it is WHY they do it.
Hello! I would like to know if there are any pluggings or any way to customize how battles look?
I was thinking that when you start the battle for it to appear the eyes of your characters and opponents sorta like Ace Attorney.
Sadly I don't know how that would be possible so I would be needing help! If you can help me in any way I would really apreciate it!
The biggest debate we need to complete on which is better, Waffles or Pancakes?
rux
How is it going? :D
Day 9 of giveaways! 8 prizes today :D

Forum statistics

Threads
106,049
Messages
1,018,546
Members
137,835
Latest member
yetisteven
Top