1. Hey! Guest! The 35th GMC Jam will take place between November 28th, 12:00 UTC - December 2nd, 12:00 UTC. Why not join in! Click here to find out more!
    Dismiss Notice

GML when I choose another instance this one takes the value of the previous one

Discussion in 'Programming' started by Coppens, Aug 23, 2019.

  1. Coppens

    Coppens Member

    Joined:
    Aug 23, 2019
    Posts:
    4
    Hello,
    (sorry for my bad English, I'm Belgian)
    I select an instance, it follows a path, at the end of it I modify a variable of this instance.
    The problem is that if I select another instance of the object while the first continues its path, when the path is finished, the variable of the second instance is changed.
    I'm looking for 6 weeks!
    If I select another instance of the object, it should be the object selected from the beginning that changes when the path is completed.
    thank you in advance for your help.

    This is the code of creation:
    global.arrCar = array_create(5);
    global.arrCar[0] = instance_create_depth(639,286,1,objCar);
    global.arrCar[1] = instance_create_depth(639,159,1,objCar);
    global.arrCar[2] = instance_create_depth(703,159,1,objCar);
    global.arrCar[3] = instance_create_depth(767,159,1,objCar);
    global.arrCar[4] = instance_create_depth(831,159,1,objCar);
    global.arrCar[5] = instance_create_depth(831,286,1,objCar);

    when I select a objCar:
    global.idCar = instance_nearest(x,y,objCar);


    Remy
     
  2. the_dude_abides

    the_dude_abides Member

    Joined:
    Jun 23, 2016
    Posts:
    664
    Global variables are available to all objects / instances.

    If you want a path ending to change an instances variable, then you can do that within the instance itself - and only affect itself.

    Under "add event" there is "other": within this is "end of path". A function that only happens when a path is assigned, and has been finished.

    If the variable you want to change is always the same, and any time they have a path it will always do this, you can set the variable within this event. Put this in the object that will be following the path.

    You may have some other problems due to using global variables, but without seeing all of your code it's hard to say. This suggestion should fix your path issue.
     
  3. Coppens

    Coppens Member

    Joined:
    Aug 23, 2019
    Posts:
    4
    Thanks a lot for your feedback.
    I'll try this evening.

    Remy
     
  4. Coppens

    Coppens Member

    Joined:
    Aug 23, 2019
    Posts:
    4
    Hello, I'm back because doesn't works. I developed my question/issue with pictures below.


    picture1
    instance1.png

    I have 2 objects, 2 paths and a button.

    I select the instance of the object (green round) and I push the button to launch the command 'path_start'.

    At the end of this path, the object variable take a value like 'move = 0'.

    The problem: if I select the other instance (picture 2) before that the first one is at the end of her path, the second instance take the value 'move = 0' instead of the first.

    picture 2
    instance2.png

    when I click on the object instance: global.idCar = instance_nearest(x,y,objCar);

    Button code:
    with(global.idCar)
    {
    path_start(pathTemp,1,path_action_stop,1);
    }


    I have of course an event 'Path Ended':

    with(global.idCar)
    {
    variable_instance_set(global.idCar,"move",0);
    }

    -----------------------------------------------------------------------

    I'm completely lost!

    Thanks in advance for your help.

    Remy
     
  5. the_dude_abides

    the_dude_abides Member

    Joined:
    Jun 23, 2016
    Posts:
    664
    You are not setting the path in the object that travels it.

    If the path is not generated in that object it will need to be given a duplicate for itself.

    Then it can have it's own path end event, setting it's own variable 'move'.
    path end event (of whatever instance):
    Code:
    move = 0;

    If 'move' is meant to be a global variable:
    path end event (of whatever instance):
    Code:
    if move == 0
    {
    can set move
    }
    else
    {
    other instance has already set 'move' value, and so reached end of path first
    }
     
  6. Coppens

    Coppens Member

    Joined:
    Aug 23, 2019
    Posts:
    4
    I'll try asap.
    Thanks a lot
     

Share This Page

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice