AlliedModders

AlliedModders (https://forums.alliedmods.net/index.php)
-   Scripting Help (https://forums.alliedmods.net/forumdisplay.php?f=11)
-   -   loading from .ini (https://forums.alliedmods.net/showthread.php?t=57381)

Rolnaaba 07-03-2007 16:53

loading from .ini
 
Hi,

For my new AvP Mod I want the levels customizable via an .ini file. I was thinking of formating it something like this:
Code:

;AvP Levels
;Please type the ammount of exp needed to reach a level.
;Separate each level with a comma.
;
;NOTE: level "0" has 0 exp needed automatically the first
;amount of exp you wright will be level 1
;
;Place your level definitions here:
MAXLEVELS = 10
EXP_NEEDED = 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200

how would I load from an .ini file with this in it?

thanks, roln

Emp` 07-03-2007 17:14

Re: loading from .ini
 
look at SH mod.

Rolnaaba 07-03-2007 19:00

Re: loading from .ini
 
ok I looked and modified it a tad, hows this look?
Code:
//thanks to superheromod for exp loading. public LoadLevels() {     new file[128];     get_configsdir(file, 127);     formatex(file, 127, "%s/avp/avp.ini", file);         if(!file_exists(file)) create_levels_ini();     new readLine = 0;     new data[1024], tag[20], lengthRead;     new numLevels[6], loadCount = -1;     new XP[1024];     new LeftXP[32];     while((readLine = read_file(gSHFile, readLine, data, 1023, lengthRead)) != 0) {         if(equal(data[0], ";")) continue;         if(equali(data[0], "MAXLEVELS", 9)) {             parse(data, tag, 19, numLevels, 5)         } else if((equali(data[0],"EXP_NEEDED",8)) {             copy(XP, 1023, data)         }     }     if(strlen(numLevels) == 0) {         avp_log("ERROR: No MAXLEVELS data was found, aborting avp.ini loading");         avp_log("ERROR: Unable to find MAXLEVELS data, creating default avp.ini");         create_levels_ini();     }     else if(strlen(XP) == 0) {         avp_log("ERROR: No EXP_NEEDED data was found, aborting avp.ini loading");         avp_log("ERROR: Unable to find EXP_NEEDED data, creating default avp.ini");         create_levels_ini();     }         avp_log("NOTICE: avp.ini Loading was successful, checking data.");     gNumLevels = str_to_num(numLevels);     //This prevents variables from getting overflown     if(gNumLevels > MAXLEVELS) {         avp_log("ERROR: MAXLEVELS as defined in avp.ini is larger than MAXLEVELS in plugin!");         avp_log("ERROR: MAXLEVELS as defined in avp.ini too large, reducing to MAXLEVELS defined in plugin.");         gNumLevels = SH_MAXLEVELS     }     //Get the data tag out of the way     strbrkqt(XP, LeftXP, 31, XP, 1023);     while(strlen(XP) > 0 && loadCount < gNumLevels ) {         loadCount++         strbrkqt(XP, LeftXP, 31, XP, 1023)         gXPLevel[loadCount] = str_to_num(LeftXP);         if (loadCount > 0 && gXPLevel[loadCount] < gXPLevel[loadCount - 1]) {             avp_log("ERROR: Level %d is less XP than the level before it (%d < %d), adjusting MAXLEVELS to %d", loadCount, gXPLevel[loadCount], gXPLevel[loadCount - 1], loadCount - 1);             gNumLevels = loadCount - 1;             break;         }         avp_log("NOTICE: XP Loaded - MAXLEVELS: %d  -  EXP_NEEDED: %d",loadCount,gXPLevel[loadCount]);     }     if(loadCount < gNumLevels) {         avp_log("ERROR: Ran out of levels to load, check your avp.ini for errors. Adjusting MAXLEVELS to %d", loadCount);         gNumLevels = loadCount;     } } publiccreate_levels_ini() {     new file[128];     get_configsdir(file, 127);     formatex(file, 127, "%s/avp/avp.ini", file);         if(file_exists(file)) delete_file(file)     write_file(file,";AvP Levels",                          0);     write_file(file,";MAXLEVELS is the amount of levels you can acheive",       1);     write_file(file,";EXP_NEEDED is the amount of exp needed for each level",   2);     write_file(file,";please separate each level with a space.",            3);     write_file(file,";",                                4);     write_file(file,";NOTE: level ^"0^" has 0 exp needed automatically,",       5);     write_file(file,";the first amount of exp you write will be level ^"1^"",   6);     write_file(file,";",                                7);     write_file(file,";Place your level definitions here:",              8);     write_file(file,"MAXLEVELS 10",                         9);     write_file(file,"EXP_NEEDED 100 200 400 800 1600 3200 6400 12800 25600 51200",  10);         /* This is what the file will look like:     ;AvP Levels     ;EXP_NEEDED is the amount of exp needed for each level     ;please separate each level with a space.     ;     ;NOTE: level "0" has 0 exp needed automatically,     ;the first amount of exp you write will be level "1"     ;     ;Place your level definitions here:     MAXLEVELS 10     EXP_NEEDED 100, 200, 400, 800, 1600, 3200, 6400, 12800, 25600, 51200     */ }


All times are GMT -4. The time now is 21:26.

Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.