Код:
	
var Imported = Imported || {};
Imported.DKR_DialogueHelper = true;
var DKR = DKR || {};          
DKR.DialogueHelper = DKR.DialogueHelper || {}; 
DKR.DialogueHelper.version = 1.0;
//-----------------------------------------------------------------------------
/*:
 * @plugindesc (v.1.0.0) Плагин позволяет упростить построение диалогов, а именно - автоматизировать ввод имени и лица говорящего, а также цвета текста.
 * 
 * @target MZ
 * @author DarchanKaen
 *
 * @help
 *   DKR DialogueHelper
 * ----------------------------------------------------------------------------
 * ---Общая информация:
 * Плагин позволяет упростить построение диалогов, 
 * а именно - автоматизировать ввод имени и лица говорящего, а также цвета имени и текста.
 * Указанный персонаж (Actor) должен быть в перечек Персонажей!
 * ---Параметры плагина:
 * Отсутствуют.
 * --В Примечании персонажа (указывать можно оба тега, или один из них):
 *  <dialogueHelperNameColorId: X>
 *  <dialogueHelperTextColorId: Y>
 *  где:::
 * X, Y - номер цвета, как в чартеге \C[номер] (от 0 до 31).
 * ---Команды(в эвенте команда "Скрипт"):
 * DKR.DialogueHelper.setupMessage(N); - применение плагина; 
 * Сообщение, идущего после данного вызова Скрипта, будет применять настройки указанного персонажа.
 *  где:::
 * N - номер персонажа из перечня Персонажей, чьи настройки 
 * (имя, лицо, цвета имени и текста) нужно использовать.
 * 
 */
 
(() => {
//--DATA
	let isMessageSetup = false;
	let messageActor = null;
	let nameTextColorId = null;
	let messageTextColorId = null;
	let messageFaceImageSettings = null;	
	let messageSpeakerName = null;
	let messageText = null;
		
	
	
//--CHANGED CORE
	Game_Interpreter.prototype.command101 = function(params) {
		if ($gameMessage.isBusy()) {
			return false;
		}
		if(false === isMessageSetup){
			$gameMessage.setFaceImage(params[0], params[1]);
			$gameMessage.setBackground(params[2]);
			$gameMessage.setPositionType(params[3]);
			$gameMessage.setSpeakerName(params[4]);
		}else{
			let paintedName = paintSomeText(messageSpeakerName, nameTextColorId);
			
			$gameMessage.setFaceImage(messageFaceImageSettings[0], messageFaceImageSettings[1]);
			$gameMessage.setBackground(params[2]);
			$gameMessage.setPositionType(params[3]);
			$gameMessage.setSpeakerName(paintedName);
		}
		
		while (this.nextEventCode() === 401) {
			// Text data
			this._index++;
			if(false === isMessageSetup){
				$gameMessage.add(this.currentCommand().parameters[0]);
			}else{
				let paintedMessageText = paintSomeText(this.currentCommand().parameters[0], messageTextColorId);
				$gameMessage.add(paintedMessageText);
			}
		}
		switch (this.nextEventCode()) {
			case 102: // Show Choices
				this._index++;
				this.setupChoices(this.currentCommand().parameters);
				break;
			case 103: // Input Number
				this._index++;
				this.setupNumInput(this.currentCommand().parameters);
				break;
			case 104: // Select Item
				this._index++;
				this.setupItemChoice(this.currentCommand().parameters);
				break;
		}
		this.setWaitMode("message");
		
		clearMessageSettings();
		
		return true;
	};
		
		
		
//--LOGIC	
	const setUpMessageSettings = (actorId) => {
		messageActor = $gameActors._data[actorId];
		if(undefined === messageActor){
			messageActor = new Game_Actor(actorId);
		}
		let actorMetadata = getActorMetadata(actorId);
		
		let messageSpeakerFaceName = messageActor._faceName;
		let messageSpeakerFaceIndex = messageActor._faceIndex;
		let nameAndTextColorInd = getActorNameAndTextColorsId(actorMetadata);
		
		nameTextColorId = nameAndTextColorInd[0];
		messageTextColorId = nameAndTextColorInd[1];
		messageSpeakerName = messageActor._name;
		messageFaceImageSettings = [messageSpeakerFaceName, messageSpeakerFaceIndex];
		
		isMessageSetup = true;
	}
	const getActorNameAndTextColorsId = (actorMetadata) => {
		let nameColorId = null;
		let textColorId = null;
		nameColorId = Number(actorMetadata.dialogueHelperNameColorId) || null;
		textColorId = Number(actorMetadata.dialogueHelperTextColorId) || null;
		
		return [nameColorId, textColorId];
	}
		
		
	const getActorMetadata = (actorId) => {
		let actorMetadata = null;
		let actorData = $dataActors[actorId];
		actorMetadata = actorData.meta;
			
		return actorMetadata;
	}	
		
	const paintSomeText = (someText, colorCodeToPaint) => {
		let paintedText = null;
		if(null === colorCodeToPaint || colorCodeToPaint < 0 || colorCodeToPaint > 31){
			paintedText = someText;
		}else{
			paintedText = `\\C[${colorCodeToPaint}]${someText}\\C[0]`;
		}
		
		return paintedText;
	}	
		
		
	const clearMessageSettings = () => {
		isMessageSetup = false;
		
		messageActor = null;
		nameTextColorId = null;
		messageTextColorId = null;
		messageFaceImageSettings = null;	
		messageSpeakerName = null;
		messageText = null;
	}
//--COMMANDS	
	DKR.DialogueHelper.setupMessage = function(actorId){
		setUpMessageSettings(actorId);
	}
	
})();
 
Социальные закладки