GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: SSK - 2016. január 07. - 22:55:47

Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: SSK - 2016. január 07. - 22:55:47
Szép estét!
Az lenne a kérdésem,hogy hogyan lehetne azt megoldani, hogy amikor kilép egy játékos úgy ,hogy még nem telt le a Timer ideje, akkor az eltelt idő lementeni,majd ha újra felcsatlakozik betölteni azt az időt,amennyi maradt.?
Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: baglion02 - 2016. január 07. - 23:02:27
Dini vagy mysql?
Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: SSK - 2016. január 07. - 23:02:51
Dini
Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: baglion02 - 2016. január 08. - 01:52:17
Én annó dinivel úgy oldottam meg hogy ahol mented a karakteradatokat oda csináltam neki egy tárolót ami menti, 2 félét csináltam egy perc és egy másodperc és számol vissza és ha lelép akkor az elmenti.
Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: _[G]M[K]_Sh1ft_ - 2016. január 08. - 19:48:09
Nem javaslom a timer használatát. Inkább használd ezt:
-nem teljes de ha (bekötsz mindent a helyére) akkor működő képes lesz :D remélem érted
E: menti az eltöltött másodpercek számát
 

static ET[MAX_PLAYERS];
public OnPlayerDisconnect(playerid, reason)
{
new interval = GetTickCountDifference(ET[playerid], GetTickCount());
interval = interval/1000;
PlayerInfo[playerid][PlayedTime] = PlayerInfo[playerid][PlayedTime]+floatround(interval);
dini_IntSet(fileHelye,\"valtozo_neve\",PlayerInfo[playerid][PlayedTime]);
}
public OnPlayerConnect(playerid)
{
ET[playerid] = GetTickCount();
PlayerInfo[playerid][PlayedTime] = dini_Int(fileHelye,\"valtozo_neve\");
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);
}
Cím: SetTimerEx, megmaradt idő lementése kilépéskor.
Írta: SSK - 2016. január 09. - 15:01:46
Megoldottam,köszönöm a válaszokat!