Autor Thema: Fragen zu Starterpacks  (Gelesen 13205 mal)

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Fragen zu Starterpacks
« am: 11. Januar 2013, 17:31:37 »
Hallo zusammen,

ich dachte mir mal die AGS Starterpacks (Bernard3.2.1 und BernardC64) auszuprobieren. Bei meinem Kumpel laufen die Sachen ohne Fehler. Bei mir gibt es aber 2 "Fehler", jeweils einen je Starterpack.

Starterpack Bernard 3.2.1:
Ich hab das Bernard Starterpack für AGS3.2.1 gestartet (mit AGS 3.2.1 natürlich) doch der Sound beim Startbildschirm wird nicht abgespielt bzw. ist nicht zu hören. Alle anderen Sounds (wenn Bernie rumläuft, Türen geöffnet/geschlossen werden usw.) sind alle zu hören. Was muss ich machen damit auch die Startmelodie läuft? Ich habe noch nix geändert, bin noch Anfänger mit AGS. Ich habe mal ausprobiert unter der Rubrik "Audio" in AGS die Musicfiles einzeln abzuspielen - diese werden auch abgespielt aber es ist nix zu hören. Die Soundfiles kann ich unter AGS auch einzeln abspielen und diese sind auch zu hören(wie auch im Spiel). Was ist da los?

EDIT: Hat sich erledigt. Ich hatte AGS in einer virtuellen Umgebung laufen, ohne virtuelle Umgebung ist die Musik da. Warum nur die Musik weg war und die Soundeffekte nicht kann ich aber nicht sagen.

Starterpack Bernard C64:
Grafikproblem. Das gesamte Bild ist nach oben verschoben(im Vollbildmodus). Man kann also den oberen Teil der Grafik nicht sehen. Das ist immer so (also vom Startbildschirm bis ins Spiel). Was muss ich tun damit es richtig angezeigt wird. Ich habe als Monitor einen HD-TV im 16:9 Format ca. 60cm Diagonale welcher aber über VGA angeschlossen ist (hab kein HDMI Port am PC).

EDIT: Dafür hab ich aber eine neue Frage. Wie schafft man es das bei einer Explosion kurz der ganze Bildschirm wackel, samt Spieler? So ein Effekt sieht man manchmal in bestimmten Epis.

Danke schonmal für konstruktive Hilfe.

Sollten diese Themen schonmal hier irgendwo beschrieben worden seien wäre ich dankbar für einen Verweis darauf.

Gruß Kiwa
« Letzte Änderung: 13. Januar 2013, 12:08:08 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Rocco

  • Administrator
  • alter Tentakel
  • *****
  • Beiträge: 2352
  • Geschlecht: Männlich
    • Profil anzeigen
    • Maniac Mansion Mania
    • E-Mail
Re: Fragen zu Starterpacks
« Antwort #1 am: 13. Januar 2013, 13:10:07 »

EDIT: Dafür hab ich aber eine neue Frage. Wie schafft man es das bei einer Explosion kurz der ganze Bildschirm wackel, samt Spieler? So ein Effekt sieht man manchmal in bestimmten Epis.

Aus der AGS - Hilfe:

Zitat
ShakeScreen
ShakeScreen (int amount)

Shakes the screen to simulate, for example, an earthquake. AMOUNT is how much the screen shakes: 1 is hardly anything, and 25 is a lot.
Example:

ShakeScreen(5);

will shake the screen a little.
See Also: ShakeScreenBackground



--------------------------------------------------------------------------------

ShakeScreenBackground
ShakeScreenBackground (int delay, int amount, int length)

Shakes the screen to simulate, for example, an earthquake. The game is not paused while the screen shakes - it will continue in the background.
DELAY specifies the 'shakiness' of the shake - 2 is the lowest you can pass for this, and will create the most shaky screen.

AMOUNT specifies the ferociousness of the shake - ie. how much the screen moves by when it does shake. Here, 1 is a very tiny shake, up to about 30 for a ferocious shake.

LENGTH specifies how long the shake lasts for, in game loops. For example, 80 would be equivalent to 2 seconds at the default game speed.

You can abort any current background shake that is in progress by calling this command with the LENGTH parameter as zero.

Example:

ShakeScreenBackground (4, 10, 80);

will shake the screen a little for 2 seconds.
See Also: ShakeScreen

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #2 am: 13. Januar 2013, 14:18:20 »
Danke Rocco! Sowas hab ich gesucht.
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #3 am: 13. Januar 2013, 16:16:41 »
Da die AGS Hilfe nur in Englisch vorhanden ist würde ich mich sehr freuen hier noch ein paar Tipps zu bekommen.
Bin gerade auf den Geschmack von AGS 3.2.1 gekommen(bin noch Anfänger). Ich benutze das Bernhard Starterpack 3.2.1

Thema laufen:
Wenn die Spielfigur irgendwo automatisch hinlaufen soll(auch mit Raumwechsel) dann macht man das doch mit der Funtion Walk(x,y) mit x und y als Zielkoordinaten und ChangeRoom. Nun braucht die Spielfigur eine bestimmte Zeit die Strecke abzulaufen. Dafür gibt es die Wait(Zeit)-Funktion mit Angabe der Zeit wie lange gewartet werden soll. Woher weiß man wie lange die Spielfigur unterwegs ist. Ich probiere hundertmal aus ob die Zeit nun stimmt oder nicht, gibt es da nicht vielleicht eine leichtere Methode oder macht ihr das auch so?

z.B.
player.FaceDirection(eDirRight);
player.Walk(313, 126);
Wait(95);
player.FaceDirection(eDirUp);
player.ChangeRoom(11, 22, 133);

Wenn man das Wait weglässt wird die Spielfigur sofort an die Zielkoordinate "gebeamt" ohne zu laufen. Erscheint das so weil AGS dann die Laufanimation so schnell abspielt das man es als Mensch nicht mehr sehen kann?

Thema Türen:
Wie macht man es das die Spielfigur automatisch herumläuft und dabei Türen öffnet oder schließt? Im Moment trickse ich noch mit den Hotspots und Türobjekten und  Visible. Ich schalte das Türobjekt/den Hotspot sichtbar oder nicht. So entsehen aber Bugs im Spiel weil Türen plötzlich wieder offen sind obwohl diese geschlossen sein müssten usw. Im Tutorial habe ich was von einem globalen Türenskript gelesen. Hat das damit was zu tun?

Danke schonmal. Ich muss sagen das arbeiten mit AGS ist garnicht so schlimm wie ich erst dachte.

Gruß Kiwa
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #4 am: 13. Januar 2013, 16:24:10 »
der Walk-Befehl hat noch mehr Optionen:

Character.Walk(int x, int y, optional BlockingStyle, optional WalkWhere);

Wichtig für dich ist "optional BlockingStyle", das sagt dem Script, ob es warten soll, bis der Charakter da ist oder nicht. Wenn du das weglässt ist der Standard eNoBlock, also springt das Script direkt zum nächsten Befehl. Wenn du aber eBlock hinter das Komma setzt, wartet das Skript, bis der Charakter bei den Koordinaten angekommen ist.

Türen werden hier gut erklärt: http://www.adventure-treff.de/fanadv/tutorials/ags_mmm.php
« Letzte Änderung: 13. Januar 2013, 16:27:58 von mukk »
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #5 am: 13. Januar 2013, 20:07:06 »
Danke mukk. Der eBlock Parameter hat mir sehr geholfen. Das macht die Sache schon erheblich einfacher.

Das Tutorial habe ich mir (da wo es um die Türen geht) durchgelesen. Dort wird beschrieben wie man sie mit der Maus öffnet (also im Spiel klickt der Spieler auf die Tür und will diese öffnen), sofern ich das richtig verstanden habe.

