Need help with a Save/Load Game Script Issue

J

JayTheCatz

Guest
Hello all, I have a problem within my basic load and save game scripts, well to be honest I don't know which one has the problem.

The problem is; When I save my game, die, and then load my last save, my "obj_player" duplicates itself, creating two players within the room.

Help would be massively appreciated!


my load game code

///load game
var file = (file_text_open_read(working_directory+"mysavedgame.txt"));
var save_string = (file_text_read_string(file));
file_text_close(file);
save_string = base64_decode(save_string);
var save_data = json_decode(save_string);

var save_room = save_data[? "room"];
if (room != save_room) {
room_goto(save_room);
}

with (obj_player_stats) {
player_xstart = save_data[? "x"];
player_ystart = save_data[? "y"];
if (instance_exists(obj_player)) {
obj_player.x = player_xstart;
obj_player.y = player_ystart;
obj_player.phy_position_x = player_xstart;
obj_player.phy_position_y = player_ystart;

} else {
instance_create(player_xstart , player_ystart, obj_player);
}
hp = save_data[? "hp"];
maxhp = save_data[? "maxhp"];
stamina = save_data[? "stamina"];
maxstamina = save_data[? "maxstamina"];
expr = save_data[? "expr"];
maxexpr = save_data[? "maxexpr"];
level = save_data[? "level"];
attack = save_data[? "attack"];
}

ds_map_destroy(save_data);

my save game code

///save game

// make sure player exists
if (!instance_exists(obj_player_stats)) exit;


//create saved data structure
var save_data = ds_map_create();

with (obj_player_stats) {
save_data[? "room"] = previous_room;
save_data[? "x"] = player_xstart;
save_data[? "y"] = player_ystart;
save_data[? "hp"] = hp;
save_data[? "maxhp"] = maxhp;
save_data[? "stamina"] = stamina;
save_data[? "maxstamina"] = maxstamina;
save_data[? "expr"] = expr;
save_data[? "maxexpr"] = maxexpr;
save_data[? "level"] = level;
save_data[? "attack"] = attack;
}



var save_string = json_encode(save_data);

ds_map_destroy(save_data);

save_string = base64_encode(save_string);

var file = file_text_open_write(working_directory + "mysavedgame.txt");
file_text_write_string (file , save_string);
file_text_close(file);

show_message("Game Saved")


--UPDATE--

So, I have found out, that if I save in "Room 1" and die in "Room 2" then load the last save, this creates the other player.

Still no fix.
 
Last edited by a moderator:
Top