[KOD] Server Zamanları Kaydetme

Ky · 7 · 1223

0 Üye ve 1 Ziyaretçi konuyu incelemekte.

Çevrimdışı Ky

  • Uzman Üye
  • *
    • İleti: 614
: 18 Kasım 2020, 02:18:32
Herkese selamlar uzun süredir neredeyse tüm freeroam sunucularda gördüğüm bir sorun oyuncu zamanları silinme durumu bu sorun genelde script resetlendiği zaman ortaya çıkıyor çünkü script resetlendiği zaman herkesin zaman verilerini sıfıra çekerek tekrardan başlatıyordu bende ufak bir kod ayarı ile bu sorunu ortadan kaldırdım umarım işinizi görür.

Piyasada bulunan zaman script datalarıyla dataları eş değerdir bu sayede bunu kendi zaman kodlarınızla değiştirip scripti resetleyebilirsiniz.

NOT : Script resetlendiği zaman hesabı olmayan oyuncuları sıfırdan tekrar başlatır ama zaman verisi olan ve hesabında olan kişilerin zamanları otomatik olarak tekrardan aktarılır.

Kod
local t = { }
 
function checkValues( source,arg1,arg2)
    if (arg2 >= 60) then
        t[ source ][ 'min' ] = tonumber( t[ source ][ 'min' ] or 0 ) + 1
        t[ source ][ 'sec' ] = 0
    end
    if (arg1 >= 60) then
        t[ source ][ 'min' ] = 0
        t[ source ][ 'hour' ] = tonumber( t[ source ][ 'hour' ] or 0 ) + 1
    end
    return arg1, arg2
end
     
setTimer(function( )
        for _, v in pairs( getElementsByType( "player" ) ) do
        local playeraccount = getPlayerAccount (v)
        if (not t[ v ]) then
            if (not getElementData(v,"Zaman")) then
                t[ v ] = {
                            ["hour"] = 0,
                             ["min"] = 0,
                             ["sec"] = 0
                            }
               else
               if (playeraccount) then
               local saat = getAccountData(playeraccount,"Zaman-hour")
               local dakika = getAccountData(playeraccount,"Zaman-min")
               local saniye = getAccountData(playeraccount,"Zaman-sec")
               t[ v ] = {
               ["hour"] = tonumber(saat),
               ["min"] = tonumber(dakika),
               ["sec"] = tonumber(saniye)
               }
               setElementData(v,"Zaman",tostring(hour)..':'..tostring(min)..':'..tostring(sec))
               end           
            end
        end
 
            t[ v ][ 'sec' ] = tonumber( t[ v ][ 'sec' ] or 0 ) + 1
            local min,sec = checkValues (
                    v,
                    t[ v ][ 'min' ] or 0,
                    t[ v ][ 'sec' ] or 0

local hour = tonumber( t[ v ][ 'hour' ] or 0 )

            setElementData(v,"Zaman",tostring( hour )..':'..tostring( min )..':'..tostring( sec ))
        end
    end,
    1000, 0
)

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

    end
    t[ source ] = nil
end

function scriptStop_Zaman ()
local oyuncular = getElementsByType("player")
for index, oyuncu in ipairs(oyuncular) do
local playeraccount = getPlayerAccount (oyuncu)
if ( playeraccount ) and not isGuestAccount ( playeraccount ) then
local sValue = getElementData( oyuncu,'Zaman' )
local hour = tonumber( t[ oyuncu ][ 'hour' ] or 0 )
local min = tonumber( t[ oyuncu ][ 'min' ] or 0 )
local sec = tonumber( t[ oyuncu ][ 'sec' ] or 0 )
setAccountData ( playeraccount, "Zaman-hour", tostring(hour) )
setAccountData ( playeraccount, "Zaman-min", tostring(min) )
setAccountData ( playeraccount, "Zaman-sec", tostring(sec) )
setAccountData ( playeraccount, "Zaman", tostring(sValue) )
end
t[oyuncu] = nil
end
end
addEventHandler("onResourceStop", resourceRoot, scriptStop_Zaman)
« Son Düzenleme: 18 Kasım 2020, 02:22:28 Gönderen: Ky »
 


MTASATURK

[KOD] Server Zamanları Kaydetme
« : 18 Kasım 2020, 02:18:32 »

Çevrimdışı SARl

  • Acemi Üye
  • *
    • İleti: 145
Yanıtla #1 : 18 Kasım 2020, 08:38:00
Muhteşem   ;)
Linki görebilmek için Kayıt olun yada Giriş yapın.
 


Çevrimdışı ErayBaskan12

  • Yeni Üye
  • *
    • İleti: 1
Yanıtla #2 : 18 Kasım 2020, 14:51:45
Çok başarılı tebrikler :=)
 


Çevrimdışı #Reckless

  • Yeni Üye
  • *
    • İleti: 30
Yanıtla #3 : 19 Kasım 2020, 01:23:03
Yararlı paylaşım 👍
 


Çevrimdışı pttininal

  • Yeni Üye
  • *
    • İleti: 45
Yanıtla #4 : 19 Kasım 2020, 19:42:47
bu kodu nereye atıcam :)
 


Çevrimdışı Ghostemane

  • real muthaphuckkin' g
  • Acemi Üye
  • *
    • İleti: 179
Yanıtla #5 : 20 Kasım 2020, 11:23:40
yararlı paylaşım
 


MTASATURK

Ynt: [KOD] Server Zamanları Kaydetme
« Yanıtla #5 : 20 Kasım 2020, 11:23:40 »

Çevrimdışı #CrawL

  • Acemi Üye
  • *
    • İleti: 138
  • Skype: mtacrawl | Discord: crawl</>#2808
Yanıtla #6 : 20 Kasım 2020, 11:32:42
Linki görebilmek için Kayıt olun yada Giriş yapın.
bu kodu nereye atıcam :)
kafama at knk