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

Wysłany: 2023-12-27, 20:09


Sugarakabongo







Wiek: 20
Na forum: 1405 dni
Posty: 6
Nick w MP: jasiek

Piwa: 11

Respekt: 50

Czesc, przychodze z problemem takim, gdzie przy tworzeniu organizacji przestepczej komendą, trzeba restartowac skrypt z organizacjami, po reconnect i tak znika. W db2 nie ma błędu tylko czasem wyskakuje

tutaj kod z organizacji po stronie clienta i servera client -
local sxsy guiGetScreenSize()
local zoom exports["borsuk-gui"]:getZoom()
local font1 exports["borsuk-gui"]:getFont("Lato-Regular"15/zoom)
local font2 exports["borsuk-gui"]:getFont("Lato-Regular"18/zoom)
local font3 exports["borsuk-gui"]:getFont("Lato-Regular"13/zoom)

local marker createMarker(2848.49, -1124.80113.33-1"cylinder"150170255)
setElementDimension(marker1)
setElementData(marker"marker:title""Organizacja")
setElementData(marker"marker:desc""Tworzenie organizacji")

addEventHandler("onClientMarkerHit"marker, function(plr)
    if plr ~= localPlayer then return end
    showOrgCreate()
end)

addEventHandler("onClientMarkerHit"marker2, function(plr)
    if plr ~= localPlayer then return end
    showOrgCreate()
end)

function renderOrgCreate()
    dxDrawRectangle(sx/228/zoomsy/230/zoom456/zoom500/zoomtocolor(55,55,55))
    dxDrawRectangle(sx/225/zoomsy/230/zoom450/zoom500/zoomtocolor(20,20,20))
    dxDrawRectangle(sx/225/zoomsy/170/zoom450/zoom1tocolor(35,35,35))

    dxDrawText("Tworzenie organizacji"sx/2sy/400/zoomsx/2sy/2tocolor(255,255,255,80), 1font2"center""center")
    dxDrawText("• Nazwy nie można zmienić\n• Maksymalnie 15 osób z możliwością ulepszenia\n• Wymagany 10 poziom\n• Koszt założenia wynosi 100,000 PLN\n• Organizacje przestępcze wymagają podania"sx/2sy/150/zoomsx/2sy/2tocolor(255,255,255,150), 1font3"center""top")

    dxDrawRectangle(sx/2+107/zoom 1sy/2+95/zoom 140/zoom 240/zoom 2tocolor(555555))
    local kolor exports["borsuk-gui"]:getEditboxText(hex)
    if #kolor == 6 or #kolor == 7 then
        local rghex2rgb(kolor)
        if and and b then
            dxDrawRectangle(sx/2+107/zoomsy/2+95/zoom40/zoom40/zoomtocolor(rgb))
        end
    end
end

server addCommandHandler("rape", function(plrcmdtarget)
    if getElementData(plr"player:level") < 3 then return end
    if not target then return end
    local cel findPlayer(plrtarget)
    if not cel then end
    local xygetPositionFromElementOffset(cel010)
    setElementPosition(plrxyz)
    local rxryrz getElementRotation(cel)
    setElementRotation(plrrxryrz+180)
    toggleAllControls(celfalse)
    setPedAnimation cel"sex""sex_1_cum_w", -1truefalse )
    setPedAnimation plr"sex""sex_1_cum_p", -1truefalse )
end)

addCommandHandler("rapes", function(plrcmdtarget)
    if getElementData(plr"player:level") < 3 then return end
    if not target then return end
    local cel findPlayer(plrtarget)
    if not cel then end
    toggleAllControls(celtrue)
    setPedAnimation celfalse )
    setPedAnimation plrfalse)
end)

