Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: Cone Arex am 20. Juli 2016, 16:54:37
-
Ein Bug aus dem Betatest von Das neue Jugendschutzgesetz §3.
Starterpack: Aktuelles Syd-Achmed-SP. (https://github.com/ManiacMansionMania/Syd-Achmed-SP/releases/tag/v1.0)
AGS-Version: 3.3.5
Situation: Ich benutze ein Item, sagen wir die Milchpackung, benutze es mit irgendetwas (sagen wir Tür). Das Item ist anschließend nicht mehr ausgewählt. Dann benutze ich einen anderen Gegenstand (von mir aus Glas) über linksklick auf "Benutze" und dann auf den Gegenstand wird der jetzt gewählte Gegenstand (Glas) mit dem vormals gewählten Gegenstand (Milch) benutzt, obwohl gar kein zweiter Gegenstand gewählt wurde.
Mitlerweile bin ich da am Ende meines Lateins. Ich habe das inzwischen fast 3 Stunden lang gedebugt und bin zu keiner Lösung gekommen. Das einzige das ich heraus gefunden habe, ist das der gewählte Gegenstand tatsächlich nicht aus player.ActiveInventory gelöscht wird, nachdem er benutzt wurde. Aber das geht eigentlich bereits aus der Problemstellung hervor.
-
Dieser Bug scheint in diversen Starterpacks zu existieren, siehe meinen Beitrag vom September 2015:
http://www.maniac-mansion-mania.de/forum/index.php?topic=2432.0
Vielleicht findet jemand mit guten Scripting-Kenntnissen (also Du, Cone Arex ;) ) eine "Lösung", wenn er sich das "9-verb MI-style"-Template ansieht, das im AGS-Forum von Abstauber gewartet wird. Dieses basiert wohl auf den älteren MMM-Templates, ist aber Dank Abstaubers ständigen Verbesserungen weitestgehend bugfrei.
-
Der Bug scheint auch im Dave SP zu existieren
-
Eigentlich wollte ich ja bis zum Release von Das neue Jugendschutzgesetz §3 warten, aber das scheint sich wieder hinzuziehen.
[ags]if ( Mouse.Mode == 2 )
{
if (isAction (eActUse) && invAt.IsInteractionAvailable(eModeUseinv) == 1)
{
gAktionText.TextColor = ActionLabelColorHighlighted;
if ( invAt )
invAt.RunInteraction(eModeUseinv);
SetAction (eActDefault);
}
else player.ActiveInventory = invAt;
}[/ags]
Im obigen Abschnitt der Funktion on_mouse_click() im Abschnitt eMouseLeftInv den Cursor Mode in beiden Fällen von eModeUseinv auf eModeInteract ändern. That should do the trick. Wenn niemand Probleme meldet, commite ich den Code in die Starterpacks.
Vorschau ist immer noch kaputt.