Так как в 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: Для тех, кто не понял - это смена графики события как в ХР. Не весь чар, а кусками.
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;
};
})();
Комментариев нет:
Отправить комментарий