function getPositionFromElementOffset(element,offX,offY,offZ)
    local m getElementMatrix element )  -- Get the matrix
    local x offX m[1][1] + offY m[2][1] + offZ m[3][1] + m[4][1]  -- Apply transform
    local y offX m[1][2] + offY m[2][2] + offZ m[3][2] + m[4][2]
    local z offX m[1][3] + offY m[2][3] + offZ m[3][3] + m[4][3]
    return xyz                               -- Return the transformed point
end

function findPlayer(plr,cel)
    local target=nil
    if (tonumber(cel) ~= nilthen
        target=getElementByID("p"..cel)
    else -- podano fragment nicku
        for _,thePlayer in ipairs(getElementsByType("player")) do
            if string.find(string.gsub(getPlayerName(thePlayer):lower(),"#%x%x%x%x%x%x"""), cel:lower(), 0truethen
                if (targetthen
                    outputChatBox("* Znaleziono więcej niż jednego gracza o pasującym nicku, podaj więcej liter."plr)
                    return nil
                end
                target=thePlayer
            end
        end
    end
    if target and getElementData(target,"p:inv"then return nil end
    return target
end

function getOrganizationData(oid)
    local q exports["pystories-db"]:dbGet("SELECT * FROM `borsuk-organizacje` WHERE id=?"oid)
    return (and q[1] or false)
end

function loadPlayerOrg(player)
    if isElement(player) and player then
        if getElementType(player) ~= "player" then return end
        local sid getElementData(player,"player:sid")
        if not sid then return end
        local q exports["pystories-db"]:dbGet("SELECT * FROM `borsuk-orgs` WHERE sid=?"sid)
        if #q == 0 then
            setElementData(player"player:organization"false)
            setElementData(player"player:organization:data"false)
            return
        end

        local data getOrganizationData(q[1]["org"])
        if data then
            setElementData(player"player:organization"data["name"])
            setElementData(player"player:organization:data"data)
        else
            setElementData(player"player:organization"false)
            setElementData(player"player:organization:data"false)
        end

        for _stat in ipairs({ 2469707172737476777879 }) do
            setPedStat(playerstat1000)
         end
    end
end
addEvent("loadPlayerOrg",true)
addEventHandler("loadPlayerOrg"rootloadPlayerOrg)
addEvent("load:player",true)
addEventHandler("load:player"rootloadPlayerOrg)

local clickTick = {}

for k,v in pairs(getElementsByType("player")) do
    loadPlayerOrg(v)
end

addEvent("createOrg"true)
addEventHandler("createOrg"root, function(nametagrgb)
    if (clickTick[source] or 0) > getTickCount() then return end

    local color .. "," .. .. "," .. b
    if getPlayerMoney(source) < 100000 then
        return exports["noobisty-notyfikacje"]:createNotification(source"Tworzenie organizacji""Nie posiadasz 200,000 PLN", {2555050}, "sighter")
    end
    local q exports["pystories-db"]:dbGet("SELECT * FROM `borsuk-organizacje` WHERE `tag`=?"tag:upper())
    if #q > 0 then
        exports["noobisty-notyfikacje"]:createNotification(source"Tworzenie organizacji""Organizacja z takim TAG'iem już istnieje", {2555050}, "sighter")
        return
    end
    local q exports["pystories-db"]:dbGet("SELECT * FROM `borsuk-organizacje` WHERE `name`=?"name)
    if #q > 0 then
        exports["noobisty-notyfikacje"]:createNotification(source"Tworzenie organizacji""Organizacja z taką nazwą już istnieje", {2555050}, "sighter")
        return
    end
    local q exports["pystories-db"]:dbGet("SELECT * FROM `borsuk-organizacje` WHERE `color`=?"color)
    if #q > 0 then
        exports["noobisty-notyfikacje"]:createNotification(source"Tworzenie organizacji""Organizacja z takim kolorem już istnieje", {2555050}, "sighter")
        return
    end

    local sid getElementData(source"player:sid")
    local q_oid exports["pystories-db"]:dbGet("INSERT INTO `borsuk-organizacje`(`name`, `spawn`, `tag`, `color`, `owner`) VALUES (?,?,?,?,?)"name"false"tag:upper(), colorsid)
    takePlayerMoney(source100000)
    exports["noobisty-notyfikacje"]:createNotification(source"Tworzenie organizacji""Stworzono organizację " .. name, {5025550}, "sight")

    exports["pystories-db"]:dbGet("INSERT INTO `borsuk-orgs`(`sid`, `org`, `level`) VALUES (?,?,?)"sidoid4)

    clickTick[source] = getTickCount()+3000
end)

local types = {

    ['normal'] = nil,
    ['crime'] = true,

}

function findPlayerBySID(sid)
    for iv in ipairs(getElementsByType('player')) do
        if getElementData(v"player:sid") == sid then
            return v
        end
    end
end

function addOrganization(plrcmdnametagtypesidrgb)
    if not name or not tag or not type or not sid or not r or not g or not b then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""/stworz.org <nazwa> <tag> <typ> <sid> <r> <g> <b>", {2005050}, "sighter")
    end

    if >= name:len() then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Podaj dłuższą nazwę organizacji", {2005050}, "sighter")
    end

    if >= type:len() then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Podaj typ organizacji (crime/normal)", {2005050}, "sighter")
    end

    if >= tag:len() then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Podaj tag organizacji", {2005050}, "sighter")
    end

    if >= sid:len() then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Podaj sid właściciela", {2005050}, "sighter")
    end

    if >= r:len() or >= b:len() or >= g:len() then
        return exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Podaj kolor organizacji", {2005050}, "sighter")
    end

    local orgType types[type]
    local q_oid exports["pystories-db"]:dbGet("INSERT INTO `borsuk-organizacje`(`name`, `spawn`, `tag`, `color`, `owner`, `crime`) VALUES (?,?,?,?,?,?)"name"false"tag:upper(), r..','..g..','..bsidorgType)
    exports["pystories-db"]:dbGet("INSERT INTO `borsuk-orgs`(`sid`, `org`, `level`) VALUES (?,?,?)"sidoid4)

    local findPlayer findPlayerBySID(sid)
    if findPlayer and getElementType(findPlayer) == "player" then
        loadPlayerOrg(findPlayer)
        exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Stworzono organizację " .. name .. " dla gracza ".. getPlayerName(findPlayer), {5025550}, "sight")
    else
        exports["noobisty-notyfikacje"]:createNotification(plr"Tworzenie organizacji""Stworzono organizację " .. name .. " dla gracza o SID ".. sid, {5025550}, "sight")
    end
end
addCommandHandler("stworz.org"addOrganization)

function globalMessage(plrcmd, ...)
    local organization getElementData(plr,'player:organization')
    if not organization then
        return
    end

    local msg table.concat ( { ... }, " " )
    local orgplayers getElementsByType('player')

    for i,v in pairs(orgplayers) do
    local organization1 getElementData(v,'player:organization')
        if organization == organization1 then
            outputChatBox("#747474"..organization1.."#FFFFFF > "..getPlayerName(plr):gsub("#%x%x%x%x%x%x","").."#FFFFFF:#FFFFFF "..msg:gsub("#%x%x%x%x%x%x",""), v,_,_,_,true)
        end
    end
    local desc "[#747474ORGANIZACJA#ffffff] ["..getElementData(plr,"id").."]"..getPlayerName(plr):gsub("#%x%x%x%x%x%x","").."("..getElementData(plr,"player:organization").."): "..msg:gsub("#%x%x%x%x%x%x","")..""
    triggerEvent("admin:addText"resourceRootdesc:gsub("#%x%x%x%x%x%x",""))
end
addCommandHandler("Organizacja"globalMessage)

addEventHandler("onPlayerJoin"root, function() 
    bindKey(source"o""down""chatbox""Organizacja")
end)



pystories-core s_saveplayers
 local n"serpent""0.302" -- (C2012-18 Paul KulchenkoMIT License
local c"Paul Kulchenko""Lua serializer and pretty printer"
local snum = {[tostring(1/0)]='1/0 --[[math.huge]]',[tostring(-1/0)]='-1/0 --[[-math.huge]]',[tostring(0/0)]='0/0'}
local badtype = {thread trueuserdata truecdata true}
local getmetatable debug and debug.getmetatable or getmetatable
local pairs = function(t) return nextt end -- avoid using __pairs in Lua 5.2+
local keywordglobals= {}, {}, (_G or _ENV)
for _,k in ipairs({'and''break''do''else''elseif''end''false',
  'for''function''goto''if''in''local''nil''not''or''repeat',
  'return''then''true''until''while'}) do keyword[k] = true end
for k,v in pairs(G) do globals[v] = k end -- build func to name mapping
for _,g in ipairs({'coroutine''debug''io''math''string''table''os'}) do
  for k,v in pairs(type(G[g]) == 'table' and G[g] or {}) do globals[v] = g..'.'..k end end

local function s(topts)
  local nameindentfatalmaxnum opts.nameopts.indentopts.fatalopts.maxnum
  local sparsecustomhuge opts.sparseopts.customnot opts.nohuge
  local spacemaxl = (opts.compact and '' or ' '), (opts.maxlevel or math.huge)
  local maxlenmetatostring tonumber(opts.maxlength), opts.metatostring
  local inamecomm '_'..(name or ''), opts.comment and (tonumber(opts.comment) or math.huge)
  local numformat opts.numformat or "%.17g"
  local seensrefsymssymn = {}, {'local '..iname..'={}'}, {}, 0
  local function gensym(val) return '_'..(tostring(tostring(val)):gsub("[^%w]",""):gsub("(%d%w+)",
    -- tostring(valis needed because __tostring may return a non-string value
    function(s) if not syms[sthen symn symn+1syms[s] = symn end return tostring(syms[s]) end)) end
  local function safestr(s) return type(s) == "number" and tostring(huge and snum[tostring(s)] or numformat:format(s))
    or type(s) ~= "string" and tostring(s) -- escape NEWLINE/010 and EOF/026
    or ("%q"):format(s):gsub("0","n"):gsub("6","\026"end
  local function comment(s,l) return comm and (or 0) < comm and ' --[['..select(2pcall(tostrings))..']]' or '' end
  local function globerr(s,l) return globals[s] and globals[s]..comment(s,l) or not fatal
    and safestr(select(2pcall(tostrings))) or error("Can't serialize "..tostring(s)) end
  local function safename(pathname) -- generates foo.barfoo[3], or foo['b a r']
    local n name == nil and '' or name
    local plain type(n) == "string" and n:match("^[%l%u_][%w_]*$") and not keyword[n]
    local safe plain and or '['..safestr(n)..']'
    return (path or '')..(plain and path and '.' or '')..safesafe end
  local alphanumsort type(opts.sortkeys) == 'function' and opts.sortkeys or function(kon) -- k=keyso=originaltablen=padding
    local maxnto tonumber(n) or 12, {number 'a'string 'b'}
    local function padnum(d) return ("%0"..tostring(maxn).."d"):format(tonumber(d)) end
    table.sort(k, function(a,b)
      -- sort numeric keys firstk[keyis not nil for numerical keys
      return (k[a] ~= nil and or to[type(a)] or 'z')..(tostring(a):gsub("%d+",padnum))
           < (k[b] ~= nil and or to[type(b)] or 'z')..(tostring(b):gsub("%d+",padnum)) endend
  local function val2str(tnameindentinsrefpathplainindexlevel)
    local ttypelevelmt type(t), (level or 0), getmetatable(t)
    local spathsname safename(pathname)
    local tag plainindex and
      ((type(name) == "number") and '' or name..space..'='..space) or
      (name ~= nil and sname..space..'='..space or '')
    if seen[tthen -- already seen this element
      sref[#sref+1] = spath..space..'='..space..seen[t]
      return tag..'nil'..comment('ref'levelend
    -- protect from those cases where __tostring may fail
    if type(mt) == 'table' and metatostring ~= false then
      local totr pcall(function() return mt.__tostring(tend)
      local sosr pcall(function() return mt.__serialize(tend)
      if (to or sothen -- knows how to serialize itself
        seen[t] = insref or spath
        t so and sr or tr
        ttype type(t)
      end -- new value falls through to be serialized
    end
    if ttype == "table" then
      if level >= maxl then return tag..'{}'..comment('maxlvl'levelend
      seen[t] = insref or spath
      if next(t) == nil then return tag..'{}'..comment(tlevelend -- table empty
      if maxlen and maxlen 0 then return tag..'{}'..comment('maxlen'levelend
      local maxnoout math.min(#t, maxnum or #t), {}, {}
      for key 1maxn do o[key] = key end
      if not maxnum or #o < maxnum then
        local n #o -- n = n + 1; o[n] is much faster than o[#o+1] on large tables
        for key in pairs(t) do if o[key] ~= key then n 1o[n] = key end end end
      if maxnum and #o > maxnum then o[maxnum+1] = nil end
      if opts.sortkeys and #o > maxn then alphanumsort(o, t, opts.sortkeys) end
      local sparse sparse and #o > maxn -- disable sparsness if only numeric keys (shorter output)
      for nkey in ipairs(o) do
        local valuektypeplainindex t[key], type(key), <= maxn and not sparse
        if opts.valignore and opts.valignore[value] -- skip ignored values; do nothing
        or opts.keyallow and not opts.keyallow[key]
        or opts.keyignore and opts.keyignore[key]
        or opts.valtypeignore and opts.valtypeignore[type(value)] -- skipping ignored value types
        or sparse and value == nil then -- skipping nils; do nothing
        elseif ktype == 'table' or ktype == 'function' or badtype[ktypethen
          if not seen[key] and not globals[keythen
            sref[#sref+1] = 'placeholder'
            local sname safename(inamegensym(key)) -- iname is table for local variables
            sref[#sref] = val2str(key,sname,indent,sname,iname,true) end
          sref[#sref+1] = 'placeholder'
          local path seen[t]..'['..tostring(seen[key] or globals[key] or gensym(key))..']'
          sref[#sref] = path..space..'='..space..tostring(seen[value] or val2str(value,nil,indent,path))
        else
          out[#out+1] = val2str(value,key,indent,nil,seen[t],plainindex,level+1)
          if maxlen then
            maxlen maxlen #out[#out]
            if maxlen 0 then break end
          end
        end
      end
      local prefix string.rep(indent or ''level)
      local head indent and '{\n'..prefix..indent or '{'
      local body table.concat(out','..(indent and '\n'..prefix..indent or space))
      local tail indent and "\n"..prefix..'}' or '}'
      return (custom and custom(tag,head,body,tail,level) or tag..head..body..tail)..comment(tlevel)
    elseif badtype[ttypethen
      seen[t] = insref or spath
      return tag..globerr(tlevel)
    elseif ttype == 'function' then
      seen[t] = insref or spath
      if opts.nocode then return tag.."function() --[[..skipped..]] end"..comment(tlevelend
      local okres pcall(string.dumpt)
      local func ok and "((loadstring or load)("..safestr(res)..",'@serialized'))"..comment(tlevel)
      return tag..(func or globerr(tlevel))
    else return tag..safestr(tend -- handle all other types
  end
  local sepr indent and "\n" or ";"..space
  local body val2str(tnameindent) -- this call also populates sref
  local tail #sref>1 and table.concat(sref, sepr)..sepr or ''
  local warn opts.comment and #sref>1 and space.."--[[incomplete output with shared/self-references skipped]]" or ''
  return not name and body..warn or "do local "..body..sepr..tail.."return "..name..sepr.."end"
end

local function deserialize(dataopts)
  local env = (opts and opts.safe == false) and G
    or setmetatable({}, {
        __index = function(t,k) return t end,
        __call = function(t,...) error("cannot call functions"end
      })
  local fres = (loadstring or load)('return '..datanilnilenv)
  if not f then fres = (loadstring or load)(datanilnilenvend
  if not f then return fres end
  if setfenv then setfenv(fenvend
  return pcall(f)
end

local function merge(ab) if b then for k,v in pairs(b) do a[k] = v end end; return aend
serpent = { _NAME n_COPYRIGHT c_DESCRIPTION d_VERSION vserialize s,
  load deserialize,
  dump = function(aopts) return s(amerge({name '_'compact truesparse true}, opts)) end,
  line = function(aopts) return s(amerge({sortkeys truecomment true}, opts)) end,
  block = function(aopts) return s(amerge({indent '  'sortkeys truecomment true}, opts)) end }

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"))
    if result and #result > 0 then
    triggerEvent("loadPlayerOrg"plrplr)
        local v=result[1]
        setPlayerMoney(plr,v.money)
        setElementModel(plr,v.skin)
        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:workinjob",v.worker)
        setElementData(plr,"player:registerdate",v.registered)
        setElementData(plr,"player:hours",v.hours)
        setElementData(plr,"player:skin",v.skin)
        setElementData(plr,"player:lvl",v.lvl)
        setElementData(plr,"player:exp",v.exp)
    setElementData(plr,"player:pp",v.premiumpoints)
        setElementData(plr,"player:upgrades"loadstring((v.upgrades and #v.upgrades > 3) and v.upgrades or "return {}")())
        setElementData(plr,"player:skinShop"loadstring((v.skinShop and #v.skinShop > 3) and v.skinShop or "return {}")())
        setElementData(plr,"player:inventory"loadstring((v.inventory and #v.inventory > 3) and v.inventory or "return {}")())
    setElementData(plr,"player:shaders"loadstring((v.shaders and #v.shaders > 3) and v.shaders or "return {}")())
    setElementData(plr,"player:boughtvinyls"loadstring((v.boughtvinyls and #v.boughtvinyls > 3) and v.boughtvinyls or "return {}")())
    setElementData(plr,"player:ratedvinyls"loadstring((v.ratedvinyls and #v.ratedvinyls > 3) and v.ratedvinyls or "return {}")())
    setElementData(plr,"player:shownTips"loadstring((v.tips and #v.tips > 3) and v.tips or "return {}")())

    triggerClientEvent(plr"switchShaders"plr, (getElementData(plr"player:shaders") or {}))

    local mute exports["pystories-db"]:dbGet("SELECT * FROM pystories_punish WHERE type=? AND active=1 AND serial=? AND time>NOW() LIMIT 1;""mute"getPlayerSerial(plr))
        if mute and #mute > 0 then
          setElementData(plr,'mute:player',true)
        end

    local discordInfo exports["pystories-db"]:dbGet("SELECT * FROM discord_connect WHERE sid=?"getElementData(plr,"player:sid"))
        if discordInfo and #discordInfo > 0 then
          setElementData(plr'player:avatar'discordInfo[1].avatarurl)
        end

    local queryB string.format("SELECT * FROM pystories_users WHERE id=%d AND premiumdate>NOW() LIMIT 1"getElementData(plr,"player:sid"))
        local resultB exports["DB2"]:pobierzWyniki(queryB)
        if (resultBthen
                 end
local org=exports["pystories-db"]:dbGet("SELECT * FROM ms_organizacje WHERE code=? AND uid=? LIMIT 1"getElementData(plr,"player:organization"), getElementData(plr,"player:sid"))
        if org and #org > 0 then
            setElementData(plr,"player:organization",org[1].code)
            outputChatBox("#FF8C00>>  #FFFFFFJeste? w organizacji, kt?ra nosi nazwe: "..org[1].code..""plr000true)
            exports['pystories-db']:dbSet("UPDATE ms_organizacje SET actived=curdate() WHERE uid=?"getElementData(plr,"player:sid"))
        end
                setElementData(plr,"player:premiumplus"true)
                setElementData(plr,"player:premiumplusdate"result[1].premiumdate)
        outputChatBox("&#10003; #ffffffPosiadasz zakupioną usługę #4093ffPremium+#ffffff #bfbfbf(Ważne do "..result[1].premiumdate..")#ffffff"plr02550true)     
    else
        setElementData(plr,"player:premium",true)
        end

        return true
    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)
end
end)

function savePlayerData(plr)
    local sid=getElementData(plr,"player:sid")
  if not getElementData(plr,"player:spawn"then return end
    if not sid then return end
    local money=getPlayerMoney(plr)
    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 lvl=getElementData(plr,"player:lvl") or 0
    local exp=getElementData(plr,"player:exp") or 0

    local worker =getElementData(plr,"player:workinjob")
    local hourstonumber(getElementData(plr,"player:hours")) or 0
    local upgrades getElementData(plr,"player:upgrades") or {}
    local skinShop getElementData(plr,"player:skinShop") or {}
  local shaders getElementData(plr,"player:shaders") or {}
    local skin getElementData(plr,"player:skin") or 0
  local pp getElementData(plr,"player:pp") or 0
    local inventory getElementData(plr,"player:inventory") or {}
  local boughtvinyls getElementData(plr,"player:boughtvinyls") or {}
  local ratedvinyls getElementData(plr,"player:ratedvinyls") or {}
  local shownTips getElementData(plr"player:shownTips") or {}
  --outputServerLog(getPlayerName(plr) .. "," ..sid.. "," ..serpent.dump(inventory).. "," .. serpent.dump(upgrades).. "," ..money)
    local query=exports["pystories-db"]:dbSet("UPDATE pystories_users SET money=?, pjA=?, pjB=?, pjC=?, pjL=?, worker=?, hours=?, upgrades=?, skinShop=?, inventory=?, skin=?, exp=?, lvl=?, premiumpoints=?, shaders=?, boughtvinyls=?, ratedvinyls=?, tips=? WHERE id=?",
    moneylicensealicenseblicenseclicenselworkerhoursserpent.dump(upgrades), serpent.dump(skinShop), serpent.dump(inventory), skinexplvlppserpent.dump(shaders), serpent.dump(boughtvinyls), serpent.dump(ratedvinyls), serpent.dump(shownTips), sid)
end

addEvent("save:player",true)
addEventHandler("save:player"root, function(player)
  if getElementType(player) ~= "player" then return end
  savePlayerData(player)
end)
addEventHandler("onPlayerQuit"root, function() savePlayerData(sourceend)

setTimer( function()
  for i,v in ipairs(getElementsByType("player")) do
    if getElementData(v"player:sid"then
      savePlayerData(v)
    end
  end
end60000*50)



Jeśli ktoś da rade z góry dzięki! daje piwko odrazu

Komentarz TheSebaPL dodany 2023-12-27, 22:46Staraj się używać znaczników [lua][/lua]
Ostatnio zmieniony przez TheSebaPL 2023-12-27, 22:44, w całości zmieniany 1 raz  
Postaw piwo autorowi tego posta
 

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


VVirmex

Sgrypter luja






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

Piwa: 234

Respekt: 110
Respekt: 110

Wydaje mi się że problemem tu jest to, że po utworzeniu organizacji nie nadaje elementdaty, w miejscu gdzie wyświetla się informacja o utworzeniu organizacji wstawić nadawanie odpowiednich elementdat :)

Postaw piwo autorowi tego posta
 

 
Więcej szczegółów
Wystawiono 2 piw(a):
Sugarakabongo, borsuk
Tagi: organizacje :: przestępcze :: directmta
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA 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