Upgrade Problem

  • Upgrade Problem

    Also ich arbeite für mein Spiel gerade an einem Upgrade menü. Alles ist fein, bis das wenn ch auf dem Button draufklick, das er nicht nur einmal upgradet, sondern automatisch, wenn ich genug Geld habe, doppel upgradet, kommt auf das Geld an. Aber ich will ads er nur einmal upgreadet. Ich hab den Code vielleicht ein bisschen umständlich geschrieben, so wie ziemlich unübersichtlich, aber er funktioniert, bis auf das Problem einbahnfrei.

    GML-Quellcode

    1. if global.price1=0 {if (global.genauigkeit<9){exit;}}
    2. if global.price1=1 {if (global.genauigkeit<24){exit;}}
    3. if global.price1=2 {if (global.genauigkeit<49){exit;}}
    4. if global.price1=3 {exit;}
    5. {
    6. if (global.genauigkeit>9)
    7. {
    8. global.genauigkeitp+=1
    9. global.genauigkeit+=-10
    10. global.price1+=1
    11. }}
    12. if global.price1=1
    13. {
    14. if (global.genauigkeit>24)
    15. {
    16. global.genauigkeitp+=1
    17. global.genauigkeit+=-25
    18. global.price1+=1
    19. }}
    20. if global.price1=2
    21. {
    22. if (global.genauigkeit>49)
    23. {
    24. global.genauigkeitp+=1
    25. global.genauigkeit+=-50
    26. global.price1+=1
    27. }}
    Alles anzeigen

    das ist mein Code. global.price sind die verschiedenen Preise. Global genauigkeit das geld, und glboal.genauigkeitp die upgrade punkte. Vielleicht ist es ein bisschen unverständlich geschrieben, aber ich bin ja kein GML Fortgeschrittener.(Siehe Profli) :thumbsup:
    EDIT. und achja, das object kann höchstens lv 3 erreichen

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

  • Ich erkenne dein Problem: Du lässt den Script ja von oben nach unten durchlaufen und dadurch werden alle nötigen Variablen gesetzt, um nochmal aufzuleveln - wenn genug Geld da ist. Allerdings weiß ich nicht, in welches Event du den Code gepackt hast - ich vermute mal, in das "left pressed"-Event eines Upgrade-Buttons.

    In diesem Fall würde ich das mit einer weiteren Variable lösen, die den Ablauf unterbricht.
    z.B.

    Left Button Pressed

    GML-Quellcode

    1. if wait=0 && global.genauigkeit>9
    2. {
    3. global.genauigkeitp+=1
    4. global.genauigkeit+=-10
    5. global.price1+=1
    6. wait=1
    7. alarm[0]=1
    8. }
    9. if wait=0 &&global.price1=1 && global.genauigkeit>24
    10. {
    11. global.genauigkeitp+=1
    12. global.genauigkeit+=-25
    13. global.price1+=1
    14. wait=1
    15. alarm[0]=1
    16. }
    17. if wait=0 && global.price1=2 && global.genauigkeit>49
    18. {
    19. global.genauigkeitp+=1
    20. global.genauigkeit+=-50
    21. global.price1+=1
    22. wait=1
    23. alarm[0]=1
    24. }
    Alles anzeigen



    Und dann im Alarm[0]-Event:

    GML-Quellcode

    1. wait=0


    Das unterbricht die Kette und erlaubt erst nach einem weiteren Klick auf den Upgrade-Button ein Level-Up.

    Ich hoffe ma, das hilft :)
  • Benutzer online 1

    1 Besucher