Reaktion bei "nicht möglich" will nicht so wie ich

Das Board für Schwierigkeiten beim Adventure-Machen und zum Melden von Bugs
Post Reply
Boring Suburban Dad
Adventure Enthusiast
Posts: 167
Joined: 27 Jul 2011, 23:44
Contact:

Reaktion bei "nicht möglich" will nicht so wie ich

Post: # 80345Post Boring Suburban Dad
29 Mar 2013, 12:14

Hallo,

aktuell hänge ich bei folgendem Problem und hoffe ihr könnt helfen:
Mein Char hat im Skript Reaktionen für on (cantall) hinterlegt, was auch für viele Fälle funktioniert. Bei Objekten und Items jedoch, mit denen man tatsächlich etwas benutzen kann, wird diese Reaktion nicht abgespielt, wenn man einen falschen Link benutzt.

Hier mein Charskript:

Code: Select all

on (cantall)
 {
 randomnum (PL; 2)
 if_num (PL; 1)
 speech (CHAR; Reaktion A.)
 if_num (PL; 2)
 speech (CHAR; Reaktion B.)
 }
Und ein Itemskript (ich weiß man kommt auch mit weniger Klammern aus, aber ich steh da halt drauf :wink:):

Code: Select all

 
on (mouse)
  {
  showinfo (Itembeschreibung; true)
  instmouse (1)
  }

on (click)
  {
  on (link)
       {
      if_link (Richtiges Item)
            {
            minicut ()
                 {
                 speech (self; Reaktion positiv)
                 break ()
                 }
            }
       }
  link (Item)
  }

   on (rightclick)
  {
  popupcoin ()
  }

  on (look)
   {
   speech (self; Blabla)
   }

  on (use)
   {
   link (Item)
   }

Hat jemand eine Idee?

Robin
Adventure Enthusiast
Posts: 132
Joined: 05 Sep 2007, 03:58

Re: Reaktion bei "nicht möglich" will nicht so wie ich

Post: # 80346Post Robin
29 Mar 2013, 13:55

Hi,
spontan würde ich sagen, die cantall-Reaktion noch mal als Funktion abspeichern und die dann aus dem Itemskript heraus aufrufen, wenn der link-Befehl falsch ist.
Gruß
Robin
Adventures: Benutze Gehirn mit Spielelogik (Gronkh)

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

Re: Reaktion bei "nicht möglich" will nicht so wie ich

Post: # 80347Post Zimond
29 Mar 2013, 20:42

zunächst mal seh ich das du in die ON Ereignisse falsch nutzt.

On(click) und On(link) sind zwei verschiedene Sachen die nicht verschachtelt gehören. Die Engine gibt zwar keinen Fehler aus es ist aber so das alle in ON(click) ausgeführt wird bei jedem Klick egal ob der LINK Befehl genutzt würde, das on(link) wird hier einfach ignoriert.

Korrekt wäre :

Code: Select all

on (click)
  {
  link (Item)
  }

 on (link)
       {
      if_link (Richtiges Item)
            {
            minicut ()
                 {
                 speech (self; Reaktion positiv)
                 break ()
                 }
            }
       }
Und wegen den Verneinungen : Das muss man bei if_link Sachen tatsächlich immer seperat einführen auch wenns nervig ist. Sprich immer am Ende eines On(links) muss deine Verneinung rein wie Speech (self ; das geht so nicht) und jedes If_link muss zuvor mit einem break() beendet werden.

Außerdem : Wenn du einen Gegenstand mit klicken verlinkst anstatt mit einem Befehl wie on(use) solltest du sicherstellen das es nur ohne Befehl passiert.

Code: Select all

on (click)
 ifnot_command (link)
  link (item)
Image

Boring Suburban Dad
Adventure Enthusiast
Posts: 167
Joined: 27 Jul 2011, 23:44
Contact:

Re: Reaktion bei "nicht möglich" will nicht so wie ich

Post: # 80348Post Boring Suburban Dad
30 Mar 2013, 15:11

Danke Zimond, das ist genau die Erklärung die ich brauchte :thumbup: Dann habe ich ja jetzt einiges umzuschreiben...
@Robin: Die Reaktion bei "nicht möglich" als Function einzufügen ist eine gute Idee. So kann ich unterschiedliche Sprüche bringen, ohne einen riesen Aufwand in den Itemsscripts zu haben.

Post Reply