Waffenwechsel führt zum Absturz

  • Waffenwechsel führt zum Absturz

    Hi, ich habe den Waffenwechsel erweitert. Ich möchte, dass wenn man das mausrad HOCH drückt, dass dann jeweils, wenn eine Waffe Munition hat, die nächste dann auch genommen wird (wenn nicht, wird die übernächstenächste (usw bis man wieder bei 1 ist) genommen). global.waffe4 ist eine Variable, die feststellt, ob man Waffe 4 bereits hat. global.waffenindex ist die momentane Waffe.

    GML-Quellcode

    1. wechseln=1
    2. do
    3. {
    4. if wechseln=1 && global.waffenindex=1
    5. {
    6. if global.waffe2
    7. {
    8. if global.gmuni>0
    9. {
    10. global.waffenindex=2
    11. }
    12. }
    13. wechseln=0
    14. }
    15. if wechseln=1 && global.waffenindex=2
    16. {
    17. if global.waffe2
    18. {
    19. global.waffenindex=3
    20. }
    21. }
    22. wechseln=0
    23. if wechseln=1 && global.waffenindex=3
    24. {
    25. if global.waffe3
    26. {
    27. global.waffenindex=4
    28. }
    29. }
    30. wechseln=0
    31. if wechseln=1 && global.waffenindex=4
    32. {
    33. global.waffenindex=1
    34. }
    35. wechseln=0
    36. }
    37. until (wechseln=0)
    Alles anzeigen


    Problem: Er wechselt, obwohl ich bei den Waffen keine Munition habe und bei der zweiten Waffe bleibt das Spiel sogar stehen. :(

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von Merko ()

  • Ich check da gerade gar nicht, wo da geprüft wird ob man Munition hat, außer bei der Waffe 2. Hat man auch eine Waffe, die nächste aber nicht, und der Index schaltet hoch, hast du ne Endlosschleife. Das ganze ist vom System her total undurchsichtig, das solltest du mal komplett überdenken und besser hochziehen, z.B. mit einem Array.
    "Die Erde ist ein Irrenhaus. Dabei könnte das bis heute erreichte Wissen der Menschheit aus ihr ein Paradies machen. Dafür müsste die weltweite Gesellschaft allerdings zur Vernunft kommen."
    - Joseph Weizenbaum
  • Der Code ist wirklich sehr unübersichtlich, und da scheint einiges nicht zu stimmen, aber ich versuch trotzdem mal das so zu ändern, wie es mir logisch richtig erscheint:

    GML-Quellcode

    1. wechseln=1
    2. do
    3. {
    4. if wechseln=1 && global.waffenindex=1
    5. {
    6. if global.waffe2
    7. {
    8. if global.gmuni>0
    9. {
    10. wechseln=0;
    11. }
    12. }
    13. global.waffenindex=2;
    14. }
    15. if wechseln=1 && global.waffenindex=2
    16. {
    17. if global.waffe3 //warum waffe2??
    18. {
    19. wechseln=0
    20. }
    21. global.waffenindex=3
    22. }
    23. if wechseln=1 && global.waffenindex=3
    24. {
    25. if global.waffe4
    26. {
    27. wechseln=0
    28. }
    29. global.waffenindex=4
    30. }
    31. if wechseln=1 && global.waffenindex=4
    32. {
    33. wechseln=0
    34. global.waffenindex=1
    35. }
    36. }
    37. until (wechseln=0)
    Alles anzeigen

    probiers einfach mal aus, ich geb keine garantie :P
    “Computers are good at following instructions, but not at reading your mind.” (Donald Knuth)

    Ich schreibe mit Neo.