Was ich aber suche ist eine Lösung für folgende Situation (also Beispiel):
Bernie ist in seinem Zimmer und es klingelt an der Haustür.
Bernie geht also zur Haustür. --> Das soll nicht gespielt werden sondern automatisch ablaufen
Dazu muss Bernie seine Zimmertür öffnen und im Flur wider hinter sich schließen, und in den nächsten Räumen ebenso

Im Starterpack ist folgende Codezeile zu finden wenn man als Spieler die Tür mittels öffnen-Befehl aus dem Verben-GUI öffnet, oder per rechtsklick(öffnen ist dann vorausgewählt).

function hTuer01_AnyClick()
{
  if(Door[eTuerBernardsZimmer].Click()==0) Unhandled();
}

Ich habe also die Unhandeled Funktion gesucht. Im GlobalScript.asc gibt es die auch aber da steht nix von Türen drin.
Da in meiner Situation nicht geklickt wird(Bernie soll ja selber die Tür öffnen und schließen, quasi als Cutscene) ist der Code aus der AnyClick Funktion wohl nicht verwendbar für genanntes Problem. Und was bedeutet der Wert Click==0 ? Die Zeile soll doch bedeuten "wenn Click==0 dann führe die Funktion Unhandeled aus", oder nicht? Was wird aber ausgefürt wenn Click ungleich 0 ist? Es wird hier nirgends eine Funktion für diesen Fall zugewiesen.

Gehe ich richtig in der Annahme das generell nur die asc-Dateien bearbeiten werden müssen oder muss auch was in den ash-Dateien geändert werden. Es geht um AGS  in der Version 3.2.1

Danke für Hilfe!
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #6 am: 13. Januar 2013, 20:44:47 »
mh, du könntest einfach schummeln ;)

Bernie geht zur Tür, du machst das Objekt der offenen Tür in dem Raum sichtbar, änderst Bernies View auf einen nicht belegten, so dass er unsichtbar wird und machst die offene Tür wieder aus, die Sounds dazu musst du manuell anmachen, dann schickst du Bernie zur Haustür mittels player.changeroom, machst ihn direkt wieder sichtbar (View auf den Alten ändern) und schwups, fertig is der Wurstsalat
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #7 am: 13. Januar 2013, 22:35:24 »
Naja, schummel oder nicht - das ist hier ja nicht die Frage. Es soll Bugfrei laufen, darauf kommt es mir im Moment an.

Erzähl mir mehr vom View. Kannst du mir das was du beschrieben hast als Code geben?

Bis jetzt hab ich wie folgt "geschummelt":
Tür öffnen:
if (!oTuer01.Visible)
        {  
          hTuer01.Enabled = true;       
          oTuer01.Visible = false;
          aSound2.Play(); //Tür öffnen Sound
          Wait(5);
        }
===> hat aber nicht funktioniert. Leider.

Tür schließen:
hTuer02.Enabled = true;
oTuer02.Visible = false;
aSound3.Play(); //Tür schließen Sound
Wait(5);

===> das funktioniert!

Seltsam oder?

EDIT: Wie kann man mit Esc Sequenzen abbrechen(wenn z.B. gerade die Walk-Funktion arbeitet)? Wäre besonders beim Testen hilfreich.

EDIT:Ich hatte beim Tür öffnen true und false vertaucht. Ein Bug bleibt aber trozdem
« Letzte Änderung: 13. Januar 2013, 23:49:19 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Rocco

  • Administrator
  • alter Tentakel
  • *****
  • Beiträge: 2352
  • Geschlecht: Männlich
    • Profil anzeigen
    • Maniac Mansion Mania
    • E-Mail
Re: Fragen zu Starterpacks
« Antwort #8 am: 13. Januar 2013, 22:55:51 »
Türen werden hier gut erklärt: http://www.adventure-treff.de/fanadv/tutorials/ags_mmm.php
Ohh mann was für ein tipp.  >:( :cl
Dieses Tutorial ist ca. 8 Jahre alt und bezieht sich daher auch auf eine sehr alte Version von AGS.  ;)

