Add Inv. sync
This commit is contained in:
@@ -39,6 +39,9 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
var dragTradeItem = null; //Ob aktuell ein Item aus dem Handelfenster gezogen wird
|
var dragTradeItem = null; //Ob aktuell ein Item aus dem Handelfenster gezogen wird
|
||||||
var spriteScaleX = rWidth / 8;
|
var spriteScaleX = rWidth / 8;
|
||||||
var spriteScaleY = rWidth / 8 * aspectRatioFactor;
|
var spriteScaleY = rWidth / 8 * aspectRatioFactor;
|
||||||
|
var syncStatus = false; //Synchronisation mit der Datenbank
|
||||||
|
var syncCount = 0; //Wieviele Slots noch gesynced werden müssen
|
||||||
|
var syncDeg = 0;
|
||||||
|
|
||||||
var inventoryWeight; //Das aktuelle Inventargewicht, berechnet aus allen Metainfos des items[[]] Array
|
var inventoryWeight; //Das aktuelle Inventargewicht, berechnet aus allen Metainfos des items[[]] Array
|
||||||
var items = [[]]; //Items aus der Datenbank
|
var items = [[]]; //Items aus der Datenbank
|
||||||
@@ -181,6 +184,10 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
items.splice(arrIndex, 1);
|
items.splice(arrIndex, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
mp.events.add("SERVER:INVENTORY_SYNC", () => {
|
||||||
|
syncCount--;
|
||||||
});
|
});
|
||||||
|
|
||||||
mp.events.add("render", () => {
|
mp.events.add("render", () => {
|
||||||
@@ -202,6 +209,28 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
centre: false
|
centre: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (syncCount != 0) {
|
||||||
|
syncDeg += 3;
|
||||||
|
if (syncDeg === 360) syncDeg = 0;
|
||||||
|
|
||||||
|
mp.game.graphics.drawText("~s~synchronisiere ~g~ " + syncCount, [rxC + 0.165, ryC - (rWidth / 1.20) + 0.035], {
|
||||||
|
font: 7,
|
||||||
|
color: [112, 128, 144, 254],
|
||||||
|
scale: [0.4, 0.4],
|
||||||
|
outline: true,
|
||||||
|
centre: false
|
||||||
|
});
|
||||||
|
mp.game.graphics.drawSprite("itemimages", "refresh", rxC + 0.165, ryC - (rWidth / 1.20) + 0.01, spriteScaleX * 0.4, spriteScaleY * 0.4, syncDeg, 255, 255, 255, 255);
|
||||||
|
} else {
|
||||||
|
mp.game.graphics.drawText("~s~synchronisiert", [rxC + 0.165, ryC - (rWidth / 1.20) + 0.035], {
|
||||||
|
font: 7,
|
||||||
|
color: [112, 128, 144, 254],
|
||||||
|
scale: [0.4, 0.4],
|
||||||
|
outline: true,
|
||||||
|
centre: false
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
//SLOTS [RECHTECKE] [SLOTZAHLEN]
|
//SLOTS [RECHTECKE] [SLOTZAHLEN]
|
||||||
|
|
||||||
var slots;
|
var slots;
|
||||||
@@ -882,6 +911,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
items.push([tradeItems[dragItem][0], tradeItems[dragItem][1], tradeItems[dragItem][2], tradeItems[dragItem][3], actFreeSlot.toString(), tradeItems[dragItem][5]]);
|
items.push([tradeItems[dragItem][0], tradeItems[dragItem][1], tradeItems[dragItem][2], tradeItems[dragItem][3], actFreeSlot.toString(), tradeItems[dragItem][5]]);
|
||||||
tradeItems.splice(dragItem, 1);
|
tradeItems.splice(dragItem, 1);
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -896,6 +926,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
items[stackToItem][3] = newAmount.toString();
|
items[stackToItem][3] = newAmount.toString();
|
||||||
tradeItems.splice(dragItem, 1);
|
tradeItems.splice(dragItem, 1);
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -910,6 +941,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
tradeItems[stackToTradeItem][3] = newAmount.toString();
|
tradeItems[stackToTradeItem][3] = newAmount.toString();
|
||||||
tradeItems[dragItem][4] = "-1";
|
tradeItems[dragItem][4] = "-1";
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -921,6 +953,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
} else {
|
} else {
|
||||||
tradeItems[dragItem][4] = actFreeTradeSlot;
|
tradeItems[dragItem][4] = actFreeTradeSlot;
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -983,6 +1016,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
tradeItems.splice(hoverItem, 1);
|
tradeItems.splice(hoverItem, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -998,6 +1032,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
tradeItems.splice(hoverItem, 1);
|
tradeItems.splice(hoverItem, 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
bufferItem = null;
|
bufferItem = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
@@ -1014,6 +1049,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
tradeItems[hoverItem][4] = "-1";
|
tradeItems[hoverItem][4] = "-1";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
bufferItem = null;
|
bufferItem = null;
|
||||||
@@ -1031,6 +1067,7 @@ export default function inventory(globalData: GlobalData) {
|
|||||||
tradeItems[hoverItem][4] = "-1";
|
tradeItems[hoverItem][4] = "-1";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
syncCount++;
|
||||||
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
mp.events.callRemote('saveInventory', JSON.stringify(items));
|
||||||
oldDragSlot = null;
|
oldDragSlot = null;
|
||||||
dragItem = null;
|
dragItem = null;
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
version https://git-lfs.github.com/spec/v1
|
||||||
oid sha256:ad67a68580431746ceea4e52b889f694ce7521430d0d6c6a6cf3582db450f97a
|
oid sha256:4612c3fbb3081be7c20cf690e36947e4436c0ef092cefdbc5cf1794ef880f9f7
|
||||||
size 76800
|
size 78848
|
||||||
|
|||||||
@@ -193,6 +193,7 @@ namespace ReallifeGamemode.Server.Managers
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.SaveChanges();
|
context.SaveChanges();
|
||||||
|
player.TriggerEvent("SERVER:INVENTORY_SYNC");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user