139 lines
4.2 KiB
JavaScript
139 lines
4.2 KiB
JavaScript
/*:
|
|
* @plugindesc 装備記憶・ロード用プラグイン
|
|
* @author あいうえお
|
|
* @help 装備を記憶・ロードする機能を実装するためのプラグインです。
|
|
*/
|
|
|
|
(function () {
|
|
"use strict";
|
|
|
|
var Scene_Equip_prototype_update = Scene_Equip.prototype.update;
|
|
Scene_Equip.prototype.update = function () {
|
|
Scene_Equip_prototype_update.call(this);
|
|
//何も選択されていない時に表示させるテキスト
|
|
if (this._helpWindow && this._helpWindow._text == "") {
|
|
this._helpWindow.setText(
|
|
"\\C[14]Shiftキー\\C[0]を押すことで現在のパーティの装備を保存します。\nオプションのおまかせ装備設定\\C[14]保存した装備\\C[0]に反映されます。"
|
|
);
|
|
}
|
|
if (Input.isTriggered("shift")) {
|
|
AudioManager.playSe({ name: "Up4", volume: 100, pitch: 150, pan: 0 });
|
|
if (this._helpWindow) {
|
|
this._helpWindow.setText(
|
|
"\\C[1]現在のパーティの装備が保存されました!\\C[0]\nオプションのおまかせ装備設定\\C[14]保存した装備\\C[0]に反映されます。"
|
|
);
|
|
//現在の装備保存処理
|
|
$gameSystem.saveCurrentEquips();
|
|
}
|
|
}
|
|
};
|
|
|
|
Game_System.prototype.saveCurrentEquips = function () {
|
|
for (var i = 1; i < 9; i++) {
|
|
if (!$gameActors.actor(i)) {
|
|
continue;
|
|
}
|
|
var actor = $gameActors.actor(i);
|
|
var num = Number(180 + i);
|
|
var Jobnum = actor.getJobNumber();
|
|
console.log(num);
|
|
console.log(Jobnum);
|
|
switch (Jobnum) {
|
|
case 1:
|
|
$gameVariables.setValue(Number(num), actor.equips());
|
|
break;
|
|
case 2:
|
|
$gameVariables.setValue(Number(num + 10), actor.equips());
|
|
break;
|
|
case 3:
|
|
$gameVariables.setValue(201, actor.equips());
|
|
break;
|
|
case 4:
|
|
$gameVariables.setValue(202, actor.equips());
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
}
|
|
};
|
|
|
|
Game_Actor.prototype.getJobNumber = function () {
|
|
if (!$dataClasses[this._classId] || !$dataClasses[this._classId].meta) {
|
|
return 0;
|
|
}
|
|
return Number($dataClasses[this._classId].meta.Jobnumber);
|
|
};
|
|
|
|
var Game_Actor_prototype_optimizeEquipments =
|
|
Game_Actor.prototype.optimizeEquipments;
|
|
Game_Actor.prototype.optimizeEquipments = function () {
|
|
if ($gameVariables.value(50) == 6) {
|
|
this.clearEquipments();
|
|
//保存した装備を装備させる処理
|
|
this.getSavedEquips();
|
|
} else {
|
|
Game_Actor_prototype_optimizeEquipments.call(this);
|
|
}
|
|
};
|
|
|
|
Game_Actor.prototype.getSavedEquips = function () {
|
|
if (!this._actorId || !this._classId) {
|
|
return;
|
|
}
|
|
var num = Number(180 + this._actorId);
|
|
var Jobnum = this.getJobNumber();
|
|
var equipObject = [];
|
|
switch (Jobnum) {
|
|
case 1:
|
|
equipObject = $gameVariables.value(Number(num));
|
|
break;
|
|
case 2:
|
|
equipObject = $gameVariables.value(Number(num + 10));
|
|
break;
|
|
case 3:
|
|
equipObject = $gameVariables.value(201);
|
|
break;
|
|
case 4:
|
|
equipObject = $gameVariables.value(202);
|
|
break;
|
|
default:
|
|
break;
|
|
}
|
|
|
|
//バグ対応 二刀のお守りをあらかじめ装備させておく
|
|
for (var i = 0; i < equipObject.length; i++) {
|
|
if (!equipObject[i] || !equipObject[i].id) {
|
|
continue;
|
|
}
|
|
var item = $gameSystem.getItemTypes(equipObject[i], equipObject[i].id);
|
|
if (
|
|
$gameParty.hasItem(item, false) &&
|
|
this.canEquip(item) &&
|
|
item.meta.dualWeapon
|
|
) {
|
|
this.changeEquip(i, item);
|
|
}
|
|
}
|
|
|
|
for (var i = 0; i < equipObject.length; i++) {
|
|
if (!equipObject[i] || !equipObject[i].id) {
|
|
continue;
|
|
}
|
|
var item = $gameSystem.getItemTypes(equipObject[i], equipObject[i].id);
|
|
if ($gameParty.hasItem(item, false) && this.canEquip(item)) {
|
|
this.changeEquip(i, item);
|
|
}
|
|
}
|
|
};
|
|
|
|
Game_System.prototype.getItemTypes = function (type, id) {
|
|
console.log(type.wtypeId);
|
|
console.log(type.atypeId);
|
|
if (type.wtypeId) {
|
|
return $dataWeapons[id];
|
|
} else if (type.atypeId) {
|
|
return $dataArmors[id];
|
|
}
|
|
return null;
|
|
};
|
|
})();
|