Schau mal in die Zeile NEWS hier im Forum (ober dem Menü, da steht jetzt auch schon ziemlich lange was von einem aktuellen Tutorial erstellt von Endres), hier ist der Link dorthin -> http://www.maniac-mansion-mania.de/forum/index.php?topic=15.msg36729#msg36729
darin werden auch die Türen in den neuen SPs behandelt.

Zitat von: Kiwa
Wie kann man mit Esc Sequenzen abbrechen(wenn z.B. gerade die Walk-Funktion arbeitet)? Wäre besonders beim Testen hilfreich.
StartCutscene(); und EndCutscene(); - schau in der Hilfe nach wegen der Parameter!  ;D

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #9 am: 13. Januar 2013, 23:31:08 »
@Rocco
Mit dem neuen Tutorial habe ich es auch schon versucht. Bin aber bei meinem Problem damit noch nicht weiter gekommen. Vielleicht verstehe ich nur was falsch. Im Tutorial wird erklärt wie man neue Türen anlegt. Darum geht es bei mir aber nicht. Ich will das Bernie in einer Cutszene selber Türen auf und zumacht. Ich werd aber auch nochmal das Tutorial durchlesen - vielleicht hab ich ja noch was übersehen.

EDIT: Ich hab jetzt den Fehler in meinem Code gefunden. Hatte nur einmal true und false vertauscht. Bin schon betriebsblind. Aber einen Trost hab ich noch - einen neuen Bug zum gleichen Thema. So wirds nie langweilieg  ;D

Der Tipp mit der Start- und EndCutscene() war genau das wonach ich suchte. Danke!
« Letzte Änderung: 13. Januar 2013, 23:46:22 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #10 am: 14. Januar 2013, 14:34:34 »
Ein View sind alle Sprites zu einem Objekt oder Charakter. Also bspw. Bernies Walk- oder Talk-Animationen. Überaschenderweise sind sie unter "Views" im Editor zu finden ;)
Wenn du den Charakter cBernard im Editor anklickst, siehst du rechts unten die zugeteilten Views.

Für kurze Zeit ändern tust du sie am besten mit Character.Lockview(int view)

also in deinem Fall:

cBernard.LockView(unbelegte Nummer);
-Skript während dem Bernard unsichtbar ist-
cBernard.UnlockView(); // setzt ihn wieder auf seinen normal view

bin mir nicht sicher, ob das auch seine Talk-Animation ersetzt. Müsstest du ausprobieren.
Wenn nein und du willst auch die ändern, geht das mit cBernard.SpeechView = -1;

if (!oTuer01.Visible)

müsste meiner Meinung nach if (oTuer01.Visible == false) fragen, weiß aber nich, warum du da unbedingt ne Funktion haben willst. Es reicht doch, die offene Tür einfach an zu machen. Der Hotspot ist doch für die Zwischensequenz auch egal  ???
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #11 am: 14. Januar 2013, 18:24:28 »
if (!oTuer01.Visible)

müsste meiner Meinung nach if (oTuer01.Visible == false) fragen, weiß aber nich, warum du da unbedingt ne Funktion haben willst. Es reicht doch, die offene Tür einfach an zu machen. Der Hotspot ist doch für die Zwischensequenz auch egal  ???

Mit der Funktion meinte ich folgenden Code und Frage dazu:
function hTuer01_AnyClick()
{
  if(Door[eTuerBernardsZimmer].Click()==0) Unhandled(); Wo wird hier eine Funktion zugewiesen wenn Click() ungleich 0 ist? Was genau macht die Methode/Funktion Click()? Habe in der AGS Hilfe nix dazu gefunden.
}

Das mit der View werd ich noch ausprobieren falls meine "Lösung" garnicht geht. Im Moment scheint es zu funktionieren, aber das will ich lieber nicht zu laut sagen.
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

