Zaloguj się by uzyskać pełen dostęp. Nie masz jeszcze konta? Założ je już teraz w kilka sekund.

Wysłany: 2023-11-25, 21:40


xaders.







Wiek: 25
Na forum: 950 dni
Posty: 9

Piwa: 9

Respekt: 50

WARNING: [dynamic-pystories]/pystories-core/s_saveplayers.lua:54: Bad argument @ 'fromJSON' [Expected string at argument 1, got nil]


Kod:

function getPremium(plr,premium)
if premium then
local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_users WHERE id=? AND premium=?",getElementData(plr,"player:sid"), premium)
if result and #result > 0 then
return true
else
return false
end
else
local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_users WHERE id=?", getElementData(plr,"player:sid"))
if result and #result > 0 then
return true
else
return false
end
end
end


function loadPlayerData(plr)
local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_users WHERE id=?", getElementData(plr,"player:sid"))
local result2=exports["pystories-db"]:dbGet("SELECT * FROM iq_discord WHERE user_serial=?", getPlayerSerial(plr))
if result and #result > 0 then

local v=result[1]

setPlayerName(plr, v.login2 or v.login)
setPlayerMoney(plr, v.money)
setElementModel(plr, v.skin)
setElementData(plr,"status","Aktywny")
setElementData(plr,"player:logged",true)
setElementData(plr,"player:mandate",v.mandate)
setElementData(plr,"player:license:pjA",v.pjA)
setElementData(plr,"player:license:pjB",v.pjB)
setElementData(plr,"player:license:pjC",v.pjC)
setElementData(plr,"player:license:pjL",v.pjL)
setElementData(plr,"player:srp",v.srp)
setElementData(plr,"player:workinjob",v.worker)
setElementData(plr,"player:pp",v.pp)
setElementData(plr,"player:registerdate",v.registered)
setElementData(plr,"player:hours",v.hours)
setElementData(plr,"player:skin",v.skin)
setElementData(plr,"player:klucze",v.klucze)
exports["dmta_organizacje"]:checkOrganization(plr)

setElementData(plr,"player:ekwipunek",fromJSON(v.ekwipunek) or {})

setElementData(plr,"player:inventory",fromJSON(v.inventory) or {})

local q = exports["pystories-db"]:dbGet("SELECT * FROM H_jobStatistics WHERE sid=? LIMIT 1", getElementData(plr,"player:sid"))
if q and #q > 0 then
loadJobSaveStats(plr)
else
exports["pystories-db"]:query("INSERT INTO H_jobStatistics SET sid=?", getElementData(plr,"player:sid"))
loadJobSaveStats(plr)
end

setElementData(plr,"player:premium",true)
setElementData(plr,"premium:level",1)

if result2 and #result2 > 0 then
exports["nrpg_avatars"]:startImageDownload(plr, result2[1].avatar)
setElementData(plr, "player:avatar", result2[1].avatar)
setElementData(plr, "player:dc", {
tag = result2[1].tag,
dc_id = result2[1].user_id,
})
end

local mutes=string.format("SELECT * FROM n_mute WHERE serial=%q AND time>NOW() LIMIT 1",getPlayerSerial(plr))
local mute=exports["DB2"]:pobierzWyniki(mutes)
if (mute) then
exports.TR_noti:create(plr, 'Na konto jest nałożona kara wyciszenia.', 'info')
setElementData(plr, "player:mute", true)
end

-- premium+
local queryA=string.format("SELECT * FROM pystories_users WHERE id=%d AND premiumplusdate>NOW() LIMIT 1", getElementData(plr,"player:sid"))
local resultA=exports["DB2"]:pobierzWyniki(queryA)
if (resultA) then
setElementData(plr,"player:premiumplus",true)
setElementData(plr,"player:premiumdateplus",v.premiumplusdate)
setPlayerName(plr,""..getPlayerName(plr))
--setPlayerNametagColor(plr, 255, 200, 0)
setElementData(plr,"premium:level",2)
else
setElementData(plr,"player:premiumplus",false)
end

return true
end
return false
end

