W
whiteman
Guest
One of my students is developing his own game. Its works fine but the code highlighted in red does not work. He doesn't get an error message but the code does not do what it is supposed to do. I can't find an issue with it either. It should work but doesn't
move_wrap(true, true, sprite_width/2)
if hp <= 0 {
instance_destroy()
}
if type == 1 {
sprite_index = s_archer
}
if type == 2 {
sprite_index = s_solder
}
if type == 3 {
sprite_index = s_ice_mage
}
if type == 4 {
sprite_index = s_fire_mage
}
if (attack = 0){
hsp = 0;
vsp = 0;
if o_king.y < y {
if (not place_meeting(x,y-3,o_team)) {vsp = -3}
}
if o_king.y > y {
if (not place_meeting(x,y+3,o_team)) {vsp = 3}
}
if o_king.x < x {
if (not place_meeting(x-3,y,o_team)) {hsp = -3}
}
if o_king.x > x {
if (not place_meeting(x+3,y,o_team)) {hsp = 3}
}
if (distance_to_object(o_king)) <= 10
{
vsp = 0;
hsp = 0;
}
x += hsp;
y += vsp;
}
// attack
if (attack = 1) {
if instance_exists(o_enemy_team){
hsp = 0;
vsp = 0;
direction = o_enemy_team;
if sprite_index = s_archer {
if distance_to_object(o_enemy_team) <= 300 {
hsp = 0;
vsp = 0;
if trigger1 {
alarm[4] = 60
trigger1 = false
}
}
}
if sprite_index = s_solder {
if distance_to_object(o_enemy_team) <= 5 {
hsp = 0;
vsp = 0;
if trigger2 {
alarm[3] = 60
trigger2 = false
}
}
}
if sprite_index = s_ice_mage {
if distance_to_object(o_enemy_team) <= 300 {
hsp = 0;
vsp = 0;
if trigger3 {
alarm[2] = 100
trigger3 = false
}
}
}
if sprite_index = s_fire_mage {
if distance_to_object(o_enemy_team <= 100) {
hsp = 0;
vsp = 0;
if trigger {
alarm[1] = 60
trigger = false
}
}
}
if o_enemy_team.y < y {
if (not place_meeting(x,y-3,o_team)) {vsp = -3}
}
if o_enemy_team.y > y {
if (not place_meeting(x,y+3,o_team)) {vsp = 3}
}
if o_enemy_team.x < x {
if (not place_meeting(x-3,y,o_team)) {hsp = -3}
}
if o_enemy_team.x > x {
if (not place_meeting(x+3,y,o_team)) {hsp = 3}
}
x += hsp;
y += vsp;
}
}
move_wrap(true, true, sprite_width/2)
if hp <= 0 {
instance_destroy()
}
if type == 1 {
sprite_index = s_archer
}
if type == 2 {
sprite_index = s_solder
}
if type == 3 {
sprite_index = s_ice_mage
}
if type == 4 {
sprite_index = s_fire_mage
}
if (attack = 0){
hsp = 0;
vsp = 0;
if o_king.y < y {
if (not place_meeting(x,y-3,o_team)) {vsp = -3}
}
if o_king.y > y {
if (not place_meeting(x,y+3,o_team)) {vsp = 3}
}
if o_king.x < x {
if (not place_meeting(x-3,y,o_team)) {hsp = -3}
}
if o_king.x > x {
if (not place_meeting(x+3,y,o_team)) {hsp = 3}
}
if (distance_to_object(o_king)) <= 10
{
vsp = 0;
hsp = 0;
}
x += hsp;
y += vsp;
}
// attack
if (attack = 1) {
if instance_exists(o_enemy_team){
hsp = 0;
vsp = 0;
direction = o_enemy_team;
if sprite_index = s_archer {
if distance_to_object(o_enemy_team) <= 300 {
hsp = 0;
vsp = 0;
if trigger1 {
alarm[4] = 60
trigger1 = false
}
}
}
if sprite_index = s_solder {
if distance_to_object(o_enemy_team) <= 5 {
hsp = 0;
vsp = 0;
if trigger2 {
alarm[3] = 60
trigger2 = false
}
}
}
if sprite_index = s_ice_mage {
if distance_to_object(o_enemy_team) <= 300 {
hsp = 0;
vsp = 0;
if trigger3 {
alarm[2] = 100
trigger3 = false
}
}
}
if sprite_index = s_fire_mage {
if distance_to_object(o_enemy_team <= 100) {
hsp = 0;
vsp = 0;
if trigger {
alarm[1] = 60
trigger = false
}
}
}
if o_enemy_team.y < y {
if (not place_meeting(x,y-3,o_team)) {vsp = -3}
}
if o_enemy_team.y > y {
if (not place_meeting(x,y+3,o_team)) {vsp = 3}
}
if o_enemy_team.x < x {
if (not place_meeting(x-3,y,o_team)) {hsp = -3}
}
if o_enemy_team.x > x {
if (not place_meeting(x+3,y,o_team)) {hsp = 3}
}
x += hsp;
y += vsp;
}
}