document.addEventListener("DOMContentLoaded", function () { //fire functions before page load drawToPage(); console.log("loading finished"); mp.trigger("CEF:BrowserLoadedTrade"); }); var vehicleExtraSlot = 0; function setItems(itemIdArr1, itemAmountArr1, vehicleExtraSlot1) { var itemIdArr = JSON.parse(itemIdArr1); vehicleExtraSlot = JSON.parse(vehicleExtraSlot1); var itemAmountArr = JSON.parse(itemAmountArr1); var itemAmountArr = JSON.parse(itemAmountArr1); for (var i = 0; i < itemIdArr.length; i++) { for (x = 0; x < itemAmountArr[i]; x++) { commands.addToPlayerInv(itemIdArr[i]); console.log(i); } } } var holz = { name: "Holz", rarity: 'common', selected: 'false', usable: 'true', amount: 1, currentWeight: 0.65, stackable: 'true', object: 'true', itemId: 1, img: "package://assets/img/items/wood.svg" } var hamburger = { name: "Hamburger", rarity: 'common', selected: 'false', usable: 'true', amount: 1, currentWeight: 0.3, stackable: 'true', object: 'true', itemId: 2, img: "package://assets/img/items/burger.svg" } var cocaine = { name: "Koks", rarity: 'common', selected: 'false', usable: 'true', amount: 1, currentWeight: 0.05, stackable: 'true', object: 'true', itemId: 3, img: "package://assets/img/items/cocaine.svg" } var cannabis = { name: "Cannabis", rarity: 'common', selected: 'false', usable: 'true', amount: 1, currentWeight: 0.05, stackable: 'true', object: 'true', itemId: 4, img: "package://assets/img/items/cannabis.svg" } var flunder = { name: "Flunder", weight: 7.7, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 5, img: 'package://assets/img/items/flounder.svg' } var aal = { name: "Aal", weight: 3.6, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 6, img: 'package://assets/img/items/aal.svg' } var barsch = { name: "Barsch", weight: 2.6, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 7, img: 'package://assets/img/items/perch.svg' } var lachs = { name: "Lachs", weight: 4.2, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 8, img: 'package://assets/img/items/salmon.svg' } var thunfisch = { name: "Thunfisch", weight: 11, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 9, img: 'package://assets/img/items/salmon.svg' } var zander = { name: "Zander", weight: 5, currentWeight: 1, rarity: 'fishes', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 10, img: 'package://assets/img/items/zander.svg' } var allItems = [holz, hamburger, cocaine, cannabis, flunder, aal, barsch, lachs, thunfisch, zander]; //////////////////////// // Player Invenotry // //////////////////////// var vehInventory = []; var EmptySlot = { name: 'blankSpace', rarity: '', object: 'false' }; function addToVehInvenotry(addItem) { var cloneItem = Object.assign({}, addItem); var getExsistingId = cloneItem.itemId; var unfininshedStack; //Checks to see if any items can be stacked, the location, and stack amount for (var i = 0; i < vehInventory.length; i++) { if (vehInventory[i].itemId === getExsistingId && cloneItem.stackable === 'true' && vehInventory[i].amount < 10) { unfininshedStack = i break; } } if (cloneItem.currentWeight * cloneItem.amount + weightInv >= 25) { return; } //Adds item to inventory for (var i = 0; i < vehInventory.length; i++) { if (unfininshedStack != undefined) { if (vehInventory[unfininshedStack].amount + cloneItem.amount <= 10) { vehInventory[unfininshedStack].amount += cloneItem.amount; unfininshedStack = undefined; drawToPage(); moveItemsInv(); break; } else if (vehInventory[unfininshedStack].amount + cloneItem.amount > 10) { var stackRemainder = 10 - vehInventory[unfininshedStack].amount; vehInventory[unfininshedStack].amount += stackRemainder; cloneItem.amount -= stackRemainder; var recycleCloned = cloneItem; addToVehInvenotry(recycleCloned); unfininshedStack = undefined; drawToPage(); moveItemsInv(); break; } } else if (cloneItem.amount > 10 && vehInventory[i].object === 'false') { var reduceCloneAmount = Object.assign({}, cloneItem); reduceCloneAmount.amount = 10; vehInventory[i] = reduceCloneAmount; cloneItem.amount -= 10; addToVehInvenotry(cloneItem); drawToPage(); moveItemsInv(); break; } else if (unfininshedStack == undefined && vehInventory[i].object === 'false') { vehInventory[i] = cloneItem; drawToPage(); moveItemsInv(); break; } } } var getItemSlotData; function getAllItemSlotData() { getItemSlotData = document.getElementsByClassName('itemSlot'); } var currentSelected; function refreshAllCurrentItems() { var remove = document.getElementById('hanContainer'); while (remove.firstChild) remove.removeChild(remove.firstChild); } function fillOutEmptyInv() { for (var i = 0; i < 12 + vehicleExtraSlot; i++) { if (!vehInventory[i]) { vehInventory.push(EmptySlot); drawToPage(); } } } var weightInv = 0; function drawToPage() { refreshAllCurrentItems(); weightInv = 0; for (var i = 0; i < vehInventory.length; i++) { if (vehInventory[i].selected == 'true') { var className = ' selected'; } else { var className = ''; } if (i >= 60) { //Keeps inventory set to 10 items max console.log('Inventory is full!') return; } else { //creates item element var item = document.createElement("div"); item.className = "itemSlot " + vehInventory[i].rarity + className; item.setAttribute("data-value", i); item.setAttribute("inv-type", 'p'); item.setAttribute("object", vehInventory[i].object); item.setAttribute('style', 'background: url(' + vehInventory[i].img + '); background-size: contain;'); //show element amounts var itemAmount = document.createElement("div"); itemAmount.className = "itemAmount"; var itemAmountDisplay = document.createElement("p"); if (vehInventory[i].amount) { var itemDisplayStatsName = document.createTextNode(vehInventory[i].amount); } else { var itemDisplayStatsName = document.createTextNode(''); } item.appendChild(itemAmount); itemAmount.appendChild(itemAmountDisplay); itemAmountDisplay.appendChild(itemDisplayStatsName); //adds item element or elements document.getElementById("hanContainer").appendChild(item); //creates item display information if (vehInventory[i].object === 'true') { var itemDesc = document.createElement("div"); var itemDescTitle = document.createElement("h3"); var getItemTitle = document.createTextNode(vehInventory[i].name + " (" + Math.round(vehInventory[i].currentWeight * vehInventory[i].amount * 100) / 100 + " kg)"); itemDesc.className = "itemDesc"; item.appendChild(itemDesc); itemDesc.appendChild(itemDescTitle); itemDescTitle.appendChild(getItemTitle); weightInv += vehInventory[i].currentWeight * vehInventory[i].amount; document.getElementById('gewicht').innerText = Math.round(weightInv * 100) / 100 + "/25 kg"; } } } fillOutEmptyInv(); } /////////////////// // Dev Commands // /////////////////// var commands = { addToPlayerInv: function (itemGiveId) { for (var i = 0; i < allItems.length; i++) { if (allItems[i].itemId === itemGiveId) { addToVehInvenotry(allItems[i]); } } }, clearPlayerInv: function () { vehInventory = []; drawToPage(); }, } //Handel Akzeptierenfenster $("#buttonakzeptieren").click(function () { mp.trigger('CEF:acceptTrade'); }); $("#buttonablehnen").click(function () { mp.trigger('CEF:declineTrade'); });