function loadJobSaveStats(plr)
if plr and isElement(plr) and getElementData(plr, "player:sid") then
local q = exports["pystories-db"]:dbGet("SELECT * FROM H_jobStatistics WHERE sid=? LIMIT 1", getElementData(plr,"player:sid"))
if q and #q > 0 then
local save = {}
for i,vv in pairs(q[1]) do
if i ~= "sid" then
save[i] = tostring(vv):len() > 5 and fromJSON(tostring(vv)) or tostring(vv) ~= "false" and {} or {}
end
end
setElementData(plr, "player:jobSave", save)
end
end
end

addEvent("load:player",true)
addEventHandler("load:player", root, function(player)
if isElement(player) and player then
if getElementType(player) ~= "player" then
return
end
loadPlayerData(player)
outputDebugString("[averisRPG] Załadowano statystyki gracza: "..getPlayerName(player))
end
end)

function savePlayerData(plr)
local sid = getElementData(plr,"player:sid")
if not sid then
return
end
local money = getPlayerMoney(plr)
local mandate = getElementData(plr,"player:mandate")
local licensea = getElementData(plr,"player:license:pjA")
local licenseb = getElementData(plr,"player:license:pjB")
local licensec = getElementData(plr,"player:license:pjC")
local licensel = getElementData(plr,"player:license:pjL")
local srp = getElementData(plr,"player:srp")
local pp = getElementData(plr,"player:pp")
local worker = getElementData(plr,"player:workinjob")
local klucze = getElementData(plr,"player:klucze") or 0
local hours = tonumber(getElementData(plr,"player:hours")) or 0
local ekwipunek = getElementData(plr,"player:ekwipunek") or {}
local inventory = getElementData(plr,"player:inventory") or {}

local query=exports["pystories-db"]:dbSet("UPDATE pystories_users SET money=?, srp=?, mandate=?, pjA=?, pjB=?, pjC=?, pjL=?, worker=?, hours=?, pp=?, klucze=?, ekwipunek=?, inventory=? WHERE id=?",
money, srp, mandate, licensea, licenseb, licensec, licensel, worker, hours, pp, klucze, toJSON(ekwipunek), toJSON(inventory), sid)
if getElementData(plr, "player:raported") then
removeElementData(plr, "player:raported");
for i,v in ipairs(getElementsByType("player")) do
if getElementData(v,"player:admin") then
triggerEvent("admin:removeReport", resourceRoot, getElementData(plr,"id"))
-- exports.TR_noti:create(v,"[RAPORT] >> ["..getElementData(plr,"id").."] "..getPlayerName(plr):gsub("#%x%x%x%x%x%x","").." wyszedł z serwera zgłoszenie na niego zostało usunięte", "info")
end
end
end

local jobSave = getElementData(plr, "player:jobSave") or {}
if jobSave then
for i1, v1 in pairs(jobSave) do
exports["pystories-db"]:dbSet("UPDATE H_jobStatistics SET "..i1.."=? WHERE sid=?", toJSON(v1), sid)
end
end

end

addEvent("save:player",true)
addEventHandler("save:player", root, function(player)
if isElement(player) and player then
if getElementType(player) ~= "player" then
return
end
savePlayerData(player)
outputDebugString("[AvesMTA] Zapisano statystyki gracza: "..getPlayerName(player))
end
end)
addEventHandler("onPlayerQuit", root, function() savePlayerData(source) end)
[/code]

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Wysłany: 2023-11-28, 17:52


VVirmex

Sgrypter luja






Wiek: 21
Na forum: 3365 dni
Posty: 281
Nick w MP: AxyZ

Piwa: 234

Respekt: 110
Respekt: 110

Sprawdziłbym czy kolumny o nazwie 'ekwipunek' bądź 'inventory' istnieją w bazie danych, jeżeli istnieją sprawdź ich dokładną pisownie.

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 1 piw(a):
borsuk
Tagi: nie :: zapisuje :: się
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Nie zapisuje się Odpowiedz do tematu

Nie możesz pisać nowych tematów
Nie możesz odpowiadać w tematach
Nie możesz zmieniać swoich postów
Nie możesz usuwać swoich postów
Nie możesz głosować w ankietach
Dodaj temat do Ulubionych
Wersja do druku