236 lines
No EOL
5.3 KiB
JavaScript
236 lines
No EOL
5.3 KiB
JavaScript
/*:
|
|
* @plugindesc Adds more options for waiting in your events.
|
|
* @author SumRndmDde
|
|
*
|
|
* @param SE Wait Buffer
|
|
* @desc This is a guarenteed amount of waiting frames that occur when checking for SE to end.
|
|
* @default 4
|
|
*
|
|
* @help
|
|
*
|
|
* Wait Options
|
|
* Version 1.01
|
|
* SumRndmDde
|
|
*
|
|
*
|
|
* This is a plugin that adds more options for waiting during events.
|
|
*
|
|
*
|
|
* ==========================================================================
|
|
* Plugin Commands
|
|
* ==========================================================================
|
|
*
|
|
* How to wait for a specific amount of time:
|
|
*
|
|
*
|
|
* Wait [number] Frames
|
|
*
|
|
* Allows you to wait for a certain amount of frames.
|
|
*
|
|
*
|
|
* Wait [number] Seconds
|
|
*
|
|
* Allows you to wait for a certain amount of seconds.
|
|
*
|
|
*
|
|
* Wait [number] Minutes
|
|
*
|
|
* Allows you to wait for a certain amount of minutes.
|
|
*
|
|
*
|
|
* ==========================================================================
|
|
*
|
|
*
|
|
* Wait for Route
|
|
*
|
|
* Waits for all movement routes to complete.
|
|
*
|
|
*
|
|
* Wait for Animation
|
|
*
|
|
* Waits for all animations to complete.
|
|
*
|
|
*
|
|
* Wait for Balloon
|
|
*
|
|
* Waits for all balloon animations to complete.
|
|
*
|
|
*
|
|
* Wait for Message
|
|
*
|
|
* Waits for all messages to complete (best for parallel processes).
|
|
*
|
|
*
|
|
* Wait for Transfer
|
|
*
|
|
* Waits for map transfer to complete
|
|
*
|
|
*
|
|
* Wait for Scroll
|
|
*
|
|
* Waits for scrolling to complete.
|
|
*
|
|
*
|
|
* Wait for Gather
|
|
*
|
|
* Waits for all followers to gather.
|
|
*
|
|
*
|
|
* Wait for Action
|
|
*
|
|
* Waits for battle action to complete.
|
|
*
|
|
*
|
|
* Wait for Video
|
|
*
|
|
* Waits for all videos to complete playing.
|
|
*
|
|
*
|
|
* Wait for Image
|
|
*
|
|
* Waits for images to load.
|
|
*
|
|
*
|
|
* Wait for SE
|
|
*
|
|
* Waits for all sound effects to stop playing.
|
|
*
|
|
*
|
|
* Wait for ME
|
|
*
|
|
* Waits for all music effects to stop playing.
|
|
*
|
|
*
|
|
* ==========================================================================
|
|
*
|
|
*
|
|
* Cancel Wait
|
|
*
|
|
* Cancels all waiting.
|
|
*
|
|
*
|
|
* ==========================================================================
|
|
* How to Make Custom Waiting Conditions
|
|
* ==========================================================================
|
|
*
|
|
* Wait for Condition [condition]
|
|
*
|
|
* Waits for a custom coindition.
|
|
*
|
|
*
|
|
* Example:
|
|
*
|
|
* Wait for Condition $gameVariable.value(3) > 5
|
|
*
|
|
* This will wait until Variable 3 is greater than 5.
|
|
*
|
|
*
|
|
* ==========================================================================
|
|
* End of Help File
|
|
* ==========================================================================
|
|
*
|
|
* Welcome to the bottom of the Help file.
|
|
*
|
|
*
|
|
* Thanks for reading!
|
|
* If you have questions, or if you enjoyed this Plugin, please check
|
|
* out my YouTube channel!
|
|
*
|
|
* https://www.youtube.com/c/SumRndmDde
|
|
*
|
|
*
|
|
* Until next time,
|
|
* ~ SumRndmDde
|
|
*
|
|
*/
|
|
|
|
var SRD = SRD || {};
|
|
SRD.WaitOptions = SRD.WaitOptions || {};
|
|
|
|
var Imported = Imported || {};
|
|
Imported["SumRndmDde Wait Options"] = 1.01;
|
|
|
|
(function(_) {
|
|
|
|
"use strict";
|
|
|
|
var params = PluginManager.parameters('SRD_WaitOptions');
|
|
|
|
_.seWait = parseInt(params['SE Wait Buffer']);
|
|
|
|
var _Game_Interpreter_clear = Game_Interpreter.prototype.clear;
|
|
Game_Interpreter.prototype.clear = function() {
|
|
_Game_Interpreter_clear.apply(this, arguments);
|
|
this._waitConditions = [];
|
|
};
|
|
|
|
var _Game_Interpreter_updateWaitMode = Game_Interpreter.prototype.updateWaitMode;
|
|
Game_Interpreter.prototype.updateWaitMode = function() {
|
|
if(this._waitMode === 'se') {
|
|
if(AudioManager._seBuffers.length === 0) {
|
|
this._waitMode = '';
|
|
} else {
|
|
var playing = false;
|
|
for(var i = 0; i < AudioManager._seBuffers.length; i++) {
|
|
if(AudioManager._seBuffers[i].isPlaying()) {
|
|
playing = true;
|
|
}
|
|
}
|
|
if(playing) return true;
|
|
}
|
|
} else if(this._waitMode === 'me') {
|
|
if(AudioManager._meBuffer) {
|
|
return true;
|
|
} else {
|
|
this._waitMode = '';
|
|
}
|
|
}
|
|
var waiting = _Game_Interpreter_updateWaitMode.apply(this, arguments);
|
|
for(var i = 0; i < this._waitConditions.length; i++) {
|
|
if(!eval(this._waitConditions[i])) {
|
|
waiting = true;
|
|
if(!this._waitMode) this._waitMode = 'condition';
|
|
break;
|
|
} else {
|
|
this._waitConditions.pop(i, 1);
|
|
i--;
|
|
}
|
|
}
|
|
|
|
return waiting;
|
|
};
|
|
|
|
var _Game_Interpreter_pluginCommand = Game_Interpreter.prototype.pluginCommand;
|
|
Game_Interpreter.prototype.pluginCommand = function(command, args) {
|
|
_Game_Interpreter_pluginCommand.apply(this, arguments);
|
|
if(command.trim().toLowerCase() === 'wait') {
|
|
if(args[0].trim().toLowerCase() === 'for') {
|
|
if(args[1].trim().toLowerCase() === 'condition') {
|
|
var condition = '';
|
|
for(var i = 2; i < args.length; i++) {
|
|
condition += args[i] + ' ';
|
|
}
|
|
this._waitConditions.push(condition);
|
|
} else {
|
|
this.setWaitMode(args[1].trim().toLowerCase());
|
|
if(this._waitMode === 'se') {
|
|
this.wait(_.seWait);
|
|
}
|
|
}
|
|
} else if(args[0].match(/(\d+)/i)) {
|
|
var value = parseInt(RegExp.$1);
|
|
if(args[1].trim().toLowerCase() === 'frames') {
|
|
this.wait(value);
|
|
} else if(args[1].trim().toLowerCase() === 'seconds') {
|
|
this.wait(value * 60);
|
|
} else if(args[1].trim().toLowerCase() === 'minutes') {
|
|
this.wait(value * 60 * 60);
|
|
}
|
|
}
|
|
} else if(command.trim().toLowerCase() === 'cancel' && args[0].trim().toLowerCase() === 'wait') {
|
|
this.setWaitMode('');
|
|
this.wait(0);
|
|
}
|
|
};
|
|
|
|
})(SRD.WaitOptions); |