Shoppen und Kleidung! | SambVerse (Patreon)
Content
Es tat wirklich mal gut, paar Tage am Stück wieder am SambVerse zu arbeiten. Ich denke, es hat sich auch gelohnt!
Ich habe als erstes ein NPC und Shop System gebastelt. Die wirklich Herausforderung hier war das Inventar Management. Man hat nur begrenzt Platz im Inventar (wird irgendwann mehr) und deswegen muss gecheckt werden, ob überhaupt genug Platz verfügbar ist. Um das Shoppen aber so simple wie möglich zu machen kann man mehrere Items pro Einkauf auswählen. Einige lassen sich stapeln. Andere nicht. Das macht es alles etwas komplizierter, wenn man raus finden möchte ob überhaupt genug Platz vorhanden ist für die Sachen, die man kaufen möchte.Die Lösung: Vor dem Kauf wird ein Dummy Inventar erstellt, das das aktuelle kopiert und es wird einfach gecheckt, ob man das mit den Sachen füllen kann. Klingt irgendwie geschrieben simpler als es umzusetzen!
Das NPC System soll so flexible sein wie das Item System. Aktuell kann ich ohne viel Aufwand neue Sammelobjekte ins Spiel einbauen. Das Geld z.B. ist ein Objekt komplett ohne Funktion. Wenn man etwas kauft wird gecheckt, ob man ein Objekt im Inventar hat, das die Item ID der Münzen besitzt und wenn ja wie viel davon vorhanden ist. Andere MMOs nutzen dafür einen extra "Gold" Wert, sprich das Geld ist nicht wirklich vorhanden sondern eine Variable vom Spieler. Als Ultima Online Spieler wollte ich aber, dass das Geld im Spiel ein ganz normales Item ist!
Aber gut, ich habe ein Shop System wo man unsinnige Sachen kaufen kann.. So was wie "Eine Münze für zwei Münzen!". Wir brauchen was zu kaufen. Kein Ding! Kleidung! Also fix ein Kleidungs-System runter geschrieben. Wir fangen mit Hüten an und gehen dann immer weiter. Die Kleidungsstücke sind, wie die Münzen, kein spezielles Objekt. Einzig und allein wird in der Item Datenbank gesagt "du bist Kleidung vom Typ [Hut,Jacke,Hose,etc]". Theoretisch könnten also auch die Münzen ein Hut werden, mit nur einem Klick!
Jetzt heißt es: Paar Hüte machen, das Interface polieren und alles testen lassen. Dann streamen wir endlich wieder :)