B
Brandon Gale
Guest
I'm attempting to destroy enemy objects, as they go out of range of the player, and save them to an ini file. Then I am trying to restore those enemies as the player comes within range again.
I'm horribly green and reading on is probably going to cause a few heart-attacks.
Prepare to avert your eyes from the painful view...
This code is in the player step event:
This is the script called to try and achieve the lovely/lofty goals I stated previously (script_mem_check):
The code seems to sortof write some of what I'm hoping for (sortof), but doesn't seem to restore any enemies at all. Any advice is welcome (including neatness tips on my wretched excuse for coding). I've never worked with anyone, clearly.
Again, I'm sorry to put anyone through this nightmare...
I'm horribly green and reading on is probably going to cause a few heart-attacks.
Prepare to avert your eyes from the painful view...
This code is in the player step event:
Code:
if obj_player.x < room_width/8 {
with (all) {
x += room_width/2;
}
script_execute(script_mem_check);
}
if obj_player.x > room_width - (room_width/8) {
with (all) {
x += -(room_width/2);
}
script_execute(script_mem_check);
}
if obj_player.y < room_height/8 {
with (all) {
y += room_height/2;
}
script_execute(script_mem_check);
}
if obj_player.y > room_height - (room_height/8) {
with (all) {
y += -(room_height/2);
}
script_execute(script_mem_check);
}
Code:
globalvar enemy_x;
globalvar enemy_y;
globalvar arry_enemy_hp;
globalvar arry_enemy_spd;
globalvar enemy_save_temp;
globalvar player_prox;
globalvar playerprox_temp;
playerprox_temp = 0;
var i;
for (i = 0; i < instance_number(obj_enemy); i += 1)
{
enemy[i] = instance_find(obj_enemy,i);
with enemy[i]{
playerprox_temp = playerprox;
}
if playerprox_temp > 3000
{
enemy_x[i] = enemy[i].x;
enemy_y[i] = enemy[i].y;
with enemy[i]{
arry_enemy_hp[i] = enemy_hp;
arry_enemy_spd[i] = spd;
player_prox[i] = playerprox;
arry_enemy_id[i] = enemy_id;
instance_destroy();
}
enemy_save_temp = i + 1;
}
}
enemy = 0;
ini_open( "save_mem_dump.ini" );
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "enemy_x" , enemy_x[i]);
}
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "enemy_y", enemy_y[i]);
}
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "arry_enemy_hp", arry_enemy_hp[i]);
}
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "arry_enemy_spd" , arry_enemy_spd[i]);
}
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "arry_enemy_id" , arry_enemy_id[i]);
}
for(var i = 0; i < enemy_save_temp; i ++)
{
ini_write_real(string(arry_enemy_id[i]), "player_prox", player_prox[i]);
}
ini_write_real( "save1", "enemy_save_temp", enemy_save_temp );
ini_write_real( "enemy_count", "enemy_count", enemy_count );
ini_close();
gml_pragma("global", "scriptInitvariables()")
global.global_player_fuel_init = 10000;
global.player_recharge_init = 1;
global.player_money_init = 10000;
global.plasma_damage_init = 3
global.player_recharge = global.player_recharge_init;
global.global_player_fuel = global.global_player_fuel_init;
global.player_money = global.player_money_init;
global.plasma_damage = global.plasma_damage_init;
globalvar enemy_save;
enemy_save = 0;
globalvar enemy_x;
globalvar enemy_y;
globalvar enemy_count;
ini_open("save_mem_dump.ini");
if !ini_section_exists("enemy_count")
{
enemy_count = 0;
ini_write_real( "enemy_count", "enemy_count", enemy_count );
}
enemy_count = ini_read_real( "enemy_count", "enemy_count", 0 );
ini_close();
globalvar arry_enemy_hp;
globalvar arry_enemy_spd;
globalvar arry_enemy_id;
globalvar enemy_save_temp;
enemy_save_temp = 0;
Again, I'm sorry to put anyone through this nightmare...