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

Wysłany: 2017-11-18, 13:02


EvilXmik







Wiek: 28
Na forum: 3620 dni
Posty: 148
Nick w MP: EvilXmik

Piwa: 399

Respekt: 50

witam dzi? mam takie pytanie jak mam zrobi? ?eby w tym skrypcie zapisywa? si? czas pod MSQL. Za pomoc piwo i repa :D

Kod:


exports.scoreboard:addScoreboardColumn('Czas')

local t = { }

function checkValues( source,arg1,arg2)
if (arg2 >= 60) then
t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1
t[ source ][ 'sek' ] = 0
end
if (arg1 >= 60) then
t[ source ][ 'min' ] = 0
t[ source ][ 'godz' ] = tonumber( t[ source ][ 'godz' ] or 0 ) + 1
end
return arg1, arg2
end

setTimer(
function( )
for _, v in pairs( getElementsByType( "player" ) ) do
if (not t[ v ]) then
t[ v ] = {
["godz"] = 0,
["min"] = 0,
["sek"] = 0
}
end

t[ v ][ 'sek' ] = tonumber( t[ v ][ 'sek' ] or 0 ) + 1
local min,sek = checkValues (
v,
t[ v ][ 'min' ] or 0,
t[ v ][ 'sek' ] or 0
)
local godz = tonumber( t[ v ][ 'godz' ] or 0 )

setElementData(
v,
"Czas",
tostring( godz )..':'..tostring( min )..':'..tostring( sek )
)
end
end,
1000, 0
)

function onPlayerQuit ( )
local playeraccount = getPlayerAccount ( source )
if ( playeraccount ) and not isGuestAccount ( playeraccount ) then
local sValue = getElementData( source,'Czas' )
local godz = tonumber( t[ source ][ 'godz' ] or 0 )
local min = tonumber( t[ source ][ 'min' ] or 0 )
local sek = tonumber( t[ source ][ 'sek' ] or 0 )
setAccountData ( playeraccount, "Czas-godz", tostring(godz) )
setAccountData ( playeraccount, "Czas-min", tostring(min) )
setAccountData ( playeraccount, "Czas-sek", tostring(sek) )
setAccountData ( playeraccount, "Czas", tostring(sValue) )

end
t[ source ] = nil
end

function onPlayerLogin (_, playeraccount )
if ( playeraccount ) then
local time = getAccountData ( playeraccount, "Czas" )
local hou = getAccountData ( playeraccount, "Czas-godz")
local min = getAccountData ( playeraccount, "Czas-min")
local sek = getAccountData ( playeraccount, "Czas-sek")
if ( time ) then
setElementData ( source, "PlayTime", time )

t[ source ]["godz"] = tonumber(hou)
t[ source ]["min"] = tonumber(min)
t[ source ]["sek"] = tonumber(sek)
else
setElementData ( source, "Czas",0 )
setAccountData ( playeraccount, "Czas",0 )
end
end
end
addEventHandler ( "onPlayerQuit", root, onPlayerQuit )
addEventHandler ( "onPlayerLogin", root, onPlayerLogin )


Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-11-18, 14:26


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

Nie prosciej bedzie pobrac timestamp w momencie gdy gracz wbija na serwer zapisa? mu go za pomoc? setElementData i przy wyjsciu pobra? drugi raz nowy timestamp, odj?? od drugiego ten z elementDaty i otrzyman? r??nic? dopisac do tego co jest w mysql?

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-11-18, 14:52


EvilXmik







Wiek: 28
Na forum: 3620 dni
Posty: 148
Nick w MP: EvilXmik

Piwa: 399

Respekt: 50

emmm nic nie zrozumia?em :/

Postaw piwo autorowi tego posta
 

 
Wysłany: 2017-11-18, 15:55


=DC=







Wiek: 35
Na forum: 3944 dni
Posty: 223
Nick w MP: =DC=

Piwa: 72

Respekt: 150
Respekt: 150Respekt: 150

1. Gracz loguje sie na serwer.
2. Pobierasz czas logowania getRealTime.timestamp
3. Zapisujesz czas setElementDat'? graczowi
4. Gracz sobie gra gra gra...
5. W momencie jak wychodzi pobierasz znowu czas getRealTime.timestamp
6. Odejmujesz od czasu z pkt 5 ten kt?ry mu zapisa?e? w pkt 3
7. Masz wynik w sekundach ile czasu gracz by? na serwerze
8. Mo?esz ten wynik doda? do istniej?cego juz w bazie danych temu graczowi

Podpis

Witaj
, jeśli Ci pomogłem postaw mi :piwo: lub R* Dzięki!

Postaw piwo autorowi tego posta
 

 
Tagi: jak :: zrobić
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA Ten temat jest zablokowany bez możliwości zmiany postów lub pisania odpowiedzi

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