Ein neue Frage: Schalter Bool Problem

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Ein neue Frage: Schalter Bool Problem

Post: # 75392Post ketschiCoolio
17 Mar 2010, 19:51

Hey Guys,
ich bins schon wieder! :D
Neue Frage: Man soll in einen Raum kommen...der ist fast komplett dunkel!
Davor hat man mit einer Eisenstange und blauen leuchtenden Schleim eine leuchtende Stange erstellt, sobald man nur IN DIESEM DUNKLEN RAUM ist soll man dort die leuc. Eisen. benutzen können und der Raum ist erhellt (sry kein passendes wort gefunden ;-) ) oder so..Dann soll die leuc. Eisen. aus dem Item verschwinden, aber der Raum ist trotzdem noch hell (naja hell blau)! :D
Last edited by ketschiCoolio on 12 Apr 2010, 18:11, edited 1 time in total.

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

Post: # 75393Post japanhonk
17 Mar 2010, 20:53

Hi - hab ich das jetzt richtig verstanden ?

1. Raum dunkel,
2. Bei Benutzen der Stange = Raum Hell
3. Item Stange verschwindet aus dem Inventar und
4. Raum bleibt dann hell ?

Wenn ja - nimm doch einen Bool, der beim Benutzen der Stange umgesetzt wird.

Wenn der Raum dann wieder betreten wird, fragst Du im on (enter) Teil

diesen Bool ab. Wurde er gesetzt, ist der Raum z.B. hell, wenn nicht, wurde die Stange noch nicht benutzt.

Im Skript des Items fragst Du den Raum ab :

on (use)
if_room (RAUM)
....
(oder : ifnot_room (RAUM) -> break () )

Damit stellst Du sicher, dass die Stange nur in diesem Raum benutzt

werden kann.

Gruss

JH
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

Cryp.Cee
Tutorial Reader
Posts: 52
Joined: 06 Jun 2007, 18:15
Contact:

Post: # 75394Post Cryp.Cee
18 Mar 2010, 09:37

Code: Select all

on (use)
if_charin (self; Raum)
{
setlight(Raum; 135;144;255)
delitem(self;leuchtende Stange)
}
Stellt sich natürlich die Frage, was passiert mit der Stange? Eine Möglichkeit wäre es ja, dort eine kleine Cutscene zu machen, wo deine Figur die Stange irgendwo reinsteckt...
...

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75396Post ketschiCoolio
18 Mar 2010, 19:47

Ja also mit Cutscene wäre es natürlich noch besser! ;-)
Noch mal kurz eine Frage N00b Frage (Sorry bin im Stress!)!
Wie kann man noch einmal wenn man IM Inventar z.B. die Eisenstange benutzt mit dem Schleim (die auch im Inventar liegt), dass er das zusammen baut und dann die 2 Items entfernt und ein neues hinzugefügt dann nämlich z.B. "Eisenstange mit leuchteden Schleim".

Cryp.Cee
Tutorial Reader
Posts: 52
Joined: 06 Jun 2007, 18:15
Contact:

Post: # 75401Post Cryp.Cee
18 Mar 2010, 21:40

Für die Eisenstange:

