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();
}About the author
#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;
}
Torque Owner Steve D