Maniac Mansion Mania Forum
MMM-Werkzeugkiste => Technik => Newbies => Thema gestartet von: Shoben am 24. November 2010, 18:16:41
-
Hi, ich möchte bei meinem neuen Inventory-Item 2 Dinge machen.
Man soll...
A: Damit reden können
B: Bei "Benutze [InvItem]" ein kleines Selbstgespräch führen.
Die Skripts für beides sind schon gemacht, aber ich habe folgende Probleme:
Bei A funktioniert alles, nur dass wenn ich "Rede mit [InvItem]" mache, kommt alles wie es soll, aber
es wird kein Name des [InvItems] im Actiontext angezeigt.
Bei B funktioniert nix, denn wenn ich "Benutze [InvItem]" mache kommt gleich "Benutze [InvItem] mit".
Kann mir da einer helfen?
Danke :D
-
Bei "Benutze [invItem]" musst du neben den Namen des Items im Editor ein ">u" setzen. (Oder wars ein >b?)
-
Also ich hab immer das Globalscript geändert, wo auch das mit der Actionbar ist.
-
Und was genau muss ich vorallem wo ändern?
Das Globalscript ist für mich noch zu latein :-[
-
Geh zur Funktion CheckDefaultAction(). Relativ am Ende heißt es dort (bei mir Zeile 454):
if (GlobalCondition (2) || GlobalCondition (3) || GlobalCondition (4))
{
location = ">n"; //Dont send the name of the hotspt/obj/char/inv to the action bar and set default action "none"
}
GlobalCondition(3) ist der Teil den Du entfernen musst (if the mode is talk, or "Give", and the mouse isnt over a character):
if (GlobalCondition (2) || GlobalCondition (4))
{
location = ">n"; //Dont send the name of the hotspt/obj/char/inv to the action bar and set default action "none"
}
Der Neugier halber: wurde die Aktion "Rede mit InvItem" ausgeführt? Falls nicht, muss nämlich GlobalCondition(3) auch aus on_mouse_click raus (bei mir Zeile 1581).
-
Ausgeführt wurde er, ja. Und Danke :D
-
Sry, für den Doppelpost, aber jetzt habe ich noch das Benutze-Problem, wie kann ich das "Mit... benutzen" ausschalten?
-
Hat NsMn doch schon beantwortet, einfach an den Namen des InvItems (Description) ein ">u" anhängen.
-
Achso Upps. Hatte ich übersehen :-\
-
Sorry aber "<u" hat nichts geändert und "<b" hat nur geändert, dass "Benutze" die Standart-Rechtsklick-Aktion ist :(
-
Im Globalscript ist ein Fehler, hab ich grade gesehen. Ich fürchte mal, das betrifft alle von rulaman umgemodelten Packs.
Bei mir in Zeile 1953 findet sich das Handling von Linksklicks im Inventar:
else if (button == eMouseLeftInv)
{
//left click in inventory
if (GlobalCondition (1))
{
// if the mouse is in the inventory and modes Walk or pickup are selected
SetAction (eActUse);
if ((GSinvloc.Extension() == 'u') && ( invAt.IsInteractionAvailable(eModeInteract) == 1 )) ###########
{
// use it immediately (not with anything else)
used_action = global_action;
if ( null != invAt )
invAt.RunInteraction(eModeInteract); ###########
Die beiden markierten Zeilen enthielten fälschlicherweise eModeUseinv. eModeInteract ist korrekt; in den alten Packs heißt es auch richtigerweise noch MODE_USE.
Wie am Code zu sehen, muss eine Funktion für "Interact inventory item" erstellt werden und der Code dort rein. Der Name muss dann ">u" am Ende haben. (Nicht "<u"!).
-
Oh, oh, oh.
Dass muss ich mir mal anschauen. :cl
-
Ok Danke jetzt gehts :D