The solution for the no saving problem was given somewhere in this topic, if i remember well you must search you
Configuration.js file for all occourences of
Yes and change them into
true.
BTW. I took the liberty to edit the script code myself and it seems to be working fine with the (not so) recent changes in Xfire. This is what i got, feel free to do it too, but do it at your own risk (always wanted to say that ^^).
First, on your
General Functions.js, add the following lines (beggining or end of the file, doesn't really matters):
code:
//code by SpunkyLoveMuff
function ReadINI(path, header, key){
var bFound = false, i = -1, out = "", s = "", fso, f, t;
try {
fso = new ActiveXObject("Scripting.FileSystemObject");
f = fso.OpenTextFile(path, 1, false);
while (!f.AtEndOfStream){
s = f.readline();
if (s.indexOf(";") == 0){
}else{
if (s.toLowerCase() == "\[" + header.toLowerCase() + "\]") {
bFound = true;
}
if (bFound) {
i = s.indexOf("=");
if (i > -1) {
t = s.substring(0, i);
if (key.toLowerCase() == t.toLowerCase()){
out = s.substring(i + 1, s.length);
break;
}
}
}
}
}
f.close();
f = null;
fso = null;
}
catch(e){
out = e.description;
}
return out;
}
Now, open your
AppMon.js and do the following:
Delete the following piece of code (don't worry, we'll put something in it's place):
code:
objFSO = new ActiveXObject("Scripting.FileSystemObject");
if(objFSO.FileExists(inipath)){
objFile = objFSO.OpenTextFile(inipath,1,false,0);
var iniarray = objFile.ReadAll().split('\n');
objFile = null;
objFSO = null;
var game = '';
var lookforgame=false;
var statusnow=false;
var lookforname=false;
var lookforserver =false;
var cutlastchar = false;
var xfmessage = '';
if(iniarray[0] != "[STATUS]"){ cutlastchar = true; }
for(i=0; i<iniarray.length; i++){
if(cutlastchar){ iniarray[i] = iniarray[i].substr(0,iniarray[i].length - 1); }
if(lookforgame){
if(iniarray[i].indexOf('InGame=') > -1){
game = iniarray[i].substr(7);
}
}
if(statusnow){
if(iniarray[i].indexOf('Summary=In Game') > -1){
lookforgame = true;
statusnow = false;
}
}
if(lookforserver){
if(iniarray[i].indexOf('Server=') > -1){
lookforserver = false;
xfmessage+=' ['+iniarray[i].substr(7)+']';
}
else if(iniarray[i].indexOf('[') == 0){
lookforserver = false;
}
}
if(lookforname){
if(iniarray[i].indexOf('LongName=') > -1){
xfmessage=iniarray[i].substr(9);
lookforname = false;
lookforserver=true;
}
}
if(iniarray[i] == '[STATUS]'){ statusnow = true; }
if(iniarray[i] == '['+game+']'){ lookforname = true; }
}
if(xfmessage != ''){
icon = 'Games';
if(!found){ message = xfmessage; }
else{ message+= ' | '+xfmessage; }
found = true;
statuschangelist[statuschangelist.length] = xfirestatus;
xfireingame = true;
}
else{ xfireingame = false; }
}
Now, you'll paste this last code where the one you just deleted was:
code:
status = ReadINI(inipath,'STATUS','Summary');
Debug.Trace(status);
if(status=='In Game'){
gameno = ReadINI(inipath,'STATUS','InGame');
xfireingame = true;
gamename = ReadINI(inipath,gameno,'LongName');
server = ReadINI(inipath,gameno,'Server');
xfmessage = gamename+' ['+server+']';
icon = 'Games';
if(!found){ message = xfmessage; }
else{ message+= ' | '+xfmessage; }
found = true;
statuschangelist[statuschangelist.length] = xfirestatus;
}else{
xfireingame = false;
}
And voilá, this may do the trick and your AppMon+ should be recognizing Xfire games again =)