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

Wysłany: 2020-02-22, 11:57


Shinnowaty







Wiek: 24
Na forum: 2312 dni
Posty: 25
Nick w MP: Kirotsune

Piwa: 1

Respekt: 50

Witam, ma kto? pomys? co dok?adnie powinienem zrobi?? B??d wywala na tej linijce: if #q < 1 then
Kod:

q=exports["pystories-db"]:dbSet("select ownerid,koszt,id from lss_domy where id=?", domid)
if #q < 1 then
client:outputChat("Wyst?pi? b??d, nie znaleziono takiego domu!", 255, 0, 0)
return
end


Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-22, 13:45


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Zobacz co zwraca Ci funkcja 'dbSet'.
W bazie OGRPG z tego co pami?tam by?a jeszcze funkcja dbGet, kt?ra chyba Ci? interesuje.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-22, 20:16


Shinnowaty







Wiek: 24
Na forum: 2312 dni
Posty: 25
Nick w MP: Kirotsune

Piwa: 1

Respekt: 50

B??d nie wyskakuje ju? na debugu, ale jest jeden problem kt?ry mnie zastanawia. Kiedy zakupuje blipa, ownerid zmienia si? na 0, nie daje id gracza
Drugi dom by? zakupiony po tym: https://imgur.com/7X5EpJL
Tutaj jeszcze struktura lss_domy: https://imgur.com/w7NYBok

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-22, 20:41


Wilq







Wiek: 24
Na forum: 4428 dni
Posty: 3410

Piwa: 739

Respekt: 1225,8
Respekt: 1225,8

Kod?

Postaw piwo autorowi tego posta
 

 
Wysłany: 2020-02-22, 20:56


Shinnowaty







Wiek: 24
Na forum: 2312 dni
Posty: 25
Nick w MP: Kirotsune

Piwa: 1

Respekt: 50

Kod:

domy={}

local function usunDom(id)
if isElement(domy[id].wyjscie) then destroyElement(domy[id].wyjscie) end
if isElement(domy[id].wejscie) then destroyElement(domy[id].wejscie) end
if isElement(domy[id].cs) then destroyElement(domy[id].cs) end
if isElement(domy[id].text) then destroyElement(domy[id].text) end
domy[id]=nil
end

local function dodajDom(v,fast)

if not interiory[v.interiorid] then return false end
-- if tonumber(v.id)==151 then
-- outputChatBox("151")
-- end

--outputDebugString(tostring(v.ownerid))
if domy[v.id] then
usunDom(v.id)
end
local result=exports["pystories-db"]:dbGet("SELECT * FROM pystories_users WHERE id=?", v.ownerid)
if result and #result > 0 then
local r=result[1]
v.owner_nick = r.login
else
if v.ownerid ~= false then
outputDebugString("B?ad domku ID DOMKU#"..v.id)
end
v.owner_nick = "do wynaj?cia"
end
-- outputDebugString(v.owner_nick)
v.drzwi=split(v.drzwi,",")
for ii,vv in ipairs(v.drzwi) do v.drzwi[ii]=tonumber(vv) end
v.punkt_wyjscia=split(v.punkt_wyjscia,",")
for ii,vv in ipairs(v.punkt_wyjscia) do v.punkt_wyjscia[ii]=tonumber(vv) end
local pickupid=1272
if (not v.ownerid) then
pickupid=1273
end
v.wejscie=createPickup ( v.drzwi[1], v.drzwi[2], v.drzwi[3], 3, pickupid, 0)
v.cs=createColSphere(v.drzwi[1],v.drzwi[2],v.drzwi[3], 1)

if (not fast and v.ownerid) then
v.text=createElement("text")
setElementPosition(v.text, v.drzwi[1],v.drzwi[2],v.drzwi[3]+0.5)
setElementPosition(v.text, -2054.95,913.03,55.91)

-- setElementData(v.text,"text", "dom")

setElementData(v.text,"vehicle:desc", (v.descr or "Dom").."\n"..v.owner_nick)

end
local interior_dimension=v.vwi or 1000+v.id

