235 lines
7.7 KiB
JavaScript
235 lines
7.7 KiB
JavaScript
/*:
|
||
* @plugindesc
|
||
* @author ぬぷ竜
|
||
*/
|
||
let SCol = {
|
||
Def: "\\C[0]" , Def0: "\\ow[0]\\C[0]" ,
|
||
Blk: "\\C[15]" , Blk0: "\\ow[0]\\C[15]" ,
|
||
Red: "\\C[10]" , Red0: "\\ow[0]\\C[10]" ,
|
||
Grn: "\\C[29]" , Grn0: "\\ow[0]\\C[29]" ,
|
||
Blu: "\\C[23]" , Blu0: "\\ow[0]\\C[23]" ,
|
||
Yel: "\\C[17]" , Yel0: "\\ow[0]\\C[17]" ,
|
||
Ppr: "\\C[27]" , Ppr0: "\\ow[0]\\C[27]"
|
||
};
|
||
let SWCol = {
|
||
Wht: "\\oc[rgb(255,255,255)]",
|
||
Blk: "\\oc[rgb(0,0,0)]",
|
||
Red: "\\oc[rgb(255,0,0)]",
|
||
Grn: "\\oc[rgb(0,255,0)]",
|
||
Blu: "\\oc[rgb(0,0,255)]",
|
||
Yel: "\\oc[rgb(255,255,0)]"
|
||
}
|
||
let SColSet = {
|
||
BlkW : SCol.Blk + SWCol.Wht
|
||
}
|
||
Game_Interpreter.prototype.GameFileSave = function (_SaveNo) {
|
||
let args = new Array("save", String(_SaveNo));
|
||
this.pluginCommand("SaveCommand", args);
|
||
};
|
||
Game_Interpreter.prototype.GameFileLoad = function (_SaveNo) {
|
||
let args = new Array("load", String(_SaveNo));
|
||
this.pluginCommand("SaveCommand", args);
|
||
};
|
||
Game_Interpreter.prototype.UTA_Save = function () {
|
||
let args = new Array("save");
|
||
this.pluginCommand("CommonSave", args);
|
||
};
|
||
Game_Interpreter.prototype.UTA_Load = function () {
|
||
let args = new Array("load");
|
||
this.pluginCommand("CommonSave", args);
|
||
};
|
||
let ErrLogPic = PVS_MaxPicNo - 10;
|
||
let N_ErrMsg = [];
|
||
let N_ErrViewFlg = false;
|
||
let NErrPos = new Pos2D(0, 0);
|
||
let Nupu_ErrMapMoveCnt = 0;
|
||
let Nupu_ErrLogUpdate = Game_Interpreter.prototype.NUpdate;
|
||
Game_Interpreter.prototype.NUpdate = function () {
|
||
Nupu_ErrLogUpdate.call(this);
|
||
if (N_ErrMsg.length != 0 && !N_ErrViewFlg) {
|
||
N_ErrViewFlg = true;
|
||
Nupu_ErrMapMoveCnt = 2;
|
||
this.SetPict(ErrLogPic, "system/ErrBack", NErrPos._x, NErrPos._y);
|
||
D_Text_Cng_font = "";
|
||
let fseSet = "\\ow[0]"
|
||
for (let ei = 0; ei <= N_ErrMsg.length - 1; ei++) {
|
||
this.SetPicStr(ErrLogPic + 1 + ei, fseSet + N_ErrMsg[ei], 16, NErrPos._x + 34, NErrPos._y + 52 + (22 * ei));
|
||
if (ei == 8) {
|
||
break;
|
||
}
|
||
}
|
||
D_Text_Cng_font = "";
|
||
}
|
||
if (Input.isTriggered('tab')) {
|
||
N_ErrViewFlg = false;
|
||
N_ErrMsg = [];
|
||
for (let ei = ErrLogPic; ei <= ErrLogPic + 10; ei++) {
|
||
this.DelPict(ei);
|
||
}
|
||
}
|
||
}
|
||
let Nupu_Yanfly_Err = Yanfly.Util.displayError;
|
||
Yanfly.Util.displayError = function (e, code, message) {
|
||
try {
|
||
Nupu_Yanfly_Err.call(this, e, code, message);
|
||
if (!N_ErrViewFlg) {
|
||
N_ErrMsg = e.stack.split('\n');
|
||
N_ErrMsg.unshift(e.message);
|
||
for (let ei = 2; ei <= N_ErrMsg.length - 1; ei++) {
|
||
N_ErrMsg[ei] = N_ErrMsg[ei].slice(-50);
|
||
}
|
||
}
|
||
} catch(ex) {
|
||
}
|
||
}
|
||
let Nupu_Err_performTransfer = Game_Player.prototype.performTransfer;
|
||
Game_Player.prototype.performTransfer = function () {
|
||
Nupu_Err_performTransfer.call(this);
|
||
Nupu_ErrMapMoveCnt--;
|
||
if (Nupu_ErrMapMoveCnt <= 0) {
|
||
DelPictSpan(ErrLogPic , ErrLogPic + 1 + 8);
|
||
}
|
||
}
|
||
let WebPageOpen = function (_URL) {
|
||
let url = _URL;
|
||
if (Utils.isNwjs()) {
|
||
let exec = require('child_process').exec;
|
||
switch (process.platform) {
|
||
case 'win32':
|
||
exec('rundll32.exe url.dll,FileProtocolHandler "' + url + '"');
|
||
break;
|
||
default:
|
||
exec('open "' + url + '"');
|
||
break;
|
||
}
|
||
} else {
|
||
window.open(url);
|
||
}
|
||
}
|
||
let Nupu_onKeyDown = Input._onKeyDown;
|
||
Input._onKeyDown = function (event) {
|
||
//console.log(event.keyCode); //ここをコメントに戻すと表示されるようになる。
|
||
Nupu_onKeyDown.call(this, event);
|
||
};
|
||
function ErrConsole(_ErrArr) {
|
||
let outStr = "Err:";
|
||
for (let i = 0; i <= _ErrArr.length - 1; i++) {
|
||
outStr += _ErrArr[i] + ":";
|
||
}
|
||
console.log(outStr);
|
||
}
|
||
let Nupu_ImgConsole = Game_Interpreter.prototype.NUpdate;
|
||
Game_Interpreter.prototype.NUpdate = function () {
|
||
Nupu_ImgConsole.call(this);
|
||
if (i_ConStr != ""){
|
||
this.SetPicStr(ErrLogPic, i_ConStr, 16, 10, 10);
|
||
i_ConStr = "";
|
||
}
|
||
}
|
||
let i_ConStr = "";
|
||
function i_console(_str){
|
||
if (!DbgFlg) return;
|
||
i_ConStr = _str;
|
||
}
|
||
let isFastOff = false;
|
||
Scene_Map.prototype.isFastForward = function () {
|
||
if(isFastOff) return false;
|
||
return ($gameMap.isEventRunning() && !SceneManager.isSceneChanging() &&
|
||
(Input.isLongPressed('ok') || TouchInput.isLongPressed() || Input.isPressed('control')));
|
||
};
|
||
let isFastForward = function () {
|
||
return (Input.isLongPressed('ok') || TouchInput.isLongPressed() || Input.isPressed('control'));
|
||
}
|
||
let MapDataView = function () {
|
||
let _mapId = $gameMap.mapId();
|
||
for (var i = 1; i < $dataMapInfos.length; i++) {
|
||
var mapInfo = $dataMapInfos[i];
|
||
if (mapInfo.id == _mapId) {
|
||
console.log("Map"+ mapInfo.id + ":" + mapInfo.name);
|
||
console.log(mapInfo);
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
//使用方法:let sRand = SeedRand(Seed値); //乱数の作成を行う
|
||
//sRand.get(); //乱数の取得
|
||
class SeedRand {
|
||
constructor(seed = 88675123) {
|
||
this.x = 123456789;
|
||
this.y = 362436069;
|
||
this.z = 521288629;
|
||
this.w = seed;
|
||
}
|
||
next() {
|
||
let t;
|
||
t = this.x ^ (this.x << 11);
|
||
this.x = this.y; this.y = this.z; this.z = this.w;
|
||
return this.w = (this.w ^ (this.w >>> 19)) ^ (t ^ (t >>> 8));
|
||
}
|
||
random() {
|
||
return Math.random();
|
||
// const r = Math.abs(this.next());
|
||
// return (min + (r % (max + 1 - min))) / max;
|
||
}
|
||
}
|
||
let SaveFolCngName = "";
|
||
StorageManager.localFileDirectoryPath = function(_cngFlg) {
|
||
_cngFlg = typeof _cngFlg !== 'undefined' ? _cngFlg : false;
|
||
let path = require('path');
|
||
let base = path.dirname(process.mainModule.filename);
|
||
if(SaveFolCngName != "" && _cngFlg){
|
||
var loadFolName = SaveFolCngName;
|
||
return path.join(base, loadFolName + '/');
|
||
}
|
||
return path.join(base, 'save/');
|
||
};
|
||
StorageManager.localFilePath = function(savefileId) {
|
||
var name;
|
||
let _cngFlg = false;
|
||
if (savefileId < 0) {
|
||
name = 'config.rpgsave';
|
||
} else if (savefileId === 0) {
|
||
name = 'global.rpgsave';
|
||
_cngFlg = true;
|
||
} else {
|
||
name = 'file%1.rpgsave'.format(savefileId);
|
||
_cngFlg = true;
|
||
}
|
||
return this.localFileDirectoryPath(_cngFlg) + name;
|
||
};
|
||
let NRandGet = function(_MaxNo){
|
||
return Math.floor(Math.random() * (_MaxNo + 1));
|
||
}
|
||
let Debug_MakeTxt = function (_path , _str) {
|
||
//使用例:Debug_MakeTxt("Z_Debug.txt" , "Textファイル中に記述する内容");
|
||
let fs = require("fs");
|
||
fs.writeFileSync(_path, _str, (err) => {
|
||
if (err) throw err;
|
||
});
|
||
}
|
||
let ErrLog = [];
|
||
let Exit_FuncSetting = function (){
|
||
let fs = require("fs");
|
||
process.on("exit", function() {
|
||
if (ErrLog.length == 0) return;
|
||
let _ExitStr = "";
|
||
for (let i = 0; i <= ErrLog.length - 1; i++) {
|
||
_ExitStr += ErrLog[i] + "\n";
|
||
}
|
||
let dt = new Date();
|
||
let _FileName = "ErrLog_" + dt.getMonth() + dt.getDay() + dt.getHours() + dt.getMinutes();
|
||
Debug_MakeTxt(_FileName + ".txt" , _ExitStr);
|
||
})
|
||
process.on("SIGINT", function () {
|
||
process.exit(0);
|
||
});
|
||
setInterval(function(){}, 10000);
|
||
}
|
||
function replaceArrayElements(array, targetId, sourceId) {
|
||
return array.reduce((resultArray, element, id, originalArray) => [
|
||
...resultArray,
|
||
id === targetId ? originalArray[sourceId] :
|
||
id === sourceId ? originalArray[targetId] :
|
||
element
|
||
], []);
|
||
}
|