PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Inventarkategorien erstellen/verändern?



T´rek
14.05.2011, 15:31
Ich habe eine neue Inventarkategorie erstellt und möchte dass man immer nur ein Item dieser Kategorie anlegen kann, man kann aber offensichtlich mehr als eins anlegen. Außerdem würde ich einer anderen Inventarkategorie gerne die Zahlen von 4 bis 0 zuweisen können, wie es bei den Runen der Fall ist.

Sind solche Optionen möglich und wie muss ich da vorgehen?

EDIT: Kann ich ändern, wo die Inventarkategorie einsortiert wird?

Marthog
14.05.2011, 15:40
Es ist nicht möglich.

Wenn du bereits guter Programmierer bist und dich mit Gothic-modding gut auskennst, gibt es gewisse Möglichkeiten.

Gottfried
14.05.2011, 18:03
Es ist nicht möglich.

Wenn du bereits guter Programmierer bist und dich mit Gothic-modding gut auskennst, gibt es gewisse Möglichkeiten.Du widersprichst dir da ein bisschen selber, oder? :p

Die Sortierung wird (zumindest unter Gothic2) in der ini geregelt:
[GAME]
invCatOrder=COMBAT,POTION,FOOD,ARMOR,MAGIC,RUNE,DOCS,OTHER,NONEMit ein paar Englischkentnissen sollte das alles selbsterklärend sein.

Um zu prüfen ob mehr als ein Item in der Kategorie vorhanden ist kannst du folgende Funktion nutzen:
func int Npc_GetInvItemBySlot(var C_NPC self, var int category, var int slotNr)
// Mit diesem Befehl läßt sich nachsehen, ob in einem bestimmten Slot einer bestimmten Kategorie ein item vorhanden ist
// ist das der Fall, wird dieses Item in die globale Variable item geschrieben
// gibt jetzt die Anzahl zurueck, wenn das Item stackable ist
//. Den Transfer machst Du dann per Npc_RemoveInvItems() und Npc_CreateInvItems().
Die Parameter sind eindeutig: Der Npc der geprüft wird, die Kategorie die geprüft wird und schließlich der Slot. Wenn du Npc_GetInvItemBySlot(hero, <DeineKategorie>, 1); aufrufst und eine Zahl > 0 dabei herauskommt ist dort ein Item vorhanden (-> folglich ist mehr als ein Item in der Kategorie, es wird bei 0 angefangen zu zählen).
Um nun zB. alle Items wegzuwerfen die über sind könntest du in regelmäßigen Abständen folgendes nutzen:
if(Npc_GetInvItemBySlot(hero, <DeineKategorie>, 1)) {
AI_DropItem(hero, item);
};

MfG Gottfried

Marthog
14.05.2011, 18:21
Du widersprichst dir da ein bisschen selber, oder? :p

Stimmt. Ich wollte damit sagen, dass es nicht möglich ist, die Kategorien (außer die Sortierung) zu ändern und die Zahlen zu vergeben, es sei denn man ist gut genug, um mit Ikarus oder G2-Ext zu arbeiten.

Lehona
15.05.2011, 21:04
Die Kategorien bei Npc_GetInvItemBySlot() funktionieren afaik nicht. Du müsstest also nochmal explizit auf die Kategorie prüfen. Bin mir aber nicht zu 100% sicher, evtl. war der Fehler von einer anderen Art.