Create Events nach game_load() ausführen?

  • GM 8

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Create Events nach game_load() ausführen?

    Hallo,

    Hab mal wieder ein Problem und zwar speichere ich aktuell mit der Funktion game_save()
    Nun möchte ich aber nach dem game_load() alle Create Events und eventuell auch die Room Start Events ausführen lassen, da es sonst undefinierte Variablen gibt und diese aber auch nicht mit der Funktion des GMs "Treat ... as value 0" auf 0 gesetzt werden dürfen.

    Gibts da irgendwie ne möglichkeit?

    mfg,derkimba
  • Ja schon.Aber sobald ich mit einer neueren Version die ältere Datei lade oder andersherum klappt es aufgrund nicht definierter Variablen nicht.
    Dies wäre allerdings relativ wichtig für den Leveleditor, denn wenn man jetzt mit der älteren Version ein Level macht,was in der neueren Version nicht mehr spielbar ist,ist es ja ziemlich doof :)


    Belassen wirs dabei.Ich machs anders :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von derkimba ()

  • Haha, das ist ziemlich interessant. Genau vor dem selben Problem stand ich nämlich auch! Habe auch einen Leveleditor entwickelt. Du solltest dich so schnell es geht auf die wesentlichen Variablen, die du benötigst, einigen. Oder aber du lässt sie in einer Text-/.Ini-Datei speichern.
  • Ich möchte an dieser Stelle noch auf die folgende Funktion hinweisen:

    event_perform(type,numb)


    [hide=Dokumentation]
    event_perform(type,numb) Performs event numb of the
    indicated type to the current instance. The following event types can be
    indicated:


    ev_create
    ev_destroy
    ev_step
    ev_alarm
    ev_keyboard
    ev_mouse
    ev_collision
    ev_other
    ev_draw
    ev_keypress
    ev_keyrelease
    ev_trigger
    When
    there are multiple events of the given type, numb can be used to specify the
    precise event. For the event type ev_alarm numb can range from 0 to 11.
    For the ev_keyboard, ev_keypress. and ev_keyrelease
    event types you have to use the keycode for the key. For ev_mouse
    events you can use for numb the following constants:


    ev_left_button
    ev_right_button
    ev_middle_button
    ev_no_button
    ev_left_press
    ev_right_press
    ev_middle_press
    ev_left_release
    ev_right_release
    ev_middle_release
    ev_mouse_enter
    ev_mouse_leave
    ev_mouse_wheel_up
    ev_mouse_wheel_down
    ev_global_left_button
    ev_global_right_button
    ev_global_middle_button
    ev_global_left_press
    ev_global_right_press
    ev_global_middle_press
    ev_global_left_release
    ev_global_right_release
    ev_global_middle_release
    ev_joystick1_left
    ev_joystick1_right
    ev_joystick1_up
    ev_joystick1_down
    ev_joystick1_button1
    ev_joystick1_button2
    ev_joystick1_button3
    ev_joystick1_button4
    ev_joystick1_button5
    ev_joystick1_button6
    ev_joystick1_button7
    ev_joystick1_button8
    ev_joystick2_left
    ev_joystick2_right
    ev_joystick2_up
    ev_joystick2_down
    ev_joystick2_button1
    ev_joystick2_button2
    ev_joystick2_button3
    ev_joystick2_button4
    ev_joystick2_button5
    ev_joystick2_button6
    ev_joystick2_button7
    ev_joystick2_button8
    For the collision event you give the index of the other object. For
    the event type ev_other you can use for numb the following constants:


    ev_outside
    ev_boundary
    ev_game_start
    ev_game_end
    ev_room_start
    ev_room_end
    ev_no_more_lives
    ev_no_more_health
    ev_animation_end
    ev_end_of_path
    ev_close_button
    ev_user0
    ev_user1
    ev_user2
    ev_user3
    ev_user4
    ev_user5
    ev_user6
    ev_user7
    ev_user8
    ev_user9
    ev_user10
    ev_user11
    ev_user12
    ev_user13
    ev_user14
    ev_user15
    For
    the ev_step event type you can use the following constants for numb:


    ev_step_normal
    ev_step_begin
    ev_step_end
    Finally
    for the ev_trigger event type you should use the constants that you can
    specify when defining these
    events.
    event_perform_object(obj,type,numb) This functions
    works the same as the function above except that this time you can specify
    events in another object. Note that the actions in these events are applied to
    the current instance, not to instances of the given
    object!
    event_user(numb) In the other events you can also
    define 16 user events. These are only performed if you call this function. numb
    must lie in the range 0 to 15.
    event_inherited() Performs the
    inherited event. This only works if the instance has a parent
    object.

    [/hide]


    MfG SDX
  • Ich hänge an einer vergleichbaren Sache. In einer INI wird u.A. gespeichert, ob Musik, Soundeffekte, Partikel und Schatten an sind oder aus. Das Problem, welches ich hatte war, dass die manuelle Änderung der Werte ignoriert wurden, wenn ein Spielstand geladen wurde. Also wollte ich nach dem laden die INI aufrufen um die Werte aus zu lesen.

    Dies funktioniert aber nur, wenn die Aktion nach dem Speichern automatisch ausgelöst wird. Also nach der Save-Aktion einen Alarm auslösen, der das macht, was du willst. Dann wird dies auch nach dem Laden so ausgeführt.

    Ist bei mir noch nicht ganz rund, aber vom Prinzip her geht es.
  • Ich hatte es damals so gemacht, dass das Spiel beim Beenden alle relevanten Einstellungen in die INI schreibt und beim Starten des Spiels die Einstellungen wieder lädt. Unabhängig vom Savegame, da Sachen wie die Steuerung, Window Größe und Position ja das globale Spiel betreffen sollten.

    Edit:
    Achja, jetzt weiß ich was du meinst. Das Problem hatte ich auch, da er beim Laden eines Spieles sämtliche Codes, die danach folgen (auf dem alten, nicht geladenen Spielstand) ignoriert. Dein Ansatz ist richtig. So hatte ich es dann schließlich auch gelöst. Was genau funktioniert bei dir noch nicht?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von lordvanzed ()