1
Technik / Re: fehler beim geben von sachen
« am: 01. Oktober 2012, 14:29:53 »
Bitte nochmals um hilfe. Habe das eingangsposting verändert. ^^
Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.
Ich hab den betreffenden Teil im global script gefunden:Code: [Auswählen]else if ((GSagsusedmode == 4) && (GetLocationType (mouse.x, mouse.y) == 2) && isAction (A_GIVE_TO) && (GetCharacterAt (mouse.x, mouse.y) < 7))1. Man kann nur den Charakteren 1-6 etwas geben (klar), muss man also ändern (1. if-Abfrage)
{
SetLabelColor (ACTION, 0, ActionLabelColorHighlighted);
if (GoToCharacter (GSlocid, 0, 1, 2))
{
ItemGiven = character [GetPlayerCharacter ()].activeinv;
if (IsInteractionAvailable (mrx - GetViewportX (), mry - GetViewportY (), MODE_USEINV) == 1)
{
RunCharacterInteraction (GSlocid, MODE_USEINV);
}
GiveInv (ItemGiven, GSlocid);
character [GetPlayerCharacter ()].activeinv = -1;
}
SetAction (A_DEFAULT);
}
2. Man muss die Character-Interaction Use inventory on character benutzen, nicht AnyClick.
3. Durch Abfrage einer GlobalInt muss man gegebenenfalls verhindern, dass das Item den Besitzer wechselt.
Man könnte das script auch pauschal so ändern:Code: [Auswählen]if (IsInteractionAvailable (mrx - GetViewportX (), mry - GetViewportY (), MODE_USEINV) == 1)Wenn der NPC das Item tatsächlich erhalten soll, entweder keine Interaction einbauen, oder es ihm in dieser übergeben.
{
RunCharacterInteraction (GSlocid, MODE_USEINV);
}
else
{
GiveInv (ItemGiven, GSlocid);
character [GetPlayerCharacter ()].activeinv = -1;
}
}
charAt.RunInteraction(GSagsusedmode);
SetAction (eActDefault);
}
if (IsInteractionAvailable (mrx - GetViewportX (), mry - GetViewportY (), eModeUseinv) == 1)
{
charAt.RunInteraction(eModeUseinv);
}
else
{
GiveInv (ItemGiven, charAt);
player.ActiveInventory(-1);
}
}
else
{