These aren't so much as plugins that you use in-game that you include into your own plugins as additional functions.
Advanced .sp offers 'advanced' or additional functions that higher level functions use themselves. A lot of these functions in Advanced.sp are probably redundant to most coders (although it may contain some useful functions less-experienced ones can use).
This plugin is required in order to compile fileIO.sp.
fileIO.sp is the true goldmine in this one...
I developed fileIO.sp as a result of getting tired of writing and re-writing the same old tosh in order to be able to read and write information to files by greatly simplifying the process to nothing bar a few commands, with automated handling for errors.
Because I never officially intended it for public release, it may have bugs in it and parts that are hard to understand, but it's had several months worth of usage, so it's probably far more developed than most functions.
fileIO can;
Add the MapName to the front of a given filename
Write Strings to files
Write Articles to file (more on this later)
Find Strings in files
Read Strings from file
Read Articles from file (more on this later, again)
Delete Lines from file
Delete Articles from file (more on this later, again)
Append Strings to file
What is an Article? Why should I care?
An Article is typically a piece, or several pieces of information with a title to it. That is what an Article is, and you've guessed it; it saves the information under a title (as a reference).
For example, say you have a player that you want to store the kills, deaths, ragequits and kudos points. You'd use the player name (or Steam ID) as the title, and the ints are put into an array, EG
Code:
arr[4]
arr[0] = Kills
arr[1] = Deaths
arr[2] = Ragequits
arr[3] = Kudos
SetSave("filename.txt");
WriteArticleInt(player_name,arr,4); //The 4 being the number of 'articles'
Extraction is easier... Say you want to get it back but you don't know the precise name?
Code:
new String:guessed_name[64];
new String:real_name[128];
new arr[4];
guessed_name = "Fly"
LoadArticleInt(guessed_name,real_name,arr,4,0);//0 is the starting position in the file - you might use find string to find the start of the given string first before you load articles - meaning you can seperate articles into 'sections'
Failure returns a standard -1, otherwise the starting position of the string after the article.
fileIO has one major flaw; it doesn't use buildpaths, meaning it always saves to root directory. I haven't had time to try to understand the mostly vague nature of buildpath, and haven't really needed it per se. If anyone is willing to explain it to me, I'll tack it in.
Feel free to criticise, make suggestions or point out bugs. I can't guarantee I'll update anything though (although I am sure during plugin revisions I will).
If you are unfamilar with the functions usage or need the basics explained, feel free to ask and I will explain.