Hauptmenü

Neuigkeiten:

Bitte unterstützt uns und bestellt über diese Links bei Amazon  oder HumbleBumble!

"Rede mit" und "Benutze"

Begonnen von Shoben, 24. November 2010, 18:16:41

Vorheriges Thema - Nächstes Thema

Shoben

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


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

NsMn

Bei "Benutze [invItem]" musst du neben den Namen des Items im Editor ein ">u" setzen. (Oder wars ein >b?)

Endres

Also ich hab immer das Globalscript geändert, wo auch das mit der Actionbar ist.



Domi:"irc hab ich mir viren geholt.. icq hab ich nimmer"

Shoben

Und was genau muss ich vorallem wo ändern?
Das Globalscript ist für mich noch zu latein :-[


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

KhrisMUC

#4
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).

Shoben

Ausgeführt wurde er, ja. Und Danke :D


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

Shoben

Sry, für den Doppelpost, aber jetzt habe ich noch das Benutze-Problem, wie kann ich das "Mit... benutzen" ausschalten?


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

KhrisMUC

Hat NsMn doch schon beantwortet, einfach an den Namen des InvItems (Description) ein ">u" anhängen.

Shoben

Achso Upps. Hatte ich übersehen :-\


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

Shoben

Sorry aber "<u" hat nichts geändert und "<b" hat nur geändert, dass "Benutze" die Standart-Rechtsklick-Aktion ist :(


--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke

KhrisMUC

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"!).

rulaman

Oh, oh, oh.

Dass muss ich mir mal anschauen.  :cl
Baden ist die einzige Möglichkeit, den Dreck der Füße an den Hals zu bekommen.

Shoben



--->Das Voll ist immer halb Glas!<---

--->Würde der klügere nachgeben, wäre die Welten von Idioten beherscht!<---

Don't tell me what I can't do
John Locke