princess-synergy/www/js/plugins/JsScript201Set.js
2026-02-05 14:03:22 -06:00

76 lines
2.3 KiB
JavaScript

// StopSelfMovementWithPlayer.js (ver 1.02)
/*:
* @plugindesc
* @author Sasuke KANNAZUKI
*
* @param Varidate Switch ID
* @desc It works only when the id's switch is on. If set 0, always works.
* @default 0
*
* @help
*/
/*:ja
* @plugindesc
* @author 神無月サスケ
*
* @param Varidate Switch ID
* @desc このIDのスイッチがONの時に有効になります。0を指定すると常に有効です。
* @default 0
*
* @help
*/
(function() {
var parameters = PluginManager.parameters('JsScript201Set');
var validateSwitchId = Number(parameters['Varidate Switch ID'] || 0);
var _Game_Interpreter_pluginCommand =
Game_Interpreter.prototype.pluginCommand;
Game_Interpreter.prototype.pluginCommand = function(command, args) {
_Game_Interpreter_pluginCommand.call(this, command, args);
if (command === 'JsScript201Set') {
switch (args[0]) {
case 'on':
case 'ON':
$gameSystem.forceStopEvent = true;
break;
case 'off':
case 'OFF':
$gameSystem.forceStopEvent = false;
break;
}
}
};
var _Game_System_initialize = Game_System.prototype.initialize;
Game_System.prototype.initialize = function () {
_Game_System_initialize.call(this);
this.forceStopEvent = false;
};
var isStopWithPlayerMode = function () {
return validateSwitchId === 0 || !$gameSwitches.value(validateSwitchId);
};
var shouldStopWithPlayer = function () {
if ($gameSystem.forceStopEvent) {
return true;
}
if (isStopWithPlayerMode()) {
var mw;
if ($gameMap.isEventRunning()) {
return true;
} else if ((mw = SceneManager._scene._messageWindow) && mw.isOpen()) {
return true;
}
}
return false;
};
var _Game_CharacterBase_updateStop = Game_CharacterBase.prototype.updateStop;
Game_CharacterBase.prototype.updateStop = function() {
if (!shouldStopWithPlayer()) {
_Game_CharacterBase_updateStop.call(this);
}
};
var _Game_Event_updateSelfMovement = Game_Event.prototype.updateSelfMovement;
Game_Event.prototype.updateSelfMovement = function() {
if (!shouldStopWithPlayer()) {
_Game_Event_updateSelfMovement.call(this);
}
};
})();