mukk

  • kleiner Tentakel
  • ***
  • Beiträge: 145
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #12 am: 14. Januar 2013, 20:12:01 »
Unhandled() heißt keine Reaktion. Vielleicht versteh ich nich ganz was genau du vorhast, aber der Moment, in dem die Tür nicht angeklickt wird, ist jeder andere Moment im Spiel. Ich glaube nicht, dass du an der Funktion was ändern möchtest :)
Schummeln war wohl ne schlechte Fomulierung meinerseits. Du solltest das ganze schon so machen wie ichs beschrieben hab. Achte darauf, dass du nur die Grafiken an und aus machst, alles andere ist egal. Dann solltest du auch keine Bugs haben. Wenn du viele Zwischensequenzen bei genau dieser Tür hast und du nicht immer alls von Hand machen willst, könntest du eine Region vor der Tür zeichnen die den Spieler erkennt und in die du dein Skript schreibst. Die schaltest du dann in den Sequenzen an und danach wieder aus.
Each year, vegetarians bully animals,
cheat in relationships, watch porno and cause pollution.
So join the fight now and stop the vegetarians.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #13 am: 14. Januar 2013, 21:59:53 »
Das mit der Region hört sich gut an. Jetzt versuch ich im AGS-Editor die Region einzuzeichnen(im Raum). Ich konnte auch schon was einzeichnen und habe in der region0_WalksOnto() Funktion was reingeschrieben(als Test sollte die Spielfigur was sagen). Doch da tut sich nix. Man kann über die Region laufen und es passiert nix. In der AGS Hilfe steht leider auch nicht wie man das richtig einzeichnet. Dort stehen nur die AGS Script-Funktionen dazu. Muss man noch irgendwo im Editor was an- oder umschalten?

Nachtrag:
Und noch eine andere Frage:
Wie kann man Hotspots in Objekte umwandeln? Der Hotspot ist im Starterpack so vorhanden. Jetzt muss aber in meiner Epi dieser Gegenstand von der Spielfigur mitgenommen werden. Dazu muss wohl auch das Bild für den Raum nachgezeichnet werden, oder nicht. Wie macht ihr das?
« Letzte Änderung: 16. Januar 2013, 19:23:55 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.

Kiwa

  • volljähriger Tentakel
  • *****
  • Beiträge: 779
  • Geschlecht: Männlich
    • Profil anzeigen
Re: Fragen zu Starterpacks
« Antwort #14 am: 16. Januar 2013, 19:23:33 »
Brauch nochmal eure Hilfe. Ich habe einen neuen Raum angelegt(nur unter Rooms im AGS-Editor, im Script oder woanders habe ich nichts verändert). Dieser wird auch angezeigt und man kann auch Charactere in den Raum plazieren. Doch leider sprechen sie nicht. Der normale Say-Befehl funktioniert nicht mehr, in allen anderen Räumen schon. Ich verwende das Mansion Starterpack 3.2.1 Wenn die Spielfigur in einem Raum vom Starterpack ist, kann sie reden, wenn man sie dann in den neuen Raum schickt (changeRoom) und DORT soll sie etwas sagen dann redet die Spielfigur nicht mehr und man kann auch sonst nix machen. Hab schon im Forum nach ähnlichen Problemen gesucht aber nichts passendes gefunden. Kann mir wer helfen?

EDIT: Folgendes habe ich inzwischen dazu herausgefunden. Es wird die room_AfterFadeIn() Methode des neuen Raumes nicht aufgerufen wenn der neue Raum betreten wird. Wiso nicht? Bei allen anderen Räumen geht es doch auch so. Muss man den neuen Raum noch in irgendeinem Script irgendwo eintragen? Danke für Hilfe, bin grad am verzweifeln...
« Letzte Änderung: 16. Januar 2013, 23:05:47 von Kiwa »
Das Leben ist ein Adventure. Aber ohne Komplettlösung.

Für fast alles gibt es eine logische Erklärung. Für alles andere ein Placebo.