Geht es hier darum, dass z.B. 5 gleiche Heiltränke auf dem Boden liegen, aber er soll nur einen davon im Inventar haben dürfen? Oder ist mit "nur einmal" gemeint, dass man das Item nur einmal aufheben können soll (und dann vllt. essen oder verkaufen oder wegwerfen) und dann aber kein zweites mal mehr?
Geht es hier darum, dass z.B. 5 gleiche Heiltränke auf dem Boden liegen, aber er soll nur einen davon im Inventar haben dürfen? Oder ist mit "nur einmal" gemeint, dass man das Item nur einmal aufheben können soll (und dann vllt. essen oder verkaufen oder wegwerfen) und dann aber kein zweites mal mehr?
ja genau letzteres. Das Item darf nur einmal im Inventar sein.
Nach meiner (weit entfernten) Erinnerung gibt es beim Aufheben von Objekten keine nutzbaren Funktionen, die man einfach dafür hernehmen könnte, ich habe auch keine Ahnung ob Ikarus oder LeGo da welche hinzufügen.
Ein Ansatz der mir spontan einfällt wäre, ein VOB zu generieren, welches anstatt des Items in der Welt platziert wird. Beim Benutzen des VOBS könnte man dann mit dessen Funktion den Check durchführen ob das Item schon aufgehoben bzw. im Inventar ist, das Item ins Inventar geben und danach das VOB löschen oder unzugänglich machen (Mover).
Funktioniert natürlich nur dann wenn das Item auch nur in der Spielwelt verteilt ist und nicht in Truhen oder NPCs auftaucht.
Nach meiner (weit entfernten) Erinnerung gibt es beim Aufheben von Objekten keine nutzbaren Funktionen, die man einfach dafür hernehmen könnte, ich habe auch keine Ahnung ob Ikarus oder LeGo da welche hinzufügen.
Ein Ansatz der mir spontan einfällt wäre, ein VOB zu generieren, welches anstatt des Items in der Welt platziert wird. Beim Benutzen des VOBS könnte man dann mit dessen Funktion den Check durchführen ob das Item schon aufgehoben bzw. im Inventar ist, das Item ins Inventar geben und danach das VOB löschen oder unzugänglich machen (Mover).
Funktioniert natürlich nur dann wenn das Item auch nur in der Spielwelt verteilt ist und nicht in Truhen oder NPCs auftaucht.
Das wäre viel zu kompliziert. Ich dachte da vielleicht an eine Lego/Ikarus Funktion die das aufheben verhindern kann.
In dieser LeGo-Anwendung wird eine Funktion an die Stelle des Item-Aufhebens gehookt.
Vielleicht fällt dir dazu was ein. Ansonsten versuch ich mir mal was auszudenken, wenn mein Hirn nicht mehr weggeschmolzen ist.
Die Variable focusitemid kommt irgendwie aus dem Nichts. So sollte es funktionieren:
Code:
var oCNpc her; her = _^(ECX);
if (!Npc_IsPlayer(her)) { return; };
var int focus_ptr; focus_ptr = her.focus_vob;
if (Hlp_Is_oCItem(focus_ptr)) {
var oCItem itm; itm = _^(focus_ptr);
if (Hlp_GetInstanceID(itm) == Itmi_MyItem) {
B_FullStop(hero);
};
};
Ob es die B_FullStop() schon gibt, weiß ich nicht, aber irgendeine Kombination aus NPC_ClearAIQueue() und Npc_StandUpQuick() wird es vermutlich tun.