$(document).ready(function () { //fire functions before page load drawToPage(); console.log("loading finished"); mp.trigger("CEF:BrowserLoadedTrade"); }); function setItems(itemIdArr1, itemAmountArr1, money1) { var itemIdArr = JSON.parse(itemIdArr1); var money = JSON.parse(money1); var itemAmountArr = JSON.parse(itemAmountArr1); document.getElementById('gewicht').innerText = 'Preis: '+money+'$'; 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 fish = { name: "Fisch", weight: 1, currentWeight: 1, dropweight: function () { var randomweight = Math.floor((Math.random() * 10) + 1); this.weight = randomweight; this.currentWeight = randomweight; }, def: 15, rarity: 'common', statSlots: [], runes: [], amount: 1, usable: 'false', selected: 'false', stackable: 'false', object: 'true', itemId: 1, img: 'package://assets/img/items/fish.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 allItems = [fish, hamburger, cocaine, cannabis]; //////////////////////// // Player Invenotry // //////////////////////// var playerInventory = []; var EmptySlot = { name: 'blankSpace', rarity: '', object: 'false' }; function addToInvenotry(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 < playerInventory.length; i++) { if (playerInventory[i].itemId === getExsistingId && cloneItem.stackable === 'true' && playerInventory[i].amount < 10) { unfininshedStack = i break; } } if (cloneItem.currentWeight * cloneItem.amount + weightInv >= 25) { return; } //Adds item to inventory for (var i = 0; i < playerInventory.length; i++) { if (unfininshedStack != undefined) { if (playerInventory[unfininshedStack].amount + cloneItem.amount <= 10) { playerInventory[unfininshedStack].amount += cloneItem.amount; unfininshedStack = undefined; drawToPage(); break; } else if (playerInventory[unfininshedStack].amount + cloneItem.amount > 10) { var stackRemainder = 10 - playerInventory[unfininshedStack].amount; playerInventory[unfininshedStack].amount += stackRemainder; cloneItem.amount -= stackRemainder; var recycleCloned = cloneItem; addToInvenotry(recycleCloned); unfininshedStack = undefined; drawToPage(); break; } } else if (cloneItem.amount > 10 && playerInventory[i].object === 'false') { var reduceCloneAmount = Object.assign({}, cloneItem); reduceCloneAmount.amount = 10; playerInventory[i] = reduceCloneAmount; cloneItem.amount -= 10; addToInvenotry(cloneItem); drawToPage(); break; } else if (unfininshedStack == undefined && playerInventory[i].object === 'false') { playerInventory[i] = cloneItem; drawToPage(); break; } } } var getItemSlotData; function getAllItemSlotData() { getItemSlotData = document.getElementsByClassName('itemSlot'); } var currentSelected; function refreshAllCurrentItems() { var remove = document.getElementById('invContainer'); while (remove.firstChild) remove.removeChild(remove.firstChild); } function fillOutEmptyInv() { for (var i = 0; i < 6; i++) { if (!playerInventory[i]) { playerInventory.push(EmptySlot); drawToPage(); } } } var weightInv = 0; function drawToPage() { refreshAllCurrentItems(); weightInv = 0; for (var i = 0; i < playerInventory.length; i++) { if (playerInventory[i].selected == 'true') { var className = ' selected'; } else { var className = ''; } if (i >= 6) { //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 " + playerInventory[i].rarity + className; item.setAttribute("data-value", i); item.setAttribute("inv-type", 'p'); item.setAttribute("object", playerInventory[i].object); item.setAttribute('style', 'background: url(' + playerInventory[i].img + '); background-size: contain;'); //show element amounts var itemAmount = document.createElement("div"); itemAmount.className = "itemAmount"; var itemAmountDisplay = document.createElement("p"); if (playerInventory[i].amount) { var itemDisplayStatsName = document.createTextNode(playerInventory[i].amount); } else { var itemDisplayStatsName = document.createTextNode(''); } item.appendChild(itemAmount); itemAmount.appendChild(itemAmountDisplay); itemAmountDisplay.appendChild(itemDisplayStatsName); //adds item element or elements document.getElementById("invContainer").appendChild(item); //creates item display information if (playerInventory[i].object === 'true') { var itemDesc = document.createElement("div"); var itemDescTitle = document.createElement("h3"); var getItemTitle = document.createTextNode(playerInventory[i].name + " (" + Math.round(playerInventory[i].currentWeight * playerInventory[i].amount * 100) / 100 + " kg)"); itemDesc.className = "itemDesc"; item.appendChild(itemDesc); itemDesc.appendChild(itemDescTitle); itemDescTitle.appendChild(getItemTitle); } } } fillOutEmptyInv(); } /////////////////// // Dev Commands // /////////////////// var commands = { addToPlayerInv: function (itemGiveId) { for (var i = 0; i < allItems.length; i++) { if (allItems[i].itemId === itemGiveId) { addToInvenotry(allItems[i]); } } }, clearPlayerInv: function () { playerInventory = []; drawToPage(); }, } // Button funktionen var elemakzeptieren = document.getElementById("buttonakzeptieren"); elemakzeptieren.addEventListener('click', akzeptieren); var elemablehnen = document.getElementById("buttonablehnen"); elemablehnen.addEventListener('click', ablehnen); //Handel Akzeptierenfenster function akzeptieren() { mp.trigger('CEF:acceptTrade'); } function ablehnen() { mp.trigger('CEF:declineTrade'); }