SA-MP Forums Archive
How to make an counter - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+--- Thread: How to make an counter (/showthread.php?tid=559296)



How to make an counter - lulo356 - 22.01.2015

How can i make an counter thats counting the most users in the server,


Re: How to make an counter - Schneider - 22.01.2015

Create a new file in your scriptfiles-folder and name it: OnlinePlayersRecord.txt

And add this to your gamemode:
pawn Код:
new OnlinePlayers, OnlinePlayersRecord;

public OnPlayerConnect(playerid)
{
    OnlinePlayers++;
    new File:file=fopen("OnlinePlayersRecord.txt", io_read);
    new string[12];
    while(fread(file, string))
    {
        OnlinePlayersRecord = strval(string);
    }
    fclose(file);
    if(OnlinePlayers > OnlinePlayersRecord)
    {
        OnlinePlayersRecord = OnlinePlayers;
        file=fopen("OnlinePlayersRecord.txt", io_write);
        if(file)
        {
            format(string, 12, "%d", OnlinePlayersRecord);
            fwrite(file, string);
            fclose(file);
        }
    }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    OnlinePlayers--;
    return 1;
}



Re: How to make an counter - lulo356 - 22.01.2015

Well, Im jusing DINI.


Re: How to make an counter - Schneider - 22.01.2015

That's fine too:
pawn Код:
new OnlinePlayers, OnlinePlayersRecord;

public OnPlayerConnect(playerid)
{
    OnlinePlayers++;
    OnlinePlayersRecord = dini_Int("OnlinePlayersRecord.txt", "OnlinePlayersRecord");
    if(OnlinePlayers > OnlinePlayersRecord)
    {
        new year, month, day, hour, minute, second;
        getdate(year, month, day);
        gettime(hour, minute, second);
        OnlinePlayersRecord = OnlinePlayers;
        dini_IntSet("OnlinePlayersRecord.txt", "OnlinePlayersRecord", OnlinePlayersRecord);
        dini_IntSet("OnlinePlayersRecord.txt", "Year", year);
        dini_IntSet("OnlinePlayersRecord.txt", "Month", month);
        dini_IntSet("OnlinePlayersRecord.txt", "Day", day);
        dini_IntSet("OnlinePlayersRecord.txt", "Hour", hour);
        dini_IntSet("OnlinePlayersRecord.txt", "Minute", minute);
        dini_IntSet("OnlinePlayersRecord.txt", "Second", second);
    }
    return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
    OnlinePlayers--;
    return 1;
}
Edit: Added the date too.


Re: How to make an counter - xVIP3Rx - 22.01.2015

Don't like loading and saving it once each player connects, I'm not really mature with dini but here's what I've wrote
pawn Код:
new OnlinePlayers, OnlinePlayersRecord;


public OnGameModeInit()
{
    new filename[] = "bestrecord.ini";
    if(fexist(filename))
    {
        OnlinePlayersRecord = dini_Int(filename, "BestRecord");
    }
    else
    {
        dini_Create(filename);
        dini_IntSet(filename, "BestRecord", 0);
    }
}

public OnGameModeExit()
{
    new filename[] = "bestrecord.ini";
    if(fexist(filename))
    {
        dini_IntSet(filename, "BestRecord", OnlinePlayersRecord);
    }
    else
    {
        dini_Create(filename);
        dini_IntSet(filename, "BestRecord", OnlinePlayersRecord);
     }
}
public OnPlayerConnect(playerid)
{
    OnlinePlayers++;
    if(OnlinePlayers > OnlinePlayersRecord) OnlinePlayersRecord = OnlinePlayers;
    return 1;
}

public OnPlayerDisconnect(playerid, reason)
{
    OnlinePlayers--;
    return 1;
}