Code: Select all

 on (link)
 {
  if_link(leuchtender Schleim)
   {
    delitem(self;Eisenstange)
    delitem(self;leuchtender Schleim)
    additem(self;leuchtende Eisenstange)
    break()
   }
   speech(self; Damit kann ich das nicht benutzen!)
Für den Schleim:

Code: Select all

on (link)
 {
  if_link(Eisenstange)
   {
    delitem(self;Eisenstange)
    delitem(self;leuchtender Schleim)
    additem(self;leuchtende Eisenstange)
    break()
   }
   speech(self; Damit kann ich das nicht benutzen!)
...

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75402Post ketschiCoolio
18 Mar 2010, 21:52

Der hat mir Error angezeit, weil du so eine Klammer ( } ) vergessen hattest, aber wenn ich jetzt den Schleim aufgesammelt habe und die Eisenstange auch und dann Benutzen klicke und dann auf die Eisenstange sagt der gleich sofort "Nein das geht nicht".
Eisenstange (Script von der Inventar Eisenstange):

Code: Select all

on (mouse)
showinfo (Eisenstange ; true)

on (rightclick)
speech (self; Eine Eisenstange.)

on (link)
 {
  if_link(Blaue Grütze)
   {
    delitem(self;Eisenstange)
    delitem(self;Blaue Grütze)
    additem(self;Eisenstange mit leuchtenden Schleim)
   }
     speech(self; Damit kann ich das nicht benutzen!)
}
Blaue Grütze (auch im Inventar):

Code: Select all

on (mouse)
showinfo (Leuchtende blaue Grütze ; true)

on (rightclick)
speech (self; Das ist leuchtende blaue Grütze.)

on (link)
 {
  if_link(Eisenstange)
   {
    delitem(self;Eisenstange)
    delitem(self;Blaue Grütze)
    additem(self;Eisenstange mit leuchtenden Schleim)
   }
    
   speech(self; Damit kann ich das nicht benutzen!)
}

   

Zimond
Der Engine Papa
Posts: 3420
Joined: 06 Apr 2003, 19:34
Location: Krefeld
Contact:

Post: # 75403Post Zimond
18 Mar 2010, 21:55

haben beide Items auch einen on(use) teil? Ohne geht das nicht.

Du musst vor einem if_link auch erstmal den richtigen Namen verlinken

on (use)
link (Blaue Grütze)

z.b

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75406Post ketschiCoolio
18 Mar 2010, 22:01

Problem gelöst! :-D Danke Danke! Muss erst mal wieder reinkommen. ;-)

Cryp.Cee
Tutorial Reader
Posts: 52
Joined: 06 Jun 2007, 18:15
Contact:

Post: # 75407Post Cryp.Cee
18 Mar 2010, 23:30

und den break() nicht vergessen...
...

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75468Post ketschiCoolio
03 Apr 2010, 11:41

Hmm...ich habe es ausversehen das mit dem Licht und der leuchtenden Eisenstange gelöscht. Wie ging das nochmal mit dem Licht? Kann mir jemand die komplette Skriptvorlage geben?
(Ich habe einen Bool namens "Slime" erstellt..)

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

Post: # 75470Post japanhonk
03 Apr 2010, 12:38

...schon mal im Ordner "backups" nachgeschaut ? Da sollte dein Skript noch drin sein...
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

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75540Post ketschiCoolio
08 Apr 2010, 13:22

Nee..ich hatte wahrscheinlich ein Virus auf meinem PC und habe den vor ein paar Tagen platt gemacht. Ich habe mir nur die Spieledateien gesichert..also Sprites, Sounds usw. Beim Programm habe ich mir gedacht, dass ich das einfach nochmal runterladen.

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

Post: # 75551Post japanhonk
08 Apr 2010, 18:11

:doh:
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

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75577Post ketschiCoolio
09 Apr 2010, 18:07

Mhm.. :oops:
Kann mir denn jemand die Scripts vollständig liefern?
Meinentwegen könnt ihr auch im Abspann vorkommen! :-D

Schiman
PaC-DK God
Posts: 1177
Joined: 20 Dec 2006, 21:48
Contact:

Post: # 75579Post Schiman
09 Apr 2010, 18:15

Nope. Wenn du sogar zu faul bist so ein einfaches Skript selbst zu machen, dann wirst ja nie was auf die Reihe kriegen.

Sowas kann und will ich zumindest nicht unterstützen. Sorry.

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 75580Post Baelavay
09 Apr 2010, 18:16

ketschiCoolio wrote:Meinentwegen könnt ihr auch im Abspann vorkommen! :-D
Hm, ist für mich nicht wirklich ein Anreiz und du kannst dir bestimmt vorstellen wieso.

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75609Post ketschiCoolio
12 Apr 2010, 18:10