setElementData(v.cs, "dom", {
["zamkniety"]=v.zamkniety>0 and true or false,
["id"]=v.id,
["koszt"]=v.koszt,
["ownerid"]=v.ownerid,
["owner_nick"]=v.owner_nick,
["descr"]=v.descr or "dom",
["dimension"]=interior_dimension,
["interior"]=interiory[v.interiorid].interior,
["interior_loc"]=interiory[v.interiorid].entrance,
["exit_loc"]=v.punkt_wyjscia,
["paidTo"]=v.paidTo,
["paidTo_dni"]=v.paidTo_dni,
-- ["veha"]=(v.vehicles_allowed and v.vehicles_allowed>0) and true or false
})



-- dodajemy wyjscie
v.wyjscie=createMarker(interiory[v.interiorid].exit[1], interiory[v.interiorid].exit[2], interiory[v.interiorid].exit[3], "arrow",1)
setElementDimension(v.wyjscie, interior_dimension)
setElementInterior(v.wyjscie, interiory[v.interiorid].interior)
setElementData(v.wyjscie,"tpto", v.punkt_wyjscia)


local dbid=v.id
v.id=nil
domy[dbid]=v

return true
end

function domyGetInfo(id)
return domy[id]
end

local function zaladujCzescDomow(procent,fast)
local tt=getTickCount()
i=0
exports["pystories-db"]:dbSet("UPDATE lss_domy SET paidTo=NULL,ownerid=NULL where paidTo<NOW() or paidTo IS NULL")
local dbdomy
if fast then
dbdomy=exports["pystories-db"]:dbGet("SELECT d.id,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid AND d.ownerid IS NOT NULL;")
else
dbdomy=exports["pystories-db"]:dbGet("SELECT d.id,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1;")
end
for __,v in ipairs(dbdomy) do
if math.random(0,100)<=procent then
-- outputChatBox("Wgrywanie domu " .. v.id)
if dodajDom(v,fast) then i=i+1 end
end
end
outputDebugString("Zaladowano domow: " .. i .. " w " .. (getTickCount()-tt) .. "ms")
end
-- setTimer(zaladujCzescDomow, 10*1000*60, 0, 100)
addEventHandler("onResourceStart", resourceRoot, function()
zaladujCzescDomow(100,false)
end)

function zaladujZmienioneDomy()
local i=0
local dbdomy=exports["pystories-db"]:dbGet("SELECT d.id,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1 AND timediff(now(),d.updated)<'00:09:00' AND datediff(now(),d.updated)<1")
for __,v in ipairs(dbdomy) do

if dodajDom(v) then i=i+1 end
end
outputDebugString("Zaladowano zmienionych domow: " .. i)
end

setTimer(zaladujZmienioneDomy, 10*1000*5, 0)


function domReload(id)
local dbdom=exports["pystories-db"]:dbGet("SELECT d.id,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1 and d.id=?;",id)
if dbdom then
return dodajDom(dbdom)
end
return false
end

-- Add a new event called onSpecialEvent
addEvent ( "SprawdzDom", true )
-- Define our handler function
function SprawdzDom ( gracz )
local dbdomy=exports["pystories-db"]:dbGet("SELECT d.id,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid AND d.ownerid IS NOT NULL;")
for __,v in ipairs(dbdomy) do
local uid=tonumber(getElementData(gracz,"player:uid"))
local r=v.ownerid
v.drzwi=split(v.drzwi,",")
for ii,vv in ipairs(v.drzwi) do v.drzwi[ii]=tonumber(vv) end
if r then if r == uid then setElementData(gracz,"player:house",true) setElementData(gracz,"player:spawn",{v.drzwi[1],v.drzwi[2],v.drzwi[3]}) end end
-- if v.ownerid == getElementData(gracz,"player:uid") then
-- setElementData(gracz,"player:house",{v.drzwi[1],v.drzwi[2],v.drzwi[3]})
-- end
end
end
-- Add the event handler
addEventHandler ( "SprawdzDom", root, SprawdzDom )

