четверг, 16 июля 2015 г.

Настройка смены графики чарсета

Так как в vx/ace отменили возможность в Move Route выбирать точный кусок спрайта чара при смене графики, то, по просьбе Рена (http://ren310.blogspot.ru/) написал минискрипт для этого.


class Game_CharacterBase
  # изменить графику события 
  # name - название файла графики
  # direction - положение (строка в файле графики чара), сверху вниз: 2,4,6,8
  # pattern - положение чара (столбец в графике чара), слева направо: 0,1,2
  def set_graphic_name(name, direction, pattern) 
    @character_name = name
    set_graphic(direction, pattern) 
  end

  # то же самое, но файл не меняется
  def set_graphic(direction, pattern) 
    @direction = direction
    @pattern = pattern
    @original_pattern = pattern
  end

  # то же, что предыдущее, но для больших чарсетов
  # character_index - индекс чарсета в большом, от 0 до 7
  def set_index_graphic(character_index, direction, pattern) 
    @character_index = character_index
    @direction = direction
    @pattern = pattern
    @original_pattern = pattern
  end

  # то же, что предыдущее, но со сменой файла
  def set_index_graphic_name(name, character_index, direction, pattern) 
    @character_name = name
    set_index_graphic(character_index, direction, pattern)
  end
end

Использование в Set Move Route или Custom Move событий:
set_graphic_name("$kitsune", 4, 0) # заменить графу на файл $kitsune.png второй ряд (влево) первая позиция
set_index_graphic_name("Actor1", 0, 2, 1) # заменить графу на файл Actor1.png, первый чар (Ральф), первый ряд (вниз) , вторая позиция

PS: Для тех, кто не понял - это смена графики события как в ХР. Не весь чар, а кусками.

PS2: версия для MV

//=============================================================================
// CustomGraphicChange.js
//=============================================================================

/*
 * @plugindesc only for Light Crusader
 * @author Caveman
 * 
 * @help This plugin provide change graphic on events as it was in XP
 * 
 *  params:
    # characterIndex - pos in big charset file
    # name - charset name
    # direction - turn (row in charset): 2,4,6,8
    # pattern - pos (col in charset): 0,1,2
    
    functions: 
    - setGraphicName(name, direction, pattern)
    - setGraphic(direction, pattern)
    - setIndexGraphicName(name, characterIndex, direction, pattern)
    - setIndexGraphic(characterIndex, direction, pattern)
    
    use in 'custom route' or 'set move route' as
    this.setGraphic ...
 */
 
 
(function() {
    
    
    Game_CharacterBase.prototype.setGraphicName = function(name, direction, pattern) {
        this._characterName = name;
        this.setGraphic(direction, pattern);
    };
    
    Game_CharacterBase.prototype.setGraphic = function(direction, pattern) {
        this._direction = direction;
        this._pattern = pattern;
        this._originalPattern = pattern
    };
    
    Game_CharacterBase.prototype.setIndexGraphicName = function(name, characterIndex, direction, pattern) {
        this._characterName = name;
        this.setIndexGraphic(characterIndex, direction, pattern);
    };
    
    Game_CharacterBase.prototype.setIndexGraphic = function(characterIndex, direction, pattern) {
        this._characterIndex = characterIndex;
        this._direction = direction;
        this._pattern = pattern;
        this._originalPattern = pattern;
    };
})();

Комментариев нет:

Отправить комментарий