Objekt zufällig sichtbar machen beim betreten des Raums

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80596Post Icebaer3
20 Aug 2013, 10:53

Irgendwie bekomme ich das nicht so hin wie es sein sollte.

Ausgangsbasis:
Ich habe ein Objekt im Raum auf Zustand 0, also nicht sichtbar. Nun soll es per Zufall sichtbar werden, also in 1/3 der Fälle. Dafür kommt ein randomnum zum Einsatz der 1, 2 oder 3 ausgibt. Nur wenn die 1 gewählt ist (beispielsweise) wird das Objekt sichtbar, sonst eben nicht.

Jetzt hab ich in das Raumscript rein:

Code: Select all

on (enter)
 {
 randomnum (Zufallszahl; 3)

 if_num (Zufallszahl; 1)
  setnum (Objekt; 1)
 }
Wo ist mein Denkfehler?

Ich hab auch schon andere Überlegungen ausprobiert, hat aber nix gebracht. Bin ein wenig Verzweifelt wo ich hake...

parkiii
An Adventure Creator
Posts: 276
Joined: 30 Jun 2009, 13:58
Location: Austria

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80597Post parkiii
20 Aug 2013, 11:55

Passt alles, nur hast du statt setobj setnum geschrieben.

Und falls das Objekt auch wieder verschwinden soll, vergiss nicht, entweder es beim on(exit) auf 0 zu setzen oder beim on(enter) bei anderen Zufallszahl-Ergebnissen.

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80598Post japanhonk
20 Aug 2013, 12:30

Mist... Parkii war schneller... :D
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

parkiii
An Adventure Creator
Posts: 276
Joined: 30 Jun 2009, 13:58
Location: Austria

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80599Post parkiii
20 Aug 2013, 14:31

Jaaa zumindest ein einziges Mal :P

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80600Post Icebaer3
20 Aug 2013, 22:27

Jo jetzt klappt es. Lag zwar nicht an dem setnum und setobj Fehler, sondern...

Trommelwirbel...

...an der Abfrage die ich vorher drin hatte. Hab ich beide einfach getauscht, also die letzte if Anweisung nach vorne und die erste nach hinten hat es geklappt. Das kann doch net die Lösung sein, oder hab ich was verpasst?!

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80601Post japanhonk
21 Aug 2013, 06:14

( Ha, jetzt war ich aber schneller :wink: )

Also das "setnum" hätte auf keinen Fall funktioniert.

Abgesehen davon gibt es 3 Möglichkeiten :

1. Wuppdität der Engine mit Eigenleben :ugly:
( Müssen wir irgendwie mit leben )

2. Verzweigungen , Frameskripte, Skriptteile ausserhalb des Raumes

3. Fehlende break () Anweisungen

Um das genau zu beantworten, müssten wir das ganze Skript sehen... :omg:


Ach, da fällt mir noch was ein :

im on (enter) Teil kann es in solchen Fällen sinnvoll sein, das Ganze dann
per minicut () ablaufen zu lassen.
Sonst werden hin und wieder Teile verschluckt und nicht ausgeführt.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80603Post Icebaer3
21 Aug 2013, 14:29

Ich erkläre mir das damit, das ich noch am Anfang stehe und noch nicht wirklich alles ausprobiert habe. Daran arbeite ich.

Was diesen Fehler angeht war es wirklich unlogisch, da ich einfach nur die beiden if Abfragen gewechselt habe und es ging.

Das sah in etwa so aus:

1. schau ob Zustand 1 wahr ist, dann ändere das Objekt von Bild 1 auf Bild 2, wenn nicht, lass es auf Bild 1. (Sollte ein Bild schwarzweis oder bunt machen)
und dann
2. Das Zufallsding wie oben beschrieben.

Jetzt habe ich das einfach nur umgedreht und die 1 zu 2 gemacht und schon geht beides prima. Das war die Logik die ich nicht verstanden habe. Aber gut, nur so lernt man.

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80604Post Icebaer3
21 Aug 2013, 14:33

Ok, hier mal das komplette Skript wie es funzt. Vlt habt ihr ja Verbesserungen die es mir einfacher machen:

Code: Select all

on (enter)
 {
 randomnum (Zufallszahl; 4)

 if_num (Zufallszahl; 1)
   setobj (Brieftasche; 1)
 if_num (Zufallszahl; 2)
   setobj (Brieftasche; 0)
 if_num (Zufallszahl; 3)
   setobj (Brieftasche; 0)
 if_num (Zufallszahl; 4)
   setobj (Brieftasche; 0)

 if_num (AktivJob; 1)
   {
   setobj (Job 1 Putze1; 2)
   break ()
   }
 setobj (Job 1 Putze1; 1)
 }

Tausche ich die beiden if Blöcke, gehts nimmer.

parkiii
An Adventure Creator
Posts: 276
Joined: 30 Jun 2009, 13:58
Location: Austria

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80605Post parkiii
21 Aug 2013, 14:39

Jetzt hast du ja doch setobj verwendet statt setnum. ;)

Wenn du die if-Blöcke tauscht wird unter Umständen (wenn Variable "AktivJob" den Wert 1 hat) ein break() ausgeführt und der ganze on(enter)-Teil wird abgebrochen. Dann kann der nachfolgende if-Block nicht mehr ausgeführt werden.

@japanhonk, schneller :P

japanhonk
PaC-DK God
Posts: 1716
Joined: 05 Feb 2009, 20:36
Location: NRW
Contact:

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80606Post japanhonk
21 Aug 2013, 16:34

@Parkii


Stimmt :mrgreen:

Was den Abbruch angeht , sehe ich es genauso, wie Parkii.
Das break () haut Dir da die Füsse weg...


Ich hätte einen Vorschlag :

Du kannst Dir 3 Abfragen komplett sparen, da Du ja ein unsichtbares Objekt
nur in einem Fall sichtbar machen willst.

Ich würde es so schreiben :

on (enter)
{
setobj (Job 1 Putze1; 1)
setobj (Brieftasche; 0)
randomnum (Zufallszahl; 4)

if_num (Zufallszahl; 1)
setobj (Brieftasche; 1)

if_num (AktivJob; 1)
{
setobj (Job 1 Putze1; 2)
break ()
}
}

Alternativ kannst Du, wie von Parkii beschrieben das Objekt ja auch beim Verlassen des Raumes auf 0 setzen.
Es gibt 10 Arten von Usern :
die, die Binärcode verstehen und die, die es nicht tun....
----------------------------------------------------------
STAR TREK FYNE :
http://www.fynegames.homepage.t-online.de

Icebaer3
An Adventure Creator
Posts: 408
Joined: 19 Dec 2012, 20:15
Location: Koblenz

Re: Objekt zufällig sichtbar machen beim betreten des Raums

Post: # 80607Post Icebaer3
21 Aug 2013, 21:55

Ja das klingt logisch und danke für die Ideen. Werd ich mal versuchen umzusetzen und zu vereinfachen.

Post Reply