• There is NO official Otland's Discord server and NO official Otland's server list. The Otland's Staff does not manage any Discord server or server list. Moderators or administrator of any Discord server or server lists have NO connection to the Otland's Staff. Do not get scammed!
  • 2026 staff recruitment is open! Check it out and consider applying!

Pomóżcie mi ziomki napisac house rune

Status
Not open for further replies.

ximmy

Member
Joined
Oct 31, 2009
Messages
374
Reaction score
6
wzoruje sie na ostatnim wpisie tutaj http://otland.net/f28/house-rune-169575/


wyszło mi takie coś:

function onUse(cid, item, fromPosition, itemEx, toPosition)
local house = getHouseInfo(getHouseFromPos(toPosition))

if (house == false) then
return false -- swizdu pizdu domku nie ma
end

local owner_id = house.owner

result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
if(result:getID() ~= -1) then
local lastlogin = result:getDataInt("lastlogin")
if (os.time() > (lastlogin-7*24*60*60)) then
setHouseOwner(house.id, getPlayerGUID(cid))
doPlayerSendCancel(cid, 'Rezydencja jest Twoja')
end
result:free()
end
return false
end



W konsoli nic
 
Last edited:
jak bedziesz uzywal tabulatorow do formatowania kodu to bedziesz widzial brakujacy end, nie podales calego kodu, tak a propo
 
Nawet autor sie wypowiedzial

teraz tak to wyglada i dalej not working

function onUse(cid, item, fromPosition, itemEx, toPosition)
local house = getHouseInfo(getHouseFromPos(toPosition))

if (house == false) then
return false -- swizdu pizdu domku nie ma
end

local owner_id = house.owner

result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
if(result:getID() ~= -1) then
end

local lastlogin = result:getDataInt("lastlogin")
if (os.time() > (lastlogin-7*24*60*60)) then
setHouseOwner(house.id, getPlayerGUID(cid))
doPlayerSendCancel(cid, 'Rezydencja jest Twoja')
end
result:free()
end
return false
end
end

co myslicie ?


[Error - LuaInterface::loadFile] data/actions/scripts/other/houserune.lua:22: '<eof>' expected near 'end'
[20:21:17.128] [Warning - Event::loadScript] Cannot load script (data/actions/scripts/other/houserune.lua)
[20:21:17.128] data/actions/scripts/other/houserune.lua:22: '<eof>' expected near 'end'
 
Wersja z tabulatorami:
LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local house = getHouseInfo(getHouseFromPos(toPosition))

	if (house == false) then
		return false -- swizdu pizdu domku nie ma
	end

	local owner_id = house.owner

	result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
	if(result:getID() ~= -1) then
	end

	local lastlogin = result:getDataInt("lastlogin")
	if (os.time() > (lastlogin-7*24*60*60)) then
		setHouseOwner(house.id, getPlayerGUID(cid))
		doPlayerSendCancel(cid, 'Rezydencja jest Twoja')
	end
	result:free()
	end
	return false
	end 
end
Wersja z usuniętymi dodatkowymi słowami kluczowymi end
LUA:
function onUse(cid, item, fromPosition, itemEx, toPosition)
	local house = getHouseInfo(getHouseFromPos(toPosition))

	if (house == false) then
		return false -- swizdu pizdu domku nie ma
	end

	local owner_id = house.owner

	result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
	if(result:getID() ~= -1) then
	end

	local lastlogin = result:getDataInt("lastlogin")
	if (os.time() > (lastlogin-7*24*60*60)) then
		setHouseOwner(house.id, getPlayerGUID(cid))
		doPlayerSendCancel(cid, 'Rezydencja jest Twoja')
	end
	result:free()
	return false
end
 
Jak by mi wyszło sam to bym tu nie siedzial, chyba od tego jest forum zeby sobie pomagac

function onUse(cid, item, fromPosition, itemEx, toPosition)
local house = getHouseInfo(getHouseFromPos(toPosition))

if (house == false) then
return false -- swizdu pizdu domku nie ma
end

local owner_id = house.owner

result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
if(result:getID() ~= -1) then
end

local lastlogin = result:getDataInt("lastlogin")
if (os.time() > (lastlogin-7*24*60*60)) then
setHouseOwner(house.id, getPlayerGUID(cid))
doPlayerSendCancel(cid, 'Rezydencja jest Twoja')
end
result:free()
return false
end

Tak mam, ale nic sie nie dzieje a w konsola nic nie wyrzuca
Pomysly wyczerpalem
 
Niczym, tylko inaczej go uzyc. W tej chwili sprawdzasz czy query zwrocilo jakies dane po czym nic nie robisz i wykonujesz dalej skrypt, musisz porownac id do -1 i w przypadku kiedy jest rowny tej wartosci przerwac skrypt.
 
result = db.getResult("SELECT `lastlogin` FROM `players` WHERE `id` = " .. owner_id .. " AND `online` = 0;")
if(result:getID() ~= -1) then
return
end

o to chodzi ?
 
Teoretycznie tak [nie pamiętam do końca Lua więc może i nie], ale nie wywołasz wtedy result:free().

Dobrze by było gdybyś nauczył się konstrukcji if .. else i pisał programy które są czytelne a nie takie babole.
 
o to chodzi ?

Nie, po pierwsze nie zwracasz zadnej wartosci (true w tym przypadku preferowane), a po drugie masz porownac do -1, a nie sprawdzic czy jest rozne.

Teoretycznie tak [nie pamiętam do końca Lua więc może i nie], ale nie wywołasz wtedy result:free().

Dobrze by było gdybyś nauczył się konstrukcji if .. else i pisał programy które są czytelne a nie takie babole.

result:free() nie trzeba wywolywac na wadliwych rezultatach :p
 
Status
Not open for further replies.
Back
Top