/*-------------------------------------------------------------------------------------------------- ①武器(アイテム)タイプに所持個数制限を設定できます。 アイテム入手時に所持できない分はストックに送られます。 使用方法: 武器タイプにカスタムパラメータを設定してください。 { limit:1 } limit: 所持できる個数 ②武器(アイテム)に所持個数制限を設定できます。 タイプによらず制限したい場合はこちらを使用してください。 使用方法: 下記MaxWeaponCount(MaxItemCount)を設定してください。 ③武器(アイテム)にサイズを設定できます。 サイズ合計がアイテム所持数を超える場合は①同様に弾かれます。 使用方法: 武器またはアイテムにカスタムパラメータを設定してください。 { size:1 } size:武器、アイテムのサイズ(未設定は1) ※初期設定は全て無効となっています。必要な機能の設定だけしてください ■作成者 wiz ■対応バージョン SRPG Stduio Version:1.288 ■更新履歴 2017/01/07 拠点でのショップとボーナス交換における不具合修正 アイテム交換で空き枠に送ろうとした場合に起こる不具合修正 2017/11/30 イベントでユニットのアイテムを減らせない不具合修正 2018/12/02 サイズ設定を追加 2023/12/15 情報ウィンドウにアイテムのサイズが表示されない不具合修正 武器およびアイテム単位での所持制限を追加 --------------------------------------------------------------------------------------------------*/ (function() { //アイテム情報ウィンドウにサイズを表示するならtrue、しないならfalse var isSizeDisplayable = false; //表示する場合の文字列 StringTable.Item_Size = 'サイズ'; //武器の所持数制限(-1で無制限) var MaxWeaponCount = -1; //アイテムの所持数制限(-1で無制限) var MaxItemCount = -1; //---------------------------------------------------------- //いずれかの制限に引っかかっているか UnitItemControl.isPossessionItemLimited = function(unit, item) { return this.isPossessionItemTypeLimited(unit, item) || this.isPossessionItemCountLimited(unit, item) || this.isPossessionItemSizeLimited(unit, item); }; //unitがitemと同じタイプのものをlimit個以上持っているか UnitItemControl.isPossessionItemTypeLimited = function(unit, item) { if(item === null) { return false; } if(typeof item.getWeaponType().custom.limit !== 'number') { return false; } var i, unitItemCount, count, u_item; unitItemCount = UnitItemControl.getPossessionItemCount(unit); count = 0; for(i=0; i= item.getWeaponType().custom.limit; }; //武器タイプの比較 ItemControl.compareWeaponType = function(item1, item2) { if(item1 === null || item2 === null) { return false; } if(item1.getWeaponType() !== item2.getWeaponType()) { return false; } return true; }; //unitの武器orアイテム所持数が上限値を超えているか UnitItemControl.isPossessionItemCountLimited = function(unit, item) { if(item === null) { return false; } var max; if(item.isWeapon()) { max = MaxWeaponCount; } else { max = MaxItemCount; } if(max < 0) { return false; } var i, maxItemCount, count, u_item; maxItemcount = DataConfig.getMaxUnitItemCount(); count = 0; for(i=0; i= max; }; ItemControl.compareCategory = function(item1, item2) { if(item1 === null || item2 === null) { return false; } if(item1.isWeapon() !== item2.isWeapon()) { return false; } return true; }; //unitのサイズ合計+itemのサイズがアイテム所持数を超えているか UnitItemControl.isPossessionItemSizeLimited = function(unit, item) { var size = item !== null ? ItemControl.getSize(item) : 0; return this.getTotalSize(unit) + size > DataConfig.getMaxUnitItemCount(); }; //unitのitem1をitem2に交換する場合のサイズチェック UnitItemControl.isTradableItemSize = function(unit, item1, item2) { var size1 = item1 !== null ? ItemControl.getSize(item1) : 0; var size2 = item2 !== null ? ItemControl.getSize(item2) : 0; return this.getTotalSize(unit) - size1 + size2 <= DataConfig.getMaxUnitItemCount(); }; //アイテムのサイズ ItemControl.getSize = function(item) { if(item === null) { return 0; } if(typeof item.custom.size !== 'number') { return 1; } return item.custom.size; }; //ユニットのサイズ合計 UnitItemControl.getTotalSize = function(unit) { var i, item; var sizeCount = 0; var count = this.getPossessionItemCount(unit); for(i=0; i