Hier, du könntest mal das hier versuchen. Also wie gehabt else if (button == LEFT) in on_mouse_click ersetzen.
Sollte eigentlich funktionieren. Was dabei verändert worden ist, kann ich dir nicht sagen, weil ich das vor Jahren mal gemacht habe und mich nicht mehr errinnere. Ich weiß auch nicht ob das überhaupt die richtige Stelle im Skript ist, müsste aber eigetnlich.
else if (button == LEFT)
{
if (GlobalCondition (2) || GlobalCondition (3) || GlobalCondition (4))
{
// SetMode("default");
}
else if (GSagsusedmode == 9)
{
// walk to
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
if (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode)) ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), GSagsusedmode);
else ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), MODE_WALK);
}
else if ((GSagsusedmode == MODE_TALK) && (IsInteractionAvailable (mouse.x, mouse.y, GSagsusedmode) == 1) && (GetCharacterAt (mouse.x, mouse.y) < 7))
{
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
RunCharacterInteraction (GSlocid, GSagsusedmode);
SetAction (A_DEFAULT);
}
else if ((GSagsusedmode == 4) && (GetLocationType (mouse.x, mouse.y) == 2) && isAction (A_GIVE_TO) && (GetCharacterAt (mouse.x, mouse.y) >= 0))
{
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
if (IsInteractionAvailable (mrx - GetViewportX (), mry - GetViewportY (), eModeGive) == 0)
player.Say("Ich werde das nicht ohne Grund hergeben.");
ItemGiven = character [player.ID].activeinv;
RunCharacterInteraction (GSlocid, eModeGive);
SetAction (A_DEFAULT);
}
else
{
UpdateActionBar ();
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
ProcessClick (mrx - GetViewportX (), mry - GetViewportY (), GSagsusedmode);
SetAction (A_DEFAULT);
}
}
//end if button left
Wichtig dabei ist, dass du im Any_click erst USE_INV und erst danach GIVE_TO aufrufen musst, sonst funktionierts nicht (kp wieso)