Mh..ich habs wieder hin bekommen..nur jetzt habe ich wieder ein Problem. Und zwar mit einem Schalter usw. Ich erkläre mal die Situation und wo mein Problem liegt: Man geht in den Raum rein man sieht ein Bild wenn man es anredet sagt der ganz einfach "Geht nicht." wenn man es einmal angeschaut hat und wieder anredet sagt er "Feel the Power." (das habe ich ja schon geklappt). Dann dreht sich ein Schalter aus der Wand. So und hier das eigentliche Problem. Er soll einmal den Schalter benutzen können und dann soll der sagen "Nein, nochmal will ich den nicht drücken.". Ich habe es mit einem Bool gemacht hier der Script des Schalters.

Code: Select all

 {
 if_bool (Herbert Schalter;false)
  {
  on (mouse)
  showinfo (Schalter; true)

  on (look)
  speech (self; Ich glaube das ist ein Schalter.)

  on (use)
  cutscene (Herbert Schalter drücken)
  break()
  }
 if_bool (Herbert Schalter; true)
  {
 on (mouse)
 showinfo (Betätigter Schalter;true)

 on (look)
  speech (self; Ich glaube das ist ein Schalter.)

  on (use)
  speech(self; Nein. Ich will den nicht noch einmal drücken.)
 }
 }
Im Boolmenü hat der auch kein Hacken.

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

Post: # 75610Post japanhonk
12 Apr 2010, 18:37

Setzt Deine Cutscene denn auch den Bool um ?

Und mit dem on_mouse Teil hab ich auch Zahnweh...

on mouse sollte der erste Befehl eines Objektes sein.

Ich würde es so schreiben :

on (mouse)
{
if_bool (Herbert Schalter;false)
showinfo (Schalter; true)
if_bool (Herbert Schalter; true)
showinfo (Betätigter Schalter;true)
}

on (look)
if_bool (Herbert Schalter;false)
speech (self; Ich glaube das ist ein Schalter.)

on (use)
{
if_bool (Herbert Schalter;false)
{
setbool (Herbert Schalter;true)
cutscene (Herbert Schalter drücken)
break()
}
speech(self; Nein. Ich will den nicht noch einmal drücken.)
}


Alternativ setz das Schalterobjekt in einen anderen Zustand und frag DEN ab (Kannst ja das Selbe Bild im Objekt für den neuen Zustand benutzen - so kann man sogar 10 verschiedene Aktionen oder Sprüche laufen lassen, mit einem Bool nur 2 )

on (use)
{
if_obj (schalter;1)
{
setobj (schalter;2)
cutscene (Herbert Schalter drücken)
break()
}
if_obj (schalter;2)
speech (self;Nein, das will ich nicht nochmal benutzen)
}
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

ketschiCoolio
PaC-DK Newby
Posts: 24
Joined: 06 Aug 2009, 17:08
Location: Germany
Contact:

Post: # 75614Post ketschiCoolio
13 Apr 2010, 12:26

Ah okay! Danke. Funktioniert einbahnfrei! :)

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 75616Post Baelavay
13 Apr 2010, 15:29

japanhonk wrote:on mouse sollte der erste Befehl eines Objektes sein.
Wieso?

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

Post: # 75617Post japanhonk
13 Apr 2010, 17:34

A) wegen der Übersicht - Wenn ich eine bestimmte Reihenfolge einhalte, habe ich es bei langen Skripten einfacher - on mouse, on look, on use, on pickup - on link - versuche ich meistens einzuhalten.

B) Weil eine If Abfrage als Erstes u.U. gar nicht definieren könnte, was getan werden soll - undefinierte aktion = keine aktion
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

Baelavay
PaC-DK God
Posts: 1168
Joined: 04 Jun 2006, 19:24
Contact:

Post: # 75618Post Baelavay
13 Apr 2010, 20:22

Okay, klar auf
ketschiCoolio wrote:

Code: Select all

 {
 if_bool (Herbert Schalter;false)
  {
  on (mouse)
  showinfo (Schalter; true)
bezogen machts wirklich keinen Sinn. Ich dachte du meintest, man solle bei mehreren on() Ereignissen in einem Skript das on(mouse) immer als erstes voranstellen. Das hätte ich nicht nachvollziehen können.

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

Post: # 75619Post japanhonk
13 Apr 2010, 21:09

Ist zwar kein muss , aber sinnvoll meiner Ansicht nach. :wink:
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

Post Reply