Wysłany: 2018-12-05, 21:59
Krzemo1234
Wiek: 26 Na forum: 3751 dni Posty: 387
Nick w MP: Krzemo
Piwa : 16
Witam wyskakuje error inie mg kupi? domku
DB3: ERROR: [BLife]\[Testowane]\lss-domy\domy.lua:80: attempt to get length of local 'lokator1db' (a boolean value)
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
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 [ "BLife-db" ]: dbGet ( "SELECT * FROM BLife_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
-- 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 , 2903.09 ,- 32.64 ,- 24.62 )
-- setElementData ( v . text , "text" , "dom" )
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 [ "BLife-db" ]: dbSet ( "select login,login2,id from BLife_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 [ "BLife-db" ]: dbSet ( "select login,login2,id from BLife_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 [ "BLife-db" ]: dbSet ( "select login,login2,id from BLife_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 > 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 ,
[ "lokator1" ]= lokator1 ,
[ "lokator1uid" ]= lokator1uid ,
[ "lokator2" ]= lokator2 ,
[ "lokator2uid" ]= lokator2uid ,
[ "lokator3" ]= lokator3 ,
[ "lokator3uid" ]= lokator3uid ,
-- [ "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 [ "BLife-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 [ "BLife-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 BLife_users c ON c.id=d.ownerid AND d.ownerid IS NOT NULL;" )
else
dbdomy = exports [ "BLife-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 BLife_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 [ "BLife-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 BLife_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 , 0 )
function domReload ( id )
local dbdom = exports [ "BLife-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 BLife_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
-- Add a new event called onSpecialEvent
addEvent ( "SprawdzDom" , true )
-- Define our handler function
function SprawdzDom ( gracz )
local q = exports [ "BLife-db" ]: dbGet ( "select id,house from BLife_users where id=? and house IS NOT NULL" , getElementData ( gracz , "player:uid" ))
if #q < 1 then
local dbdomy = exports [ "BLife-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 BLife_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 )
tak =({ v . drzwi [ 1 ], v . drzwi [ 2 ], v . drzwi [ 3 ]})
setElementData ( gracz , "player:spawn" , tak )
-- 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 )
-- tak [ #tak+1]={v.drzwi[1],v.drzwi[2],v.drzwi[3]})
-- setElementData ( gracz , "player:house:list" , tak )
-- end end
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
elseif #q > 0 then
local qr = exports [ "BLife-db" ]: dbGet ( "select ownerid,drzwi,id from lss_domy where id=?" , q [ 1 ]. house )
for i , v in ipairs ( qr ) do
local uid = tonumber ( getElementData ( gracz , "player:uid" ))
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
end
-- Add the event handler
addEventHandler ( "SprawdzDom" , root , SprawdzDom )
function kupdom ( czas , domid )
local kasa = client : getMoney ()
q = exports [ "BLife-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
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 [ "BLife-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 [ "BLife-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
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 [ "BLife-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 [ "BLife-db" ]: dbSet ( "select id from BLife_users where id=?" , uid )
if #q2> 0 then
q = exports [ "BLife-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 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 [ "BLife-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 [ "BLife-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 [ "BLife-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 [ "BLife-db" ]: dbSet ( "update lss_domy set lokator1=NULL where id=?" , domid )
client : outputChat ( "Pomy?lnie usuni?to lokatora." , 0 , 255 , 0 )
local dbdom = exports [ "BLife-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 BLife_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 [ "BLife-db" ]: dbSet ( "update lss_domy set lokator2=NULL where id=?" , domid )
client : outputChat ( "Pomy?lnie usuni?to lokatora." , 0 , 255 , 0 )
local dbdom = exports [ "BLife-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 BLife_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 [ "BLife-db" ]: dbSet ( "update lss_domy set lokator3=NULL where id=?" , domid )
client : outputChat ( "Pomy?lnie usuni?to lokatora." , 0 , 255 , 0 )
local dbdom = exports [ "BLife-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 BLife_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 [ "BLife-db" ]: dbSet ( "update lss_domy set paidTo='2000-01-01 00:00:00' where id=?" , domid )
exports [ "BLife-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 )
Podpis
Jeśli ci pomogłem zostaw zimne
Wysłany: 2018-12-05, 22:13
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Skrypt od ??czenia si? z baz? to BLife-db i ??czy si? poprawnie?
W MySQL, w bazie BLife_users posiadasz kolumn? login oraz login2 ?
Wysłany: 2018-12-06, 11:26
Krzemo1234
Wiek: 26 Na forum: 3751 dni Posty: 387
Nick w MP: Krzemo
Piwa : 16
Uruchamia si? normalnie bez ?adnych b??d?w , tak posiadam login/login2
Podpis
Jeśli ci pomogłem zostaw zimne
Wysłany: 2018-12-06, 11:59
PolskiSebek12
Programista
Wiek: 28 Na forum: 4346 dni Posty: 343
Nick w MP: CrosRoad95
Piwa : 3883
local lokator1db = true
x = #lokator1db
wynik: "attempt to get length of local 'lokator1db' (a boolean value) "
Wysłany: 2018-12-06, 12:17
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Wy?lij funkcj? dbSet, mo?esz?
Wysłany: 2018-12-06, 13:38
Krzemo1234
Wiek: 26 Na forum: 3751 dni Posty: 387
Nick w MP: Krzemo
Piwa : 16
Chodzi ci o to skrypt kt?ry ??czy baze danych z serwerem ?
Podpis
Jeśli ci pomogłem zostaw zimne
Wysłany: 2018-12-06, 14:02
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
W skrypcie od ??czenia z baz? masz funkcj? dbSet, dzi?ki kt?rej wprowadzasz zmiany lub popierasz dane z bazy MySQL.
Skrypt to BLife-db
Wysłany: 2018-12-06, 20:50
Krzemo1234
Wiek: 26 Na forum: 3751 dni Posty: 387
Nick w MP: Krzemo
Piwa : 16
ModSecurity zablokowa? zapytanie ze wzgled?w bezpiecze?stwa.
Je?eli strona wymaga tego typu zapyta?, to prosz? wy??czy? ModSecurity w panelu DirectAdmin, opcja "ustawienia mod_security".
Podpis
Jeśli ci pomogłem zostaw zimne
Wysłany: 2018-12-06, 21:25
Wilq
Wiek: 24 Na forum: 4428 dni Posty: 3410
Piwa : 739
Wykonaj poni?sze polecenie ; )
Cytat: wy??czy? ModSecurity w panelu DirectAdmin, opcja "ustawienia mod_security"
Wysłany: 2018-12-06, 22:15
Krzemo1234
Wiek: 26 Na forum: 3751 dni Posty: 387
Nick w MP: Krzemo
Piwa : 16
gdzie to si? wy??cza
Podpis
Jeśli ci pomogłem zostaw zimne
Tagi: system :: domów :: nie :: działa
Anonymous
Na forum: 245 dni
Posty: 1
Anonymous Koniecznie zajrzyj na: