function giveItemInCharge(client, item, amount, slot)
if itemNames[item] then
if amount then
if stackableItems [item] then
local items = getElementData (client, \"items\")
local itemAndAmount = split (items[slot], \"x\")
items[slot] = \"\"..itemAndAmount[1]..\"x\"..tostring(tonumber(itemAndAmount[2]) + tonumber(amount))..\"\"
setElementData (client, \"items\", items, true)
end
end
end
end
Teszteltem, ha iprintet rakok az összes feltétel mögé, akkor kiírja az iprint szöveget, tehát minden feltétel tovább engedi.
Ha a setElementData sor után iprint-tel egyből kiírom a getElementData-t akkor az adott értéket rendesen mutatja, de ha azután még ehhez akarok hozzáadni azt már nem csinálja meg.
Valamiért nem marad meg a setElementData fogalmam sincs miért. Kliens oldalon változatlanul az előző értéket írja ha lekérem, pedig szinkronizálva van. Mi lehet a baj? Semmi hibát nem ír ki.
function testItems(player)
iprint (getElementData(player, \"items\"))
end
addCommandHandler (\"testitems\", testItems)
Ezt ugyan abba a fájlba raktam, ahol maga az elementData-t felülíró x utáni számot lecserélő / hozzáadó van.
Megnéztem, itt is az előző értéket mutatja, szerver oldalon.
De ha a setelementdata után egyből odarakom:
local items = getElementData (client, \"items\")
local itemAndAmount = split (items[slot], \"x\")
items[slot] = \"\"..itemAndAmount[1]..\"x\"..tostring(tonumber(itemAndAmount[2]) + tonumber(amount))..\"\"
setElementData (client, \"items\", items)
iprint (getElementData(client, \"items\"))
Akkor a sor végi iprint a jó értéket mutatja. De a \"testitems\" command pedig a rosszat, pedig ugyan az a 2 sor. Terhát szerver oldalon se jó.