Autor Thema: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.  (Gelesen 5916 mal)

Rayman

  • Dott-MMM-Entwickler
  • Midlife Crisis Tentakel
  • **
  • Beiträge: 1580
    • Profil anzeigen
else if (player.ActiveInventory == inventory[2]) {
  if (MovePlayer(x, y)) {
    FaceDirection(GetPlayerCharacter(), DIR_LEFT);
  }
}
else unhandled();


Sorry, besser konnte ich den Fehler nicht formulieren.

Edit: Wenn ich z.B. einen Gegenstand mit einem Hotspot benutze und dann später irgendein Verb mit dem Hotspot benutze, dann wird dieselbe Aktion freigegeben, die man auch bei der Gegenstand benutzung vorkommt.
« Letzte Änderung: 06. Januar 2008, 16:36:51 von Rayman »

Mister L

  • Boss der T.I.A.
  • Globaler Moderator
  • Ehrwürdiger Tentakel
  • *****
  • Beiträge: 3113
  • Geschlecht: Männlich
  • "R.I.P. Clever & Smart † 1958 -2023"
    • Profil anzeigen
    • Maniac Mansion - Night of the Meteor
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #1 am: 05. Januar 2008, 09:52:52 »
So ganz kapier ich das Problem nicht, aber klingt so als fehlt da ein "else unhandled"  :-\
Poste am Besten mal das Skript.

Kaktus

  • volljähriger Tentakel
  • *****
  • Beiträge: 755
  • Geschlecht: Männlich
  • Waaaah!
    • Profil anzeigen
    • E-Mail
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #2 am: 05. Januar 2008, 17:50:06 »
Klingt so, als stünde das if (player.activeinv==xyz)
außerhalb von if (UsedAction (A_USE_INV)) .
Vielleicht hast du irgendwo eine Klammer falsch gesetzt ???

Rayman

  • Dott-MMM-Entwickler
  • Midlife Crisis Tentakel
  • **
  • Beiträge: 1580
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #3 am: 06. Januar 2008, 16:24:42 »
Mist, jetzt hab ich versehentlich den ersten Post editiert. :o

Aber hab ich in den Code irgendeinen Fehler gemacht?

Link2005

  • Midlife Crisis Tentakel
  • ******
  • Beiträge: 1777
  • Geschlecht: Männlich
  • Guck mal Mami - Ohne Blog!
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #4 am: 06. Januar 2008, 17:14:13 »
  if (MovePlayer(x, y)) {
Müsste da nicht normalerweise eine Koordinate angegeben sein? ??? also z.B.  if (MovePlayer(12, 34)) {

MMM Epi 63: B-DUN DX
10% - AGS-Rohdateien von B-DuN finden
25% - Story
60% - Scripten, Grafiken
85% - Betatest
100%

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2682
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #5 am: 06. Januar 2008, 17:15:36 »
du musst vorher auf

if (UsedAction (A_USE_INV))

überprüfen, da activeinv das zuletzt ausgewählte inv-item wiedergibt, egal ob es gerade oder zuvor benutzt wird  ;)
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

Rayman

  • Dott-MMM-Entwickler
  • Midlife Crisis Tentakel
  • **
  • Beiträge: 1580
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #6 am: 06. Januar 2008, 17:20:29 »
  if (MovePlayer(x, y)) {
Müsste da nicht normalerweise eine Koordinate angegeben sein? ??? also z.B.  if (MovePlayer(12, 34)) {

Ich habe die Koordinaten vorher umgeändert in x und y, bevor ich den Post abgeschickt habe.

du musst vorher auf

if (UsedAction (A_USE_INV))

überprüfen, da activeinv das zuletzt ausgewählte inv-item wiedergibt, egal ob es gerade oder zuvor benutzt wird  ;)

@Bòógieman: Danke, Bòógieman, es hat geklappt! :D ;)

Helpman

  • Gast
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #7 am: 13. Januar 2008, 19:11:26 »
Hallo, ich habe da so ein ähnliches Problem.
Ich hab bei meinen Object diesen sogenannten USE-Script eingebaut
und wenn ich andere items mit dem Objekt benutze, dann erscheint keine Reaktion. :'(
Was muss man da machen, damit bei andern Items ein Standartkommentar erscheint?

Bòógieman

  • International anerkannter Superheld
  • Globaler Moderator
  • alter Tentakel
  • *****
  • Beiträge: 2682
  • Geschlecht: Männlich
  • Grün Tentakel = Running Sushi!
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #8 am: 13. Januar 2008, 20:12:43 »
poste mal dein script, mit der beschreibung kann man nicht wirklich viel anfangen  ;)

meinst du mit "sogenannten USE-Script" das hier?
if(UsedAction (A_USE_INV))
?

wenn ja, klingt das ganze so, als ob du nur ein inv-item mit player.ActiveInventory abgefragt hast
im else-zweig musst du Unhandled() verwenden
« Letzte Änderung: 13. Januar 2008, 20:14:00 von Bòógieman »
Schlachtaman Vibrations, UHYEAH!!!
_________________________________

>>>> Ende der Kommunikation <<<<

Rayman

  • Dott-MMM-Entwickler
  • Midlife Crisis Tentakel
  • **
  • Beiträge: 1580
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #9 am: 15. Januar 2008, 21:12:05 »
Also, ich weiß jetzt auch nicht so genau um welchen Fehler es sich bei dir handelt,
aber ich poste hier nochmal meinen einen Script, den ich Dank Bòógieman's großer Hilfe korrigieren konnte :) :

else if (UsedAction(A_USE_INV)) {
  if (MovePlayer(101, 135)) { 
    FaceDirection(GetPlayerCharacter(), DIR_UP); 
    Wait(5);
  (Your Script);
  }   
else if (player.activeinv == 5) {
  (Your Script);
}
else if (player.activeinv == 6) {
  (Your Script);
}
else if (player.activeinv == 7) {
  (Your Script);
    }
  }
}
else Unhandled();

KhrisMUC

  • Moderator
  • volljähriger Tentakel
  • *****
  • Beiträge: 989
    • Profil anzeigen
Re: Gib/Benutze-Aktionen werden mit gewöhnlichen Verben ausgelöst.
« Antwort #10 am: 16. Januar 2008, 01:51:31 »
So ganz stimmt das aber auch nicht:
  ...
  else if (UsedAction(A_USE_INV)) {
    if (MovePlayer(101, 135)) { 
      FaceDirection(player.ID, DIR_UP); 
      Wait(5);
      ai = player.ActiveInventory.ID;
      if (ai == 5) {
        // code   
      }
      else if (ai == 6) {
        // code
      }
      else if (ai == 7) {
        // code
      }
      else Unhandled();
    }
  }
  else Unhandled();

Ich hab mal aktuellen code benutzt, die Klammern korrigiert und außerdem ein zweites Unhandled eingefügt. Das ist wichtig, da es sonst nicht aufgerufen wird, falls man z.B. InvItem Nr. 8 benutzt. (USE_INV wird benutzt, deswegen wird das untere Unhandled nicht aufgerufen; ein zweites muss rein.)