Szerző Téma: Játszott idő mentése  (Megtekintve 2457 alkalommal)

Játszott idő mentése
« Dátum: 2016. Január 10. - 01:03:23 »
+2 Show voters
A scriptről:
-Menti a játszott időt (másodpercekben) dini segítségével.
-A scriptfiles mappában hozz létre egy users nevű mappát, és már nincs más dolgod, mint betölteni ezt.
-Egyszerű, rövid, hasznos, és még nem nagyon találkoztam ilyennel. Gondolom ez majd jól jöhet valakinek ezért megosztom veletek. Szerintem hasznosabb mint szórakozni egy timerrel. (Bár ha bírja a vasad...)
+Le tudod kérni a játszott idődet.
Parancsa: /jatszott_idom
Letöltés (<a href=\"http://pastebin.com/uF240VMz\">Pastebin</a>)
Letöltés (<a href=\"http://www.mediafire.com/download/gfohuk9o3e1687x/time.pwn\">.pwn</a>)
Letöltés (<a href=\"http://www.mediafire.com/download/3e6q5q969m1lda6/time.amx\">.amx</a>)
Forrás kódja:
 

#include <a_samp>
#include <dini>
#include <zcmd>
static ET[MAX_PLAYERS];
new PlayedTime[MAX_PLAYERS];
public OnPlayerConnect(playerid)
{
new filePath[64];
format(filePath,sizeof(filePath),\"users/%s.ini\", pName(playerid));
    if(!dini_Exists(filePath)) {
dini_Create(filePath);
PlayedTime[playerid] = 0;
} else {
    PlayedTime[playerid] = dini_Int(filePath,\"PTIS\");//PlayedTimeInSeconds
}
    ET[playerid] = GetTickCount();
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    new filePath[64];
format(filePath,sizeof(filePath),\"users/%s.ini\", pName(playerid));
    new interval = GetTickCountDifference(ET[playerid], GetTickCount());
interval = interval/1000;
PlayedTime[playerid] = PlayedTime[playerid]+floatround(interval);
dini_IntSet(filePath,\"PTIS\",PlayedTime[playerid]);
return 1;
}
CMD:jatszott_idom(playerid)
{
new interval = GetTickCountDifference(ET[playerid], GetTickCount());
interval = PlayedTime[playerid]+(interval/1000);
new minutes,seconds,hours;
minutes = interval / 60;
seconds = interval % 60;
hours = minutes / 60;
minutes = minutes % 60;
new str[128];
format(str,sizeof(str),\"Játszott idő: %d óra %d perc %d másodperc\",hours,minutes,seconds);
    SendClientMessage(playerid,-1,str);
return 1;
}
 
stock abs(int)
{
    if(int < 0)
return -int;
    return int;
}
stock intdiffabs(tick1, tick2)
{
    if(tick1 > tick2)
        return abs(tick1 - tick2);
    else
        return abs(tick2 - tick1);
}
stock GetTickCountDifference(a, b)
{
    if ((a < 0) && (b > 0))
    {
        new dist;
        dist = intdiffabs(a, b);
        if(dist > 2147483647)
            return intdiffabs(a - 2147483647, b - 2147483647);
        else
            return dist;
    }
    return intdiffabs(a, b);
}
stock pName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
return name;
}

Nem elérhető !Adam

Játszott idő mentése
« Válasz #1 Dátum: 2016. Február 07. - 18:13:18 »
0 Show voters
Szép script, éppen kellett nekem, fel is használom.. :)

Nem elérhető MonKey

  • 125
    • Profil megtekintése
Játszott idő mentése
« Válasz #2 Dátum: 2016. Június 29. - 16:33:18 »
0 Show voters
Idézetet írta: !Adam date=1454865198\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"59052\" data-ipsquote-contentclass=\"forums_Topic
Szép script, éppen kellett nekem, fel is használom.. :)
 
Szép....!

Játszott idő mentése
« Válasz #3 Dátum: 2016. Augusztus 04. - 16:57:43 »
0 Show voters
Nagyon jó

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal