Gegenstände in Schränken

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Gegenstände in Schränken

Beitrag von Rayman »

Mir ist es ein bisschen peinlich, aber wie kann man was machen, wenn z.B. man den Kühlschrank öffnet, das dann Gegenstände erscheinen ohne "Object On" und "Object Off" um sie aus dem Kühlschrank rauszuholen? :oops:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Na ganz einfach: mit Object.Visible ;)

Meinst Du, ohne Skript?
Use gopher repellent on funny little man
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Ich meine mit Script.
Also wenn das Schränkchen zu ist, sieht man keine Gegenstände.
Wenn man das öffnet, erscheinen welche und wenn man sie nimmt, dann sollen die auch wegbleiben. Also wenn man den Schrank schließt und wieder aufmacht, dann soll der genommene Gegenstand wegbleiben.
Benutzeravatar
Fightmeyer
Riesiger Roboteraffe
Riesiger Roboteraffe
Beiträge: 7308
Registriert: 16.12.2004, 22:51
Wohnort: Potsdam
Kontaktdaten:

Beitrag von Fightmeyer »

Dann versteh ich nciht, warum Du partout auf Object on und off verzichten willst?! Dafür ist das doch da. Man könnte alternativ noch mit den Baselines experimentieren und die objekte hintereinander setzen, aber das erschient mir dafür zu kompliziert.
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Ok. Dann werde ich mein bestes versuchen :arrow:

Trotzdem Danke!
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Ich würde es mit baselines machen, denn dann reicht es, das Objekt im Schrank auszuschalten, nachdem es genommen wurde. Es ist nur eine zusätzliche Fehlerquelle, wenn man nach dem Öffnen des Schrankes abfragen muss, ob es schon genommen wurde, um zu wissen, ob es angeschaltet werden muss oder nicht.

Man kann natürlich eine entsprechende Variable benutzen, aber 10x einfacher ist es doch, einfach die baseline der Tür ans untere Ende des Schrankes und die des Objektes ein Stück drüber zu setzen.
Ist doch nicht kompliziert :)

Nachtrag: Suche nach "Objekt" und "Schrank":
http://www.adventure-treff.de/forum/vie ... php?t=7208
Use gopher repellent on funny little man
PsychoF82
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 140
Registriert: 22.09.2005, 23:44
Wohnort: NRW
Kontaktdaten:

Beitrag von PsychoF82 »

Ich will auch mal was hilfreiches beisteuern und geb einfach mal den Script raus, den ich für ein nachtschränkchen verwendet habe... Ich hoffe du kennst dich soweit schon mit "Scripten aus :wink:
Die Baslines müssen natürlich auch für die Objekte gesetz werden :wink:

Der Hotspot des Nachtschränkchens:
if (UsedAction (A_WALK_TO))
{
if (MovePlayer (240, 129))
{
FaceLocation (GetPlayerCharacter (), 240, 122);
}
}

else if (UsedAction (A_OPEN))
{
if (MovePlayer (240, 129))
{
FaceLocation (GetPlayerCharacter (), 240, 122);
Wait(5);
if (GetGlobalInt(16)==0)
{
PlaySound(85);
ObjectOn(1);
SetGlobalInt(16,1);
if (player.InventoryQuantity[1] == 0)
{ ObjectOn(9);}
}
}
}

else if (UsedAction (A_CLOSE))
{
if (MovePlayer (240, 129))
{
FaceLocation (GetPlayerCharacter (), 240, 122);
Wait(5);
if (GetGlobalInt(16)==1)
{
PlaySound(83);
ObjectOff(1);
ObjectOff(9);
SetGlobalInt(16,0);
}
}
}

else if (UsedAction (A_PICK_UP))
{
if (MovePlayer (240, 129))
{
FaceLocation (GetPlayerCharacter (), 240, 122);
Wait(5);
DisplaySpeech(GetPlayerCharacter(), "Der ist mir zu schwer.");
}
}

else Unhandled ();

Ich habs zwar über "Inventar überprüfen" gemacht, was man eigentlich nicht tun sollte aber da dieser Gegenstand in diesem Spielabschnitt bleibt ist es eh Latte :mrgreen:

@Mods: Scheut euch nicht meinen Post zu löschen wenns aus irgendeinem Grund Blödsinn ist. Bin grad etwas angetrunken aber wollt auch mal was schlaues machen :mrgreen:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Rück Deinen Code ein, das kann doch kein Mensch lesen ;)
Und nimm den

Code: Alles auswählen

-tag, -> feste Zeichenbreite und keine ungewollten Smilies.

Außerdem ist die Abfrage übers Inventar ein absoluter Kardinalfehler. Wenn der Gegenstand im Inventar bleibt, solange man Zugang zum Schrank hat, funktioniert es zwar, aber es ist schlechter Stil und keine allgemein gültige Lösung.
Use gopher repellent on funny little man
Benutzeravatar
Sinitrena
Tastatursteuerer
Tastatursteuerer
Beiträge: 678
Registriert: 08.05.2004, 01:01
Wohnort: Frankfurt
Kontaktdaten:

Beitrag von Sinitrena »

@Mods: Scheut euch nicht meinen Post zu löschen wenns aus irgendeinem Grund Blödsinn ist. Bin grad etwas angetrunken aber wollt auch mal was schlaues machen
Also so gemein sind wir nicht und löschen Post nur weil sie Blödsinn sind. Aus Fehlern lernt man schließlich.

Ansonsten hat Khris völlig recht, eine Abfrage übers Inventar ist keine gute Idee bei solchen Sachen. Das ist nur sinnvoll, wenn du willst, das der Cha ein einer Stelle nur weiter kommt, wenn er einen bestimmten Gegenstand hat, also zum Beispiel, wenn ein Polizist das Haus nicht ohne Waffe verlassen will (das Beispiel dürfte klar sein, hoffe ich).
Außerdem scheinst du für das Bild des offenen Schranks ein Objekt zu benutzen (object (1)) und für den geschlossenen Schrank kein Objekt wenn ich das richtig sehe. Das ist auch nicht unbedingt sinnvoll, weil du so die Grafik für den Gegenstand im Schrank ständig an und ausschaltest, solange der Spieler den Gegenstand noch nicht genommen hat. So musst du beim öffnen und schließen immer zwei Objekte beachten. Wenn du den geschlossenen Schrank als Objekt machst statt den offenen und mit Baseline arbeitest kannst du dir das sparen.
PsychoF82
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 140
Registriert: 22.09.2005, 23:44
Wohnort: NRW
Kontaktdaten:

Beitrag von PsychoF82 »

@khrismuc
Oh! hab mich scho gefragt wofür der Code-Tag gut ist :lol: Cool, wieder was gelernt :wink: Normalerweise rücke ich auch bei geschweiften Klammern immer den Text ein, damit es übersichtlich bleibt aber als ich den Script für "Object in die Schublade" gemacht hab war es noch nicht so :mrgreen: Jedenfalls werd´ ich den Beitrag editieren sobald ich mehr Zeit hab... :wink:

@Sinitrena
Hehe, man weis ja nie wie streng die Mods so sind. Eigentlich gehts in diesem Threat ja darum "Rayman" zu zeigen wie man es am besten lösen kann :wink:
Das mit "Objekt für offenen Schrank" ist aus ´nem MMM-Starterpack. Aber wie du es sagst hört sich wirklich weniger umständlich an :D

Ist die beste Lösung für das eigentliche Problem hier alles über "GlobalInts" zu machen? So viele wie ich bei meiner Epi verwende muss ich mir dann bald mal aufschreiben welche wofür sind :lol:
Smiley
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 163
Registriert: 28.04.2005, 16:26
Wohnort: Mönchengladbach

Beitrag von Smiley »

PsychoF82 hat geschrieben: Ist die beste Lösung für das eigentliche Problem hier alles über "GlobalInts" zu machen?

Man kann auch die Objektgrafik durchsichtig machen, und das Objekt dann mit dem Hintergrund verschmelzen(MergeObject).
Allerdings darf man dann nicht ObjectOn benutzen, sondern muss mit Baselines arbeiten.
Benutzeravatar
Rayman
Logik-Lord
Logik-Lord
Beiträge: 1388
Registriert: 07.01.2006, 20:08

Beitrag von Rayman »

Danke. Ich habe es mit Hilfe des Scripts hingekriegt.
DANKE! :D :D :D :D :D :D :D :D :D :D :D :D :D
Benutzeravatar
DieFüchsin
Adventure-Gott
Adventure-Gott
Beiträge: 4411
Registriert: 12.03.2004, 16:55

Beitrag von DieFüchsin »

Aber vergiss nicht, die objectclickable auf 0 zu setzen, sonst kann man das Toast im Schrank noch anschauen wenn es offensichtlich nicht mehr drin liegt, oder erübrigt sich dass, wenn man es mit baselines macht?
PsychoF82
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 140
Registriert: 22.09.2005, 23:44
Wohnort: NRW
Kontaktdaten:

Beitrag von PsychoF82 »

@Rayman
Freut mich, dass du es hinbekommen hast aber nehme diesen Script nicht als Musterbeispiel. Versuche lieber ihn nach den Ratschlägen von den Profis hier (bin selber Anfänger *lol) zu verbessern :wink:
...werde ich nämlich auch tun :mrgreen:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

DieFüchsin:
In diesem thread ist explizit gefragt, wie man es erreicht, einen Gegenstand *sichtbar* in einem Schrank unterzubringen.

Und das simple Deaktivieren eines hotspots, nachdem er erfolgreich benutzt wurde, halte ich ebenfalls für ziemlich daneben.

Rayman: Wie gesagt, nutze keine Inventarabfrage zur Darstellung des Gegenstandes, sondern eine GlobalInt oder eine room script-variable. (Welches Skript hast Du denn jetzt genommen? Hoffentlich meins aus dem verlinkten thread...)
Use gopher repellent on funny little man
Antworten