[8.41+][CreatureScript] Licznik czasu online!
Postanowiłem dla siebie napisać licznik czasu spędzonego w grze, może się komuś przyda.
W mysql wykonujemy zapytanie:
Kod:
ALTER TABLE `players` ADD `ontime` int(11) NOT NULL ;
Do creaturescripts.xml dodajemy:
Kod:
<event type="logout" name="PlayerLogout" script="logout.lua"/>
Do pliku creaturescripts/scripts/login.lua
Przed:
Wklejamy:
Kod:
setPlayerStorageValue(cid, 9999, os.time())
Tworzymy plik logout.lua w creaturescripts/scripts/
I wklejamy do niego to:
Kod:
function onLogout(cid)
local online = math.floor(os.time() - getPlayerStorageValue(cid, 9999))
setPlayerOnlineTime(cid, online)
end
Do lib/function.lua dodajemy:
Kod:
function getPlayerOnlineTime(uid)
if (isPlayer(uid) == TRUE) then
local select = db.getResult("SELECT `ontime` FROM `players` WHERE `name` = '" .. getPlayerName(uid) .. "' LIMIT 1;")
return select:getDataInt("ontime")
else
return FALSE
end
end
function setPlayerOnlineTime(uid, value)
if (isPlayer(uid) == TRUE) then
db.executeQuery("UPDATE `players` SET `ontime` = `ontime` + " .. value .. " WHERE `name`='" .. getPlayerName(uid) .. "' LIMIT 1;")
return TRUE
else
return FALSE
end
end
i do creaturescripts/scripts/playerdeath.lua dodajemy przed ostatnim "end":
Kod:
local online = math.floor(os.time() - getPlayerStorageValue(cid, 9999))
setPlayerOnlineTime(cid, online)
Testowane na TFS 0.3.4
Pozdrawiam.