• 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!

Poblem os.time()

Lukanio

### Own3D ###
Joined
Nov 25, 2008
Messages
325
Reaction score
6
Kurde mam taki niby niewielki ale kurde problem z os.time

Chcialem zrobic skrypt ktory mozna uzyc co okreslony czas!

Na koncu skryptu dalem:

Code:
			setPlayerStorageValue(cid, STORAGE_BLOCK, os.time() + 3 * 3600 )

Ale na poczatku:

Code:
		if( STORAGE_BLOCK >= 0 and (STORAGE_BLOCK - os.time() ) > 0) then
			doPlayerSendCancel(cid, "You can do next command at: " .. os.date("%X", STORAGE_BLOCK))
			return true
		end


Kiedy na poczatku zostawilem jedynie

Code:
if( STORAGE_BLOCK >= 0 ) then

To pisalo okreslono godzine. A z tym :

Code:
(STORAGE_BLOCK - os.time() ) > 0)

Po prostu przepuszcza skrypt dalej..


Prosze o pomoc!
 
zmienilem:

setPlayerStorageValue(cid, STORAGE_BLOCK, os.time() + 3 * 3600 )

na:

exhaustion.set(cid, STORAGE_BLOCK, 3 * 3600 )

i na poczatku

if( STORAGE_BLOCK >= 0 and (STORAGE_BLOCK - os.time() ) > 0) then
doPlayerSendCancel(cid, "You can do next command at: " .. os.date("%X", STORAGE_BLOCK))
return true
end

na :

if exhaustion.get(cid, STORAGE_BLOCK) == TRUE then
doPlayerSendCancel(cid, "You can do next command at: " .. os.date("%X", STORAGE_BLOCK))
return true
end

I DALEJ NIC !
 
Lua:
function onXYZ(...)
	local storage = 12345
	if (exhaustion.check(cid, storage) then
		-- tutaj masz exhausted
	else
		exhaustion.set(cid, storage, 0)
	end
	
	return true
end
 
a ta funkcja os.time dziala jedynie na godziny? Czy takze na dni?
- i dalej jezeli dziala na DNI jak mozna zrobic taki myk zeby Ci pisalo jakiego dnia konczy Ci sie exh :)
 
os.time zwraca aktualny czas w sekundach.
- i dalej jezeli dziala na DNI jak mozna zrobic taki myk zeby Ci pisalo jakiego dnia konczy Ci sie exh
Lua:
local expired = os.time() + 60 * 60 * 24 * x
 
czyli jak ustawie:

exhaustion.set(cid,59702, 3 * 24 * 3600 )

to gracz dostane tego "exhaustion" na 3 dni

ale jak uzyje

doPlayerSendCancel(cid, "You can do next command at: " .. os.date("%X", 59702))

To ta funkcja pokaze tylko i wylacznie dokladna godzine?



Czyli zeby pokazalo ilosc dni trzeba zrobic:

if exhaustion.check(cid, 59702) > os.time() + 24 * 3600 then
local dni = exhaustion.check(cid, 59702) - os.time() + 24 * 3600
end


Wlasciwie to narazie nie mam pomyslu jak to zrobic te dni i tylko to mi wpadlo..... Ma ktos pomysl?



@ZMIANA

os.time - pokazuje czas
a co jak zmienie os.time na os.data? Pokaze ona kiedy mozna uzyc komendy wraz z wszystkimi danymi?

@Pytanie
Funkcja os.data zwraca aktualny czas w sec czy jak?
 
Last edited:
Lua:
function XYZ(cid, storageId)
	local stamp, hour = (getCreatureStorage(cid, storageId) - os.time()), 0
	while (stamp > 60 * 60) do
		hour = hour + 1
		stamp = stamp - 60 * 60
	end
	
	return hour
end
Sprawdź, funkcja zwraca ci godziny pozostałe (bez zaokrąglenia).
 
Back
Top Bottom