Eigene Variable pro Instanz

  • GM 8

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

  • Eigene Variable pro Instanz

    Hallo, ich arbeite grad an nem recht simplen Simulator und habe 2 Probleme:

    1.Der Room beginnt mit 2 Einheiten des selben Objekts (HUMAN), die vermehren sich nach der Zeit ---> mehrere Instanzen entstehen.
    So jetzt soll jede Instanz individuelle Daten haben, die in Variablen gespeichert werden...nehmen wir jetzt zum Beispiel "ZUFRIEDENHEIT". Hat die Instanz ein Haus soll die Variable "ZUFRIEDENHEIT" steigen... das Problem: Einerseits soll jede Instanz ihre eigene Zurfriedenheitsvariable haben, und diese auch automatisch benutzen! Außerdem soll jede neu-createte Instanz auch eine neue Zufriedenheitsvariable erstellen...

    PRAKTISCH: Wenn "obj_human_instanz1" zufrieden ist, soll "var_zufrieden1" steigen, und bei "obj_human_instanz2" soll dem entsprechend "var_zufrieden2" steigen
    UND wenn "obj_human_instanz3" ensteht soll auch automatisch "var_zufrieden3" erstellt werden!

    Bitte um Hilfe, wenn möglich bitte so wenig GML wie möglich :rolleyes:

    2.Wie kann ich mit der Action "check object" ob ein bestimmtes Objekt im Umkreis ist, und nicht nur 10 Pixel entfernt?

    Das wars dann mal, wäre nett wenn mir jmnd hilft, thx
  • 1. Das normale D&D Symbol für Variablen bezieht sich meines Wissens nach immer auf lokale, das heißt für jede Instanz einzigartige, Variablen.

    2. Mit Check Object geht das nicht, du kannst aber "Test Expression" nehmen und diesen Code verwenden:

    GML-Quellcode

    1. distance_to_object(objektname) < 100
  • Hallo!

    Ich habe dasselbe Problem.
    Nur was muss ich ins Feld eingeben wenn die Zahl keine konkrete Zahl sondern ebefalls eine Variable (bsp. wechselnde Angriffsstärke eines Objekts) ist?

    Und als Code?

    Weil so

    Quellcode

    1. {
    2. obj_q_he.lp_q_he -= a_q_me;
    3. }


    greift die Variable ja auf ALLE "obj_q_he" Objekte und deren Variabeln zu und zerstört sie alle.

    Vielen Dank

    EDIT:
    Übrigens über die D&D Funktion passiert dasselbe wie mit dem Skript...

    EDIT2:
    Oder vorübergehend in eine lokale Variable umwandeln? Sprich

    Quellcode

    1. {
    2. lp_q_he_inst = obj_q_he.lp_q_he;
    3. lp_q_he_inst -= a_q_me;
    4. }

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von HDP ()

  • Also wenn in der Keule stehen würde;

    GML-Quellcode

    1. if place_meeting(x,y,kopf)
    2. {
    3. kopf.lebenspunkte -= keulenschlag
    4. }

    dann verlieren alle Köpfe Leben, wenn du aber in den Köpfen

    GML-Quellcode

    1. if place_meeting(x,y,keule)
    2. {
    3. lebenspunkte -= keulenschlag
    4. }

    stehen hast und in der keule

    GML-Quellcode

    1. globalvar keulenschlag
    2. keulenschlag = random (3)+3

    dann wird der getroffenen Kopf unabhängig von den anderen Köpfen getroffen und es wird unterschiedlich viel schaden gemacht.

    ancient-pixel.com
    youtube.com/user/SebastianMerkl <<< ich freu mich über einen Besuch ;)
  • Hi,
    das mit den variablentypen ist ganz einfach
    "global.variable" setzt die variable global, das heißt, jedes Object könnte per "global.variable" drauf zugreifen.
    "variable" setzt die variable nur für das object, was den Code auführt.
    "object.variable" setzt die variable für das erstgefundenste Object "object".
    Kopiere dies in deine Signatur, um es in deiner Signatur zu haben.
    Achtung: Dieser Beitrag läuft ende des Monats ab, bitte lese ihn noch vor dem Monatswechsel...
    Nach langer zeit wieder im Forum aktiv :D
  • Das mit der niedrigsten ID - mit anderen Worten, dasjenige, das zuerst erstellt wurde.
    Aku_Ryou hat die richtige Lösung für dich. Noch einfacher wäre es allerdings, das ganze in einem Kollisionsevent zwischen schadendem und beschädigtem Objekt zu handhaben. Für diese Events gibt es nämlich das Objekt-Keyword other, mit dem immer die Instanz gemeint ist, die in die Kollision verwickelt ist.