Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=============================================================================
- // Looping Animations
- // by Shaz
- // Last Updated: 2015.10.30
- //
- // Revisions:
- // 2015.10.30 Allow animations to play below/behind character
- //=============================================================================
- /*:
- * @plugindesc Allows animations on the map to loop
- * Also allows animations (normal or looping) to play below/behind characters
- * @author Shaz
- *
- * @help
- *
- * Plugin Command:
- * LoopAnim start event animid # Start a looping animation on an event
- * LoopAnim stop event # Stop animation loop
- *
- * SetAnimLoc event location # Set location of animation
- *
- * event = number for specific event
- * event = 0 for "this" event
- * event = -1 for player
- * event = $gameVariables.value(x) to get the event id from variable x
- *
- * location = below or behind - play animation behind character sprite
- * location = above or front - play animation in front of character sprite
- * default is to play animation in front of character sprite
- */
- (function() {
- var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
- Game_Interpreter.prototype.pluginCommand = function(command, args) {
- _Game_Interpreter_pluginCommand.call(this, command, args);
- if (command.toUpperCase() === 'LOOPANIM') {
- var character = this.character(eval(args[1]));
- if (character) {
- switch (args[0].toUpperCase()) {
- case 'START':
- character.loopAnimStart(args[2]);
- break;
- case 'STOP':
- character.loopAnimStop();
- }
- }
- }
- if (command.toUpperCase() === 'SETANIMLOC') {
- var character = this.character(eval(args[0]));
- if (character) {
- character.setAnimLoc(args[1] || 'above');
- }
- }
- }
- var _Game_CharacterBase_initMembers = Game_CharacterBase.prototype.initMembers;
- Game_CharacterBase.prototype.initMembers = function() {
- _Game_CharacterBase_initMembers.call(this);
- this._loopAnimId = 0;
- this._animZ = 8;
- };
- Game_CharacterBase.prototype.loopAnimStart = function(animId) {
- this._loopAnimId = animId;
- this.requestAnimation(animId);
- };
- Game_CharacterBase.prototype.loopAnimStop = function() {
- this._loopAnimId = 0;
- };
- Game_CharacterBase.prototype.setAnimLoc = function(location) {
- switch (location.toUpperCase()) {
- case 'BELOW':
- case 'BEHIND':
- this._animZ = 0;
- break;
- default:
- this._animZ = 8;
- }
- }
- Game_CharacterBase.prototype.animZ = function() {
- return this._animZ;
- }
- Sprite_Character.prototype.isAnimationPlaying = function() {
- if (this._animationSprites.length > 0) {
- result = true;
- } else if (this._character._loopAnimId > 0) {
- this._character.requestAnimation(this._character._loopAnimId);
- this.setupAnimation();
- this._animationSprites[this._animationSprites.length - 1].z = this._character.animZ();
- result = true;
- } else {
- result = false;
- };
- return result;
- };
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement