Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: LilaQ am 05. September 2007, 18:35:55

Titel: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: LilaQ am 05. September 2007, 18:35:55
Hi zusammen,

ich komm mal direkt mit meinen nächsten Fragen :)

1. Wie macht ihr das wenn ihr ein normales Flag setzen wollt, nehmt ihr da immer ein GlobalInt oder ist das unvorteilhaft? Also ich meine, wenn ich jetzt was in einer Schublade platziert habe und mein Char hat das genommen. Wenn er danach reingreift soll das Ding natürlich nicht mehr da sein, also müsst ich ja ein Flag setzen dass es schon genommen wurd, richtig? Wie macht ihr das?

2. Wie kann ich mir die einzelnen Sounds probeweise mal anhören damit ich auch weiß welchen Sound ich jetzt einbinde? Im Moment füg ich einfach nur immer blind Zahlen in PlaySound() ein was dann natürlich meistens nicht passt.

Danke schonmal :)

Mfg
LilaQ
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: Mister L am 05. September 2007, 18:54:56
1. Ich nehme dafür die GlobalInts. Geht aber auch anders. Aber das können andere besser erklären.  ;)

2. Im Ordner des Bernard-Starterpacks gibt es einen Unterornder "Sounds".
    Einfach öffnen und anhören. Für die ogg-Dateien braucht man einen Player, der das Format lesen kann. Z.B. 
    'Foobar2000'
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: BlueGryphon am 05. September 2007, 18:59:31
Bitte erzähl mir nichts von Speicherverschwendung (du verschwendest quasi 31 bit), aber im Normalfall nimmt man GlobalInts, am sichersten ist es, wenn man bei 200 anfängt. Manchmal lassen sich GlobalInts auch einfach umgehen, z.B. wenn man nachprüfen will, ob der Spieler schonmal in einem bestimmten Raum war, ob er einen Gegenstand mit sich trägt, ob er aus diesem und jenen Raum kommt etc.

Ich benutze zum Anhören von OGGs normalerweise Windows Media Player mit ffdshow (finde aber leider keine kompatible Version), allerdings sind einige der Sounds so kurz, dass sie von praktisch jedem Media Player übersprungen werden.
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: X-Tremly_ am 05. September 2007, 20:15:52
Zitat
...
    Einfach öffnen und anhören. Für die ogg-Dateien braucht man einen Player, der das Format lesen kann. Z.B. 
    'Foobar2000'

anhören kann man(n) .OGG-Files doch auch mit WinAmp? Bei mir klappt das zumindest.
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: LilaQ am 05. September 2007, 20:16:44
Hi,

ja ich wusste nur nicht ob die GlobalInts für irgendwas reserviert sind oder so. Manche Sachen kann man ja auch anders lösen indem man dann einfach das Object ausschaltet oder den Hotspot disablet, nur bei solchen Sachen ja nicht.

Mit den Sounds klingt ja gut, ich denk mal mein Amarok sollte die ogg's handeln können.

Danke schonmal :)

Mfg
LilaQ
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: KhrisMUC am 05. September 2007, 22:03:11
Es gibt 500 GlobalInts; bei den MMM-Packs sind die ersten 20 oder so reserviert. Das hängt davon ab, wie viele Türen das Pack verwendet, da jede eine GlobalInt benötigt. Auch Schränke oder Schubladen, die automatisch Rechtsklick-Aktionen zugewiesen haben, verwenden je eine.

Alternativ kannst Du eigene Variablen verwenden:

Entweder die Variable muss nur innerhalb eines Raumes "sichtbar" sein (sichtbar für das Skript bzw. AGS), in diesem Fall genügt es, die V. am Anfang des room scripts zu deklarieren. Klick in Room Editor -> Settings auf den {}-Button; dieser öffnet das room script. Jetzt schreibst Du ganz oben, vor die erste function z.B.:
int schrank_offen;
Diese Variable ist jetzt 0 und kann überall im Raum verwendet werden.
Beispiel:
function ...
  // any click on hotspot 5 (Schrank)
  ...
    else if (UsedAction(A_OPEN)) {
      if (schrank_offen==1) player.Say("Der ist schon offen!");
      else {
        oSchrank.Visible=true;
        oSchrank.Clickable=false;
        schrank_offen=1;
      }
    }
    else if (UsedAction(A_CLOSE)) {
      if (schrank_offen==0) player.Say("Der ist schon zu!");
      else {
        oSchrank.Visible=false;
        schrank_offen=0;
      }
    }
    ...

Muss die Variable überall verwendet werden können, muss sie im global script deklariert und exportiert werden:
int es_ist_nacht;
export es_ist_nacht;   // bei export reicht der Name der Variable
Jetzt muss sie im script header importiert werden:
import int es_ist_nacht;  // import benötigt den Typ, also "int"
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: LilaQ am 05. September 2007, 23:56:19
Genau das hatte ich schon probiert einfach einen normalen Integer im Raum zu nutzen, aber irgendweswegen hat es nicht geklappt. (Oder es hat wirklich geklappt und ich habs einfach nicht mitbekommen / vergessen) :) Muss ich morgen mal schauen, ist aufm Laptop. Ich mach derzeit 2 verschiedene Adventures, eins hier am PC und eins am Laptop wenn ich bei meiner Freundin bin :)


Mfg
LilaQ

