Wie kann ich einstellen, dass wenn genug Objekte vorhanden sind, keine neuen mehr kommen sollen?

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

  • Wie kann ich einstellen, dass wenn genug Objekte vorhanden sind, keine neuen mehr kommen sollen?

    Hallo,
    ich entwickle derzeit ein zweites Spiel. Ich hoffe, dass diese Frage nicht schon gestellt wurde, aber ich habe dazu nix gefunden.
    Also, das Thema ist Frage: Wie kann ich einstellen, dass wenn genug Objekte vorhanden sind, keine neuen mehr kommen sollen?
  • Kleiner Universal-Tipp:
    Siehst du den Button oben in der Leiste mit dem Männchen und der Lupe?
    Genau, das:
    Alternativ kannst du auch einfach dem GM öffnen und F1 drücken.

    Da steht alles über "Instance_count" drin.
    Spoiler anzeigen
    instance_count* Anzahl der Instanzen, welche momentan im Raum sind.
    Hier werden sie geholfen:
    [Regeln] [GML] [Hilfe] [Suche] [Posten] [Duden.de]
    [Wenn das alles nicht mehr hilft] [Dunning-Kruger]


    "Die Vernunft sollte Autorität definieren; nicht umgekehrt!"
    "Selber denken regt das Gehirn an."
    - Niffel f.k.a. Kilik
  • Da hab ich immer die falschen suchanfragen reingeschrieben. Vielen Dank. Man, das ist mir jetzt aber peinlich. Gesucht und gesucht, aber statt mal in das deutsche Handbuch zu schauen, ne, also das passiert mir nicht nochmal
    Edit: Doch nicht gelöst: Was mache ich falsch?

    instance_count*dieter= 3

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

  • Gute Idee, klappt aber nicht. Da wird nämlich schon vorher die Instanz gelöscht, obwohl erst einer da ist? Komisch

    Edit: Wenn nämlich mehr als die Anzahl sein soll, sollen nämlich nicht alle gelöscht werden, sondern bloß die die eigentlich hinzu kommen würden

    Trotzdem Danke

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

  • Kann es sein, dass du nur die Instanzen eines besitmmten Obejktes zählen willst und nicht alle sich im Room befindenden Instanzen?
    instance_count zählt, wie der hilfe zu entnehmen ist, alle Instanzen im room.
    Für die Instanzenanzahl eines bestimmten Objectes gibt es:
    instance_number(obj) Gibt die Anzahl der Instanzen von Objekt obj an. obj kann ein Objekt oder das Schlüsselwort "all" sein.

    Im selben Kapitel, wie instance_count zu finden ;)
  • instance_count ist keine Funktion sondern die Zahl aller im Moment sich im Raum befindenden Instanzen.

    Das was du willst ist in D&D das:

    Dieter; 3; Larger than


    Aber das wäre auch nur die Bekämpfung des Symptoms. Besser wäre es, einfach keine neuen Objekte mehr zu erstellen, anstatt die Überzähligen zu löschen.
    "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
  • Danke, es funktioniert. Vielen Dank an alle, aber Windapple hat den entscheidenden Hinweis gegeben.

    Edit: Doch noch ein problem. Wenn ich folgendes eingebe (siehe Bild), wird die instance immer bei 0,0 erstellt. Dabei will ich, dass die bei einem zufälligen Haus erstellt wird. Was mache ich falsch? (wenn ich .x und .y ranhänge will er es nicht machen und random weglassen, dann entsteht die instance immer beim gleichen Haus)

    Danke im voraus

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

  • Für x und y musst du feste Koordinaten angeben, random setzt diese Koordinaten zufällig in einem Bereich. Haus stellt keine Koordinate dar, lediglich ein Objekt. Da ich nicht genau weiß, wie dein Raum aufgebaut ist und in welchem Bereich das Objekt erstellt werden soll, kann ich dir nicht genau sagen, welche Werte du für x und y eingeben musst. Allerdings solltest du wohl in etwa das eingeben: haus.x/y + random(*Bereich (Höhe und Breite des Hauses)*).
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/
  • GML-Quellcode

    1. if instance_number(*Personen-Objekt*) < 3 alarm[0] = room_speed * 3


    In das Alarm[0]-Event () kommen dann die Aktionen hinein.

    €dit: Natürlich war die Variable instance_number. Danke für den Hinweis, ich habe es ausgebessert.
    Dieser Beitrag ist Spam.
    | |
    | |
    \. ./
    \/

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von F.S. ()

  • Ich weiß, hab ich doch gemacht. Hat Playa auch so geschrieben. Bloß, dass mit alarm haut nicht hin. Ich habe, was F.S. geschrieben hat, alarm[0] angehängt. Ohne Alarm werden immer neue Personen erstellt (genannt dieter). Da funktioniert alles noch. Bloß wenn ich mit alarm arbeite, bleibt es so wie es ist.

    dies ist der GML-code, der in Alarm[0] ist:

    GML-Quellcode

    1. instance_create(haus.x + random(64*64),haus.y + random(64*64),dieter)


    Edit:klappt doch. Aber nützen tuts nicht, denn nach dem ersten mal sind alle Personen schon da

    Hat eigentlich einer eine Idee? Dadurch werden die Instance immer beim gleichen haus erstellt, aber ich habe mehrere davon. geht es nicht, dass man zufällig die instancen an verschiedenen häusern erstellen kann?

    Danke

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

  • Also, dafür darfst Du nicht haus.x / haus.y verwenden ,sondern :

    Entweder Du wählst ein Haus aus mit HausTemp = instance_find (haus,random(instance_number(haus))) und nimmst dann HausTemp.x / HausTemp.y

    oder Du machst ein Alarm-Event für das Objekt Haus, in dem dann der Code (letzter Post) steht (mit x/y anstatt haus.x / haus.y)
    und wählst dann halt ein Haus aus mit HausTemp = instance_find (Haus...) und HausTemp.alarm[...]=1

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

  • Vielen Dank es klappt. eben habe ich etwas gefunden und in GML reinkopiert, doch dies funktioniert nicht

    GML-Quellcode

    1. #define


    Dort sagt er: "unexpected symbol" oder so ähnlich geschrieben. Was muss ich ändern, damit er es nicht mehr sagt. so funktioniert das ganze script nämlich nicht