Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Thema gestartet von: Fatal M am 21. März 2007, 21:41:43
-
Ich habe eine Frage zum Benutzen von Inventargegenständen.
Beispiel: Taschenlampe soll durch 'Benutze' eingeschaltet werden.
Ich möchte, dass beim Klick auf den Inventargegenstand und beim Klick auf 'Benutze' mit anschliessendem Klick auf das Inventargegenstand nur 'Benutze Taschenlampe' steht (bzw. auch ausgeführt wird), statt 'Benutze Taschenlampe mit'.
Wie kann man das erreichen?
-
Ja, das würde mich auch mal interressieren. ;D
-
Ich hatte das in "Escape from MM" mit "interact invetory item" gemacht.
Dann dort diesen Code benutzt:
if (UsedAction (A_USE)) {
if (GetGlobalInt(476)==0) {
DisplaySpeech(GetPlayerCharacter(),"Hier ist es hell genung.");
}
}
if (UsedAction (A_USE)) {
if (GetGlobalInt(476)==1) {
DisplaySpeech(GetPlayerCharacter(),"Okay.");
SetGlobalInt (491, 1);
SetGlobalInt (475, 1);
PlaySound (60);
LoseInventory (24);
AddInventory (25);
DisplaySpeech(GetPlayerCharacter(),"Jetzt kann ich runter gehen.");
}
}
-
Ich habe es schon einmal geschafft, das übers Global-Script zu lösen, aber dann habe ich es doch vorgezogen die konventionele Methode mit "Benutze" übers GUI zu benutzen.
Aber die Methode von Mister L ist sowieso eleganter , also diesen Post enifach ignorieren.
-
Danke, Mister L! :D
Es funktioniert jetzt so, wie wir es uns vorgestellt haben.
:D :D :D
-
Der betreffende Code ist bei ca. Zeile 1440:
if ((Extension (GSinvloc) == 'u') && (IsInventoryInteractionAvailable (GSlocid, MODE_USE) == 1))
{
// use it immediately (not with anything else)
used_action = global_action;
RunInventoryInteraction (GSlocid, MODE_USE);
SetAction (A_DEFAULT);
}
Wenn eine action (also normalerweise RunScript) bei "Interact with inventory item" eingerichtet ist, dann wird der Gegenstand direkt benutzt. Leider ist das meines Wissens nirgends dokumentiert, oder?
-
Was müsste ich denn jetzt in diesem Global Skript-Abschnitt ändern, damit es zukünftig automatisch so gehandhabt wird, dass das "Benutze mit..." in solchen Fällen nicht mehr erscheint?
-
Nix. Pack was in "Interact inv item" und setze ein ">u" hinter den Namen des InvItems.
-
Dass es auch so einfach geht, hätte ich net gedacht. ;D Danke.