UsedInvItem: Char läuft erst zurück, dann zum Objekt

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
PsychoF82
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 140
Registriert: 22.09.2005, 23:44
Wohnort: NRW
Kontaktdaten:

UsedInvItem: Char läuft erst zurück, dann zum Objekt

Beitrag von PsychoF82 »

Hi! Heute ist schon der 2.Tag an dem ich dran verzweifel und jetzt frag ich einfach die Profis...
Ich will ein Objekt (ne Kiste) mit einem bestimmten gegenstand öffnen lassen. Soweit klappt es, aber immer läuft der CHAR erst zurück zur Tür, dann zum Objekt. Das wäre doch ein ärgerlicher Bug^^...

Hier mal mein Code für das Objekt:

Code: Alles auswählen

if (UsedAction (A_WALK_TO)) {
  if (MovePlayer (273, 123)) {
    FaceLocation (GetPlayerCharacter (), 273, 120);
  }
}
else if (UsedAction (A_LOOK_AT)) {
  if (MovePlayer (273, 123)) {
    FaceLocation (GetPlayerCharacter (), 273, 120);
    DisplaySpeech(GetPlayerCharacter(), "Ein Kiste aus Holz...");    
  }
}
else if (UsedAction (A_PICK_UP)) {
  if (MovePlayer (273, 123)) {
    FaceLocation (GetPlayerCharacter (), 273, 120);    
    DisplaySpeech(GetPlayerCharacter(), "Sie ist viel zu schwer für mich.");
  }
}
else if (UsedAction (A_OPEN)) {
  if (MovePlayer (273, 123)) {
    FaceLocation (GetPlayerCharacter (), 273, 120);
    DisplaySpeech(GetPlayerCharacter(), "Sie ist zugenagelt...");
    DisplaySpeech(GetPlayerCharacter(), "Ich muss die Kiste irgendwie aufbrechen.");
  }
}

else if (UsedInvItem(20)) {
  if (MovePlayer (273, 123)) {
    FaceLocation (GetPlayerCharacter (), 273, 120);
    DisplaySpeech(GetPlayerCharacter(), "Das sollte klappen!");
    Wait(40);
    ObjectOn(10); SetObjectClickable(10, 1);
    ObjectOff(2); SetObjectClickable(2, 0);
    PlaySound(43);
  }
}

else Unhandled ();
Ich hoffe, jemand kann mir da helfen :oops:
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Probier's mal damit:

Code: Alles auswählen

else if (UsedAction (A_USE_INV) && player.ActiveInventory.ID==20)
Wird aber wahrscheinlich nix helfen. Es handelt sich höchstwahrscheinlich um einen kleinen bug in der MovePlayer-Funktion (die von LucasFan stammt, nicht von CJ).
Versuch mal bissl andere Koordinaten, oder ruf vor MovePlayer() mal player.StopMoving; Wait(1); auf.
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 »

khrismuc hat geschrieben:

Code: Alles auswählen

else if (UsedAction (A_USE_INV) && player.ActiveInventory.ID==20)
...hat tatsächlich funktioniert! :D

Ich verstehe die Logik zwar nicht ganz aber Hauptsache es geht :mrgreen:
Danke khrismuc, auf dich ist Verlass :D 8)
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Beitrag von KhrisMUC »

Hehe, cool, UsedInvItem ist anscheinend eine interne Funktion, die nicht verwendet werden sollte.
Use gopher repellent on funny little man
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

Ich darf das mal erklären, da ich in Epi 13 ähnliche Probleme damit hatte:

UsedInvItem hat anscheinend einen Fehler mit der MovePlayer-Funktion, allerdings kommt der Fehler aus dem Starterpack. Der Spieler soll anscheinend erstmal zu 0,0 laufen, bis Weiteres passiert.

Und die MovePlayer-Funktion ist ganz nebenbei von Proskrito ;)
Es heißt, Leute mit den originellsten Nicknames schreiben die besten Beiträge

Ausnahmen bestätigen die Regel
_________________
<Problem> Weil du denken kannst.

Zuletzt bearbeitet von [ZENSIERT] am 16.07.1759, 16:19, insgesamt 54743869-mal bearbeitet
Antworten