Снова я.
WARNING: MTADayZ\inventory_s.lua:125: Bad argument @ 'dbQuery' [Expected db-connection at argument 1, got nil]
Пытаюсь получить от базы ответ, а она ни в какую. Да и строки не добавляются в таблицу инвентаря. В чем может быть проблема?
Клиент:
function refreshInventory ()
local items = getElementsByType("item")
for i,item in ipairs(items) do
if getElementData ( item, "item_owner") = localPlayer then
guiGridListSetItemText(GUIEditor.gridlist[index], 0, 1, items[getElementData ( item, "item_id")][1], false, false)
guiGridListSetItemText(GUIEditor.gridlist[index], 0, 2, getElementData ( item, "item_amount"), false, false)
guiGridListSetItemText(GUIEditor.gridlist[index], 0, 3, items[getElementData ( item, "item_id")][2], false, false)
end
end
end
function showInventory ()
outputChatBox ( "Открытие инвентаря")
if ( guiGetVisible ( GUIEditor.window[1] ) == true ) then
guiSetVisible ( GUIEditor.window[1], false )
showCursor(false)
else
guiSetVisible ( GUIEditor.window[1], true )
showCursor(true)
refreshInventory()
end
end
Сервер:
local inventoryDataBase
function connectDB ( )
inventoryDataBase = dbConnect( "sqlite", "inventory.db" )
dbQuery( inventoryDataBase, "CREATE TABLE IF NOT EXISTS `items` (`id` INTEGER, `owner` TEXT, `amount` INTEGER)")
end
addEventHandler ( "onResourceStart", getRootElement(), connectDB )
function loginHandler()
dbQuery( callbackInv, inventoryDataBase, "SELECT * FROM items WHERE owner = ?", source)
function callbackInv(qh)
local result = dbPoll(qh, 0)
for index, row in pairs(result) do
createElement( "item", row.rowid )
setElementData ( row.rowid, "item_id", row.id )
setElementData ( row.rowid, "item_owner", source )
setElementData ( row.rowid, "item_amount", row.amount )
end
end
end
addEventHandler("onPlayerLogin", getRootElement(), loginHandler)