Szerző Téma: SetTimerEx, megmaradt idő lementése kilépéskor.  (Megtekintve 927 alkalommal)

Nem elérhető SSK

  • 232
    • Profil megtekintése
SetTimerEx, megmaradt idő lementése kilépéskor.
« Dátum: 2016. január 07. - 22:55:47 »
0 Show voters
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.?

SetTimerEx, megmaradt idő lementése kilépéskor.
« Válasz #1 Dátum: 2016. január 07. - 23:02:27 »
0 Show voters
Dini vagy mysql?

Nem elérhető SSK

  • 232
    • Profil megtekintése
SetTimerEx, megmaradt idő lementése kilépéskor.
« Válasz #2 Dátum: 2016. január 07. - 23:02:51 »
0 Show voters
Dini

SetTimerEx, megmaradt idő lementése kilépéskor.
« Válasz #3 Dátum: 2016. január 08. - 01:52:17 »
0 Show voters
É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.

SetTimerEx, megmaradt idő lementése kilépéskor.
« Válasz #4 Dátum: 2016. január 08. - 19:48:09 »
0 Show voters
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);
}
« Utoljára szerkesztve: 2016. január 08. - 20:03:22 írta _[G]M[K]_Sh1ft_ »

Nem elérhető SSK

  • 232
    • Profil megtekintése
SetTimerEx, megmaradt idő lementése kilépéskor.
« Válasz #5 Dátum: 2016. január 09. - 15:01:46 »
0 Show voters
Megoldottam,köszönöm a válaszokat!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal