Войти на сайт

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

ТЕМА: Hud здоровья и MP для битвы с боссом на ивентах

Hud здоровья и MP для битвы с боссом на ивентах 5 года 1 мес. назад #109521

  • Alexandr_7
  • Alexandr_7 аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1185
  • Спасибо получено: 539
  • Проект месяца 3 местоПроект года 3 местоПроект месяца 2 местоПроект месяца 1 местоВетеранУчитель
Hud здоровья и MP для битвы с боссом на ивентах (AL7_LevelsOfBoss)

Название скрипта: AL7_LevelsOfBoss
Автор: Alexandr_7
Версия: 0.1.1 (Beta)
Описание [ Нажмите, чтобы развернуть ]


Поддерживаемая версия: RPG Maker MV v1.5.0+
Поддерживаемые языки: Только русский!
Авторство:

Вы можете:
  • Бесплатно использовать данный плагин в некоммерческих и коммерческих проектах
  • Переводить на другие языки или полностью поменять текст плагина (сообщите мне, если Вы это сделали)
  • Изменять код плагина, но Вы обязаны указать ссылку на оригинальный плагин

Вы не можете:
  • Убирать или изменять любую информацию о плагине (Название, авторство, контактная информация, версия и дата релиза)

Код:
//=============================================================================
// AL7_LevelsOfBoss.js
//=============================================================================
 
/*:ru
 * @plugindesc AL7_LevelsOfBoss v0.1.1 (Beta) Скрипт для босов - если своя боевая система
 * @author Alexandr_7
 * 
 * @param ---Переключатели---
 * @default
 * 
 * @param Enable_Switch_Id_Player_Live
 * @parent ---Переключатели---
 * @type switch
 * @desc Показать/Скрыть окно жизней игрока (номер переключателя)
 * @default 21
 * 
 * @param Enable_Switch_Id_Player_MP
 * @parent ---Переключатели---
 * @type switch
 * @desc Показать/Скрыть окно энергии игрока (номер переключателя)
 * @default 22
 * 
 * @param Enable_Switch_Id_Boss_Live
 * @desc Показать/Скрыть  окно босса (номер переключателя)
 * @parent ---Переключатели---
 * @type switch
 * @default 23
 * 
 * @param ---Переменные---
 * @default
 * 
 * @param Var_ID_Index_Player
 * @parent ---Переменные---
 * @type variable
 * @desc Индекс игрока (номер переменной)
 * @default 21
 * 
 * @param Var_ID_Face_Index_Boss
 * @parent ---Переменные---
 * @type variable
 * @desc Индекс Фейса босса (начинается от 0) (номер переменной)
 * @default 22
 * 
 * @param Var_ID_Face_Name_Index_Boss
 * @parent ---Переменные---
 * @type variable
 * @desc Индекс к имени Фейса босса (номер переменной)
 * @default 23
 * 
 * @param Var_ID_Boss_HP
 * @parent ---Переменные---
 * @type variable
 * @desc Здоровье босса (номер переменной)
 * @default 24
 * 
 * @param Var_ID_Boss_Max_HP
 * @parent ---Переменные---
 * @type variable
 * @desc Максимальное здоровье босcа (номер переменной)
 * @default 25
 *
 * @param ---Имена файлов---
 * @default
 *
 * @param File_Name_Face_Boss
 * @parent ---Имена файлов---
 * @desc Имя файла босса без расширения (К имени будет добавлен индекс босса из переменной)
 * @default Boss_
 */
 
(function() 
{
	var parameters = PluginManager.parameters('AL7_LevelsOfBoss');
 
	var enableSwitchIdPlayerLive = Number(parameters['Enable_Switch_Id_Player_Live']);
	var enableSwitchIdPlayerMP   = Number(parameters['Enable_Switch_Id_Player_MP']);
	var enableSwitchIdBossLive   = Number(parameters['Enable_Switch_Id_Boss_Live']);
 
	var VarIDIndexPlayer = Number(parameters['Var_ID_Index_Player']);
	var VarIDFaceIndexBoss = Number(parameters['Var_ID_Face_Index_Boss']);
	var VarIDFaceNameIndexBoss = Number(parameters['Var_ID_Face_Name_Index_Boss']);
	var VarIDBossHP = Number(parameters['Var_ID_Boss_HP']);
	var VarIDBossMHP = Number(parameters['Var_ID_Boss_Max_HP']);
 
 
 
	var FNFaceBoss = String(parameters['File_Name_Face_Boss']);
 
	//var Frame_Animation = 10;
 
	var Distance_Between = 10;
 
	var Size_Bar = 30;
 
	var Face_Player_Width = 80;
	var Face_Player_Height = 80;
 
	var Window_Player_Width = 292;
	var Window_Player_Height = Face_Player_Height + (Distance_Between * 2);
 
	var Window_Player_Width_M = Window_Player_Width - Face_Player_Width + 60;
 
	var Face_Enemy_Width = 80;
	var Face_Enemy_Height = 80;
 
	var Window_Enemy_Width = 292;
	var Window_Enemy_Height = Face_Enemy_Height + (Distance_Between * 2);
 
 
 
	var _Scene_Map_createAllWindows = Scene_Map.prototype.createAllWindows;
	Scene_Map.prototype.createAllWindows = function()
	{
		_Scene_Map_createAllWindows.call(this);
 
		this._levelsOfBoss_Player_L = new LevelsOfBossPlayerL(Distance_Between, Distance_Between, Window_Player_Width, Window_Player_Height);
		this._levelsOfBoss_Player_M = new LevelsOfBossPlayerM((Graphics.boxWidth / 2) - (Window_Player_Width_M / 2), Graphics.boxHeight - 96 - Distance_Between, Window_Player_Width_M, 96);
		this._levelsOfBoss_EnemyBoss = new LevelsOfBossEnemyBoss(Graphics.boxWidth - Window_Player_Width - Distance_Between,Distance_Between, Window_Enemy_Width, Window_Enemy_Height);
		this.addWindow(this._levelsOfBoss_Player_L);
		this.addWindow(this._levelsOfBoss_Player_M);
		this.addWindow(this._levelsOfBoss_EnemyBoss);
	};
 
	/********************
	Окно для игрока (Жизни)
	********************/
 
	function LevelsOfBossPlayerL() {
		this.initialize.apply(this, arguments);
	};
 
	LevelsOfBossPlayerL.prototype = Object.create(Window_Base.prototype);
	LevelsOfBossPlayerL.prototype.constructor = LevelsOfBossPlayerL;
 
	LevelsOfBossPlayerL.prototype.standardPadding = function() {
		return 0;
	};
 
	LevelsOfBossPlayerL.prototype.initialize = function(x, y, width, height) {
		Window_Base.prototype.initialize.call(this, x, y, width, height);
		this._id = 1;
		this.update();
	};
 
	LevelsOfBossPlayerL.prototype.update = function() {
		this.contents.clear();
		if ($gameSwitches.value(enableSwitchIdPlayerLive) == true) {
			this.show();
			var aIndexPlayer = $gameVariables.value(VarIDIndexPlayer);
			var actor = $gameParty.members()[aIndexPlayer];
			drawFace(this, actor.faceName(), actor.faceIndex(), Distance_Between, Distance_Between, Face_Player_Width, Face_Player_Height);
			this.resetTextColor();
			drawNameCharacter(this, actor.name(), this.hpColor(actor), (Distance_Between * 2) + Face_Player_Width, Distance_Between);
			var color1 = this.hpGaugeColor1();
			var color2 = this.hpGaugeColor2();
			var W1 = Window_Player_Width - Face_Player_Width - (Distance_Between * 3);
			var gaugeY = (Window_Player_Height - 45) + this.lineHeight() - Size_Bar;
			drawProgressBar(this, Face_Player_Width + (Distance_Between * 2), gaugeY, W1, actor.hp, actor.mhp, this.hpColor(actor), this.gaugeBackColor(), color1, color2);
		} else {
			this.hide();
		}
	};
 
	/********************
	Окно для игрока (Энергия)
	********************/
 
	function LevelsOfBossPlayerM() {
		this.initialize.apply(this, arguments);
	};
 
	LevelsOfBossPlayerM.prototype = Object.create(Window_Base.prototype);
	LevelsOfBossPlayerM.prototype.constructor = LevelsOfBossPlayerL;
 
	LevelsOfBossPlayerM.prototype.standardPadding = function() {
		return 0;
	};
 
	LevelsOfBossPlayerM.prototype.initialize = function(x, y, width, height) {
		Window_Base.prototype.initialize.call(this, x, y, width, height);
		this._id = 1;
		this.update();
	};
 
	LevelsOfBossPlayerM.prototype.update = function() {
		this.contents.clear();
		if ($gameSwitches.value(enableSwitchIdPlayerMP) == true) {
			this.show();
			var aIndexPlayer = $gameVariables.value(VarIDIndexPlayer);
			var actor = $gameParty.members()[aIndexPlayer];
			this.resetTextColor();
			drawNameCharacter(this, actor.name() + " (Энергия)", this.mpColor(actor), Distance_Between, Distance_Between);
			var color1 = this.mpGaugeColor1();
			var color2 = this.mpGaugeColor2();
			var W1 = Window_Player_Width_M - (Distance_Between * 2);
			var gaugeY = Distance_Between + this.lineHeight();
			drawProgressBar(this, Distance_Between, gaugeY, W1, actor.mp, actor.mmp, this.mpColor(actor), this.gaugeBackColor(), color1, color2);
		} else {
			this.hide();
		}
	};
 
	/********************
	Окно для босса
	********************/
 
	function LevelsOfBossEnemyBoss() {
		this.initialize.apply(this, arguments);
	};
 
	LevelsOfBossEnemyBoss.prototype = Object.create(Window_Base.prototype);
	LevelsOfBossEnemyBoss.prototype.constructor = LevelsOfBossEnemyBoss;
 
	LevelsOfBossEnemyBoss.prototype.standardPadding = function() {
		return 0;
	};
 
	LevelsOfBossEnemyBoss.prototype.initialize = function(x, y, width, height) {
		Window_Base.prototype.initialize.call(this, x, y, width, height);
		this._id = 2;
		this.update();
	};
 
	LevelsOfBossEnemyBoss.prototype.update = function() {
		this.contents.clear();
		if ($gameSwitches.value(enableSwitchIdBossLive) == true) {
			this.show();
			var FaceName = FNFaceBoss + $gameVariables.value(VarIDFaceNameIndexBoss);
			var FaceIndex = $gameVariables.value(VarIDFaceIndexBoss);
			drawFace(this, FaceName, FaceIndex, Distance_Between, Distance_Between, Face_Enemy_Width, Face_Enemy_Height);
			var aBossHP = $gameVariables.value(VarIDBossHP);
			var aBossMHP = $gameVariables.value(VarIDBossMHP);
			this.resetTextColor();
			var aHPColor = this.normalColor();
			if (aBossHP <= aBossMHP / 2) {
				aHPColor = this.crisisColor();
			} else {
				aHPColor = this.normalColor();
			}
			drawNameCharacter(this, "Босс", aHPColor, (Distance_Between * 2) + Face_Enemy_Width, Distance_Between);
			var color1 = this.hpGaugeColor1();
			var color2 = this.hpGaugeColor2();
			var W1 = Window_Enemy_Width - Face_Enemy_Width - (Distance_Between * 3);
			var gaugeY = (Window_Enemy_Height - 45) + this.lineHeight() - Size_Bar;
			drawProgressBar(this, Face_Enemy_Width + (Distance_Between * 2), gaugeY, W1, aBossHP, aBossMHP, aHPColor, this.gaugeBackColor(), color1, color2);
 
		} else {
			this.hide();
		}
	};
 
 
 
 
 
	function drawFace (aWindow_Base, faceName, faceIndex, x, y, width, height) {
		var bitmap = ImageManager.loadFace(faceName);
		var pw = Window_Base._faceWidth;
		var ph = Window_Base._faceHeight;
 
		var sx = faceIndex % 4 * pw;
		var sy = Math.floor(faceIndex / 4) * pw;
		aWindow_Base.contents.blt(bitmap, sx, sy, pw, ph, x, y, width, height);
	}
 
	function drawNameCharacter (aWindow_Base, aTextName, aTextColor, x, y, width) {
		width = width || aWindow_Base.textWidth(aTextName);
		aWindow_Base.changeTextColor(aTextColor);
		aWindow_Base.drawText(aTextName, x, y, width);
	}
 
	function drawProgressBar (aWindow_Base, x, y, width, aHP, aMHP, TextColor, ColorForBackProgress, ColorForStatusProgress1, ColorForStatusPgress2) {
		aWindow_Base.contents.fillRect(x, y, width, Size_Bar, ColorForBackProgress);
		var fillW = Math.floor( width * MyHPRate(aHP, aMHP));
		aWindow_Base.contents.gradientFillRect(x, y, fillW, Size_Bar, ColorForStatusProgress1, ColorForStatusPgress2);
		aWindow_Base.changeTextColor(TextColor);
		var ProcHP = parseInt((aHP * 100 / aMHP)) + " %";
		aWindow_Base.drawText(ProcHP, ((width / 2) - (aWindow_Base.textWidth(ProcHP) / 2) + x), y - 2, aWindow_Base.textWidth(ProcHP));
	}
 
	function MyHPRate (aHP, aMHP) {
		return aHP / aMHP;
	}
 
})();

Скриншоты [ Нажмите, чтобы развернуть ]


Пару слов от автора [ Нажмите, чтобы развернуть ]



Часть сообщения скрыта для гостей. Пожалуйста, авторизуйтесь или зарегистрируйтесь, чтобы увидеть его.
Мой вк: vk.com/borisov_alexandr_5
Мой ютуб канал: www.youtube.com/@alexandr_5836
Мой бусти: boosty.to/alexandr-7
Последнее редактирование: 5 года 3 нед. назад от Alexandr_7.
Администратор запретил публиковать записи гостям.
За этот пост поблагодарили: Dmy, Noxmils

Hud здоровья и MP для битвы с боссом на ивентах 5 года 1 мес. назад #109535

  • yuryol
  • yuryol аватар
  • Вне сайта
  • Архитектор Миров
  • Сообщений: 1704
  • Спасибо получено: 2729
  • 2 место 1 место в ГотвПобедитель конкурсаКомпозитор3 место ГотвУчительОраторОрганизатор конкурсов
ХУД - это что? Правильно - визуальное отображение хар-к на экране. а раз визуальное, то нам очень нужны скриншотики этого худа
Администратор запретил публиковать записи гостям.

Hud здоровья и MP для битвы с боссом на ивентах 5 года 1 мес. назад #109540

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