function kupdom(czas,domid)
local kasa=client:getMoney()
q=exports["pystories-db"]:dbGet("SELECT ownerid,koszt,id from lss_domy where id=?", domid)
if #q < 1 then
client:outputChat("Wyst?pi? b??d, nie znaleziono takiego domu!", 255, 0, 0)
return
end
q=q[1]
if q.ownerid then
client:outputChat("Ten dom ma ju? w?a?ciciela!", 255, 0, 0)
return
end
koszt=q.koszt*czas
if kasa < koszt then
client:outputChat("Nie sta? Ci? na kupno tego domu! ("..koszt.." PLN)", 255, 0, 0)
return
end
takePlayerMoney(client, koszt)
exports["pystories-db"]:dbSet("UPDATE lss_domy set ownerid=?, paidTo=NOW()+INTERVAL ? DAY, lokator1=NULL, lokator2=NULL, lokator3=NULL where id=?", client:getData("player:uid"), czas, domid)
domReload(domid)
client:outputChat("Pomy?lnie zakupi?e? dom, pobrano z konta "..koszt.." PLN!", 0, 255, 0)
end
addEvent("DOMY:kup", true)
addEventHandler("DOMY:kup", root, kupdom)

function oplacdom(czas,domid)
local kasa=client:getMoney()
q=exports["pystories-db"]:dbGet("SELECT ownerid,koszt,id from lss_domy where id=?", domid)
if #q < 1 then
client:outputChat("Wyst?pi? b??d, nie znaleziono takiego domu!", 255, 0, 0)
return
end
q=q[1]
if q.ownerid ~= client:getData("player:uid") then
client:outputChat("To nie jest tw?j dom!", 255, 0, 0)
return
end
koszt=q.koszt*czas
if kasa < koszt then
client:outputChat("Nie sta? Ci? na op?acenie tego domu! ("..koszt.." PLN)", 255, 0, 0)
return
end
takePlayerMoney(client, koszt)
exports["pystories-db"]:dbSet("UPDATE lss_domy set paidTo=paidTo+INTERVAL ? DAY where id=?", czas, domid)
domReload(domid)
client:outputChat("Pomy?lnie op?aci?e? dom na "..czas.." dni, pobrano z konta "..koszt.." PLN!", 0, 255, 0)
end
addEvent("DOMY:oplac", true)
addEventHandler("DOMY:oplac", root, oplacdom)

function dodajlokator(uid,domid)
local q2=exports["pystories-db"]:dbGet("SELECT id from pystories_users where id=?", uid)
if #q2> 0 then
q=exports["pystories-db"]:dbGet("SELECT lokator1,lokator2,lokator3 from lss_domy where id=?", domid)
if #q < 1 then client:outputChat("Wyst?pi? b??d, nie znaleziono takiego domu!", 255, 0, 0) return end
q=q[1]
if q.lokator1 and q.lokator2 and q.lokator3 then client:outputChat("Osi?gni?to limit 3 lokator?w na dom!", 255, 0, 0) return end
if not q.lokator1 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator1=? where id=?", uid, domid)
domReload(domid)
client:outputChat("Dodano nowego lokatora do domu.", 0, 255, 0)
return
end
if not q.lokator2 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator2=? where id=?", uid, domid)
domReload(domid)
client:outputChat("Dodano nowego lokatora do domu.", 0, 255, 0)
return
end
if not q.lokator3 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator3=? where id=?", uid, domid)
domReload(domid)
client:outputChat("Dodano nowego lokatora do domu.", 0, 255, 0)
return
end
else
client:outputChat("Nie ma konta z takim UID!", 255, 0, 0)
end
end
addEvent("DOM:lokator+", true)
addEventHandler("DOM:lokator+", root, dodajlokator)

