Script-Hilfe für die MMM-Episode

Fragen zu "Adventure Game Studio"? Hier rein!
Antworten
Rayman

Script-Hilfe für die MMM-Episode

Beitrag von Rayman »

Servus!
Ich arbeite auch an eine MMM-Episode und da
hab ich einen Raum gestaltet,
in dem viele Hotspots und der Charakter
Ali Woodafi (der hat einen Französischen Akzent) sind.
Und den Raum habe ich so programmiert, dass der Spieler
die Gegenstände nicht benutzen kann, wegen
dem Woodafi; so bald man z.B. einen Gegenstand nehmen
will, sagt der Woodafi " 'ände weg!" und die erste programmierung
war erfolgreich. Beim Telefon z.B habe ich das so gemacht:

if (UsedAction (A_WALK_TO)) {
if (MovePlayer (115, 135)) {
FaceLocation (GetPlayerCharacter (), 115, 136);
}
}

else if (UsedAction (A_LOOK_AT)) {
if (MovePlayer (115, 135)) {
FaceLocation (GetPlayerCharacter (), 115, 136);
DisplaySpeech (GetPlayerCharacter (),"Ein Telefon.");
}
}

if (UsedAction (A_PICK_UP)) {
if (MovePlayer (115, 135)) {
FaceLocation (GetPlayerCharacter (), 115, 136);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

Das Problem ist nur, wie ich es programmieren kann, das man
einen Gegenstand erst nehmen oder benutzen kann, wenn der Ali Wooddafi den Raum verlässt?
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Script-Hilfe für die MMM-Episode

Beitrag von KhrisMUC »

Ich nehme mal, dass Du AGS 2.7 benutzt. (Zumindest hoffe ich das, da mein Skript sonst nicht funktioniert ;))

Code: Alles auswählen

...
if (UsedAction (A_PICK_UP)) {
  if (MovePlayer (115, 135)) {
    FaceLocation (GetPlayerCharacter (), 115, 136);
    if (cAli.Room==player.Room) {
      FaceCharacter (ALI, GetPlayerCharacter ()); 
      DisplaySpeech (ALI,"'ände weg!");
      Wait(5);
      FaceLocation (ALI, 142, 123);
    }
    else {
      // Gegenstand nehmen
    }
  }
} 
Wenn Du nicht 2.7 benutzt, musst Du z.B. anhand einer GlobalInt den Raum festhalten, in dem sich Ali gerade aufhält und die Abfrage entsprechend anpassen.

Dein code müsste übrigens einen Fehler produzieren, wenn Ali nicht im Raum ist.
Use gopher repellent on funny little man
Benutzeravatar
Dusty D.
Hobby-Archäologe
Hobby-Archäologe
Beiträge: 153
Registriert: 18.04.2004, 20:03
Kontaktdaten:

Re: Script-Hilfe für die MMM-Episode

Beitrag von Dusty D. »

khrismuc hat geschrieben:Ich nehme mal, dass Du AGS 2.7 benutzt.
Wenn Du nicht 2.7 benutzt, musst Du z.B. anhand einer GlobalInt den Raum festhalten, in dem sich Ali gerade aufhält und die Abfrage entsprechend anpassen.
Also, ne GlobalInt musst du dafür nicht verschwenden:

Code: Alles auswählen

if (character[Ali].room)==xy { 
Das Long Trip-Projekt

"Lauf nicht weg!"
Rayman

Beitrag von Rayman »

Ich hatte es mit

if (character[Ali].room)==xy {

versucht, aber da kommt andauernd die Fehlermeldung, das
der Script-Name Ali falsch geschrieben wurde - da hab ich
den Script-Name korrigiert und dann kam wieder die Fehlermeldung
mit den ==.
Ich hatte von AGS 262 auch zu AGS 2.7 gewechselt, als
ich dann die Fehler bei AGS auftauchten, dass was mit der
Speicher- und Lade Option nichts stimmte, hatte ich wieder
zu AGS 262 gewechselt (von AGS 262 hatte ich nämlich eine
Sicherheitskopie gemacht). AGS 2.7 soll zwar etwas einfacher
sein, aber besser, man fängt damit später an.
Und bei Global|int wüsste ich jetzt auch nicht so genau,
wo ich einen code einsetzen müsste.
[ZENSIERT]
Adventure-Gott
Adventure-Gott
Beiträge: 4575
Registriert: 13.07.2004, 14:04
Wohnort: Da wo muss
Kontaktdaten:

Beitrag von [ZENSIERT] »

ALI muss groß geschrieben werden ;)
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
Anonymous1

Beitrag von Anonymous1 »

Mal ne Frage Rayman:

Warum hast du zwei Threads zum selben Thema hier aufgemacht?
Du hättest bei einem Beitrag bleiben sollen.
Benutzeravatar
Problem
Logik-Lord
Logik-Lord
Beiträge: 1261
Registriert: 16.12.2004, 18:35
Wohnort: Kassel
Kontaktdaten:

Beitrag von Problem »

Er wird wohl versehentlich zweimal geklickt haben, das kann passieren. Und als Gast hat man dann keine Chance, das wieder rückgängig zu machen.
Rayman

Beitrag von Rayman »

Der eine Thread war ein Versehen...
ch nur einen losschicken ,
als mein Computer beim laden gehongen hatte,
da hatte ich gedacht, die Nachricht war viel zu groß.
Da hatte ich etwas geändern und den zweiten hab ich losgeschickt
und so war es passiert, dass es noch einen Thread gab.
Aus neu wird irgendwann alt.
Wenn du einen Tipp weißt, wie ich es richtig programmieren könnte,
kannst du ja bescheid geben.

P.S. MMM-Episode 11 war klasse gemacht!
Benutzeravatar
Rocco
Adventure-Treff
Adventure-Treff
Beiträge: 1019
Registriert: 25.11.2003, 16:20
Wohnort: Ronville
Kontaktdaten:

Beitrag von Rocco »

das ist falsch geschrieben
if (character[Ali].room)==xy {
die eine klammer kömmt zu früh
if (character[ALI].room==xy) {
Rayman

Leider hat es noch nicht so ganz geklappt.

Beitrag von Rayman »

Danke für den Hinweis, Rocco.
Das Problem ist jetzt nur, das die Fehlermeldung
mit xy ständig auftaucht. Wenn ich mit dem ersten
Raum fertig bin, dann schwöre ich, die nächsten Räume
mach ich dann auch fertig (mit dem programmieren!)!
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Script-Hilfe für die MMM-Episode

Beitrag von KhrisMUC »

Dusty D. hat geschrieben:
khrismuc hat geschrieben:Ich nehme mal, dass Du AGS 2.7 benutzt.
Wenn Du nicht 2.7 benutzt, musst Du z.B. anhand einer GlobalInt den Raum festhalten, in dem sich Ali gerade aufhält und die Abfrage entsprechend anpassen.
Also, ne GlobalInt musst du dafür nicht verschwenden:

Code: Alles auswählen

if (character[Ali].room)==xy { 
Wusste nicht, das AGS 2.6.2 "character[Ali].room" akzeptiert.

Rayman:
steht wirklich "xy" in Deinem Skript?
Hast Du vorher mit "int xy;" die Variable deklariert?
Was genau steht in der Fehlermeldung, das würde sehr helfen?
Use gopher repellent on funny little man
Benutzeravatar
Floyd
Logik-Lord
Logik-Lord
Beiträge: 1088
Registriert: 14.03.2004, 19:59

...

Beitrag von Floyd »

Hast du "xy" denn auch durch die Raumnummer ersetzt? :wink:
Rayman

Beitrag von Rayman »

Ja das hab ich,
aber es kommt trotzdem noch ´ne Fehlermeldung.
Benutzeravatar
KhrisMUC
Adventure-Gott
Adventure-Gott
Beiträge: 4674
Registriert: 14.03.2005, 00:55
Wohnort: München

Re: Script-Hilfe für die MMM-Episode

Beitrag von KhrisMUC »

khrismuc hat geschrieben:Was genau steht in der Fehlermeldung, das würde sehr helfen?
Use gopher repellent on funny little man
Rayman

Beitrag von Rayman »

Die Fehlermeldung ist dann so, das was mit dem Roomscript ist.
Der Raum hat 10 Hotspots.
Wenn ich gucke, was jetzt der Fehler ist, erscheint das hier:

#sectionstart hotspot4_b // DO NOT EDIT OR REMOVE THIS LINE
function hotspot4_b() {
// script for Hotspot 4 (Bücher): Any click on hotspot

if (UsedAction (A_WALK_TO)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
}
}

else if (UsedAction (A_LOOK_AT)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
DisplaySpeech (GetPlayerCharacter (), "Nur ein paar nutzlose Polizei-Akten.");
}
}

if (UsedAction (A_PICK_UP)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

if (UsedAction (A_USE)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

if (UsedAction (A_PUSH)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

if (UsedAction (A_PULL)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

if (UsedAction (A_OPEN)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}

if (UsedAction (A_CLOSE)) {
if (MovePlayer (182, 109)) {
FaceLocation (GetPlayerCharacter (), 182, 108);
FaceCharacter (ALI, GetPlayerCharacter ());
DisplaySpeech (ALI,"'ände weg!");
Wait(5);
FaceLocation (ALI, 142, 123);
}
}
}

Ich bin echt fassungslos!
Antworten