// 自動コンテナver0.1 // 英語?何それ?食えるの? // 耐久 items.smallbag.durability = 10; items.backpack.durability = 20; items.leatherquiver.durability = 40; // 現在のverではゲーム中で設定を変える事も、ON,OFFする事もできません。 // 設定を直した後、再度MODを読み込めば適用する事ができます。 var AutoPutIn_Setting = { arrow: { // グループ。 containerType: ["leatherquiver"], // 対象コンテナ setItem: { default: { DurDamage: 3, MaxDur: 2 }, arrow: { // 個別の設定が無ければデフォルトの設定を適用 DurDamage: 3, // この数値以上、ダメージを受けているとコンテナに入れない。修理用。 MaxDur: 2 // 最大耐久値がこの数以下だとコンテナに入れるようにする。 }, woodenarrow: { DurDamage: 3, MaxDur: 2 }, wroughtironarrow: { DurDamage: 3, MaxDur: 2 }, ironarrow: { DurDamage: 3, MaxDur: 2 } } }, bullet: { containerType: ["smallbag"], setItem: { default: { DurDamage: 3, MaxDur: 2 }, stonebullet: { DurDamage: 3, MaxDur: 2 }, wroughtironbullet: { DurDamage: 3, MaxDur: 2 }, ironbullet: { DurDamage: 3, MaxDur: 2 } } } }; function autoPutInContainer(itemId) { var item = player.invItems[itemId]; var group = ""; var itemType = item.type; for (var i = 0; i < items[itemType].group.length; i++) { if (AutoPutIn_Setting[items[itemType].group[i]]) { group = items[itemType].group[i] break; } } if (group === "") { return; } if (!AutoPutIn_Setting[group]["setItem"]) { return; } if (!AutoPutIn_Setting[group]["setItem"][itemType]) { if(AutoPutIn_Setting[group]["setItem"]["default"]){ itemType = "default"; } else { return; } } if (item.maxdur > AutoPutIn_Setting[group]["setItem"][itemType]["MaxDur"]) { if ((item.maxdur - item.mindur) >= AutoPutIn_Setting[group]["setItem"][itemType]["DurDamage"]) { return; } } var containerId = -1; L: for (var i = 0; i < player.invItems.length; i++) { if (player.invItems[i] !== undefined && player.invItems[i] !== null) { for(var j = 0; j < AutoPutIn_Setting[group]["containerType"].length; j++) { if (player.invItems[i].type === AutoPutIn_Setting[group]["containerType"][j] && player.invItems[i].equipped) { containerId = i; break L; } } } } if (containerId === -1) { return; } var contWeight = 0; var catchingContainer = player.invItems[containerId].container; var containerListLength = catchingContainer.length; for (var spot = 0; spot < containerListLength; spot++) { if (catchingContainer[spot] !== undefined && catchingContainer[spot] !== null) { contWeight += Utilities.roundNumber(items[catchingContainer[spot].type].weight, 1); } } if (Utilities.roundNumber(contWeight + items[item.type].weight, 1) > items[player.invItems[containerId].type].maxWeight) { ui.message("noRoomContainer", 'bad', false); } else { placeItem(item, 'INV', containerId); removeItem(itemId, 'INV', false); if(ui.$containerWindow.dialog("isOpen") && game.containerOpened.containerType === 'INV' && game.containerOpened.id === containerId){ player.actions.openContainer(containerId, 'INV', true); } } } var strFunc = "" + checkUnderPlayer; strFunc = strFunc.replace(/removeItem\(itemOnTile, 'TILE', false\);\r/,"removeItem(itemOnTile, 'TILE', false);autoPutInContainer(player.invItems.length - 1);"); jQuery.globalEval(strFunc); delete strFunc;