Войти на сайт

Авторизация, ждите ...
×

ТЕМА: Поломка плагина GALV_VisibilityRange при F5

Поломка плагина GALV_VisibilityRange при F5 1 год 6 мес. назад #127939

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
Здравствуйте.
Конечно не думаю что мне кто-нибудь поможет решить проблему но плагин "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;
	};
};
})();
disk.yandex.ru/d/-_2UiL_7NSTMLg
Всё же надеюсь кто-нибудь поможет но отказываться от него я точно не стану ибо переделка проекта под другой плагин займёт скорее всего столько же времени сколько я делал игру до версии 0.6.2 вроде как 2 года проекту уже.

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

После F5:


То что пропадает графика двери эта проблема в ядре 1.5.0 и её нет в релизном проекте. Только при тестах.
Но вот поломка видимости есть и там и там.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 1 год 6 мес. назад от Alexandr_7.
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128038

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
Просили показать параметры плагинов. Честно не знаю зачем это поможет но вот:
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128039

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
1) Какое значение (число) ставится как Opacity?
2) Проблема при тестировании через редактор или в эскпортированном проекте?
3) Нет плагинов или еще каких-то скриптов, которые затирают переменные, на которые ссылаются параметры плагина?
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128040

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
Попробуй в коде плагина заменить функцию Sprite_GalvVisRange.prototype.update на то что ниже:
Sprite_GalvVisRange.prototype.update = function() {
	let forcedOpacity = 255;
	let forcedZoom = 0;
 
    Sprite.prototype.update.call(this);
    if (this.name != $gameSystem.galvVis) this.loadBitmap();  // If image changed, reload bitmap
	this.opacity = $gameVariables.value(forcedOpacity);
	if (this.opacity <= 0) return;
 
	this.x = $gamePlayer.screenX();
	this.y = $gamePlayer.screenY() - 24;
	var zoom = Math.max($gameVariables.value(forcedZoom) * 0.01 + 0.5,0.5);
	this.scale.x = zoom;
	this.scale.y = zoom;
};
forcedOpacity и forcedZoom - сразу напиши нужные значения, а не номера переменных.
Если такой хардкод поможет, то у тебя что-то обнуляет переменные (или "замедляет" их загрузку их сохранения).
Если не поможет - хз, может какой-то конфликт плагинов.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128041

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
DarchanKaen пишет:
1) Какое значение (число) ставится как Opacity?
2) Проблема при тестировании через редактор или в эскпортированном проекте?
3) Нет плагинов или еще каких-то скриптов, которые затирают переменные, на которые ссылаются параметры плагина?
1. Оно разное но по стандарту у Зума 500 а у опасити 255. Но причем здесь значение переменных. Видимость не пропадает после f5 а ломается. Проще говоря ломается графика видимости.
2. Эта проблема и там и там.
3. Да вроде нет.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128042

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
Хардкод помог?
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128043

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
DarchanKaen пишет:
Попробуй в коде плагина заменить функцию Sprite_GalvVisRange.prototype.update на то что ниже:
Sprite_GalvVisRange.prototype.update = function() {
	let forcedOpacity = 255;
	let forcedZoom = 0;
 
    Sprite.prototype.update.call(this);
    if (this.name != $gameSystem.galvVis) this.loadBitmap();  // If image changed, reload bitmap
	this.opacity = $gameVariables.value(forcedOpacity);
	if (this.opacity <= 0) return;
 
	this.x = $gamePlayer.screenX();
	this.y = $gamePlayer.screenY() - 24;
	var zoom = Math.max($gameVariables.value(forcedZoom) * 0.01 + 0.5,0.5);
	this.scale.x = zoom;
	this.scale.y = zoom;
};
forcedOpacity и forcedZoom - сразу напиши нужные значения, а не номера переменных.
Если такой хардкод поможет, то у тебя что-то обнуляет переменные (или "замедляет" их загрузку их сохранения).
Если не поможет - хз, может какой-то конфликт плагинов.

Вообще-то вот так скорее будет верно.
Sprite_GalvVisRange.prototype.update = function() {
	let forcedOpacity = 255;
	let forcedZoom = 500;
 
    Sprite.prototype.update.call(this);
    if (this.name != $gameSystem.galvVis) this.loadBitmap();  // If image changed, reload bitmap
	this.opacity = forcedOpacity;
	if (this.opacity <= 0) return;
 
	this.x = $gamePlayer.screenX();
	this.y = $gamePlayer.screenY() - 24;
	var zoom = Math.max(forcedZoom * 0.01 + 0.5,0.5);
	this.scale.x = zoom;
	this.scale.y = zoom;
};
Ваш вариант не работает.
Но всё равно ломается. И походу я ошибся когда сказал что при экспорте графика событий остаётся. Она тоже пропадает. Походу это всё дело в ядре. Но с графикой событий выйти в меню достаточно чтобы востановилась но графика видимости даже в этом случае не востанавливается.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 1 год 5 мес. назад от Alexandr_7.
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128044

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
Тогда действительно конфликт плагинов, чтоб убедиться можно отключить все плагины кроме данного и проверить работоспособность.
С "ядром" помочь не смогу, ищи варианты (может быть плагин на освещение для MZ, был такой Community Lighting MV & MZ) =/
Мои игры [ Нажмите, чтобы развернуть ]
Последнее редактирование: 1 год 5 мес. назад от DarchanKaen.
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128045

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
Нашел виновника плагина который мне всё портит.
disk.yandex.ru/d/ri4o7jijzeBKpA
Но я не могу от него избавится если только не воровством кода другого плагина. А именно EliMZ_ChoicePictures и EliMZ_Timer которые мне необходимы. Просто эти 2 плагина без EliMZ_Book не работают
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 1 год 5 мес. назад от Alexandr_7.
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128046

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
Что ж, поздравляю.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128047

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
DarchanKaen пишет:
Что ж, поздравляю.
Несчем меня поздравлять так как причину конфликта я без понятия и отказаться от плагина не могу.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128048

  • DarchanKaen
  • DarchanKaen аватар
  • Вне сайта
  • Просветлённый
  • Сообщений: 257
  • Спасибо получено: 233
  • Проект месяца 1 местоПроект месяца 2 местоРазработчикВетеран3 место в Обучающем конкурсе
EliMZ_ChoicePictures, похожий был у Галва тоже и в MZ работал - если мне память не изменяет.
EliMZ_Timer, там много всего с таймером, что именно нужно от плагина?
В любом случае, думай о компромиссах.
Мои игры [ Нажмите, чтобы развернуть ]
Администратор запретил публиковать записи гостям.

Поломка плагина GALV_VisibilityRange при F5 1 год 5 мес. назад #128049

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1182
  • Спасибо получено: 539
  • УчительПроект месяца 3 местоПроект месяца 2 местоПроект года 3 местоВетеранПроект месяца 1 место
Проблему. Решил. Одна блин команда в EliMZ_Book на Quick F5 ломало по сути эту функцию. Возможно могло бы помочь отпустить этот плагин в самый низ но яя отрубил эту функцию. Хотя стоит признать перезагрузка действительно значительно быстрее тогда.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: DarchanKaen
Модераторы: NeKotZima
Время создания страницы: 0.299 секунд