Seems to work ok if you quit the game, restart it, and THEN load the game and continue playing. But if you save and then load within the game, and carry on playing, the achievements stop being set.
EDIT
Ok, this actually doesn't seem to work. Nothing Steam related will work after loading a game. Not even my Achievement reset button. It's like the connection to Steam has been severed. I've tried adding "RequestStats" to AfterLoad to reconnect. Nothing. It just stops working after you load a game.
This is my reset code:
{
if(SteamAchieve.StatsAvailable)
{
SteamAchieve.ResetAllStats(true);
}
}
The reset code checks the connection, and if it's there, then it resets the achievements, and displays the message. After loading a game, I do not get the game.msg displaying, so that means the stats are NOT available, which means the connection is not there anymore. But why should loading a game result in this?
MORE EDIT:
Ok, so after more tests, I've discovered that if I put "global SteamAchieve = new SteamAPI();" in game.script, then nothing Steam related will work after loading a game, no matter if you exit the game and reboot or not.
But, if I define "SteamAchieve" in a scene_init.script (only on first visit), then Steam WILL work if you exit the game, reboot, and then load. But, it still won't work if you save and then load without exiting inbetween.
Also, I've discovered that if you define the Steam object more than once, then everything stops working. I'm no expert, but it kind of feels like the reason this issue is occuring is because for some reason, after you load a game, there is more than once instance of the Steam object. Or it's been defined again after loading. That would explain why, if you don't define it in game.script, then you exit, restart the game, THEN load, everything works normally. If you define it in game.script, it gets defined everytime you start the game, so if you load at that point, then the issue occurs. Hope I'm making some sense.
I think this might have been the problem Azrael was experiencing. If you didn't notice it was occuring after loading, then it would seem like a random problem with no explanation.