MOG fast travel, possible to apply fadeout before transfering?

kako05

Veteran
Veteran
Joined
Sep 11, 2017
Messages
160
Reaction score
18
First Language
Australian
Primarily Uses
RMMV
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()};
};
 

Zrag

Villager
Member
Joined
Jun 3, 2014
Messages
7
Reaction score
0
First Language
Spanish
Primarily Uses
Hi mate!

There is a FadeOut option, and it's executed once you travel to the map. Maybe you want the fadeout to be longest that the actual one, then, you just need to change your code.

Need to change this:
//==============================
// * 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 ;
};

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

kako05

Veteran
Veteran
Joined
Sep 11, 2017
Messages
160
Reaction score
18
First Language
Australian
Primarily Uses
RMMV
Thanks, but some nice guy made a plugin for me to remove fadein effect :)
 

Users Who Are Viewing This Thread (Users: 0, Guests: 1)

Latest Threads

Latest Posts

Latest Profile Posts

People3_5 and People3_8 added!

so hopefully tomorrow i get to go home from the hospital i've been here for 5 days already and it's driving me mad. I miss my family like crazy but at least I get to use my own toiletries and my own clothes. My mom is coming to visit soon i can't wait to see her cause i miss her the most. :kaojoy:
Couple hours of work. Might use in my game as a secret find or something. Not sure. Fancy though no? :D
Holy stink, where have I been? Well, I started my temporary job this week. So less time to spend on game design... :(
Cartoonier cloud cover that better fits the art style, as well as (slightly) improved blending/fading... fading clouds when there are larger patterns is still somewhat abrupt for some reason.

Forum statistics

Threads
105,868
Messages
1,017,085
Members
137,585
Latest member
Reversinator
Top