ein Gebäude UPGRADEN [GML]

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

  • Hallo.

    Ich denke alternativ könntest du auch beim Klick-Event auf das Haus einen Timer setzten, dass der Draw event erst ausgeführt wird, wenn das haus abgerissen wird oder wie du willst. Den Event, der das Haus ersetzt fürst du beim Alarm-Event aus.

    Ginge auch, aber mit den Variablen ist's vielleicht einfacher für dich.

    Mfg :D
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!
  • Danke für die ganzen Tips und so; und besonders an fabse, für die Ausführliche Anzeige einer variablenabfrage! ;freu;



    ...ich habe jetzt die buttons und so gemacht;

    wenn ich auf haus1 klicke, erscheint nen fenster mit info und die 2 buttons...wenn ich auf den yes button drücke, soll das haus1 zu haus1_2 werden (halt einmal verbessert), doch wenn ich mehrere haus1 auf dem Spielfeld habe, werden alle verbessert, das ist falsch, und ich weiß echt nicht wie ich das haus focusen kann, dass angeklickt wurde <- zu dem der Yes button angezeigt wurde.



    ich kann ja nicht auf den yes button drücken und dann werden alle haus1 die auf dem spielfeld sind verbessert!!!



    ich weiß echt nicht wie ich son focus machen kann :eek: 8| 8|
  • Hallo. Vielleicht kann ich dir weiterhelfen.

    Du muss jedes Hausobjekt folgender massen bearbeiten.

    Öffne ein Hausobjekt.
    Dann musst du beim Create-Event einen --> Execute a Script einfügen.
    Dort schreibst du folgendes rein...

    GML-Quellcode

    1. // X durch nummer bzw. Wert ersetzen --> 0 würde am meisten Sinn machen
    2. haus_X_update = X


    Dann nur noch beim Global-Left-Mouse-Event fogendes anzupassen...

    GML-Quellcode

    1. ...
    2. // wenn update : knopf--> yes
    3. haus_X_update += 1
    4. // den update-level um eines erhöhen


    So sollte es immer separat sein. Ausserdem kannst du oben auch gerade noch definieren was passieren soll, wenn das Haus das maximum an Updates erhalten hat.

    Wenn du noch die --> Wenn das Haus maximum geupdatet wurde <-- Abfrage einbauen willst, solltest du noch die Abfrage ändern im DrawEvent des Hauses:

    GML-Quellcode

    1. /* global_haus_X_max_update kannst du irgendwo in einem Globalen Script (falls scho vorhanden) oder in einen neuen Script schreiben oder sonst einfach zB. if(haus_X_update < 5) schreiben */
    2. if(haus_X_update < global.haus_X_max_update )
    3. {
    4. //drawen des Objekts
    5. }
    6. exit;


    ANMERKUNG : Habe diese Codes nicht überprüft. Sollte aber funzen.

    Hoffe konnte dir helfen

    Mfg und ToyToyToy ^^
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von xx-XtremeX-xx ()

  • Bist du sicher, dass du nicht etwas vergessen hast? Sollte wirklich gehen.
    Lies nochmals langsam durch.

    Und sonst... tut mir leid, wenns nicht geht

    Mfg

    EDIT :

    Schau mal hier : Eine billige Variante, funzt aber. Du kannst anstatt den instance_change auch deinen DrawEvent verwenden und noch deine Objekte und Codes einfügen. Aber siehst du. Ich habe mehrere Objekte und nur eines wird abgeändert. So sollte es mit dem Code auch sein

    Anhang:
    test.zip
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von xx-XtremeX-xx ()

  • Hallo,

    danke, aber du hast komplett das mit den Buttons vergessen, sonst wäre es ja kein Problem.


    siehe hier, ich habe ein Haus in den room (auch mehrere aber auf den Bild hab ich nur einen), und wenn ich dort einmal mit links raufklicke, erscheint dieses kleine Inventar, und ich möchte es so machen dass wenn ich auf den Yes button drücke nur dieses gebäude fokusiert wird zum upgraden, wo ich raufgeklickt hatte. ^^

  • Ja, das ist mir schon klar ^^

    Aber es liegt warscheinlich an deinem Mouse-left-press-event.
    Poste doch mal die Scripte des Hauses. Und alles, was damit zu tun hat.

    Alternativ kannst du auch deine GM datei anhängen.

    Mfg
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!
  • Hallo,


    ich habe im haus1:

    Spoiler anzeigen

    GML-Quellcode

    1. createevent:
    2. draw = 0;
    3. und im create event; nen executabe SCRIPT:
    4. upgradehaus
    5. und im script steht:
    6. t1_upgrade1 = 0
    7. im left pressed event:
    8. if (draw == 0)
    9. { draw = 1; }
    10. instance_create(680,404,t1_2); ///das ist der yes button
    11. instance_create(740,404,no_button); /// das ist der no button
    12. (deins: global mouse left pressed event):
    13. t1_upgrade1 += 1
    14. draw event:
    15. draw_sprite_ext(sprite_index,image_index,x,y,image_xscale,image_yscale,image_angle,image_blend,image_alpha);
    16. if (draw == 1)
    17. {
    18. draw_set_color(c_black);
    19. draw_rectangle(632,320,786,424,true);
    20. draw_text(656,344,"Cost20");
    21. }
    Alles anzeigen





    Habe bei den Buttons noch nicht viel gemacht, hatte einige Überlegungen aber die können Momentan nicht funktionieren :wacko:
  • Also.

    (deins: global mouse left pressed event):
    t1_upgrade1 += 1


    Ist schon mal falsch. Du musst nicht beim Mouse_Event die t1_upgrade1 erhöhen, sondern wenn du das Haus drawst. ( beim : Wenn yes gedrückt wird)
    Sry, dass war noch meine Schuld : --> Es muss natürlich Mouse_left_Event sein. ^^

    :)

    Mfg
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xx-XtremeX-xx ()

  • Leider kann ich keine rar- dateien öffnen.
    Aber das macht nichts. Ich schreibe mal ein Beispiel...


    1. Ändere bei deinem Haus die Aktion --> Global Mouse Left Event <-- in --> Mouse Left Event <-- um

    2. Du aktuallisierst die Variable t1_upgrade1 dort, wo du definiert hast, was passieren soll, wenn du yes drückst.

    Bsp:

    GML-Quellcode

    1. if(antwort = yes)
    2. {
    3. t1_upgrade1 += 1
    4. // dann kommt evt. noch geldabzug etc.
    5. geld -= X
    6. ...
    7. }


    Ich hoffe, du weisst jetzt was ich meine. Ich mache dir sonst einmal ein GM beispiel.

    Mfg
    Das Problem zu erkennen ist wichtiger,
    als die Lösung zu erkennen,
    denn die genaue Darstellung des Problems führt zur Lösung.
    ( Albert Einstein )


    I am an according to the gml n00b test!

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von xx-XtremeX-xx ()

  • ich hätte bei dem haus beim klicken ein menü gemacht über draw... komplett gedrawtes menü mit draw_rectangle_color etc. buttons auch zeichnen lassen und am ende mit einem

    GML-Quellcode

    1. if (mouse_x >= argument0 and mouse_y >= argument1 and mouse_x <= argument2 and mouse_y <= argument3)
    2. {return true;} else {return false;}

    und wenn true ein

    GML-Quellcode

    1. if mouse_check_button_pressed and mouse_in_area
    2. {show_message_ext(Willst du dieses Upgrade kaufen?,Ja,Nein)
    So far, Schattenphoenix~
    _____________________________________________________________________________
    "Who needs a stairway to heaven...
    If there is an elevator to hell... ?
    "
    - Vergessen
    "Auch ein perfektes Chaos ist etwas vollkommenes."
    - Jean Genet
  • Benutzer online 1

    1 Besucher