Script-Hilfe für die MMM-Episode
Script-Hilfe für die MMM-Episode
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?
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?
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Script-Hilfe für die MMM-Episode
Ich nehme mal, dass Du AGS 2.7 benutzt. (Zumindest hoffe ich das, da mein Skript sonst nicht funktioniert )
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.
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
}
}
}
Dein code müsste übrigens einen Fehler produzieren, wenn Ali nicht im Raum ist.
Use gopher repellent on funny little man
- Dusty D.
- Hobby-Archäologe
- Beiträge: 153
- Registriert: 18.04.2004, 20:03
- Kontaktdaten:
Re: Script-Hilfe für die MMM-Episode
Also, ne GlobalInt musst du dafür nicht verschwenden: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.
Code: Alles auswählen
if (character[Ali].room)==xy {
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.
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.
-
- Adventure-Gott
- Beiträge: 4575
- Registriert: 13.07.2004, 14:04
- Wohnort: Da wo muss
- Kontaktdaten:
- Problem
- Logik-Lord
- Beiträge: 1261
- Registriert: 16.12.2004, 18:35
- Wohnort: Kassel
- Kontaktdaten:
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!
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!
- Rocco
- Adventure-Treff
- Beiträge: 1019
- Registriert: 25.11.2003, 16:20
- Wohnort: Ronville
- Kontaktdaten:
Leider hat es noch nicht so ganz geklappt.
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!)!
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!)!
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Script-Hilfe für die MMM-Episode
Wusste nicht, das AGS 2.6.2 "character[Ali].room" akzeptiert.Dusty D. hat geschrieben:Also, ne GlobalInt musst du dafür nicht verschwenden: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.
Code: Alles auswählen
if (character[Ali].room)==xy {
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
- Floyd
- Logik-Lord
- Beiträge: 1088
- Registriert: 14.03.2004, 19:59
...
Hast du "xy" denn auch durch die Raumnummer ersetzt?
Der verschwundene Husky - ein 2D Point&Click Adventure
Einen schönen Orbit, Bürger!
Einen schönen Orbit, Bürger!
- KhrisMUC
- Adventure-Gott
- Beiträge: 4674
- Registriert: 14.03.2005, 00:55
- Wohnort: München
Re: Script-Hilfe für die MMM-Episode
khrismuc hat geschrieben:Was genau steht in der Fehlermeldung, das würde sehr helfen?
Use gopher repellent on funny little man
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!
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!