Game Development Community

Writing a file not working

by Nathan Kent · in Technical Issues · 11/28/2007 (5:21 pm) · 6 replies

I'm trying to create a save-game file, and I have this function to give the file the starting information, but it's not working. Can anyone see a problem?

function GameConnection::NewData(%this) {
	%file = new FileObject();
	%file.openForWrite("../../gameInfo.ntk");
	%file.writeLine($GameNumbers.security[0] SPC $Pref::Player::Name SPC $GameNumbers.security[1] SPC 000 SPC $GameNumbers.security[2] SPC 000 SPC $GameNumbers.security[3] SPC "Woodhenge");
	%file.writeLine($GameNumbers.security[4] SPC 0 SPC $GameNumbers.security[5] SPC 0 SPC $GameNumbers.security[6] SPC 60);
	%file.writeLine($GameNumbers.security[7] SPC 0 SPC 0 SPC 0 SPC 0 SPC 0 SPC 0 SPC $GameNumbers.security[8] SPC "pip" SPC $GameNumbers.security[9] SPC $GameNumbers.security[10]);
	%file.close();
	%file.delete();
}

#1
11/29/2007 (8:49 am)
There might be something wrong with your path, are you getting any errors in the console?
#2
11/29/2007 (1:48 pm)
No, I'm not. It was working before I added all those $GameNumbers.security's, that's what's confusing me so much! I just added those, and now it wont work!
#3
12/01/2007 (10:34 am)
Ok, I figured it out: it won't right zeros to file. How do I get it to do this?
#4
12/04/2007 (11:42 am)
One way, off the top of my head, is write the word "false" instead. If you really need the 0's then you could do a search and replace in the string that was read.
#5
12/04/2007 (1:31 pm)
Can you put the zeroes in quotes? Write the character zero to the file?
#6
12/04/2007 (2:07 pm)
Nope, the quotes don't make a difference. I guess it doesn't matter now, I just spent a whole lot of time making some functions that will translate the zeros:

$GameNumbers = new ScriptObject() {
	security[0] = "63B";
	security[1] = "F6C";
	security[2] = "8BF";
	security[3] = "762";
	security[4] = "4D9";
	security[5] = "C30";
	security[6] = "171";
	security[7] = "5A5";
	security[8] = "C0A";
	security[9] = "51A";
	security[10] = "E2";
	
	trueNumber[0] = "13F";
	trueNumber[1] = "21C";
	trueNumber[2] = "E6E";
	trueNumber[3] = "9D5";
	trueNumber[4] = "4D2";
	trueNumber[5] = "B62";
	trueNumber[6] = "940";
	trueNumber[7] = "EE8";
	trueNumber[8] = "6E0";
	trueNumber[9] = "0E0";
	trueNumber[10] = "80";
	
	falseNumber[0] = "5D9";
	falseNumber[1] = "B2B";
	falseNumber[2] = "F58";
	falseNumber[3] = "88B";
	falseNumber[4] = "8F1";
	falseNumber[5] = "A3B";
	falseNumber[6] = "8C4";
	falseNumber[7] = "671";
	falseNumber[8] = "F93";
	falseNumber[9] = "77E";
	falseNumber[10] = "C1";
	
	missionNumber[0] = "85T";
	missionNumber[1] = "QW3";
	missionNumber[2] = "EXC";
};

function getNumber(%tf) {
	%index = getRandom(10);
	switch(%tf) {
		case 1:
			%number = $GameNumbers.trueNumber[%index];
			break;
		case 0:
			%number = $GameNumbers.falseNumber[%index];
			break;
	}
	
	return %number;
}
function whatBool(%number) {
		for (%i = 0; %i < 10; %i++) {
		%bool = %number == $GameNumbers.trueNumber[%i];
		if (%bool)
			return 1;
	}
	for (%i = 0; %i < 10; %i++) {
		%bool = %number == $GameNumbers.falseNumber[%i];
		if (%bool)
			return 0;
	}
}

function confirmNumber(%number) {
	for (%i = 0; %i < 10; %i++) {
		%bool = %number == $GameNumbers.trueNumber[%i];
		if (%bool)
			return 1;
	}
	for (%i = 0; %i < 10; %i++) {
		%bool = %number == $GameNumbers.falseNumber[%i];
		if (%bool)
			return 1;
	}
	return 0;
}