fehler bei Script (can not compare arguments)

  • fehler bei Script (can not compare arguments)

    Also ich habe mal ein sehr schlechtes (kann man net anders sagen) und einfaches Script gemacht, wo einen anzeigt, wenn man was aufgehoben hat. Es ist sehr umständlich.
    Create:

    GML-Quellcode

    1. gefunden0 = 0 timer0=0
    2. gefunden1 = 0 timer1=0
    3. gefunden2 = 0 timer2=0
    4. gefunden3 = 0 timer3=0
    5. gefunden4 = 0 timer4=0
    6. gefunden5 = 0 timer5=0
    7. gefunden6 = 0 timer6=0
    8. gefunden7 = 0 timer7=0
    9. gefunden8 = 0 timer8=0
    10. gefunden0 = "Waffe"
    11. timer0= 90
    Alles anzeigen

    Step:

    GML-Quellcode

    1. if timer0 != 0 timer0 -=1
    2. if timer1 != 0 timer1 -=1
    3. if timer2 != 0 timer2 -=1
    4. if timer3 != 0 timer3 -=1
    5. if timer4 != 0 timer4 -=1
    6. if timer5 != 0 timer5 -=1
    7. if timer6 != 0 timer6 -=1
    8. if timer7 != 0 timer7 -=1
    9. if timer8 != 0 timer8 -=1
    10. if timer0 = 0 and gefunden1!= 0 gefunden0=gefunden1 else gefunden0 = 0
    11. if timer1 = 0 and gefunden2!= 0 gefunden1=gefunden2 else gefunden1 = 0
    12. if timer2 = 0 and gefunden3!= 0 gefunden2=gefunden3 else gefunden2 = 0
    13. if timer3 = 0 and gefunden4!= 0 gefunden3=gefunden4 else gefunden3 = 0
    14. if timer4 = 0 and gefunden5!= 0 gefunden4=gefunden5 else gefunden4 = 0
    15. if timer5 = 0 and gefunden6!= 0 gefunden5=gefunden6 else gefunden5 = 0
    16. if timer6 = 0 and gefunden7!= 0 gefunden6=gefunden7 else gefunden6 = 0
    17. if timer7 = 0 and gefunden8!= 0 gefunden7=gefunden8 else gefunden7 = 0
    18. if timer8 = 0 gefunden8=0
    Alles anzeigen


    und noch ins Draw event

    GML-Quellcode

    1. if gefunden8 != 0 draw_text(460,20,gefunden8)
    2. if gefunden7 != 0 draw_text(460,40,gefungen7)
    3. if gefunden6 != 0 draw_text(460,60,gefunden6)
    4. if gefunden5 != 0 draw_text(460,80,gefunden5)
    5. if gefunden4 != 0 draw_text(460,100,gefungen4)
    6. if gefunden3 != 0 draw_text(460,120,gefunden3)
    7. if gefunden2 != 0 draw_text(460,140,gefunden2)
    8. if gefunden1 != 0 draw_text(460,160,gefungen1)
    9. if gefunden0 != 0 draw_text(460,180,gefunden0)


    Dass das Script sehr umständlich und schlecht gecodet ist, weiß ich (war ja nur ein test) aber jetzt zeigt der mir den Fehler an:
    if gefunden !=0 draw_text(460,180,gefunden0)
    cannot compare arguments

    Aber warum? Könnte jemand bitte das Script so umschreiben, damit er mir keinen Fehler mehr sagt, und ich habe noch eine zweite Frage (eher unwichtig, aber ich wollte trotzdem mal fragen):
    Bei mir hat sich beim starten dieses Spiels (nachdem es den error angezeigt hat) folgendes Fenster geöffnet:

    acces violation at adress 458A671C. Read of Address 458A671C.

    Ich wollte mal fragen, ob das schlimm ist, oder ob das nichts macht. Wenn ich es wegdrücke kommt es wieder, falls das jemanden interessiert. Schon mal danke für eure Hilfe

    mfg Floz
  • if gefunden !=0 draw_text(460,180,gefunden0)

    du hast da die variable gefunden drinne jedoch hast du wie oben geschrieben die variable noch nicht deklariert, seh nur

    gefunden0 - 8

    und dann hast du die variable gefunden0 einmal als string und dann nochmal als zahl, das fürht zu komplikationen ...
    du könntest das ganze durch arrays machen ... und mit einer for schleife ...

    Edit1

    Nochmal ein bisschen genauer ...

    Bei deiner If - Anweisung hast du die variable gefunden benutzt, die du jedoch nicht deklariert hast ... du willst bestimmt fragen:

    if (gefunden0 !=0 )
    draw_text(460,180,gefunden0)

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

  • verwende das...

    GML-Quellcode

    1. draw_text(460,180,string(gefunden0))

    ...um den text anzuzeigen.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x
  • Es wird leider immer noch can not compare arguments angeziegt, wenn ich die Lösung von Win versuche.

    Aber kann mir jemand bitte mal sagen, was das bedeutet:

    acces violation at adress 458A671C. Read of Address 458A671C.

    Das hat der gm mal bei mir angeziegt (Ich wollte kein neues Topic dafür aufmachen)
  • du verwendest "gefunden0" zwei mal. einmal als zahl und einmal als text. das kann der game maker nicht so einfach vergleichen.

    und zu deinem neuen fehler: das scheint mir ein ramfahler zu sein. sieht nämlich aus wie ram adressen die versucht werden auszulesen. aber sicher bin ich mir da nicht.
    Battle Command - WeltraumEchtzeitStrategie | Meine GM Spiele auf Box.net
    GCM/FA/O d-(--)@>---xpu s-:- !a C++$@ U- P L+ E W++ N o K-- w++ O? M V PS PE-- Y PGP t 5 X R+++ tv+ b DI D G e+ h? r-- x