19/03/25 21:11:09.87 MnD9RkpG.net
>>260
> 関数の戻り値に絶対値を割り当てる事はできない
weapon.getWeaponType().getID() はsrpg studioのAPIをコールするための処理であって変数名ではないです。
weapon.getWeaponType().getID() という数値に対して値を代入しようとしているからエラーになる。
これは武器タイプのIDを書き換えたいという意図で書いていると思うけどそれはプラグイン側じゃ不可能、手段が提供されていない。
> 1枚目で装備可能にした武器を相性修正時のみ元と違う武器タイプとして扱わせる
一つ思いついたやり方としては、ダミー武器を設定しておくのはどうでしょう。
例えば、剣なのに斧で計算させたい時のための斧武器を設定しておくという事です。
ただしこの方法だと武器タイプのカスパラにmultipleDummyWeaponId(ダミーとして使用させたい武器ID)を
追加する必要が出てきます。
動作確認全くしないで書きなぐっているので色々間違ってたらスマン
CompatibleCalculator._getCompatibleの外に下記のようなメソッドを作成
与えられた武器からダミー武器を取得する(カスパラの型チェックとかは5chの行数制限にひっかかりそうなのであえて省略)
CompatibleCalculator._getMultipleWeapon = function(weapon) {
var weaponType = weapon.getWeaponType();
var multipleWeaponType = root.getBaseData().getWeaponTypeList(weaponType.getWeaponCategoryType().getId()).getDataFromId(weaponType.getId());
return root.getBaseData().getWeaponList().getDataFromId(multipleWeaponType.custom.multipleDummyWeaponId);
}
weaponTypeActive = weapon.getWeaponType();の直前の行に下記のような処理を加える
// active側ユニットが本来装備できない武器を持っている時にダミーの武器にすり替える
if (!ItemControl.isWeaponTypeAllowed(active.getClass().getEquipmentWeaponTypeReferenceList(), weapon)){
weapon = this._getMultipleWeapon(weapon);
}
// passive側ユニットが本来装備できない武器を持っている時にダミーの武器にすり替える
if(!ItemControl.isWeaponTypeAllowed(passive.getClass().getEquipmentWeaponTypeReferenceList(), weaponPassive)){
weaponPassive = this._getMultipleWeapon(weaponPassive);
}