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);