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

Wysłany: 2013-12-26, 13:32


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

Tak jak w temacie chia?bym zrobic zapis ile gracz gra? na serwerze i kiedy ostatni raz si? logowa?.
Wiem ze do tego b?dzie potrzebna funkcja na getRealTime

Zrobi?em co? takiego ;
function zapis_grania ()
local time getRealTime()
local Godziny time.hour
local Minuty time.minute
local Senkundy time.second
local Dni time.monthday
    for _v in pairsgetElementsByType"player" ) ) do
        if (Senkundy == 60 ) do Minuty 1 then
            if (Minuty == 60 ) do Godziny 1 then
                if (Godzina == 24 ) do Dni 1 then
                setElementDatav"CzasGrania"tostringGodzina ).. ' h '.. tostringMinuty )..' min '.. tostringSenkundy )..' s')
                end
            end
        end
    end
end    

Czemu nie dzia?a ??

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-26, 16:16


Riot

3X






Wiek: 29
Na forum: 5729 dni
Posty: 1123
Nick w MP: Riot/3X

Piwa: 286

Respekt: 123
Respekt: 123

Co do czasu gry - zapisz timestamp przy wej?ciu i odczytaj go po wyjsciu z serwera.

Odejmij obydwa timestampy i wyjdzie Ci liczba sekund pokazuj?ca ile sekund by?e? na serwerze.
A z liczby sekund jeste? ju? w stanie obliczy? godziny, minuty sp?dzone na serwerze ;)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-26, 16:58


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

Riot, a nie lepiej by?o zrobi? to tak ?e przy jednym wej?ciu na serwera by?o np. 590s a na 2 600 wejsciu i to oda? i to pu?niej da? jako minutki itp ale by to niez?e obci??a?o serwer masz mo?e jaki? inny pomy?l . Piwka leca ;D

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-26, 17:57


Riot

3X






Wiek: 29
Na forum: 5729 dni
Posty: 1123
Nick w MP: Riot/3X

Piwa: 286

Respekt: 123
Respekt: 123

Szczerze ma?o zrozumia?em. M?j pomys? jest chyba najlepszy - nie obci??a serwera i wygodny ;) Je?li nie wiesz o co kaman, daj zna? dam przyk?ad.

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-26, 21:08


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

no nie wiem troch? si? ju? gubi? :(

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-27, 01:07


Oski

LUA Scripter






Wiek: 30
Na forum: 5246 dni
Posty: 428
Nick w MP: Oski

Piwa: 56

Respekt: 75,1

U?ywasz onPlayerLogin i onPlayerQuit
Przy logowaniu powo?ujesz setElementData(source,"Ile",getRealTime().timestamp)
Przy wyj?ciu robisz tak:
local obecny = getRealTime().timestamp
local byly = getElementData(source,"Ile")
local ilesekund = obecny-byly

setAccountData... zapisujesz zmienn? ilesekund albo do account data albo do mysql
oczywi?cie pobieraj?c wcze?niejsz? i dodaj?c obecn?
I oczywi?cie te sekundy mo?esz sobie formatowa? typu
local ilemin = math.floor(ilesekund/60)

Postaw piwo autorowi tego posta
 

 
Wysłany: 2013-12-27, 10:29


luki123luki123

Place Game






Wiek: 28
Na forum: 5275 dni
Posty: 1948
Nick w MP: LuKiO

Piwa: 6101

Respekt: 611
Respekt: 611Respekt: 611

"Oski" napisał/a:

U?ywasz onPlayerLogin i onPlayerQuit
Przy logowaniu powo?ujesz setElementData(source,"Ile",getRealTime().timestamp)
Przy wyj?ciu robisz tak:
local obecny = getRealTime().timestamp
local byly = getElementData(source,"Ile")
local ilesekund = obecny-byly

setAccountData... zapisujesz zmienn? ilesekund albo do account data albo do mysql
oczywi?cie pobieraj?c wcze?niejsz? i dodaj?c obecn?
I oczywi?cie te sekundy mo?esz sobie formatowa? typu
local ilemin = math.floor(ilesekund/60)


Co? ci sie chyba pomyli?o na pocz?tku pisania jak przy logowaniu da? funkcje na zapis i to jeszcze na DatasetElementData zamiast na odczyt getAccountData

[ Dodano: 2013-12-27, 10:48 ]
function zapis_grania ()
local Konto_gracza getAccountName(getPlayerAccount(source))
local obecny getRealTime().timestamp
local byly getAccountData Konto_gracza"czas_grania" )
local ilesekund obecny byly
setAccountData Konto_gracza"czas_grania"ilesekund )
end
addEventHandler("onPlayerQuit ",getRootElement(),zapis_grania )

function odczyt_grania ()
local Konto_gracza getAccountName(getPlayerAccountsource))
local obecny getRealTime().timestamp
local byly getAccountData Konto_gracza"czas_grania" )
local ilesekund obecny byly
local ilemin math.floor(ilesekund/60)
setElementData(source,"czas_grania_ile"ilemin end
addEventHandler("onPlayerLogin  ",getRootElement(),zapis_grania )
dalej cos nie dzia?a :(

Postaw piwo autorowi tego posta
 

 
Tagi: skrypt :: zapis :: ilości :: grania :: serwerze
Anonymous





Na forum: 245 dni
Posty: 1



Anonymous Koniecznie zajrzyj na:






Skocz do:  
Wyświetl posty z ostatnich:   
GTAONLINE.PL » JĘZYKI PROGRAMOWANIA » LUA » Skrypt na zapis ilości grania na serwerze 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