Yeah. This happens.
I should probably warn about having your nonfrozen characters on a second character set png.
I actually have a modified rotateHue function I made for another script that caches the original bitmap before rotating if you need it.
Now that you mention this conundrum, I realize calling rotate hue on two same char set characters will rotate the hue multiple secondary times too.
EDIT:
Maybe something like this will help by event script...
PHP:
for(var i = 0; i < $gameMap._events.length; i++){
var bitmap = $gameMap._events[i].bitmap;
if(bitmap._isBlue === undefined || !bitmap._isBlue) {
bitmap._isBlue = true;
bitmap.rotateHue(20); // 20 is just an example
}
}
Then to undo.
PHP:
for(var i = 0; i < $gameMap._events.length; i++){
var bitmap = $gameMap._events[i].bitmap;
if(bitmap._isBlue !== undefined && bitmap._isBlue) {
bitmap._isBlue = false;
bitmap.rotateHue(-20); // -20 is just an example
}
}
__________________________________________________________________________________
EDIT2: I played around with it and I discovered a simple solution way to change hue and have it as a actual separate cached sprite through character name.
This is a totally different plugin so if you prefer this way, ignore the previous plugin.
PHP:
Sprite_Character.prototype.setCharacterBitmap = function() {
var hue = 0;
if(this._characterName.match(/:\d+$/) !== null) {
var data = this._characterName.split(":");
this._characterName = data[0];
hue = parseInt(data[1].replace(/\D+/g,""));
}
this.bitmap = ImageManager.loadCharacter(this._characterName, hue);
this._isBigCharacter = ImageManager.isBigCharacter(this._characterName);
};
Then just change the character name in event script like so...
PHP:
$gameMap._events[this._eventId]._characterName += ":180";
Name change triggers an update and the new name gets reverted back to old, but the update triggers a hue change. The :180 is the new hue and it can be anything from 0 - 360.
This way only changes the character sprite and not the whole sprite sheet.
To do all events at once...
PHP:
for(var i = 0; i < $gameMap._events.length; i++){
$gameMap._events[i]._characterName += ":180";
}