Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Thema gestartet von: Kinkilla am 07. März 2015, 21:00:10

Titel: Animation will net
Beitrag von: Kinkilla am 07. März 2015, 21:00:10
Hi Leute
Ich wollte in einen Raum ein Perpetuum Mobile platzieren
Ich habs genauso wie in Bernards Zimmer animiert
Mit View & Co
Dann starte ich das Spiel und es bewegt sich nicht...
Weiß vielleicht irgendeiner wie das geht?  :cl
Danke im Voraus :D
Titel: Re: Animation will net
Beitrag von: Cone Arex am 07. März 2015, 21:05:56
Du musst deinen Code schon posten, sonst können wir dir nicht helfen.
Titel: Re: Animation will net
Beitrag von: Kinkilla am 07. März 2015, 21:13:26
Was für ein Script?
Ich geh auf die Sprite meines Objects.
Drück auf Assign to View
Wähl meine erstellte View
Füge die nächsten Sprites hinzu... und dann sollte es funktionieren...
Titel: Re: Animation will net
Beitrag von: Cone Arex am 07. März 2015, 21:23:37
Und da haben wir den Fehler...

Du hast einen Loop in einem View erstellt, also eine Animationsabfolge. Jetzt musst du dem Object diesen View/Loop noch zuweisen.

Geh in den Raum, lege die Funktion Room_Load an wenn du das noch nicht getan hast und schreib in die Funktion:
[ags]
ObjectName.SetView(viewname, loopnummer, framenummer);
ObjectName.Animate(loopnummer, verzögerung, eRepeat, eNoBlock);
[/ags]
Statt viewname kannst du auch die Nummer des Views angeben. Loopnummer und framenummer sind bei SetView optional.
Das eRepeat sagt aus, dass die Animation wiederholt wird. Wenn du eine Animation nur einmal abspielen willst, musst du eOnce angeben. eNoBlock sagt aus, dass die Animation das Script nicht blockiert.
Titel: Re: Animation will net
Beitrag von: Kinkilla am 07. März 2015, 21:28:40
Es lebt :o
Danke für die Hilfe
Nun weiß ich bescheid
Programmieren am Abend wie schön
Titel: Re: Animation will net
Beitrag von: Kinkilla am 08. März 2015, 19:07:10
Ich bräuchte nochmal Hilfe...

Ich will zwei Gegenstände kombinieren aber es passiert nichts
Hier der Code
function iHaken_UseInv()
{
if (player.ActiveInventory == iFaden)
  {
    player.LoseInventory(iFaden);
    player.LoseInventory(iHaken);
    PlaySound(4);
    Wait(5);
    player.AddInventory(iAngel);
  }
 
  else Unhandled();
}
Das Event hab ich auch erstellt...
Titel: Re: Animation will net
Beitrag von: Kiwa am 08. März 2015, 19:36:30
Ich bräuchte nochmal Hilfe...
Ich will zwei Gegenstände kombinieren aber es passiert nichts

Mache folgendes:

Du kannst Gegenstände sofort benutzen lassen (das macht z.B. Sinn bei einem Handy -> "Benutze Handy" würde also dazu führen das der player das Handy direkt benutzt (zum telefonieren) oder du möchtest das das Handy mit etwas anderem zusammen gebaut wird -> z.B. "Benutze Handy mit Antenne". Beide Aktionen werden im GlobalScript geschrieben, die Lösung die du brauchst sieht so aus:

[ags]function iHaken_UseInv()
{
  if (UsedAction(eActUseInventory)){
    if (player.ActiveInventory == iFaden)
    {
       player.LoseInventory(iFaden);
       player.LoseInventory(iHaken);
       PlaySound(4);
       Wait(5);
       player.AddInventory(iAngel);
    }else{} // Das else ist optional und muss hier nicht stehen
  }
}[/ags]

Denke aber daran das du auch die umgekehrte Reihenfolge scripten musst wenn du möchtest das man auch den Haken mit dem Faden benutzen kann. Ich persönlich finde es immer recht hilfreich wenn man Gegenstände in beide Richtungen miteinander benutzen kann (Also A mit B und B mit A, hier Faden und Haken).

Wenn du ein Inventargegenstand direkt benutzen möchtest (siehe Beispiel Handy) dann schreibtst du folgenden Code:

[ags] if (UsedAction(eActUse)){...} //direkt benutzen[/ags]

War die Erklärung hilfreich oder geht es immer noch nicht?
Titel: Re: Animation will net
Beitrag von: Kinkilla am 08. März 2015, 19:47:22
Ja es geht aber
Wenn ich das Item mit Befehl Benutzen kombiniere passiert nichts
Wenn ich nur mit draufdrücken kombiniere geht's.... :cl
Titel: Re: Animation will net
Beitrag von: Kiwa am 08. März 2015, 22:42:03
Ich glaub ich weiß was du meinst.

Hast du den die DIREKTE benutzung des Inventargegenstnds auch programmiert (das "if (UsedAction(eActUse)){...}") ? Wenn nicht dann ist es völlig normal das bei dem Verb "Benutze" und dem Gegenstand nix passiert. Das musst du dann noch (in der selben Funktion unterhalb des "if (UsedAction(eActUseInventory))" Blocks einbauen.

Wenn du das Item direkt anklickst steht auch "Benutze Haken mit" in der Aktion Zeile, oder? Wenn du das Verb "Benutze" anklickst und dann das Item dann steht da nur "Benutze Haken", ohne das Wort "mit". Das ist so im Starterpack gescriptet. Ich finde es auch so am Besten, dann kann man durch direktes anklicken der Items verschiedene Items kombinieren und mit dem Verb "Benutze" das Item direkt benutzen (denke an das Handy Beispiel).

Ist es jetzt klar geworden? Falls noch Fragen sind dann stelle sie ruhig, dafür ist das Forum schließlich da.
Titel: Re: Animation will net
Beitrag von: Kinkilla am 08. März 2015, 22:51:08
Hmm klingt einleuchtend :cl

Werde ich gleich Morgen ausprobieren. Danke für die Hilfe
LG Kinkilla  ;)