Kommendes Reittiere-Update und ABM-Plugin-Kompatibilität

  • Hi, @red51!


    Mit den kommenden Hottemaxen werfen sich mir gerade ein paar Fragen auf:
    Wird ein neuer Typ für Npc.Type eingeführt? Bisher unterscheide ich nur: ist Npc.Type.Animal oder nicht. (Sowas wie Npc.Type.Mount wäre ja vorstellbar.)


    Wird nur eine neue Npc-Bezeichnung je Art hinzugefügt wie horse beim Pferd oder donkey (bzw. jackass :D ) beim Esel?
    Oder sind wieder Variationen geplant wie holsteiner, haflinger, pony etc.?


    Wird die Plugin-API um solche Funktionen ergänzt wie z.B. npc.isRidingModeActive(), NpcMount/DismountEvent etc.
    bzw. gibt es eventuell wieder eine API-Vorschau?


    Dann habe ich noch Fragen (bzw. geht eher Richtung Wünsche) zur NPC-KI:


    Wäre es möglich, die Standard-KI per API für einzelne (auswählbare) NPCs zu deaktivieren? Und darüberhinaus dann gezielt einzelne Verhaltensfunktionen gesteuert zu aktivieren?


    Ein Szenario wäre, bei einem gezähmten Tiger das Angriffsverhalten zu deaktivieren, außer der Besitzer möchte explizit ein bestimmtes Ziel attackieren.
    Oder ein (hypothetischer) Wachhund (eher Wachbär) ist harmlos gegenüber Besitzer und Freunde, aber angriffslustig, sobald ein Fremder das "Grundstück" betritt.


    Alleine die Möglichkeit, die "Standard-KI" deaktivieren zu können, ist für mich attraktiv mit dem Hintergedanken, eigene Verhaltensmuster integrieren zu können.
    (Z.B. habe ich immer noch den Punkt "Herdentrieb" auf der TODO-Liste ^^ ,
    basierend auf die großartige Arbeit von Craig W. Reynolds: Steering Behaviors For Autonomous Characters)


    Was meinst du dazu, @red51? Ja oder ja? ;)

  • Es wird tatsächlich einen neuen Npc.Type geben, nämlich - wie du schon vermutest - Npc.Type.Mount ;)
    Zusätzlich wird die API Zugriff auf das interne "Skin" Objekt geben, welches bspw. bei Spielern das Aussehen des Körpers bestimmt (Haarfarbe, Hautfarbe, Frisur etc). Npcs können optional ein "Skin" Objekt haben, zB die Dummys, aber auch Reittiere werden ein Skin-Objekt haben. Darüber wird sich feststellen lassen, wie genau das entsprechende Reittier aussieht (also zB Farbe des Fells, Farbe der Mähne). Natürlich lassen sich diese Werte auch jederzeit ändern.


    Ob und welche Funktionen es gibt zur Prüfung, ob auf dem Tier momentan geritten wird, kann ich leider noch nicht sagen. Irgendwas derartiges wird aber auf jeden Fall reinkommen. Ebenso vermutlich auch passende Events für das Aufsteigen/Absteigen von Reittieren. Später kann ich dazu auf jeden Fall mehr sagen. Ich versuche mal, eine Vorschau-Version der API rauszubringen, kann aber leider noch nichts versprechen...


    Was das Ändern des Npc-Verhaltens angeht: Generell war tatsächlich mal geplant, dass man eine Art "Anweisung" erstellen kann, wie sich ein Npc in bestimmten, vom Spiel vorgegebenen Situationen verhalten soll. Zum Beispiel was passieren soll, wenn ein Spieler in die Nähe kommt, welcher Wegpunkt als nächstes gesucht werden soll, was passiert, wenn ein Npc Hunger hat usw. Es handelt sich aber dabei um ein recht komplexes Vorhanden, weshalb das vermutlich nicht so schnell verfügbar sein wird :(
    Evtl. könnte man das aber auch teilweise über Events lösen - bspw. ein Event, wenn ein Npc einen Spieler "ins Auge gefasst" hat und angreifen möchte. Wenn es sich um das "Herrchen" handelt, könnte dann das Event einfach abgebrochen werden. Vll verpassen wir den Tieren aber auch einfach nur eine Art "Ignore-List", worin angegeben wird, welche Spieler das Tierchen generell ignorieren soll... ich denke wir werden da in naher Zukunft eine passende Lösung finden, die zumindest solche einfachen Dinge abdeckt :thumbup:


    Um aber einfach nur die Standard-KI zu deaktivieren, könnte man vll auch die setLocked() Funktion missbrauchen... momentan funktioniert das noch nicht ganz so gut, aber das könnte ich noch etwas anpassen. Dann steht das Tier nur noch doof rum, bis man über die API einen Befehl erteilt.

  • Danke für die umfassende Antwort! Das klingt super :thumbup:
    Das mit der Ignore-List ist eine gute Idee. Um den Gedanken weiterzuspinnen:
    man könnte die Liste auf drei aufteilen: jeweils eine für "freundlich", "feindlich" und "neutral".


    Je nach Tierart bzw. -verhalten könnte dann individuell entschieden werden.
    Vielleicht z.B. beim Tiger entspräche die "freundlich"-Liste = ruhig bleiben, "feindlich"-Liste = Angriff - ein Reh dagegen würde flüchten.
    Ein Herdentier würde die Nähe zu einem aus der "freundlich"-Liste suchen. Hmm, keine Ahnung, ob dies zielführend ist. Ist mir gerade so eingefallen.


    Aber mit den Events: das geht doch immer! :thumbup:


    P.S.: auf jeden Fall freue ich mich schon auf das Update! :thumbsup:

Participate now!

Don’t have an account yet? Create a new account now and be part of our community!