Плохо! Плохо!:  0
Показано с 1 по 8 из 8

Тема: Поломка плагина GALV_VisibilityRange при F5

  1. #1
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию Поломка плагина GALV_VisibilityRange при F5

    Здравствуйте.
    Конечно не думаю что мне кто-нибудь поможет решить проблему но плагин "GALV_VisibilityRange" ломается если использовать F5. Вроде раньше проблемы не было но это не могу гарантировать. Вообще на F5 в самом ядре есть проблема. Но она только при тестировании. А плагин ломается и в релизе
    Вот сам код плагина и плагин:
    Код:
    //-----------------------------------------------------------------------------
    //  Galv's Visibility Range
    //-----------------------------------------------------------------------------
    //  For: RPGMAKER MZ
    //  GALV_VisibilityRangeMZ.js
    //-----------------------------------------------------------------------------
    //  2021-11-19 - Version 1.0 - release
    //-----------------------------------------------------------------------------
    // Terms can be found at:
    // galvs-scripts.com
    //-----------------------------------------------------------------------------
    
    var Imported = Imported || {};
    Imported.Galv_VisibilityRange = true;
    
    var Galv = Galv || {};        // Galv's main object
    Galv.pCmd = Galv.pCmd || {};  // Plugin Command manager
    Galv.VR = Galv.VR || {};      // Galv's plugin stuff
    Galv.VR.pluginName = "GALV_VisibilityRangeMZ";
    
    //-----------------------------------------------------------------------------
    /*:
     * @plugindesc (v.1.0) Use an image to display a visibility range image around the player's position
     * @url http://galvs-scripts.com
     * @target MZ
     * @author Galv - galvs-scripts.com
     * 
     * @command Visrange
     * @text Add visrange
     * @desc Add visrange
     * 
     * @arg imageName
     * @type file
     * @dir img/system/
     * @text Image
     * @desc Image file closing visrange
     * 
     * @command VisrangeRemove
     * @text Remove visrange
     * @desc Remove visrange
    
    
     * @param Zoom Variable
     * @type variable
     * @desc In-Game variable ID used for zooming the visibility range in and out.
     * @default 0
     * 
     * @param Opacity Variable
     * @type variable
     * @desc In-Game variable ID used for opacity of the visibility range image.
     * @default 0
     *
     * @param Z Position
     * @desc The layer the visibility image displays at. Lower if it appears above objects you dont want it to.
     * @default 10
     *
     * @help
     *   Galv's Visibility Range
     * ----------------------------------------------------------------------------
     * This plugin allows you to display a solid colour above a character with an
     * image cut out in the middle.
     * The idea is to give the impression of visibility range. This image will
     * follow the player and can zoom and change opacity by setting the variable
     * ID's in the plugin config and then using the 'Control Variables' event
     * command to change them.
     *
     * NOTE: VARIABLES ARE SET TO 0 BY DEFAULT. YOU WILL NEED TO CHANGE THEM IN
     * ORDER TO USE THIS FUNCTIONALITY.
     *
     * The Zoom variable that controls the growing/shrinking works as follows:
     * Set the variable to the desired ID you will use.
     * The zoom level is 50% + variable%.
     * For this example, assuming we set the config to use Variable #1.
     * When variable #1 is equal or less than 0, the visibility range will be
     * displayed at 50% of it's normal size. This is the smallest size possible.
     * When variable is set to 50, it will be shown at 100% (50 + 50 = 100).
     * 
     * The opacity variable can be 0 - 255 and controls how transparent the
     * visibility range is.
     *
     * The image used for the transparency is taken from:
     * YourProject/img/system/
     * And will only appear if the plugin command has created it. The visrange
     * image will persist across maps, so must be removed on maps you do not want
     * it to appear on.
     * This image must have transparency to show the map under it. You can change
     * the image during game with the plugin command found further below.
     *
     * Advanced Info:
     * The top left pixel of the graphic specifies what colour the rest of the
     * 'darkness' will be. The example image uses black with a blurred transparent
     * circle, the top left black pixel indicates the colour of the rest of the
     * surrounding.
     * ----------------------------------------------------------------------------
     *   PLUGIN COMMAND
     * ----------------------------------------------------------------------------
     *
     *   VISRANGE imageName           // set the visrange image to a new image from
     *                                // /img/system/ folder in your project.
     *                                // Make sure to have correct capitalization
     *                                // Use X for imageName to remove vis image
     *
     * Example:
     * VISRANGE VisibilityRange2    // add visrange using VisibilityRange2 image
     * VISRANGE X                   // remove visibility range
     *
     * ----------------------------------------------------------------------------
     *   SCRIPT
     * ----------------------------------------------------------------------------
     *
     *    $gameSystem.galvVis   // returns the image name of the current vis range.
     *
     */
    
    //-----------------------------------------------------------------------------
    //  CODE STUFFS
    //-----------------------------------------------------------------------------
    
    (function() {
    
    // GALV'S PLUGIN MANAGEMENT. INCLUDED IN ALL GALV PLUGINS THAT HAVE PLUGIN COMMAND CALLS, BUT ONLY RUN ONCE.
    if (!Galv.aliased) {
    	var Galv_Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
    	Game_Interpreter.prototype.pluginCommand = function(command, args) {
    		if (Galv.pCmd[command]) {
    			Galv.pCmd[command](args);
    			return;
    		};
    		Galv_Game_Interpreter_pluginCommand.call(this, command, args);
    	};
    	Galv.aliased = true; // Don't keep aliasing for other Galv scripts.
    };
    
    if (Utils.RPGMAKER_NAME === "MZ") {
    
    PluginManager.registerCommand(Galv.VR.pluginName, "Visrange", (args) => {
        Galv.pCmd["VISRANGE"]([args.imageName]);
    });
    
    PluginManager.registerCommand(Galv.VR.pluginName, "VisrangeRemove", () => {
        Galv.pCmd["VISRANGE"](["X"]);
    });
    
    }
    
    // Direct to Plugin Object
    Galv.pCmd.VISRANGE = function(arguments) {
    	Galv.VR.setImage(arguments[0]);
    };
    // END GALV'S PLUGIN MANAGEMENT
    
    
    Galv.VR.setImage = function(image) {
    	if (SceneManager._scene.constructor.name == 'Scene_Map') {
    		if (SceneManager._scene._spriteset) SceneManager._scene._spriteset.doVisSprite(image);
    	}
    };
    
    
    Galv.VR.zoom = Number(PluginManager.parameters(Galv.VR.pluginName)["Zoom Variable"]);
    Galv.VR.opacity = Number(PluginManager.parameters(Galv.VR.pluginName)["Opacity Variable"]);
    Galv.VR.z = Number(PluginManager.parameters(Galv.VR.pluginName)["Z Position"]);
    
    //-----------------------------------------------------------------------------
    // Spriteset_Map
    
    var Galv_Spriteset_Map_createLowerLayer = Spriteset_Map.prototype.createLowerLayer;
    Spriteset_Map.prototype.createLowerLayer = function() {
    	Galv_Spriteset_Map_createLowerLayer.call(this);
    	this.doVisSprite($gameSystem.galvVis);
    };
    
    Spriteset_Map.prototype.doVisSprite = function(img) {
    	if (!img || img == "X") {
    		this.removeVisibilityRange();
    	} else {
    		this.setVisibilityRange(img);
    	}
    };
    
    Spriteset_Map.prototype.setVisibilityRange = function(image) {
    	$gameSystem.galvVis = image;
    	if (!this._galvVisRange) {
    		this._galvVisRange = new Sprite_GalvVisRange();
    		this._tilemap.addChild(this._galvVisRange);
    	};
    };
    
    Spriteset_Map.prototype.removeVisibilityRange = function() {
    	$gameSystem.galvVis = null;
    	if (this._galvVisRange) {
    		this._tilemap.removeChild(this._galvVisRange);
    		this._galvVisRange = null;
    	};
    };
    
    
    //-----------------------------------------------------------------------------
    // Sprite_GalvVisRange
    
    function Sprite_GalvVisRange() {
        this.initialize.apply(this, arguments);
    }
    
    Sprite_GalvVisRange.prototype = Object.create(Sprite.prototype);
    Sprite_GalvVisRange.prototype.constructor = Sprite_GalvVisRange;
    
    Sprite_GalvVisRange.prototype.initialize = function() {
        Sprite.prototype.initialize.call(this);
    	this.name = null;
    	this.opacity = 0;
        this.update();
    };
    
    Sprite_GalvVisRange.prototype.update = function() {
        Sprite.prototype.update.call(this);
        if (this.name != $gameSystem.galvVis) this.loadBitmap();  // If image changed, reload bitmap
    	this.opacity = $gameVariables.value(Galv.VR.opacity);
    	if (this.opacity <= 0) return;
    	
    	this.x = $gamePlayer.screenX();
    	this.y = $gamePlayer.screenY() - 24;
    	var zoom = Math.max($gameVariables.value(Galv.VR.zoom) * 0.01 + 0.5,0.5);
    	this.scale.x = zoom;
    	this.scale.y = zoom;
    };
    
    Sprite_GalvVisRange.prototype.loadBitmap = function() {
    	var img = ImageManager.loadSystem($gameSystem.galvVis);
    	if (img.isReady()) {
    		if (this.bitmap) {
    			//this._destroyCachedSprite();
    			this.bitmap = null;
    		};
    		
    		// Middle Graphic
    		var tempSprite = new Sprite();
    		tempSprite.bitmap = ImageManager.loadSystem($gameSystem.galvVis);
    		var iw = tempSprite.bitmap.width;
    		var ih = tempSprite.bitmap.height;
    		var color = tempSprite.bitmap.getPixel(0,0);
    
    		// Background Color
    		this.bitmap = new Bitmap(Graphics.boxWidth * 4,Graphics.boxHeight * 4);
    		this.bitmap.fillRect(0, 0, Graphics.boxWidth * 4, Graphics.boxHeight * 4, color);
    	
    		// Position
    		this.anchor.x = 0.5;
    		this.anchor.y = 0.5;
    		this.x = $gamePlayer.screenX();
    		this.y = $gamePlayer.screenY();
    		this.z = Galv.VR.z;
    	
    		// Join Bitmaps
    		var cx = ((Graphics.boxWidth * 4) / 2) - (iw / 2);
    		var cy = ((Graphics.boxHeight * 4) / 2) - (ih / 2);
    		this.bitmap.clearRect(cx, cy, iw, ih);
    		this.bitmap.blt(tempSprite.bitmap, 0, 0, iw, ih, cx, cy);
    
    		this.name = $gameSystem.galvVis;
    	};
    };
    })();
    https://disk.yandex.ru/d/-_2UiL_7NSTMLg

    Всё же надеюсь кто-нибудь поможет но отказываться от него я точно не стану ибо переделка проекта под другой плагин займёт скорее всего столько же времени сколько я делал игру до версии 0.6.2 вроде как 2 года проекту уже.

    К слову о проблеме!
    До F5:

    После F5:


    То что пропадает графика двери эта проблема в ядре 1.5.0 и её нет в релизном проекте. Только при тестах.
    Но вот поломка видимости есть и там и там.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  2. #2
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Просили показать параметры плагинов. Честно не знаю зачем это поможет но вот:
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  3. #3

    По умолчанию

    У меня стоит этот плагин. Только что проверил, что с ним не так (при тестах). Проблем не заметил.
    По Ф5 меня кидает обратно в меню, оттуда загружаюсь, и прагин нормально работает.
    Правда, у меня мейкер 1.6.2

  4. #4
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Цитата Сообщение от Alx_Yago Посмотреть сообщение
    У меня стоит этот плагин. Только что проверил, что с ним не так (при тестах). Проблем не заметил.
    По Ф5 меня кидает обратно в меню, оттуда загружаюсь, и прагин нормально работает.
    Правда, у меня мейкер 1.6.2
    Какой 1.6.2. Я же указал что проблема на MZ.

    Ой. Забыл указать что MZ. Но даже в плагине стоит пометка -MZ
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  5. #5

    По умолчанию

    А. Ну сорян. Тут мои полномочия всё. Переходи обратно на МВ)))

  6. #6
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Походу я ошибся когда сказал что при экспорте графика событий остаётся. Она тоже пропадает. Походу это всё дело в ядре. Но с графикой событий выйти в меню достаточно чтобы востановилась но графика видимости даже в этом случае не востанавливается.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  7. #7
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Нашел виновника плагина который мне всё портит.
    disk.yandex.ru/d/ri4o7jijzeBKpA
    Но я не могу от него избавится если только не воровством кода другого плагина. А именно EliMZ_ChoicePictures и EliMZ_Timer которые мне необходимы. Просто эти 2 плагина без EliMZ_Book не работают
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

  8. #8
    Бывалый Аватар для Alexandr_7
    Информация о пользователе
    Регистрация
    09.08.2015
    Адрес
    пос Октяборьский
    Сообщений
    967
    Репутация: 13 Добавить или отнять репутацию

    По умолчанию

    Проблему. Решил. Одна блин команда в EliMZ_Book на Quick F5 ломало по сути эту функцию. Возможно могло бы помочь отпустить этот плагин в самый низ но яя отрубил эту функцию. Хотя стоит признать перезагрузка действительно значительно быстрее тогда.
    Мой канал на Yotube: Канал Alexandr_5
    Если не говорю движок то это RPG Maker MZ Steam версия!

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Метки этой темы

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Поломка плагина GALV_VisibilityRange при F5