function usunlokator(id,domid)
if id == 1 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator1=NULL where id=?", domid)
client:outputChat("Pomy?lnie usuni?to lokatora.", 0, 255, 0)
local dbdom=exports["pystories-db"]:dbGet("SELECT d.id,d.lokator1,d.lokator2,d.lokator3,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1 AND timediff(now(),d.updated)<'00:09:00' AND datediff(now(),d.updated)<1 and d.id=?", domid)
for i,v in ipairs(dbdom) do
dodajDom(v)
end
elseif id == 2 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator2=NULL where id=?", domid)
client:outputChat("Pomy?lnie usuni?to lokatora.", 0, 255, 0)
local dbdom=exports["pystories-db"]:dbGet("SELECT d.id,d.lokator1,d.lokator2,d.lokator3,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1 AND timediff(now(),d.updated)<'00:09:00' AND datediff(now(),d.updated)<1 and d.id=?", domid)
for i,v in ipairs(dbdom) do
dodajDom(v)
end
elseif id == 3 then
exports["pystories-db"]:dbSet("UPDATE lss_domy set lokator3=NULL where id=?", domid)
client:outputChat("Pomy?lnie usuni?to lokatora.", 0, 255, 0)
local dbdom=exports["pystories-db"]:dbGet("SELECT d.id,d.lokator1,d.lokator2,d.lokator3,d.descr,d.vwi,d.drzwi,d.punkt_wyjscia,d.interiorid,d.ownerid,d.zamkniety,d.koszt,d.paidTo,datediff(d.paidTo,now()) paidTo_dni FROM lss_domy d LEFT JOIN pystories_users c ON c.id=d.ownerid WHERE d.active=1 AND timediff(now(),d.updated)<'00:09:00' AND datediff(now(),d.updated)<1 and d.id=?", domid)
for i,v in ipairs(dbdom) do
dodajDom(v)
end
end
end
addEvent("DOM:lokator-", true)
addEventHandler("DOM:lokator-", root, usunlokator)

function zwolnijdom(domid)
exports["pystories-db"]:dbSet("UPDATE lss_domy set paidTo='2000-01-01 00:00:00' where id=?", domid)
exports["pystories-db"]:dbSet("UPDATE lss_domy SET paidTo=NULL,ownerid=NULL,lokator1=NULL,lokator2=NULL,lokator3=NULL where paidTo<NOW() or paidTo IS NULL")
domReload(domid)
client:outputChat("Pomy?lnie zwolniono dom.", 0, 255, 0)
end
addEvent("DOM:zwolnij", true)
addEventHandler("DOM:zwolnij", root, zwolnijdom)

addCommandHandler("mieszkanie",function(plr,cmd)
if exports['dutyadmin']:getAdmin(plr,7) then
local x,y,z = getElementPosition(plr)
local stringe = ("INSERT INTO lss_domy (descr,i,vwe,drzwi,punkt_wyjscia,interiorid,koszt,active) VALUES ('%s',%s,%s,'%s','%s',%s,%s,%s)"):format("Mieszkanie", 0,0,("%.2f,%.2f,%.2f"):format(x,y,z),("%.2f,%.2f,%.2f"):format(x,y,z),8,170,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)

addCommandHandler("dom",function(plr,cmd)
if exports['dutyadmin']:getAdmin(plr,7) then
local x,y,z = getElementPosition(plr)
local stringe = ("INSERT INTO lss_domy (descr,i,vwe,drzwi,punkt_wyjscia,interiorid,koszt,active) VALUES ('%s',%s,%s,'%s','%s',%s,%s,%s)"):format("Dom", 0,0,("%.2f,%.2f,%.2f"):format(x,y,z),("%.2f,%.2f,%.2f"):format(x,y,z),221,250,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)

addCommandHandler("willa",function(plr,cmd)
if exports['dutyadmin']:getAdmin(plr,7) then
local x,y,z = getElementPosition(plr)
local stringe = ("INSERT INTO lss_domy (descr,i,vwe,drzwi,punkt_wyjscia,interiorid,koszt,active) VALUES ('%s',%s,%s,'%s','%s',%s,%s,%s)"):format("Willa", 0,0,("%.2f,%.2f,%.2f"):format(x,y,z),("%.2f,%.2f,%.2f"):format(x,y,z),27,600,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)


[ Dodano: 2020-02-24, 12:55 ]
Ponawiam pytanie.

[ Dodano: 2020-02-24, 13:37 ]
Poprosz? o zamkni?cie.

Postaw piwo autorowi tego posta
 

 
Tagi: attempt :: get :: lenght :: global :: boolean :: value)
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