P.S.: Achja, muss bei Episoden / Sonstigen Releases der Sourcecode dabei gelegt werden? Und dann kommentiert (zBsp im Global Script welche GlobalInts wofür verwendet wurden etc? )
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: Rocco am 06. September 2007, 00:28:53
nein da brauchst du keine angst zu haben  ;)
troubles gibts nur, wenn die episode defizite in der spielbarkeit aufweist.
aber den sourcecode musst du nicht preisgeben. (ausser du verwendest eine freeware version von visionaire)
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: Jefffan am 06. September 2007, 16:44:53
Welche GlobalInts wofür verwendet werden sollte man aus eigenem Interesse aber dennoch kommentieren,damit man selber den Überblick nicht verliert. Denn wenn man versehentlich zweimal dieselbe GlobalInt für unterschiedliche Aktionen benutzt, führt dies im Spiel zu Fehlern (im Schlimmsten Fall ist es nicht mehr lösbar wenn man eine bestimmte Aktion ausführt).
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: LilaQ am 06. September 2007, 18:32:05
Ja genau so mache ich es auch, damit auch nach einigen Monaten mein Projekt noch verstehen kann.

Hab gestern im iRC von jemandem eine Liste erhalten mit allen Sounds als TXT Datei, ich weiß nicht ob die hier schonmal gepostet wurde. Dank dafür geht glaube ich an BlueGryphon :)

Zitat
[02:12:14] <FireOrange> Sound 1 - Öffnen und Schließen von Schubladen oder Schränken
[02:12:14] <FireOrange> Sound 2 - Öffnen von Türen
[02:12:14] <FireOrange> Sound 3 - Schließen von Türen
[02:12:14] <FireOrange> Sound 4 - Nehmen von Gegenständen
[02:12:14] <FireOrange> Sound 5 - Schließen von Schubläden oder Schränken
[02:12:14] <FireOrange> Sound 8 - Klick auf Knopf (ding)
[02:12:14] <FireOrange> Sound 11 - Staubsauger
[02:12:14] <FireOrange> Sound 12 - Dusche
[02:12:15] <FireOrange> Sound 28 - Blubb
[02:12:16] <FireOrange> Sound 30 - Rülpsen
[02:12:17] <FireOrange> Sound 31 - Metallenes Quietschen (z.B. eines Schraubenziehers)
[02:12:18] <FireOrange> Sound 32 - Dumpfer Aufschlag auf eine Flasche
[02:12:19] <FireOrange> Sound 33 - Blasen
[02:12:19] <FireOrange> Sound 35 - Klosauger setzt auf
[02:12:21] <FireOrange> Sound 36 - Klosauger wird gezogen
[02:12:22] <FireOrange> Sound 37 - Reißverschluss
[02:12:23] <FireOrange> Sound 38 - Klospülung
[02:12:24] <FireOrange> Sound 39 - ?
[02:12:25] <FireOrange> Sound 40 - Elektrischer Strom
[02:12:26] <FireOrange> Sound 41 - Meißel schlägt auf Stein ein
[02:12:27] <FireOrange> Sound 42 - Flasche wird entkorkt
[02:12:28] <FireOrange> Sound 43 - Ablegen eines Gegenstandes
[02:12:29] <FireOrange> Sound 44 - Schnelles Schließen z.B. einer Dachluke
[02:12:29] <FireOrange> Sound 45 - Zerreißen von Stoff
[02:12:31] <FireOrange> Sound 46 - Karte wird ausgespielt
[02:12:32] <FireOrange> Sound 47 - Schließen von ?
[02:12:33] <FireOrange> Sound 48 - Schleifbohrer
[02:12:34] <FireOrange> Sound 50 - Schließen einer Autotür
[02:12:35] <FireOrange> Sound 51 - Klappern
[02:12:36] <FireOrange> Sound 58 - Zerbrechen einer Flasche
[02:12:37] <FireOrange> Sound 59 - Zerbrechen einer Vase
[02:12:38] <FireOrange> Sound 60 - Lichtschalter
[02:12:38] <FireOrange> Sounds 61 bis 63 - Drehen einer Schraubenziehers
[02:12:40] <FireOrange> Sound 64 - Schlag auf einen Nagel
[02:12:41] <FireOrange> Sound 65 - Säge
[02:12:41] <FireOrange> Sound 66 - Lichtschalter
[02:12:43] <FireOrange> Sound 67 - ?
[02:12:44] <FireOrange> Sound 68 - Einzelne Blase
[02:12:45] <FireOrange> Sound 69 - Glas zerbricht
[02:12:46] <FireOrange> Sound 85 - Knarren
[02:12:47] <FireOrange> Sound 86 - Telefon klingelt
[02:12:48] <FireOrange> Sound 87 - Ton vor "Kein Anschluss unter dieser Nummer"
[02:12:49] <FireOrange> Sound 88 - Einzelnes Besetzt-Zeichen
[02:12:50] <FireOrange> Sound 89 - Telefon wird aufgelegt
[02:12:51] <FireOrange> Sound 90 - Mikrowellen-Ding
[02:12:51] <FireOrange> Sound 93 - Lichtschalter
[02:12:51] <FireOrange> Sound 94 - Schnitt mit der Schere
[02:12:54] <FireOrange> Sound 95 - Wasser wird eingegossen
[02:12:54] <FireOrange> Sound 96 - Grillenzirpen
[02:12:55] <FireOrange> Sound 97 - Schritt auf festem Boden
[02:12:56] <FireOrange> Sound 98 - Explosion
[02:12:57] <FireOrange> Sound 99 - Türklingel
Titel: Re: Einzelne 'Flags' immer als GlobaInts ? / Wie Sounds testen ?
Beitrag von: fireorange am 07. September 2007, 00:33:44
Ja, BG hatte die Liste mal im AT gepostet.