|
Propably you need read whole file and count lines then open again and reads only last 10 lines xd
|
|
GTLS, I found nothing by searching like that
Why everyone not giving what i need I need a function |
|
GTLS, I found nothing by searching like that
Why everyone not giving what i need I need a function |
new File:rflh = fopen("reports.txt", io_read);
if(rflh)
{
new lines, id, str[256];
while(fread(rflh, str))
{
lines++;
}
id = lines - 10;
lines = 0;
fseek(rflh);
while(fread(rflh, str))
{
if(++lines <= id) continue;
SendClientMessage(playerid, -1, str);
}
fclose(rflh);
}
|
There is definitely plenty of documentation online on circular buffers. We aren't here to do things for you, just help you do then yourself.
|
|
"Don't explain me things just give me the function!
I will be back everytime I need you to work instead of me" Damn we are ppl to squeeze out for free |
|
Yes, you can do something like this.
Код:
new players; //First of all you must declare a global var to save the number of players
public OnGameModeInit()
{
if(!fexist("/Server/RegisteredPlayers.ini")) //Using File Exist function to check weather that file is there or not (In this case "if not")
{
new INI:FILE = INI_Open("/Server/RegisteredPlayers.ini") // so if not we are opening file for creating
INI_WriteInt(FILE, "Registered_Players", 0); // now we are declaring the key as Registered_Players (like Registered_Players = 0)
INI_Close(FILE); //Closing the file
}
else // opposite of the first explanation
{
new INI:FILE = INI_Open("/Server/RegisteredPlayers.ini") //Here we are opening the file for reading
INI_ParseFile(FILE, "LoadingRegisteredPlayers");// Native for loading files in Y_INI (Here 'FILE' represents the filepath and and the 'LoadingRegisteredPlayers' is the public function that we are using to load)
}
}
forward LoadUserData(name[], value[]);
public LoadUserData(name[], value[])
{
INI_Int("Registered_Players", players); // loading the number from INI file to the variable
return 1;
}
public OnPlayerConnect(playerid)
{
if(!registered) // IDK how you are doing this (according to your admin system)
{
//So don't put "players++" Now you may think why?, The reason is what happen if somebody connects(non registered) and disconnect without registering, That's why we are not increasing the number here
//Goto OnPlayerDialogResponse and put 'players++' if he got registered I'm not doing that part here(I'm lazy)
}
return 1;
}
//Now The important thing is we must save the Number of players regged to the file OnGameModeExit
public OnGameModeExit()
{
new INI:FILE = INI_Open("/Server/RegisteredPlayers.ini") // we are opening file for writing
INI_WriteInt(FILE, "Registered_Players", players);
INI_Close(FILE); //Closing the file
}
Why are you doing this? I may ask a question Actually does number of registered players differs according to players? Answer is NO SO don't make the var like this, new Number_Of_Registered[MAX_PLAYERS]; Just do this, new Number_Of_Registered; ========================================= If it was helpful...You also help me to increase my REPS... |
|
pawn Код:
|
mysql_tquery(sqlhandle, "SELECT * FROM `reports` LIMIT 10", "OnPlayerViewReports", "d", playerid);
forward OnPlayerViewReports(playerid);
public OnPlayerViewReports(playerid)
{
// yada yada
}
|
you should probably try SQL. here's an example of how simple it'd be if you wanted to do it that way.
. |
mysql_tquery(sqlhandle, "SELECT * FROM `reports` ORDER BY `date` DESC LIMIT 10 ", "OnPlayerViewReports", "d", playerid);