Advertisement
Foure4

TextEndings

Dec 30th, 2016
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //=============================================================================
  2. // TextEndings
  3. //=============================================================================
  4.  
  5. var Imported = Imported || {};
  6. Imported.de_TextEndings = true;
  7.  
  8. /*:
  9.  * @plugindesc v1.0 Позволяет устанавливать окончания для слов.
  10.  * <de_TextEndings>
  11.  * @author dirge
  12.  *
  13.  * @param Количество возможных полов персонажа
  14.  * @desc Запишите количество полов
  15.  * Default: 2
  16.  * @default 2
  17.  *
  18.  * @param Id переменной
  19.  * @desc Запишите id переменной которая будет отвечать за пол персонажа
  20.  * Default: 0
  21.  * @default 0
  22.  *
  23.  * @param Вариант окончания №1
  24.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  25.  *
  26.  * @param Вариант окончания №2
  27.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  28.  *
  29.  * @param Вариант окончания №3
  30.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  31.  *
  32.  * @param Вариант окончания №4
  33.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  34.  *
  35.  * @param Вариант окончания №5
  36.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  37.  *
  38.  * @param Вариант окончания №6
  39.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  40.  *
  41.  * @param Вариант окончания №7
  42.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  43.  *
  44.  * @param Вариант окончания №8
  45.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  46.  *
  47.  * @param Вариант окончания №9
  48.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  49.  *
  50.  * @param Вариант окончания №10
  51.  * @desc Запишите окончания через запятую, но не больше чем доступно полов
  52.  *
  53.  * @help
  54.  * --------------------------------------------------------------------------------
  55.  * Версия 1.0
  56.  * --------------------------------------------------------------------------------
  57.  * Плагин позволяет устанавливать окончания словам в текстах через команду
  58.  * показать текст, в зависимости от пола главного героя.
  59.  * Управлять полом ГГ нужно через переменную, айди которой выставлен
  60.  * в настройках плагина. Значения самой переменной устанавливайте
  61.  * от 0 и до количества возможных полов персонажа -1, из-за
  62.  * отсчета с 0.
  63.  * Предварительно заполните варианты окончаний.
  64.  * Заполняются они через запятую, но окончаний не должно быть больше
  65.  * чем количество полов персонажа, которое определяется в настройках.
  66.  * Пример заполнения: -,а
  67.  * Для пустого окончания используйте дефис, он автоматически
  68.  * заменится на пустое место в тексте. В примере,
  69.  * дефис = 0 значению переменной пола персонажа, в свою очередь
  70.  * 'a' = 1, итого мы определили окончания для двух вероятных полов
  71.  * персонажа.
  72.  * Использование в тексте \gr[n]
  73.  * где n - номер варианта окончания.
  74.  *
  75.  */
  76.  
  77. (function() {
  78.    
  79.     var parameters = $plugins.filter(function(p) { return p.description.contains('<de_TextEndings>'); })[0].parameters;
  80.    
  81.     var paramGenderNumber = Number(parameters['Количество полов'] || 2);
  82.     var paramVariableId = Number(parameters['Id переменной'] || 0);
  83.     var paramEndingArray = []
  84.    
  85.     for(var i = 1;i <= 10;i++){
  86.         par = String(parameters['Вариант окончания №'+i]);
  87.         par = par.replace(/-/g, '')
  88.         splitArray = par.split(',');
  89.         paramEndingArray[i] = splitArray
  90.     }
  91.  
  92.     Window_Base.prototype.convertTextEnding = function(text) {
  93.        
  94.         text = text.replace(/\gr\[(\d+)\]/gi, function() {
  95.             for(var i = 0;i<paramGenderNumber;i++){
  96.                 if ($gameVariables.value(paramVariableId)==i){
  97.                     return paramEndingArray[parseInt(arguments[1])][i]
  98.                     break
  99.                 }
  100.             }
  101.         }.bind(this));
  102.        
  103.         return text;
  104.     };
  105.  
  106.  
  107.     Window_Base_convertEscapeCharacters_Alias = Window_Base.prototype.convertEscapeCharacters;
  108.     Window_Base.prototype.convertEscapeCharacters = function(text) {
  109.         text = Window_Base_convertEscapeCharacters_Alias.call(this, text);
  110.         text = this.convertTextEnding(text);
  111.         return text;
  112.     };
  113.  
  114. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement