Maniac Mansion Mania Forum

MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: JPS am 26. Februar 2011, 13:53:04

Titel: JPS vs. AGS3
Beitrag von: JPS am 26. Februar 2011, 13:53:04
So, ich mach mir mal meinen AGS-Hilfe-Thread auf, gleich mit einem ersten Problem:

Ich hab Robert importiert, doch wenn er läuft, macht er ein seltsames Rasenmähergeräusch. Es ist schhrecklich! Unter den Einstellungen für Charaktere habe ich keine Möglichkeit gefunden den Sound zu änderen. Kann mir jemand helfen?
Titel: Re: JPS vs. AGS3
Beitrag von: fireorange am 26. Februar 2011, 13:55:03
Unter den einzelnen Views kann man auch einen Sound (SND) einstellen.
Titel: Re: JPS vs. AGS3
Beitrag von: Domi am 26. Februar 2011, 13:55:24
Zitat
Ich hab Robert importiert, doch wenn er läuft, macht er ein seltsames Rasenmähergeräusch
xD ein Rasenmähergeräusch  ;D ? passt doch ^^

also zur frage: du musst bei dem view einen frame anklicken und unten im property grid nach Sound gucken
und diesen dort eintragen
Titel: Re: JPS vs. AGS3
Beitrag von: Bummels am 26. Februar 2011, 13:59:54
Spoiler (hover to show)
Wollte ich eigentlich schreiben, nur irgendwelche Leute wollen ja immer erster sein.... ;D
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 04. März 2011, 19:06:39
Etwas ganz peinliches: Wie verhindere ich, dass ein Inventargegenstand mit etwas anderem benutzt werden kann - sodass ich also direkt einen Kommentar bekomme, wenn ich das Verb "Benutze" auf ihn verwende?
Titel: Re: JPS vs. AGS3
Beitrag von: Rayman am 04. März 2011, 19:41:14
Füge nach den letzten Pfeil-Klammern folgendes ein:

   }
}
else unhandled();

oder


   }
else
      DisplaySpeech(GetPlayerCharacter(), "Besser nicht.");
}
else unhandled();
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 04. März 2011, 20:02:43
Du verstehst mich falsch: Es geht nicht um Unhandled-Events. Ich will nur einen Inventargegenstand, den ich nicht mit anderen kombiniere sondern direklt benutze.
Titel: Re: JPS vs. AGS3
Beitrag von: Rayman am 04. März 2011, 20:20:43
Achso, ja!

Du musst beim Namen des Inventar-Gegenstands ein ">u" am Schluss setzen.
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 04. März 2011, 20:31:49
Bei "Name" nimmt er es nicht, und bei "Description" funktioniert es nicht. Kann es sein, dass das sich in neueren AGS-Versionen geändert hat?
Titel: Re: JPS vs. AGS3
Beitrag von: Rayman am 04. März 2011, 20:36:52
Wie hast du deinen Gegenstand genannt?

Dieses ">u"-Zeichen musst du am Schluss des Names setzen, wie du deinen Gegenstand genannt hast.

Funktioniert es oder nicht? :cl
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 04. März 2011, 20:41:38
Der Gegenstand heißt iKaffee und wenn ich ihn iKaffee>u nenne und das Spiel starte kommt:

Zitat
Property value is not valid.

Invalid script name; name must only include letters, numbers and underscores: iKaffee>u
Titel: Re: JPS vs. AGS3
Beitrag von: Rayman am 04. März 2011, 20:44:50
Falls in der AGS Version 3.0 die Gegenstände nur als Script-Names benannt werden können,
dann funktioniert das natürlich nicht.

Obwohl ich AGS 3.0 nie benutze, stehe ich jetzt auf den gleichen Schlauch wie du.
Ich wüsste nicht, was man da noch alternativ machen könnte.
Titel: Re: JPS vs. AGS3
Beitrag von: rulaman am 06. März 2011, 21:30:01

änder mal folgende Zeile um
[ags]
if ((GSinvloc.Extension() == 'u') && ( invAt.IsInteractionAvailable(eModeUseinv) == 1 ))
[/ags]
in
[ags]
if ((GSinvloc.Extension() == 'u') )//&& ( invAt.IsInteractionAvailable(eModeUseinv) == 1 ))
[/ags]

(die zweite Abfrage nach dem && wird auskommentiert und davor noch eine ) gesetzt.

bin mir noch nicht ganz über die Auswirkungen klar, ... Aber wenns funktioniert.
Ein erster grober Test brachte Erfolg. Es kann sich aber negativ auf andere Sachen auswirken.

und vergiß nicht "Interact inventory item" eine passende Funktion zu geben.


Grüße
Rulaman
Titel: Re: JPS vs. AGS3
Beitrag von: KhrisMUC am 07. März 2011, 00:57:45
Der Gegenstand heißt iKaffee und wenn ich ihn iKaffee>u nenne und das Spiel starte kommt:
iKaffee ist der interne Name, Du musst den nehmen, der für den Spieler zu sehen ist, also bei Description.

Das wird im Starterpack aber falsch gehandhabt; momentan wird bei direktem Klick aufs Item (genauer: mit "Gehe Zu" oder "Nimm") das event "Interact with inv item" ausgeführt; bei Benutze geht das ">u" komplett unter.

Es nützt also nichts, bei OtherClick UsedAction(eModeUse) zu verwenden.
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 11. März 2011, 18:14:32
Wie setzte ich als Bedingung für ein Ereignis, dass der Spieler in einem bestimmten Raum sein muss? (if (Room==13) hat nicht funktioniert.)

Zu meinem alten Problem: Könnte InventoryItem.RunInteraction etwas nützen? Und wenn, wie kann ich es einbauen (Habe eure anderen Ratschläge noch nicht ausprobiert, da ich diese Funktion doch erst später benötigen werde.)
Titel: Re: JPS vs. AGS3
Beitrag von: KhrisMUC am 12. März 2011, 21:57:50
[ags]  if (player.Room == 13) ...[/ags]

Nützt nur was, wenn Du den Starterpack-Code veränderst. Benutzen müsstest Du es so (wenn Du "Interact with Inv item" verwenden willst):
[ags]  inventory[game.inv_activated].RunInteraction(eModeInteract);[/ags]
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 13. März 2011, 00:25:15
@Khris: Danke!

Neuer Notfall: Warum bringt dieses Script nur einen Standartkommentar hervor, wenn ich die entsprechende Kombination im Spiel ausführe?

function iBlume_OtherClick()
{
  if (player.ActiveInventory==iXX)
  {
    if (player.Room == 13)
    {
      player.FaceDirection (eDirUp);
    }
    else
    {
      player.FaceDirection (eDirUp);
    }
  }
{
  else Unhandled_Inventory();
}
}
Titel: Re: JPS vs. AGS3
Beitrag von: Cone Arex am 13. März 2011, 09:56:41
Wozu die geschweiften Klammern vor und nach else Unhandled_Inventory(); ?
Titel: Re: JPS vs. AGS3
Beitrag von: Endres am 13. März 2011, 09:57:27
Weil ein { ohne if nichts bringt... Höchstens, dass es dann immer ausgeführt wird. Mach es so und achte immer auch auf die Einrückungen, ob die so Sinn ergeben:

[ags]function iBlume_OtherClick()
{
  if (player.ActiveInventory==iXX)
  {
    if (player.Room == 13)
    {
      player.FaceDirection (eDirUp);
    }
    else
    {
      player.FaceDirection (eDirUp);
    }
  }
  else Unhandled_Inventory();
}[/ags]

//Edit: Da war Cone wohl ein bisschen schneller ;)
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 13. März 2011, 16:52:02
Die Version, die du da zeigst, war meine alte Version. Was ich hier geposted habe war ein (falsch) veränderte Version. Beide Versionen liefern aber das selbe Ergebnis: "Besser nicht".
Titel: Re: JPS vs. AGS3
Beitrag von: Bòógieman am 13. März 2011, 18:05:59
Neuer Notfall: Warum bringt dieses Script nur einen Standartkommentar hervor, wenn ich die entsprechende Kombination im Spiel ausführe?
nur um sicher zu gehen, was ist denn deiner meinung nach die "entsprechende Kombination"?
"benutze iXX mit iBlume"
oder
"benutze iBlume mit iXX"
 ???

für diese aktion solltest du übrigens "use inventory on this item" verwenden, denn wie der name schon sagt ist "other click on inventory item" für events gedacht, für die es kein eigenes event gibt  ;)
Titel: Re: JPS vs. AGS3
Beitrag von: Endres am 14. März 2011, 15:03:51
Stimmt, Other_Click dürfte ja auch schon den neuen aktiven Inventargegenstand im "Active"-Speicher haben, oder irre ich mich da?
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 20. März 2011, 13:51:51
Wie kann ein Script ein anderes Script abspielen?
Titel: Re: JPS vs. AGS3
Beitrag von: Endres am 20. März 2011, 14:53:46
Was für ein anderes Script möchtest du denn gerne Ausführen?
xy.RunInteraction(eMode...); ist aber denke ich der gesuchte Begriff.
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 20. März 2011, 15:11:51
Nun, man sollte die selbe Reaktion bei einer Kombination erhalten, wenn einer der beiden Gegenstände noch nicht im Inventar ist.
Mein Script funktioniert aber nicht:
    else if (UsedAction(eActUseInventory) && player.ActiveInventory == iBlume)
    {
      player.ActiveInventory = iBlume;
      iBlume.RunInteraction(eModeUseinv);
    }

Eine andere Version mit "use inventory on hotspot" ging auch nicht, genauso eine Version ohne ActiveInventory.
Titel: Re: JPS vs. AGS3
Beitrag von: JPS am 23. Juli 2011, 18:24:23
Ich will die Helligkeit verändern, bzw. ein langsames fade-out bis der Bildschirm schwarz ist.  ???
Titel: Re: JPS vs. AGS3
Beitrag von: Bòógieman am 23. Juli 2011, 18:48:14
AGS-hilfe-leser wissen mehr ;)

der befehl heißt: FadeOut
alternativ ginge auch noch TintScreen, damit kann man den bildschirm mit einer bestimmten farbe einfärben