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

Wysłany: 2021-01-13, 22:21


NoNamik







Wiek: 35
Na forum: 2185 dni
Posty: 289
Nick w MP: JestemNoNamem

Piwa: 374

Respekt: 60

Witam mam domy z pysa 3.0 lecz nie ma limitu domkow jak to zrobic by byl max 3 domy i jak ktos ma tyle to nie moze wiecej kupic

domy={}
local function usunDom(id)
    if isElement(domy[id].wyjsciethen destroyElement(domy[id].wyjscieend
    if isElement(domy[id].wejsciethen destroyElement(domy[id].wejscieend
    if isElement(domy[id].csthen destroyElement(domy[id].csend
    if isElement(domy[id].textthen destroyElement(domy[id].textend
    domy[id]=nil
end

function dodajDom(v,fast)

    if not interiory[v.interioridthen return false end
    if domy[v.idthen
        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]
        if r.login2 == false then
        v.owner_nick r.login
        else
        v.owner_nick r.login2
        end
    else
        if v.ownerid ~= false then
        outputDebugString("B?ad domu ID domu#"..v.id)
        end
        v.owner_nick "do wynaj?cia"
    end
    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.owneridthen
        pickupid=1273
    end
    v.wejscie=createPickup v.drzwi[1], v.drzwi[2], v.drzwi[3], 3pickupid0)
    v.cs=createColSphere(v.drzwi[1],v.drzwi[2],v.drzwi[3], 1)

    if (not fast and v.owneridthen
        v.text=createElement("text")
        setElementPosition(v.textv.drzwi[1],v.drzwi[2],v.drzwi[3]+0.5)
        setElementData(v.text,"text", (v.descr or "Dom").."\n"..v.owner_nick)
    end
    local interior_dimension=v.vwi or 1000+v.id
    if v.lokator1 ~= "false" then
    local lokator1db=exports["pystories-db"]:dbSet("select login,login2,id from pystories_users where id=?"v.lokator1)
    if #lokator1db > 0 then
        lokator1db=lokator1db[1]
        if lokator1db.login2 then
        lokator1=lokator1db.login2
        else
        lokator1=lokator1db.login
        end
        lokator1uid=lokator1db.id
        else
        lokator1=false
        lokator1uid=false
    end
    end
    if v.lokator2 ~= "false" then
    local lokator2db=exports["pystories-db"]:dbSet("select login,login2,id from pystories_users where id=?"v.lokator2)
    if #lokator2db > 0 then
        lokator2db=lokator2db[1]
        if lokator2db.login2 then
        lokator2=lokator2db.login2
        else
        lokator2=lokator2db.login
        end
        lokator2uid=lokator2db.id
        else
        lokator2=false
        lokator2uid=false
    end
    end
    if v.lokator3 ~= "false" then
    local lokator3db=exports["pystories-db"]:dbSet("select login,login2,id from pystories_users where id=?"v.lokator3)
    if #lokator3db > 0 then
        lokator3db=lokator3db[1]
        if lokator3db.login2 then
        lokator3=lokator3db.login2
        else
        lokator3=lokator3db.login
        end
        lokator3uid=lokator3db.id
        else
        lokator3=false
        lokator3uid=false
    end    
    end
    setElementData(v.cs"dom", { 
        ["zamkniety"]=v.zamkniety>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,
        ["lokator1"]=lokator1,
        ["lokator1uid"]=lokator1uid,
        ["lokator2"]=lokator2,
        ["lokator2uid"]=lokator2uid,
        ["lokator3"]=lokator3,
        ["lokator3uid"]=lokator3uid,
    })

    v.wyjscie=createMarker(interiory[v.interiorid].exit[1], interiory[v.interiorid].exit[2], interiory[v.interiorid].exit[3], "arrow",1)
    setElementDimension(v.wyjscieinterior_dimension)
    setElementInterior(v.wyjscieinteriory[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,lokator1=NULL,lokator2=NULL,lokator3=NULL where paidTo<NOW() or paidTo IS NULL")
    local dbdomy
    if fast then
        dbdomy=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 AND d.ownerid IS NOT NULL;")
    else
        dbdomy=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;")
    end
    for __,v in ipairs(dbdomy) do
        if math.random(0,100)<=procent then
            if dodajDom(v,fastthen i=i+1 end
        end
    end                             
    outputDebugString("Zaladowano domow: " .. .. " w " .. (getTickCount()-tt) .. "ms")
end
addEventHandler("onResourceStart"resourceRoot, function()
    zaladujCzescDomow(100,false)
end)

function zaladujZmienioneDomy()
    local i=0
    local dbdomy=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")
    for __,v in ipairs(dbdomy) do

            if dodajDom(vthen i=i+1 end
    end                             
end

setTimer(zaladujZmienioneDomy10*10000)

function domReload(id)
    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=?"id)
    if dbdom then
    for i,v in ipairs(dbdom) do
        return dodajDom(v)
    end
    end
    return false
end

addEvent "SprawdzDom"true )
function SprawdzDom gracz )
    local dbdomy=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 AND d.ownerid IS NOT NULL;")
    for __,v in ipairs(dbdomy) do
        local uid=tonumber(getElementData(gracz,"player:sid"))
        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 == uid then 
        setElementData(gracz,"player:house",true)
        tak=({v.drzwi[1],v.drzwi[2],v.drzwi[3]})
        setElementData(gracz,"player:spawn",tak)
        end end
    end
        for __,v in ipairs(dbdomy) do
        local uid=tonumber(getElementData(gracz,"player:sid"))
        v.drzwi=split(v.drzwi,",")
        for ii,vv in ipairs(v.drzwi) do        v.drzwi[ii]=tonumber(vv)    end
        setElementData(gracz,"player:house",true)
        tak=({v.drzwi[1],v.drzwi[2],v.drzwi[3]})
        setElementData(gracz,"player:spawn",tak)
        end
    end
addEventHandler "SprawdzDom"rootSprawdzDom )

function kupdom(czas,domid)
local kasa=client:getMoney()
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!"25500)
    return
end
q=q[1]
if q.ownerid then
    client:outputChat("Ten dom ma ju? w?a?ciciela!"25500)
    return
end
koszt=q.koszt*czas
if kasa koszt then
    return
end
if koszt 0 then
    return
end
if koszt == 0 then
    return

end
takePlayerMoney(clientkoszt)
exports["pystories-db"]:dbSet("update lss_domy set ownerid=?, paidTo=NOW()+INTERVAL ? DAY, lokator1=NULL, lokator2=NULL, lokator3=NULL where id=?"client:getData("player:sid"), czasdomid)
domReload(domid)
client:outputChat("Pomy?lnie zakupi?e? dom, pobrano z konta "..koszt.." PLN!"02550end
addEvent("DOMY:kup"true)
addEventHandler("DOMY:kup"rootkupdom)

function oplacdom(czas,domid)
local kasa=client:getMoney()
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!"25500)
    return
end
q=q[1]
if q.ownerid ~= client:getData("player:sid"then
    client:outputChat("To nie jest tw?j dom!"25500)
    return
end
koszt=q.koszt*czas
if kasa koszt then
    client:outputChat("Nie sta? Ci? na op?acenie tego domu! ("..koszt.." PLN)"25500)
    return
end
takePlayerMoney(clientkoszt)
exports["pystories-db"]:dbSet("update lss_domy set paidTo=paidTo+INTERVAL ? DAY where id=?"czasdomid)
domReload(domid)
client:outputChat("Pomy?lnie op?aci?e? dom na "..czas.." dni, pobrano z konta "..koszt.." PLN!"02550end
addEvent("DOMY:oplac"true)
addEventHandler("DOMY:oplac"rootoplacdom)

function dodajlokator(uid,domid)
local q2=exports["pystories-db"]:dbSet("select id from pystories_users where id=?"uid)
if #q2> 0 then
q=exports["pystories-db"]:dbSet("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 (tonumber(q.lokator1) and tonumber(q.lokator1) ~= 0) and (tonumber(q.lokator2) and tonumber(q.lokator2) ~= 0) and (tonumber(q.lokator3) and tonumber(q.lokator3) ~= 0then client:outputChat("Osi?gni?to limit 3 lokator?w na dom!"25500) return end
    if (tonumber(q.lokator1) and tonumber(q.lokator1) == 0then
        exports["pystories-db"]:dbSet("update lss_domy set lokator1=? where id=?"uiddomid)
        domReload(domid)
        client:outputChat("Dodano nowego lokatora do domu."02550)
        return
    end
    if (tonumber(q.lokator2) and tonumber(q.lokator2) == 0then
        exports["pystories-db"]:dbSet("update lss_domy set lokator2=? where id=?"uiddomid)
        domReload(domid)
        client:outputChat("Dodano nowego lokatora do domu."02550)
        return
    end
    if (tonumber(q.lokator3) and tonumber(q.lokator3) == 0then
        exports["pystories-db"]:dbSet("update lss_domy set lokator3=? where id=?"uiddomid)
        domReload(domid)
        client:outputChat("Dodano nowego lokatora do domu."02550)
        return
    end
else
client:outputChat("Nie ma konta z takim UID!"25500)
end
end
addEvent("DOM:lokator+"true)
addEventHandler("DOM:lokator+"rootdodajlokator)

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."02550)
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."02550)
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."02550)
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-"rootusunlokator)

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."02550)
end
addEvent("DOM:zwolnij"true)
addEventHandler("DOM:zwolnij"rootzwolnijdom)

addCommandHandler("mieszkanie",function(plr,cmd)
if exports['pystories-admins']:getAdmin(plr,4) or getAdmin(plr7) or getAdmin(plr5then
local x,y,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,500000,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)

addCommandHandler("dom",function(plr,cmd)
if exports['pystories-admins']:getAdmin(plr,4) or getAdmin(plr7) or getAdmin(plr5then
local x,y,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,500000,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)

addCommandHandler("willa",function(plr,cmd)
if exports['pystories-admins']:getAdmin(plr,4) or getAdmin(plr7) or getAdmin(plr5then
local x,y,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,1000000,1)
local q,_,id=exports["pystories-db"]:dbSet(stringe)
domReload(id)
end
end)


Postaw piwo autorowi tego posta
 

 
Wysłany: 2021-01-13, 22:47


Matikmontana

Modern Stories






Wiek: 22
Na forum: 2473 dni
Posty: 423
Nick w MP: Mazeusz*

Piwa: 1015

Respekt: 130
Respekt: 130

Ostrzeżeń: 60%
Pobierasz ile gracz ma aktualnie domk?w i ustawiasz ?e je?li ma np: 4 to nie mo?e kupi? wi?cej przyk?ad:
local domki exports["pystories-db"]:dbGet("select * from lss_domy where ownerid=?"getElementData(client"player:sid"))
if domki and #domki >= 4 then
    outputChatBox("Nie mo?esz zakupi? wi?cej ni? 4 domki!",client)
    return
end


Postaw piwo autorowi tego posta
 

 
Tagi: domy :: pys
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